(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REMOVED_COLOR='> name:REMOVED_COLOR)
          op: assign_op.Equal
          rhs: {<brown>}
          spids: [120]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHANGED_COLOR='> name:CHANGED_COLOR)
          op: assign_op.Equal
          rhs: {<blue>}
          spids: [123]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NEW_COLOR='> name:NEW_COLOR)
          op: assign_op.Equal
          rhs: {<blue>}
          spids: [126]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTML='> name:HTML)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'<?xml version="1.0"?>\n'> 
                <'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n'> <'    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n'> 
                <'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\\n'>
              )
            }
          spids: [130]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FRAMEHTML='> name:FRAMEHTML)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'<?xml version="1.0"?>\n'> 
                <'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\n'> <'    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\n'> 
                <'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\\n'>
              )
            }
          spids: [139]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STDHEAD='> name:STDHEAD)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'<meta http-equiv="cache-control" content="no-cache"></meta>\n'> 
                <'<meta http-equiv="Content-Type" content="text/xhtml;charset=utf-8"></meta>\n'> <'<meta http-equiv="Pragma" content="no-cache"></meta>\n'> 
                <'<meta http-equiv="Expires" content="-1"></meta>\n'> <'<!--\n'> <'   Note to customizers: the body of the webrev is IDed as SUNWwebrev\n'> 
                <'   to allow easy overriding by users of webrev via the userContent.css\n'> <'   mechanism available in some browsers.\n'> <'\n'> 
                <'   For example, to have all "removed" information be red instead of\n'> <'   brown, set a rule in your userContent.css file like:\n'> <'\n'> 
                <'       body#SUNWwebrev span.removed { color: red ! important; }\n'> <'-->\n'> <'<style type="text/css" media="screen">\n'> <'body {\n'> <'    background-color: #eeeeee;\n'> 
                <'}\n'> <'hr {\n'> <'    border: none 0;\n'> <'    border-top: 1px solid #aaa;\n'> <'    height: 1px;\n'> <'}\n'> 
                <'div.summary {\n'> <'    font-size: .8em;\n'> <'    border-bottom: 1px solid #aaa;\n'> <'    padding-left: 1em;\n'> 
                <'    padding-right: 1em;\n'> <'}\n'> <'div.summary h2 {\n'> <'    margin-bottom: 0.3em;\n'> <'}\n'> <'div.summary table th {\n'> 
                <'    text-align: right;\n'> <'    vertical-align: top;\n'> <'    white-space: nowrap;\n'> <'}\n'> <'span.lineschanged {\n'> 
                <'    font-size: 0.7em;\n'> <'}\n'> <'span.oldmarker {\n'> <'    color: red;\n'> <'    font-size: large;\n'> 
                <'    font-weight: bold;\n'> <'}\n'> <'span.newmarker {\n'> <'    color: green;\n'> <'    font-size: large;\n'> 
                <'    font-weight: bold;\n'> <'}\n'> <'span.removed {\n'> <'    color: brown;\n'> <'}\n'> <'span.changed {\n'> <'    color: blue;\n'> 
                <'}\n'> <'span.new {\n'> <'    color: blue;\n'> <'    font-weight: bold;\n'> <'}\n'> <'span.chmod {\n'> 
                <'    font-size: 0.7em;\n'> <'    color: #db7800;\n'> <'}\n'> <'a.print { font-size: x-small; }\n'> 
                <'a:hover { background-color: #ffcc99; }\n'> <'</style>\n'> <'\n'> <'<style type="text/css" media="print">\n'> 
                <'pre { font-size: 0.8em; font-family: courier, monospace; }\n'> <'span.removed { color: #444; font-style: italic }\n'> <'span.changed { font-weight: bold; }\n'> 
                <'span.new { font-weight: bold; }\n'> <'span.newmarker { font-size: 1.2em; font-weight: bold; }\n'> 
                <'span.oldmarker { font-size: 1.2em; font-weight: bold; }\n'> <'a.print {display: none}\n'> <'hr { border: none 0; border-top: 1px solid #aaa; height: 1px; }\n'> 
                <'</style>\n'>
              )
            }
          spids: [148]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UDIFFCSS='> name:UDIFFCSS)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <'<style type="text/css" media="screen">\n'> <'span.new {\n'> 
                <'    color: blue;\n'> <'    font-weight: normal;\n'> <'}\n'> <'</style>\n'>
              )
            }
          spids: [243]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MANCSS='> name:MANCSS)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <'html { max-width: 100ex; }\n'> 
                <'body { font-family: Helvetica,Arial,sans-serif; }\n'> <'table { margin-top: 0em; margin-bottom: 0em; }\n'> <'td { vertical-align: top; }\n'> 
                <'ul, ol, dl { margin-top: 0em; margin-bottom: 0em; }\n'> <'li, dt { margin-top: 1em; }\n'> 
                <'a.selflink { border-bottom: thin dotted; color: inherit; font: inherit;\n'> <'    text-decoration: inherit; }\n'> 
                <
'fieldset { border: thin solid silver; border-radius: 1em; text-align: center; }\n'
                > <'input[name=expr] { width: 25%; }\n'> 
                <'table.results { margin-top: 1em; margin-left: 2em; font-size: smaller; }\n'> <'table.head { width: 100%; border-bottom: 1px dotted #808080; margin-bottom: 1em;\n'> 
                <'    font-size: smaller; }\n'> <'td.head-vol { text-align: center; }\n'> <'td.head-rtitle { text-align: right; }\n'> <'span.Nd { }\n'> 
                <'table.foot { width: 100%; border-top: 1px dotted #808080; margin-top: 1em;\n'> <'    font-size: smaller; }\n'> <'td.foot-os { text-align: right; }\n'> 
                <'div.manual-text { margin-left: 5ex; }\n'> <'h1.Sh { margin-top: 2ex; margin-bottom: 1ex; margin-left: -4ex;\n'> <'    font-size: 110%; }\n'> 
                <'h2.Ss { margin-top: 2ex; margin-bottom: 1ex; margin-left: -2ex;\n'> <'    font-size: 105%; }\n'> <'div.Pp { margin: 1ex 0ex; }\n'> <'a.Sx { }\n'> <'a.Xr { }\n'> 
                <'div.Bd { }\n'> <'div.D1 { margin-left: 5ex; }\n'> <'ul.Bl-bullet { list-style-type: disc; padding-left: 1em; }\n'> 
                <'li.It-bullet { }\n'> <'ul.Bl-dash { list-style-type: none; padding-left: 0em; }\n'> 
                <'li.It-dash:before { content: "\\2014  "; }\n'> <'ul.Bl-item { list-style-type: none; padding-left: 0em; }\n'> <'li.It-item { }\n'> 
                <'ul.Bl-compact > li { margin-top: 0ex; }\n'> <'ol.Bl-enum { padding-left: 2em; }\n'> <'li.It-enum { }\n'> 
                <'ol.Bl-compact > li { margin-top: 0ex; }\n'> <'dl.Bl-diag { }\n'> <'dt.It-diag { }\n'> <'dd.It-diag { margin-left: 0ex; }\n'> 
                <'b.It-diag { font-style: normal; }\n'> <'dl.Bl-hang { }\n'> <'dt.It-hang { }\n'> <'dd.It-hang { margin-left: 10.2ex; }\n'> 
                <'dl.Bl-inset { }\n'> <'dt.It-inset { }\n'> <'dd.It-inset { margin-left: 0ex; }\n'> <'dl.Bl-ohang { }\n'> 
                <'dt.It-ohang { }\n'> <'dd.It-ohang { margin-left: 0ex; }\n'> <'dl.Bl-tag { margin-left: 10.2ex; }\n'> 
                <'dt.It-tag { float: left; margin-top: 0ex; margin-left: -10.2ex;\n'> <'    padding-right: 2ex; vertical-align: top; }\n'> 
                <'dd.It-tag { clear: right; width: 100%; margin-top: 0ex; margin-left: 0ex;\n'> <'    vertical-align: top; overflow: auto; }\n'> <'dl.Bl-compact > dt { margin-top: 0ex; }\n'> 
                <'table.Bl-column { }\n'> <'tr.It-column { }\n'> <'td.It-column { margin-top: 1em; }\n'> 
                <'table.Bl-compact > tbody > tr > td { margin-top: 0ex; }\n'> <'cite.Rs { font-style: normal; font-weight: normal; }\n'> <'span.RsA { }\n'> 
                <'i.RsB { font-weight: normal; }\n'> <'span.RsC { }\n'> <'span.RsD { }\n'> <'i.RsI { font-weight: normal; }\n'> 
                <'i.RsJ { font-weight: normal; }\n'> <'span.RsN { }\n'> <'span.RsO { }\n'> <'span.RsP { }\n'> <'span.RsQ { }\n'> <'span.RsR { }\n'> 
                <'span.RsT { text-decoration: underline; }\n'> <'a.RsU { }\n'> <'span.RsV { }\n'> <'span.eqn { }\n'> <'table.tbl { }\n'> <'table.Nm { }\n'> 
                <'b.Nm { font-style: normal; }\n'> <'b.Fl { font-style: normal; }\n'> <'b.Cm { font-style: normal; }\n'> 
                <'var.Ar { font-style: italic; font-weight: normal; }\n'> <'span.Op { }\n'> <'b.Ic { font-style: normal; }\n'> 
                <'code.Ev { font-style: normal; font-weight: normal; font-family: monospace; }\n'> <'i.Pa { font-weight: normal; }\n'> <'span.Lb { }\n'> <'b.In { font-style: normal; }\n'> <'a.In { }\n'> 
                <'b.Fd { font-style: normal; }\n'> <'var.Ft { font-style: italic; font-weight: normal; }\n'> <'b.Fn { font-style: normal; }\n'> 
                <'var.Fa { font-style: italic; font-weight: normal; }\n'> <'var.Vt { font-style: italic; font-weight: normal; }\n'> 
                <'var.Va { font-style: italic; font-weight: normal; }\n'> <'code.Dv { font-style: normal; font-weight: normal; font-family: monospace; }\n'> 
                <'code.Er { font-style: normal; font-weight: normal; font-family: monospace; }\n'> <'span.An { }\n'> <'a.Lk { }\n'> <'a.Mt { }\n'> <'b.Cd { font-style: normal; }\n'> 
                <'i.Ad { font-weight: normal; }\n'> <'b.Ms { font-style: normal; }\n'> <'span.St { }\n'> <'a.Ux { }\n'> 
                <'.No { font-style: normal; font-weight: normal; }\n'> <'.Em { font-style: italic; font-weight: normal; }\n'> 
                <'.Sy { font-style: normal; font-weight: bold; }\n'> <'.Li { font-style: normal; font-weight: normal; font-family: monospace; }\n'>
              )
            }
          spids: [261]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: print_upload_header
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'prefix='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<display_target>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName tflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'display_target='>
                              name: display_target
                            )
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name prefix) (${ Id.VSub_Name remote_target)}
                          spids: [422]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [408 419]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'display_target='>
                          name: display_target
                        )
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name remote_target)}
                      spids: [434]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {(${ Id.VSub_Name display_target)}
                                  right: {<Id.Lit_Other '*'> <'/'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'display_target='>
                              name: display_target
                            )
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name display_target) <'/'>}
                          spids: [463]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [444 460]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<print>} 
              {
                (DQ <'      Upload to: '> (${ Id.VSub_Name display_target) <Id.Lit_BadBackslash '\\'> 
                  <n>
                )
              } {(DQ <'     Uploading: '> <Id.Lit_BadBackslash '\\'> <c>)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: rsync_upload
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_Pound '#')}
                                  right: {<Id.Lit_Digits 2>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: rsync_upload: wrong usage ('> 
                          ($ Id.VSub_Pound '#') <')'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [512 526]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'dst='> ($ Id.VSub_Number 1)})
            (C {<integer>} {<-r>} {<Id.Lit_VarLike 'print_err_msg='> ($ Id.VSub_Number 2)})
            (C {<print_upload_header>} {(${ Id.VSub_Name rsync_prefix)})
            (C {<print>} {(DQ <'rsync ... '> <Id.Lit_BadBackslash '\\'> <c>)})
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'err_msg='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/rsync_err.XXXXXX'>})
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName err_msg)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> 
                          <'nERROR: rsync_upload: cannot create temporary file'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [595 606]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<typeset>} {<Id.Lit_VarLike 'src_dir='> ($ Id.VSub_DollarName WDIR)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {(${ Id.VSub_Name src_dir)}
                                  right: {<Id.Lit_Other '*'> <'/'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'src_dir='> name:src_dir)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name src_dir) <'/'>}
                          spids: [666]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [647 663]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName RSYNC)}
                {<-r>}
                {<-q>}
                {(${ Id.VSub_Name src_dir)}
                {($ Id.VSub_DollarName dst)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {($ Id.VSub_DollarName err_msg)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_QMark '?')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Great
                                          left: {(${ Id.VSub_Name print_err_msg)}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} 
                              {(DQ <Failed.> <Id.Lit_BadBackslash '\\'> <'nERROR: rsync failed'>)}
                            )
                            (C {<print>} 
                              {
                                (DQ <'src dir: \''> (${ Id.VSub_Name src_dir) <'\''> 
                                  <Id.Lit_BadBackslash '\\'> <'ndst dir: \''> ($ Id.VSub_DollarName dst) <'\''>
                                )
                              }
                            )
                            (C {<print>} {(DQ <'error messages:'>)})
                            (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} 
                              {($ Id.VSub_DollarName err_msg)}
                            )
                            (C {<rm>} {<-f>} {($ Id.VSub_DollarName err_msg)})
                          ]
                          spids: [709 725]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [692 706]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<rm>} {<-f>} {($ Id.VSub_DollarName err_msg)})
            (C {<print>} {(DQ <Done.>)})
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: remote_mkdirs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'dir_spec='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'host_spec='> ($ Id.VSub_Number 2)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name dir_spec))}
                                      right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {(DQ (${ Id.VSub_Name dir_spec))}
                                      right: {<'/'> <Id.Lit_Other '*'>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {(DQ <'mkdirs '> <Id.Lit_BadBackslash '\\'> <c>)})
                    (C {<typeset>} {<-r>} 
                      {<Id.Lit_VarLike 'dirs_mk='> 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name dir_spec>
                          var_name: dir_spec
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VOp1_Percent '%'>
                              arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                    (C {<typeset>} {<-r>} 
                      {<Id.Lit_VarLike 'batch_file_mkdir='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_mkdir.XXXXXX'>})
                          right: <Id.Eof_RParen _>
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName batch_file_mkdir)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: remote_mkdirs:'>)} 
                              {(DQ <'cannot create temporary file for batch file'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [949 960]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OLDIFS='> name:OLDIFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName IFS)}
                          spids: [985]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                          spids: [989]
                        )
                      ]
                      redirects: []
                    )
                    (C {<typeset>} {<dir>})
                    (command.ForEach
                      iter_names: [dir]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name dirs_mk)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [{<print>} {<-->} {(DQ <'-mkdir '> (${ Id.VSub_Name dir))}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(${ Id.VSub_Name batch_file_mkdir)}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.Simple
                              words: [{<print>} {(DQ <'chdir '> (${ Id.VSub_Name dir))}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(${ Id.VSub_Name batch_file_mkdir)}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OLDIFS)}
                          spids: [1073]
                        )
                      ]
                      redirects: []
                    )
                    (C {<typeset>} {<-r>} 
                      {<Id.Lit_VarLike 'sftp_err_msg='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_scp_err.XXXXXX'>})
                          right: <Id.Eof_RParen _>
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {(${ Id.VSub_Name sftp_err_msg)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: remote_mkdirs:'>)} 
                              {(DQ <'cannot create temporary file for error messages'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [1091 1104]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.Simple
                      words: [
                        {($ Id.VSub_DollarName SFTP)}
                        {<-b>}
                        {(${ Id.VSub_Name batch_file_mkdir)}
                        {(${ Id.VSub_Name host_spec)}
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {(${ Id.VSub_Name sftp_err_msg)}
                        )
                        (redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_NEqual
                                          left: {($ Id.VSub_QMark '?')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} 
                              {
                                (DQ <Id.Lit_BadBackslash '\\'> 
                                  <'nERROR: failed to create remote directories'>
                                )
                              }
                            )
                            (C {<print>} {(DQ <'error messages:'>)})
                            (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} 
                              {(${ Id.VSub_Name sftp_err_msg)}
                            )
                            (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)} 
                              {(${ Id.VSub_Name batch_file_mkdir)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [1150 1164]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)} 
                      {(${ Id.VSub_Name batch_file_mkdir)}
                    )
                  ]
                  spids: [864 896]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: ssh_upload
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_Pound '#')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> 
                          <'nERROR: ssh_upload: wrong number of arguments'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1254 1268]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<typeset>} {<Id.Lit_VarLike 'dst='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'host_spec='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name dst>
                  var_name: dst
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VOp1_DPercent '%%'>
                      arg_word: {<':'> <Id.Lit_Other '*'>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'dir_spec='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name dst>
                  var_name: dst
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VOp1_Pound '#'>
                      arg_word: {<Id.Lit_Other '*'> <':'>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (C {<print_upload_header>} {(${ Id.VSub_Name ssh_prefix)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName Dflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<delete_webrev>} {<0>})]
                  spids: [1361 1372]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<remote_mkdirs>} {(${ Id.VSub_Name dir_spec)} {(${ Id.VSub_Name host_spec)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_QMark '?')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})]
                  spids: [1427 1441]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<print>} {(DQ <'upload ... '> <Id.Lit_BadBackslash '\\'> <c>)})
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'scp_err_msg='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/scp_err.XXXXXX'>})
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {(${ Id.VSub_Name scp_err_msg)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: ssh_upload:'>)} 
                      {(DQ <'cannot create temporary file for error messages'>)}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1476 1489]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName SCP)}
                {<-q>}
                {<-C>}
                {<-B>}
                {<-o>}
                {<Id.Lit_VarLike 'PreferredAuthentications='> <publickey>}
                {<-r>}
                {($ Id.VSub_DollarName WDIR)}
                {($ Id.VSub_DollarName dst)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {(${ Id.VSub_Name scp_err_msg)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_QMark '?')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {(DQ <Failed.> <Id.Lit_BadBackslash '\\'> <'nERROR: scp failed'>)})
                    (C {<print>} 
                      {
                        (DQ <'src dir: \''> ($ Id.VSub_DollarName WDIR) <'\''> 
                          <Id.Lit_BadBackslash '\\'> <'ndst dir: \''> ($ Id.VSub_DollarName dst) <'\''>
                        )
                      }
                    )
                    (C {<print>} {(DQ <'error messages:'>)})
                    (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} {(${ Id.VSub_Name scp_err_msg)})
                    (C {<rm>} {<-f>} {(${ Id.VSub_Name scp_err_msg)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1541 1555]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<rm>} {<-f>} {(${ Id.VSub_Name scp_err_msg)})
            (C {<print>} {(DQ <Done.>)})
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: delete_webrev
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_Pound '#')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {(DQ <'delete_webrev: wrong number of arguments'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1664 1678]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<integer>} {<-r>} {<Id.Lit_VarLike 'check='> ($ Id.VSub_Number 1)})
            (C {<integer>} {<Id.Lit_VarLike 'delete_only='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_Pound '#')}
                                  right: {<Id.Lit_Digits 2>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'delete_only='>
                              name: delete_only
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [1728]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1711 1725]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'stripped_target='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name remote_target>
                  var_name: remote_target
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VOp1_DPound '##'>
                      arg_word: {<Id.Lit_Other '*'> <':'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'host_spec='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name stripped_target>
                  var_name: stripped_target
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VOp1_DPercent '%%'>
                      arg_word: {<':'> <Id.Lit_Other '*'>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'dir_spec='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name stripped_target>
                  var_name: stripped_target
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VOp1_Pound '#'>
                      arg_word: {<Id.Lit_Other '*'> <':'>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (C {<typeset>} {<dir_rm>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(${ Id.VSub_Name dir_spec)}
                                  right: {<'/'> <Id.Lit_Other '*'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})]
                  spids: [1807 1823]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(${ Id.VSub_Name dir_spec)}
                                  right: {<Id.Lit_Other '*'> <'/'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir_rm='> name:dir_rm)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name dir_spec>
                                var_name: dir_spec
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPercent '%%'>
                                    arg_word: {<Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          spids: [1866]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1847 1863]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir_rm='> name:dir_rm)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name dir_spec)}
                      spids: [1877]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: {(${ Id.VSub_Name delete_only)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<print>} {(DQ <'       Removing: '> <Id.Lit_BadBackslash '\\'> <c>)})]
                  spids: [1887 1903]
                )
              ]
              else_action: [(C {<print>} {(DQ <'rmdir '> <Id.Lit_BadBackslash '\\'> <c>)})]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {(DQ ($ Id.VSub_DollarName dir_rm))}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} 
                      {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: empty directory for removal'>)}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1930 1943]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'batch_file_rm='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_remove.XXXXXX'>})
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName batch_file_rm)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> 
                          <'nERROR: delete_webrev: cannot create temporary file'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1989 2000]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Simple
              words: [
                {<print>}
                {
                  (DQ <'rename '> ($ Id.VSub_DollarName dir_rm) <' '> ($ Id.VSub_DollarName TRASH_DIR) 
                    <'/removed.'> ($ Id.VSub_Dollar '$')
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName batch_file_rm)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'sftp_err_msg='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_scp_err.XXXXXX'>})
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {(${ Id.VSub_Name sftp_err_msg)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: delete_webrev:'>)} 
                      {(DQ <'cannot create temporary file for error messages'>)}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [2062 2075]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName SFTP)}
                {<-b>}
                {($ Id.VSub_DollarName batch_file_rm)}
                {($ Id.VSub_DollarName host_spec)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {(${ Id.VSub_Name sftp_err_msg)}
                )
                (redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})
              ]
              more_env: []
              do_fork: T
            )
            (C {<integer>} {<-r>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')})
            (C {<rm>} {<-f>} {($ Id.VSub_DollarName batch_file_rm)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_NEqual
                                      left: {($ Id.VSub_DollarName ret)}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: {($ Id.VSub_DollarName check)}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} 
                      {
                        (DQ <Failed.> <Id.Lit_BadBackslash '\\'> 
                          <'nERROR: failed to remove remote directories'>
                        )
                      }
                    )
                    (C {<print>} {(DQ <'error messages:'>)})
                    (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} {(${ Id.VSub_Name sftp_err_msg)})
                    (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {($ Id.VSub_DollarName ret)}
                    )
                  ]
                  spids: [2132 2154]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: {(${ Id.VSub_Name delete_only)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<print>} {(DQ <Done.>)})]
                  spids: [2210 2226]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: upload_webrev
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<integer>} {<ret>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_d
                                      child: {(DQ ($ Id.VSub_DollarName WDIR))}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: webrev directory \''> 
                          ($ Id.VSub_DollarName WDIR) <'\' does not exist'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [2269 2284]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName nflag)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName tflag)}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Pipeline
                      children: [
                        (C {($ Id.VSub_DollarName FIND)} {($ Id.VSub_DollarName WDIR)} {<-type>} {<d>} 
                          {<-name>} {<closed>}
                        )
                        (command.Simple
                          words: [{($ Id.VSub_DollarName GREP)} {<closed>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_QMark '?')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} 
                              {
                                (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: directory \''> 
                                  ($ Id.VSub_DollarName WDIR) <'\' contains'>
                                )
                              } 
                              {
                                (DQ 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) <closed> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' directory'>
                                )
                              }
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [2370 2384]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [2326 2343]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName tflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(DQ (${ Id.VSub_Name remote_target))}
                                          right: 
                                            {(${ Id.VSub_Name rsync_prefix) <Id.Lit_Other '?'> 
                                              <Id.Lit_Other '*'>
                                            }
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<rsync_upload>} 
                              {
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name remote_target>
                                  var_name: remote_target
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPound '##'>
                                      arg_word: {($ Id.VSub_DollarName rsync_prefix)}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              } {<1>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [2480]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {($ Id.VSub_DollarName ret)}
                            )
                          ]
                          spids: [2445 2466]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(DQ (${ Id.VSub_Name remote_target))}
                                          right: 
                                            {(${ Id.VSub_Name ssh_prefix) <Id.Lit_Other '?'> 
                                              <Id.Lit_Other '*'>
                                            }
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<ssh_upload>} 
                              {
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name remote_target>
                                  var_name: remote_target
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPound '##'>
                                      arg_word: {($ Id.VSub_DollarName ssh_prefix)}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [2522]
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {($ Id.VSub_DollarName ret)}
                            )
                          ]
                          spids: [2489 2510]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [2431 2442]
                )
              ]
              else_action: [
                (C {<rsync_upload>} {(${ Id.VSub_Name remote_target)} {<0>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '?')}
                      spids: [2558]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_NEqual
                                      left: {($ Id.VSub_DollarName ret)}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<print>} {(DQ <'Failed. (falling back to SSH)'>)})
                        (C {<ssh_upload>} {(${ Id.VSub_Name remote_target)})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_QMark '?')}
                              spids: [2593]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [2562 2576]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {($ Id.VSub_DollarName ret)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: url_encode
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName SED)} {<-e>} {(DQ <'s|%|%25|g'>)} {<-e>} {(DQ <'s|:|%3A|g'>)} {<-e>} 
              {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <'&|%26|g'>)} {<-e>} {(DQ <'s|?|%3F|g'>)} {<-e>} {(DQ <'s|#|%23|g'>)} {<-e>} 
              {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <'[|%5B|g'>)} {<-e>} {(DQ <'s|*|%2A|g'>)} {<-e>} {(DQ <'s|@|%40|g'>)} {<-e>} 
              {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <'!|%21|g'>)} {<-e>} {(DQ <'s|=|%3D|g'>)} {<-e>} {(DQ <'s|;|%3B|g'>)} {<-e>} 
              {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <']|%5D|g'>)} {<-e>} {(DQ <'s|(|%28|g'>)} {<-e>} {(DQ <'s|)|%29|g'>)} {<-e>} {(DQ <'s|\'|%27|g'>)} {<-e>} 
              {(DQ <'s|+|%2B|g'>)} {<-e>} {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <',|%2C|g'>)} {<-e>} 
              {
                (DQ <'s|'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) <'|%24|g'>
                )
              }
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: html_quote
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (C {($ Id.VSub_DollarName SED)} {<-e>} 
                  {(DQ <'s/&/'> <Id.Lit_BadBackslash '\\'> <'&amp;/g'>)} {<-e>} {(DQ <'s/</'> <Id.Lit_BadBackslash '\\'> <'&lt;/g'>)} {<-e>} 
                  {(DQ <'s/>/'> <Id.Lit_BadBackslash '\\'> <'&gt;/g'>)} {(DQ ($ Id.VSub_At '@'))}
                )
                (C {<expand>})
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: trim_digest
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'digest='> ($ Id.VSub_Number 1)})
            (command.Pipeline
              children: [
                (C {<echo>} {($ Id.VSub_DollarName digest)})
                (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'s/\\([0-9a-f]\\{12\\}\\).*/\\1/'>)})
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: its2url
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {($ Id.VSub_DollarName SED)} {<-f>} {(${ Id.VSub_Name its_sed_script)})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: strip_unchanged
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName AWK)} 
              {
                (SQ <'\n'> <'\tBEGIN\t{ C = c = 20 }\n'> <'\tNF == 0 || /<span class="/ {\n'> 
                  <'\t\tif (c > C) {\n'> <'\t\t\tc -= C\n'> <'\t\t\tinx = 0\n'> <'\t\t\tif (c > C) {\n'> 
                  <'\t\t\t\tprint "\\n</pre><hr></hr><pre>"\n'> <'\t\t\t\tinx = c % C\n'> <'\t\t\t\tc = C\n'> <'\t\t\t}\n'> <'\n'> <'\t\t\tfor (i = 0; i < c; i++)\n'> 
                  <'\t\t\t\tprint ln[(inx + i) % C]\n'> <'\t\t}\n'> <'\t\tc = 0;\n'> <'\t\tprint\n'> <'\t\tnext\n'> <'\t}\n'> <'\t{\tif (c >= C) {\n'> 
                  <'\t\t\tln[c % C] = $0\n'> <'\t\t\tc++;\n'> <'\t\t\tnext;\n'> <'\t\t}\n'> <'\t\tc++;\n'> <'\t\tprint\n'> <'\t}\n'> 
                  <'\tEND\t{ if (c > (C * 2)) print "\\n</pre><hr></hr>" }\n'> <'\n'> <'\t'>
                )
              } {($ Id.VSub_Number 1)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: sdiff_to_html
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<diff>} {<-b>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.diffs>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TNAME='> name:TNAME)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                  spids: [3237]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TPATH='> name:TPATH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                  spids: [3241]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMENT='> name:COMMENT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 5)}
                  spids: [3245]
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName AWK)}
                {
                  (SQ <'\n'> <'\tBEGIN\t{\n'> 
                    <'\t\tprintf "function sp(n) {for (i=0;i<n;i++)printf \\"\\\\n\\"}\\n"\n'> <'\t\tprintf "function removed() "\n'> 
                    <
'\t\tprintf "{printf \\"<span class=\\\\\\"removed\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n'
                    > <'\t\tprintf "function changed() "\n'> 
                    <
'\t\tprintf "{printf \\"<span class=\\\\\\"changed\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n'
                    > <'\t\tprintf "function bl() {printf \\"%%4d %%s\\\\n\\", NR, $0}\\n"\n'> <'}\n'> <'\t/^</\t{next}\n'> 
                    <'\t/^>/\t{next}\n'> <'\t/^---/\t{next}\n'> <'\n'> <'\t{\n'> <'\tsplit($1, a, /[cad]/) ;\n'> <'\tif (index($1, "a")) {\n'> 
                    <'\t\tif (a[1] == 0) {\n'> <'\t\t\tn = split(a[2], r, /,/);\n'> <'\t\t\tif (n == 1)\n'> 
                    <'\t\t\t\tprintf "BEGIN\\t\\t{sp(1)}\\n"\n'> <'\t\t\telse\n'> <'\t\t\t\tprintf "BEGIN\\t\\t{sp(%d)}\\n",\\\n'> <'\t\t\t\t(r[2] - r[1]) + 1\n'> 
                    <'\t\t\tnext\n'> <'\t\t}\n'> <'\n'> <'\t\tprintf "NR==%s\\t\\t{", a[1]\n'> <'\t\tn = split(a[2], r, /,/);\n'> 
                    <'\t\ts = r[1];\n'> <'\t\tif (n == 1)\n'> <'\t\t\tprintf "bl();printf \\"\\\\n\\"; next}\\n"\n'> <'\t\telse {\n'> 
                    <'\t\t\tn = r[2] - r[1]\n'> <'\t\t\tprintf "bl();sp(%d);next}\\n",\\\n'> <'\t\t\t(r[2] - r[1]) + 1\n'> <'\t\t}\n'> <'\t\tnext\n'> 
                    <'\t}\n'> <'\tif (index($1, "d")) {\n'> <'\t\tn = split(a[1], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> 
                    <'\t\tif (n == 1)\n'> <'\t\t\tprintf "NR==%s\\t\\t{removed(); next}\\n" , n1\n'> <'\t\telse\n'> 
                    <'\t\t\tprintf "NR==%s,NR==%s\\t{removed(); next}\\n" , n1, n2\n'> <'\t\tnext\n'> <'\t}\n'> <'\tif (index($1, "c")) {\n'> <'\t\tn = split(a[1], r, /,/);\n'> 
                    <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tfinal = n2\n'> <'\t\td1 = 0\n'> <'\t\tif (n == 1)\n'> 
                    <'\t\t\tprintf "NR==%s\\t\\t{changed();" , n1\n'> <'\t\telse {\n'> <'\t\t\td1 = n2 - n1\n'> <'\t\t\tprintf "NR==%s,NR==%s\\t{changed();" , n1, n2\n'> 
                    <'\t\t}\n'> <'\t\tm = split(a[2], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tif (m > 1) {\n'> 
                    <'\t\t\td2  = n2 - n1\n'> <'\t\t\tif (d2 > d1) {\n'> <'\t\t\t\tif (n > 1) printf "if (NR==%d)", final\n'> 
                    <'\t\t\t\tprintf "sp(%d);", d2 - d1\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\tprintf "next}\\n" ;\n'> <'\n'> <'\t\tnext\n'> <'\t}\n'> <'\t}\n'> <'\n'> 
                    <'\tEND\t{ printf "{printf \\"%%4d %%s\\\\n\\", NR, $0 }\\n" }\n'> <'\t'>
                  )
                }
                {<'/tmp/'> ($ Id.VSub_Dollar '$') <.diffs>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName AWK)}
                {
                  (SQ <'\n'> <'\tBEGIN\t{\n'> 
                    <'\t\tprintf "function sp(n) {for (i=0;i<n;i++)printf \\"\\\\n\\"}\\n"\n'> <'\t\tprintf "function new() "\n'> 
                    <
'\t\tprintf "{printf \\"<span class=\\\\\\"new\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n'
                    > <'\t\tprintf "function changed() "\n'> 
                    <
'\t\tprintf "{printf \\"<span class=\\\\\\"changed\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n'
                    > <'\t\tprintf "function bl() {printf \\"%%4d %%s\\\\n\\", NR, $0}\\n"\n'> <'\t}\n'> <'\n'> 
                    <'\t/^</\t{next}\n'> <'\t/^>/\t{next}\n'> <'\t/^---/\t{next}\n'> <'\n'> <'\t{\n'> <'\tsplit($1, a, /[cad]/) ;\n'> 
                    <'\tif (index($1, "d")) {\n'> <'\t\tif (a[2] == 0) {\n'> <'\t\t\tn = split(a[1], r, /,/);\n'> <'\t\t\tif (n == 1)\n'> 
                    <'\t\t\t\tprintf "BEGIN\\t\\t{sp(1)}\\n"\n'> <'\t\t\telse\n'> <'\t\t\t\tprintf "BEGIN\\t\\t{sp(%d)}\\n",\\\n'> <'\t\t\t\t(r[2] - r[1]) + 1\n'> 
                    <'\t\t\tnext\n'> <'\t\t}\n'> <'\n'> <'\t\tprintf "NR==%s\\t\\t{", a[2]\n'> <'\t\tn = split(a[1], r, /,/);\n'> 
                    <'\t\ts = r[1];\n'> <'\t\tif (n == 1)\n'> <'\t\t\tprintf "bl();printf \\"\\\\n\\"; next}\\n"\n'> <'\t\telse {\n'> 
                    <'\t\t\tn = r[2] - r[1]\n'> <'\t\t\tprintf "bl();sp(%d);next}\\n",\\\n'> <'\t\t\t(r[2] - r[1]) + 1\n'> <'\t\t}\n'> <'\t\tnext\n'> 
                    <'\t}\n'> <'\tif (index($1, "a")) {\n'> <'\t\tn = split(a[2], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> 
                    <'\t\tif (n == 1)\n'> <'\t\t\tprintf "NR==%s\\t\\t{new() ; next}\\n" , n1\n'> <'\t\telse\n'> 
                    <'\t\t\tprintf "NR==%s,NR==%s\\t{new() ; next}\\n" , n1, n2\n'> <'\t\tnext\n'> <'\t}\n'> <'\tif (index($1, "c")) {\n'> <'\t\tn = split(a[2], r, /,/);\n'> 
                    <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tfinal = n2\n'> <'\t\td2 = 0;\n'> <'\t\tif (n == 1) {\n'> <'\t\t\tfinal = n1\n'> 
                    <'\t\t\tprintf "NR==%s\\t\\t{changed();" , n1\n'> <'\t\t} else {\n'> <'\t\t\td2 = n2 - n1\n'> <'\t\t\tprintf "NR==%s,NR==%s\\t{changed();" , n1, n2\n'> 
                    <'\t\t}\n'> <'\t\tm = split(a[1], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tif (m > 1) {\n'> 
                    <'\t\t\td1  = n2 - n1\n'> <'\t\t\tif (d1 > d2) {\n'> <'\t\t\t\tif (n > 1) printf "if (NR==%d)", final\n'> 
                    <'\t\t\t\tprintf "sp(%d);", d1 - d2\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\tprintf "next}\\n" ;\n'> <'\t\tnext\n'> <'\t}\n'> <'\t}\n'> 
                    <'\tEND\t{ printf "{printf \\"%%4d %%s\\\\n\\", NR, $0 }\\n" }\n'> <'\t'>
                  )
                }
                {<'/tmp/'> ($ Id.VSub_Dollar '$') <.diffs>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<html_quote>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_Number 1)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (command.Simple
                  words: [
                    {($ Id.VSub_DollarName AWK)}
                    {<-f>}
                    {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1>}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1.html>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<html_quote>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_Number 2)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (command.Simple
                  words: [
                    {($ Id.VSub_DollarName AWK)}
                    {<-f>}
                    {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2>}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2.html>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
            (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))})
            (C {<print>} 
              {
                (DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' Sdiff '> ($ Id.VSub_DollarName TPATH) 
                  <'/'> ($ Id.VSub_DollarName TNAME) <'</title>'>
                )
              }
            )
            (C {<print>} 
              {
                (DQ <'</head><body id='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <SUNWwebrev> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
                )
              }
            )
            (C {<print>} 
              {
                (DQ <'<a class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <print> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' href='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'javascript:print()'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <'>Print this page</a>'>
                )
              }
            )
            (C {<print>} 
              {
                (DQ <'<pre>'> ($ Id.VSub_DollarName COMMENT) <'</pre>'> <Id.Lit_BadBackslash '\\'> <n>)
              }
            )
            (C {<print>} 
              {
                (DQ <'<table><tr valign='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <top> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
                )
              }
            )
            (C {<print>} {(DQ <'<td><pre>'>)})
            (C {<strip_unchanged>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1.html>})
            (C {<print>} {(DQ <'</pre></td><td><pre>'>)})
            (C {<strip_unchanged>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2.html>})
            (C {<print>} {(DQ <'</pre></td>'>)})
            (C {<print>} {(DQ <'</tr></table>'>)})
            (C {<print>} {(DQ <'</body></html>'>)})
            (C {<framed_sdiff>} {($ Id.VSub_DollarName TNAME)} {($ Id.VSub_DollarName TPATH)} 
              {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1.html>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2.html>} {(DQ ($ Id.VSub_DollarName COMMENT))}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: framed_sdiff
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'TNAME='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<Id.Lit_VarLike 'TPATH='> ($ Id.VSub_Number 2)})
            (C {<typeset>} {<Id.Lit_VarLike 'lhsfile='> ($ Id.VSub_Number 3)})
            (C {<typeset>} {<Id.Lit_VarLike 'rhsfile='> ($ Id.VSub_Number 4)})
            (C {<typeset>} {<Id.Lit_VarLike 'comments='> ($ Id.VSub_Number 5)})
            (C {<typeset>} {<RTOP>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RTOP='> name:RTOP)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<relative_dir>} {($ Id.VSub_DollarName TPATH)} 
                            {($ Id.VSub_DollarName WDIR)}
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [3770]
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [
                {<print>}
                {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.lhs.html>
                    }
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.lhs.html>
                    }
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 3849
                      stdin_parts: [
                        <'    <script type='>
                        <Id.Right_DoubleQuote '"'>
                        <'text/javascript'>
                        <Id.Right_DoubleQuote '"'>
                        <' src='>
                        <Id.Right_DoubleQuote '"'>
                        (${ Id.VSub_Name RTOP)
                        <ancnav.js>
                        <Id.Right_DoubleQuote '"'>
                        <'></script>\n'>
                        <'    </head>\n'>
                        <'    <body id='>
                        <Id.Right_DoubleQuote '"'>
                        <SUNWwebrev>
                        <Id.Right_DoubleQuote '"'>
                        <' onkeypress='>
                        <Id.Right_DoubleQuote '"'>
                        <'keypress(event);'>
                        <Id.Right_DoubleQuote '"'>
                        <'>\n'>
                        <'    <a name='>
                        <Id.Right_DoubleQuote '"'>
                        <0>
                        <Id.Right_DoubleQuote '"'>
                        <'></a>\n'>
                        <'    <pre>'>
                        ($ Id.VSub_DollarName comments)
                        <'</pre><hr></hr>\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {<cp>} 
              {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                ($ Id.VSub_DollarName TNAME) <.lhs.html>
              } 
              {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                ($ Id.VSub_DollarName TNAME) <.rhs.html>
              }
            )
            (command.Simple
              words: [{<insert_anchors>} {($ Id.VSub_DollarName lhsfile)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.lhs.html>
                    }
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<insert_anchors>} {($ Id.VSub_DollarName rhsfile)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.rhs.html>
                    }
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'close='> name:close)
                  op: assign_op.Equal
                  rhs: {(SQ <'</body></html>'>)}
                  spids: [3899]
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [{<print>} {($ Id.VSub_DollarName close)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.lhs.html>
                    }
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<print>} {($ Id.VSub_DollarName close)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.rhs.html>
                    }
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [
                {<print>}
                {(DQ ($ Id.VSub_DollarName FRAMEHTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.frames.html>
                    }
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [
                {<print>}
                {(DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' Framed-Sdiff '>)}
                {
                  (DQ ($ Id.VSub_DollarName TPATH) <'/'> ($ Id.VSub_DollarName TNAME) 
                    <'</title> </head>'>
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.frames.html>
                    }
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName TNAME) <.frames.html>
                    }
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 4071
                      stdin_parts: [
                        <'  <frameset rows='>
                        <Id.Right_DoubleQuote '"'>
                        <'*,60'>
                        <Id.Right_DoubleQuote '"'>
                        <'>\n'>
                        <'    <frameset cols='>
                        <Id.Right_DoubleQuote '"'>
                        <'50%,50%'>
                        <Id.Right_DoubleQuote '"'>
                        <'>\n'>
                        <'      <frame src='>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName TNAME)
                        <.lhs.html>
                        <Id.Right_DoubleQuote '"'>
                        <' scrolling='>
                        <Id.Right_DoubleQuote '"'>
                        <auto>
                        <Id.Right_DoubleQuote '"'>
                        <' name='>
                        <Id.Right_DoubleQuote '"'>
                        <lhs>
                        <Id.Right_DoubleQuote '"'>
                        <'></frame>\n'>
                        <'      <frame src='>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName TNAME)
                        <.rhs.html>
                        <Id.Right_DoubleQuote '"'>
                        <' scrolling='>
                        <Id.Right_DoubleQuote '"'>
                        <auto>
                        <Id.Right_DoubleQuote '"'>
                        <' name='>
                        <Id.Right_DoubleQuote '"'>
                        <rhs>
                        <Id.Right_DoubleQuote '"'>
                        <'></frame>\n'>
                        <'    </frameset>\n'>
                        <'  <frame src='>
                        <Id.Right_DoubleQuote '"'>
                        (${ Id.VSub_Name RTOP)
                        <ancnav.html>
                        <Id.Right_DoubleQuote '"'>
                        <' scrolling='>
                        <Id.Right_DoubleQuote '"'>
                        <no>
                        <Id.Right_DoubleQuote '"'>
                        <' marginwidth='>
                        <Id.Right_DoubleQuote '"'>
                        <0>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'   marginheight='>
                        <Id.Right_DoubleQuote '"'>
                        <0>
                        <Id.Right_DoubleQuote '"'>
                        <' name='>
                        <Id.Right_DoubleQuote '"'>
                        <nav>
                        <Id.Right_DoubleQuote '"'>
                        <'></frame>\n'>
                        <'  <noframes>\n'>
                        <'    <body id='>
                        <Id.Right_DoubleQuote '"'>
                        <SUNWwebrev>
                        <Id.Right_DoubleQuote '"'>
                        <'>\n'>
                        <
'      Alas \'frames\' webrev requires that your browser supports frames\n'
                        >
                        <'      and has the feature enabled.\n'>
                        <'    </body>\n'>
                        <'  </noframes>\n'>
                        <'  </frameset>\n'>
                        <'</html>\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: fix_postscript
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'infile='> name:infile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [4116]
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.crmerge.pl>}
                )
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
                      here_end_span_id: 4173
                      stdin_parts: [
                        <'\n'>
                        <'\tprint scalar(<>);\t\t# %!PS-Adobe---\n'>
                        <'\tprint "%%Orientation: Landscape\\n";\n'>
                        <'\n'>
                        <'\t$pno = 0;\n'>
                        <'\t$doprint = 1;\n'>
                        <'\n'>
                        <'\t$page = "";\n'>
                        <'\n'>
                        <'\twhile (<>) {\n'>
                        <'\t\tnext if (/^%%Pages:\\s*\\d+/);\n'>
                        <'\n'>
                        <'\t\tif (/^%%Page:/) {\n'>
                        <'\t\t\tif ($pno == 0 || $page =~ /\\)S/) {\n'>
                        <'\t\t\t\t# Header or single page containing text\n'>
                        <'\t\t\t\tprint "%%Page: ? $pno\\n" if ($pno > 0);\n'>
                        <'\t\t\t\tprint $page;\n'>
                        <'\t\t\t\t$pno++;\n'>
                        <'\t\t\t} else {\n'>
                        <'\t\t\t\t# Empty page, skip it.\n'>
                        <'\t\t\t}\n'>
                        <'\t\t\t$page = "";\n'>
                        <'\t\t\t$doprint = 1;\n'>
                        <'\t\t\tnext;\n'>
                        <'\t\t}\n'>
                        <'\n'>
                        <'\t\t# Skip from %%Trailer of one document to Endprolog\n'>
                        <'\t\t# %%Page of the next\n'>
                        <'\t\t$doprint = 0 if (/^%%Trailer/);\n'>
                        <'\t\t$page .= $_ if ($doprint);\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\tif ($page =~ /\\)S/) {\n'>
                        <'\t\tprint "%%Page: ? $pno\\n";\n'>
                        <'\t\tprint $page;\n'>
                        <'\t} else {\n'>
                        <'\t\t$pno--;\n'>
                        <'\t}\n'>
                        <'\tprint "%%Trailer\\n%%Pages: $pno\\n";\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{($ Id.VSub_DollarName PERL)} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.crmerge.pl>}]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {($ Id.VSub_DollarName infile)}
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: insert_anchors
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName AWK)} 
              {
                (SQ <'\n'> <'\tfunction ia() {\n'> 
                  <'\t\tprintf "<a name=\\"%d\\" id=\\"anc%d\\"></a>", anc, anc++;\n'> <'\t}\n'> <'\n'> <'\tBEGIN {\n'> <'\t\tanc=1;\n'> <'\t\tinblock=1;\n'> <'\t\tprintf "<pre>\\n";\n'> 
                  <'\t}\n'> <'\tNF == 0 || /^<span class=/ {\n'> <'\t\tif (inblock == 0) {\n'> <'\t\t\tia();\n'> 
                  <'\t\t\tinblock=1;\n'> <'\t\t}\n'> <'\t\tprint;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\t{\n'> <'\t\tinblock=0;\n'> <'\t\tprint;\n'> 
                  <'\t}\n'> <'\tEND {\n'> <'\t\tia();\n'> <'\n'> <'\t\tprintf "<b style=\\"font-size: large; color: red\\">";\n'> 
                  <'\t\tprintf "--- EOF ---</b>"\n'> <'\t\tfor(i=0;i<8;i++) printf "\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n";\n'> <'\t\tprintf "</pre>"\n'> 
                  <'\t\tprintf "<form name=\\"eof\\">";\n'> <'\t\tprintf "<input name=\\"value\\" value=\\"%d\\" " \\\n'> 
                  <'\t\t    "type=\\"hidden\\"></input>", anc - 1;\n'> <'\t\tprintf "</form>";\n'> <'\t}\n'> <'\t'>
                )
              } {($ Id.VSub_Number 1)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: relative_dir
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} 
              {<Id.Lit_VarLike 'cur='> 
                (DQ 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VOp1_DPound '##'>
                        arg_word: 
                          {($ Id.VSub_Number 2) 
                            (word_part.ExtGlob
                              op: <Id.ExtGlob_QMark '?('>
                              arms: [{<'/'>}]
                            )
                          }
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: {(DQ ($ Id.VSub_DollarName cur))}
                                  right: 
                                    {
                                      (DQ <'/'> 
                                        (braced_var_sub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Number 1>
                                          var_name: 1
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VOp1_Pound '#'>
                                              arg_word: {<Id.Lit_Slash '/'>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {<-u2>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <'nWARNING: relative_dir: '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          <' not relative '>
                        )
                      }
                    )
                    (C {<print>} {<-u2>} 
                      {
                        (DQ <'to '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          ($ Id.VSub_Number 2) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          <'.  Check input paths.  Framed webrev '>
                        )
                      }
                    )
                    (C {<print>} {<-u2>} {(DQ <'will not be relocatable!'>)})
                    (C {<print>} {($ Id.VSub_Number 2)})
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [4363 4385]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Pipeline
              children: [
                (C {<print>} {($ Id.VSub_DollarName cur)})
                (C {($ Id.VSub_DollarName SED)} {<-e>} 
                  {
                    (SQ <'{\n'> <'\t\ts:^\\./*::\n'> <'\t\ts:/$::\n'> <'\t\ts:[^/][^/]*:..:g\n'> 
                      <'\t\ts:^\\(..*\\)$:\\1/:\n'> <'\t}'>
                    )
                  }
                )
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: frame_nav_js
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
                      here_end_span_id: 4716
                      stdin_parts: [
                        <'var myInt;\n'>
                        <'var scrolling = 0;\n'>
                        <'var sfactor = 3;\n'>
                        <'var scount = 10;\n'>
                        <'\n'>
                        <'function scrollByPix()\n'>
                        <'{\n'>
                        <'\tif (scount <= 0) {\n'>
                        <'\t\tsfactor *= 1.2;\n'>
                        <'\t\tscount = 10;\n'>
                        <'\t}\n'>
                        <'\tparent.lhs.scrollBy(0, sfactor);\n'>
                        <'\tparent.rhs.scrollBy(0, sfactor);\n'>
                        <'\tscount--;\n'>
                        <'}\n'>
                        <'\n'>
                        <'function scrollToAnc(num)\n'>
                        <'{\n'>
                        <'\t// Update the value of the anchor in the form which we use as\n'>
                        <'\t// storage for this value.  setAncValue() will take care of\n'>
                        <'\t// correcting for overflow and underflow of the value and return\n'>
                        <'\t// us the new value.\n'>
                        <'\tnum = setAncValue(num);\n'>
                        <'\n'>
                        <'\t// Set location and scroll back a little to expose previous\n'>
                        <'\t// lines.\n'>
                        <'\t//\n'>
                        <'\t// Note that this could be improved: it is possible although\n'>
                        <'\t// complex to compute the x and y position of an anchor, and to\n'>
                        <'\t// scroll to that location directly.\n'>
                        <'\t//\n'>
                        <
'\tparent.lhs.location.replace(parent.lhs.location.pathname + "#" + num);\n'
                        >
                        <
'\tparent.rhs.location.replace(parent.rhs.location.pathname + "#" + num);\n'
                        >
                        <'\n'>
                        <'\tparent.lhs.scrollBy(0, -30);\n'>
                        <'\tparent.rhs.scrollBy(0, -30);\n'>
                        <'}\n'>
                        <'\n'>
                        <'function getAncValue()\n'>
                        <'{\n'>
                        <'\treturn (parseInt(parent.nav.document.diff.real.value));\n'>
                        <'}\n'>
                        <'\n'>
                        <'function setAncValue(val)\n'>
                        <'{\n'>
                        <'\tif (val <= 0) {\n'>
                        <'\t\tval = 0;\n'>
                        <'\t\tparent.nav.document.diff.real.value = val;\n'>
                        <'\t\tparent.nav.document.diff.display.value = "BOF";\n'>
                        <'\t\treturn (val);\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\t//\n'>
                        <'\t// The way we compute the max anchor value is to stash it\n'>
                        <'\t// inline in the left and right hand side pages-- it\'s the same\n'>
                        <'\t// on each side, so we pluck from the left.\n'>
                        <'\t//\n'>
                        <'\tmaxval = parent.lhs.document.eof.value.value;\n'>
                        <'\tif (val < maxval) {\n'>
                        <'\t\tparent.nav.document.diff.real.value = val;\n'>
                        <'\t\tparent.nav.document.diff.display.value = val.toString();\n'>
                        <'\t\treturn (val);\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\t// this must be: val >= maxval\n'>
                        <'\tval = maxval;\n'>
                        <'\tparent.nav.document.diff.real.value = val;\n'>
                        <'\tparent.nav.document.diff.display.value = "EOF";\n'>
                        <'\treturn (val);\n'>
                        <'}\n'>
                        <'\n'>
                        <'function stopScroll()\n'>
                        <'{\n'>
                        <'\tif (scrolling == 1) {\n'>
                        <'\t\tclearInterval(myInt);\n'>
                        <'\t\tscrolling = 0;\n'>
                        <'\t}\n'>
                        <'}\n'>
                        <'\n'>
                        <'function startScroll()\n'>
                        <'{\n'>
                        <'\tstopScroll();\n'>
                        <'\tscrolling = 1;\n'>
                        <'\tmyInt = setInterval("scrollByPix()", 10);\n'>
                        <'}\n'>
                        <'\n'>
                        <'function handlePress(b)\n'>
                        <'{\n'>
                        <'\tswitch (b) {\n'>
                        <'\tcase 1:\n'>
                        <'\t\tscrollToAnc(-1);\n'>
                        <'\t\tbreak;\n'>
                        <'\tcase 2:\n'>
                        <'\t\tscrollToAnc(getAncValue() - 1);\n'>
                        <'\t\tbreak;\n'>
                        <'\tcase 3:\n'>
                        <'\t\tsfactor = -3;\n'>
                        <'\t\tstartScroll();\n'>
                        <'\t\tbreak;\n'>
                        <'\tcase 4:\n'>
                        <'\t\tsfactor = 3;\n'>
                        <'\t\tstartScroll();\n'>
                        <'\t\tbreak;\n'>
                        <'\tcase 5:\n'>
                        <'\t\tscrollToAnc(getAncValue() + 1);\n'>
                        <'\t\tbreak;\n'>
                        <'\tcase 6:\n'>
                        <'\t\tscrollToAnc(999999);\n'>
                        <'\t\tbreak;\n'>
                        <'\t}\n'>
                        <'}\n'>
                        <'\n'>
                        <'function handleRelease(b)\n'>
                        <'{\n'>
                        <'\tstopScroll();\n'>
                        <'}\n'>
                        <'\n'>
                        <'function keypress(ev)\n'>
                        <'{\n'>
                        <'\tvar keynum;\n'>
                        <'\tvar keychar;\n'>
                        <'\n'>
                        <'\tif (window.event) { // IE\n'>
                        <'\t\tkeynum = ev.keyCode;\n'>
                        <'\t} else if (ev.which) { // non-IE\n'>
                        <'\t\tkeynum = ev.which;\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\tkeychar = String.fromCharCode(keynum);\n'>
                        <'\n'>
                        <'\tif (keychar == "k") {\n'>
                        <'\t\thandlePress(2);\n'>
                        <'\t\treturn (0);\n'>
                        <'\t} else if (keychar == "j" || keychar == " ") {\n'>
                        <'\t\thandlePress(5);\n'>
                        <'\t\treturn (0);\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\treturn (1);\n'>
                        <'}\n'>
                        <'\n'>
                        <'function ValidateDiffNum()\n'>
                        <'{\n'>
                        <'\tvar val;\n'>
                        <'\tvar i;\n'>
                        <'\n'>
                        <'\tval = parent.nav.document.diff.display.value;\n'>
                        <'\tif (val == "EOF") {\n'>
                        <'\t\tscrollToAnc(999999);\n'>
                        <'\t\treturn;\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\tif (val == "BOF") {\n'>
                        <'\t\tscrollToAnc(0);\n'>
                        <'\t\treturn;\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\ti = parseInt(val);\n'>
                        <'\tif (isNaN(i)) {\n'>
                        <'\t\tparent.nav.document.diff.display.value = getAncValue();\n'>
                        <'\t} else {\n'>
                        <'\t\tscrollToAnc(i);\n'>
                        <'\t}\n'>
                        <'\n'>
                        <'\treturn (false);\n'>
                        <'}\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: frame_navigation
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))})
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
                      here_end_span_id: 4770
                      stdin_parts: [
                        <'<title>Anchor Navigation</title>\n'>
                        <'<meta http-equiv="Content-Script-Type" content="text/javascript">\n'>
                        <'<meta http-equiv="Content-Type" content="text/html">\n'>
                        <'\n'>
                        <'<style type="text/css">\n'>
                        <'    div.button td { padding-left: 5px; padding-right: 5px;\n'>
                        <'\t\t    background-color: #eee; text-align: center;\n'>
                        <'\t\t    border: 1px #444 outset; cursor: pointer; }\n'>
                        <'    div.button a { font-weight: bold; color: black }\n'>
                        <'    div.button td:hover { background: #ffcc99; }\n'>
                        <'</style>\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {<print>} 
              {
                (DQ <'<script type='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <'text/javascript'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' src='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <ancnav.js> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'></script>'>
                )
              }
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
                      here_end_span_id: 4867
                      stdin_parts: [
                        <'</head>\n'>
                        <
'<body id="SUNWwebrev" bgcolor="#eeeeee" onload="document.diff.real.focus();"\n'
                        >
                        <'\tonkeypress="keypress(event);">\n'>
                        <'    <noscript lang="javascript">\n'>
                        <'      <center>\n'>
                        <'\t<p><big>Framed Navigation controls require Javascript</big><br></br>\n'>
                        <'\tEither this browser is incompatable or javascript is not enabled</p>\n'>
                        <'      </center>\n'>
                        <'    </noscript>\n'>
                        <'    <table width="100%" border="0" align="center">\n'>
                        <'\t<tr>\n'>
                        <'          <td valign="middle" width="25%">Diff navigation:\n'>
                        <
'          Use \'j\' and \'k\' for next and previous diffs; or use buttons\n'
                        >
                        <'          at right</td>\n'>
                        <'\t  <td align="center" valign="top" width="50%">\n'>
                        <'\t    <div class="button">\n'>
                        <'\t      <table border="0" align="center">\n'>
                        <'                  <tr>\n'>
                        <'\t\t    <td>\n'>
                        <'\t\t      <a onMouseDown="handlePress(1);return true;"\n'>
                        <'\t\t\t onMouseUp="handleRelease(1);return true;"\n'>
                        <'\t\t\t onMouseOut="handleRelease(1);return true;"\n'>
                        <'\t\t\t onClick="return false;"\n'>
                        <'\t\t\t title="Go to Beginning Of file">BOF</a></td>\n'>
                        <'\t\t    <td>\n'>
                        <'\t\t      <a onMouseDown="handlePress(3);return true;"\n'>
                        <'\t\t\t onMouseUp="handleRelease(3);return true;"\n'>
                        <'\t\t\t onMouseOut="handleRelease(3);return true;"\n'>
                        <'\t\t\t title="Scroll Up: Press and Hold to accelerate"\n'>
                        <'\t\t\t onClick="return false;">Scroll Up</a></td>\n'>
                        <'\t\t    <td>\n'>
                        <'\t\t      <a onMouseDown="handlePress(2);return true;"\n'>
                        <'\t\t\t onMouseUp="handleRelease(2);return true;"\n'>
                        <'\t\t\t onMouseOut="handleRelease(2);return true;"\n'>
                        <'\t\t\t title="Go to previous Diff"\n'>
                        <'\t\t\t onClick="return false;">Prev Diff</a>\n'>
                        <'\t\t    </td></tr>\n'>
                        <'\n'>
                        <'\t\t  <tr>\n'>
                        <'\t\t    <td>\n'>
                        <'\t\t      <a onMouseDown="handlePress(6);return true;"\n'>
                        <'\t\t\t onMouseUp="handleRelease(6);return true;"\n'>
                        <'\t\t\t onMouseOut="handleRelease(6);return true;"\n'>
                        <'\t\t\t onClick="return false;"\n'>
                        <'\t\t\t title="Go to End Of File">EOF</a></td>\n'>
                        <'\t\t    <td>\n'>
                        <'\t\t      <a onMouseDown="handlePress(4);return true;"\n'>
                        <'\t\t\t onMouseUp="handleRelease(4);return true;"\n'>
                        <'\t\t\t onMouseOut="handleRelease(4);return true;"\n'>
                        <'\t\t\t title="Scroll Down: Press and Hold to accelerate"\n'>
                        <'\t\t\t onClick="return false;">Scroll Down</a></td>\n'>
                        <'\t\t    <td>\n'>
                        <'\t\t      <a onMouseDown="handlePress(5);return true;"\n'>
                        <'\t\t\t onMouseUp="handleRelease(5);return true;"\n'>
                        <'\t\t\t onMouseOut="handleRelease(5);return true;"\n'>
                        <'\t\t\t title="Go to next Diff"\n'>
                        <'\t\t\t onClick="return false;">Next Diff</a></td>\n'>
                        <'\t\t  </tr>\n'>
                        <'              </table>\n'>
                        <'\t    </div>\n'>
                        <'\t  </td>\n'>
                        <'\t  <th valign="middle" width="25%">\n'>
                        <
'\t    <form action="" name="diff" onsubmit="return ValidateDiffNum();">\n'
                        >
                        <'\t\t<input name="display" value="BOF" size="8" type="text"></input>\n'>
                        <'\t\t<input name="real" value="0" size="8" type="hidden"></input>\n'>
                        <'\t    </form>\n'>
                        <'\t  </th>\n'>
                        <'\t</tr>\n'>
                        <'    </table>\n'>
                        <'  </body>\n'>
                        <'</html>\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: diff_to_html
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TNAME='> name:TNAME)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [4898]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TPATH='> name:TPATH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                  spids: [4902]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIFFTYPE='> name:DIFFTYPE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                  spids: [4906]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMENT='> name:COMMENT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                  spids: [4910]
                )
              ]
              redirects: []
            )
            (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))})
            (C {<print>} 
              {
                (DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' '> (${ Id.VSub_Name DIFFTYPE) <'diff '> 
                  ($ Id.VSub_DollarName TPATH) <'</title>'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName DIFFTYPE)}
                                  right: {(DQ <U>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<print>} {(DQ ($ Id.VSub_DollarName UDIFFCSS))})]
                  spids: [4940 4955]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 4994
                      stdin_parts: [
                        <'</head>\n'>
                        <'<body id='>
                        <Id.Right_DoubleQuote '"'>
                        <SUNWwebrev>
                        <Id.Right_DoubleQuote '"'>
                        <'>\n'>
                        <'        <a class='>
                        <Id.Right_DoubleQuote '"'>
                        <print>
                        <Id.Right_DoubleQuote '"'>
                        <' href='>
                        <Id.Right_DoubleQuote '"'>
                        <'javascript:print()'>
                        <Id.Right_DoubleQuote '"'>
                        <'>Print this page</a>\n'>
                        <'<pre>'>
                        ($ Id.VSub_DollarName COMMENT)
                        <'</pre>\n'>
                        <'        <pre>\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (C {<html_quote>})
                (C {($ Id.VSub_DollarName AWK)} 
                  {
                    (SQ <'\n'> <'\t/^--- new/\t{ next }\n'> <'\t/^\\+\\+\\+ new/\t{ next }\n'> 
                      <'\t/^--- old/\t{ next }\n'> <'\t/^\\*\\*\\* old/\t{ next }\n'> <'\t/^\\*\\*\\*\\*/\t{ next }\n'> 
                      <'\t/^-------/\t{ printf "<center><h1>%s</h1></center>\\n", $0; next }\n'> <'\t/^\\@\\@.*\\@\\@$/\t{ printf "</pre><hr></hr><pre>\\n";\n'> 
                      <'\t\t\t  printf "<span class=\\"newmarker\\">%s</span>\\n", $0;\n'> <'\t\t\t  next}\n'> <'\n'> 
                      <
'\t/^\\*\\*\\*/\t{ printf "<hr></hr><span class=\\"oldmarker\\">%s</span>\\n", $0;\n'
                      > <'\t\t\t  next}\n'> <'\t/^---/\t\t{ printf "<span class=\\"newmarker\\">%s</span>\\n", $0;\n'> 
                      <'\t\t\t  next}\n'> <'\t/^\\+/\t\t{printf "<span class=\\"new\\">%s</span>\\n", $0; next}\n'> 
                      <'\t/^!/\t\t{printf "<span class=\\"changed\\">%s</span>\\n", $0; next}\n'> <'\t/^-/\t\t{printf "<span class=\\"removed\\">%s</span>\\n", $0; next}\n'> 
                      <'\t\t\t{printf "%s\\n", $0; next}\n'> <'\t'>
                    )
                  }
                )
              ]
              negated: F
              stderr_indices: []
            )
            (C {<print>} {(DQ <'</pre></body></html>'> <Id.Lit_BadBackslash '\\'> <n>)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: source_to_html
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHICH='> name:WHICH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [5062]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TNAME='> name:TNAME)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                  spids: [5066]
                )
              ]
              redirects: []
            )
            (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))})
            (C {<print>} 
              {
                (DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' '> ($ Id.VSub_DollarName WHICH) <' '> 
                  ($ Id.VSub_DollarName TNAME) <'</title>'>
                )
              }
            )
            (C {<print>} 
              {
                (DQ <'<body id='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  <SUNWwebrev> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
                )
              }
            )
            (C {<print>} {(DQ <'<pre>'>)})
            (command.Pipeline
              children: [
                (C {<html_quote>})
                (C {($ Id.VSub_DollarName AWK)} {(SQ <'{line += 1 ; printf "%4d %s\\n", line, $0 }'>)})
              ]
              negated: F
              stderr_indices: []
            )
            (C {<print>} {(DQ <'</pre></body></html>'>)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: comments_from_wx
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'fmt='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<Id.Lit_VarLike 'p='> ($ Id.VSub_Number 2)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comm='> name:comm)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [
                              {($ Id.VSub_DollarName AWK)}
                              {(SQ <'\n'> <'\t$1 == "'>) ($ Id.VSub_DollarName p) 
                                (SQ <'" {\n'> <'\t\tdo getline ; while (NF > 0)\n'> <'\t\tgetline\n'> 
                                  <'\t\twhile (NF > 0) { print ; getline }\n'> <'\t\texit\n'> <'\t}'>
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {($ Id.VSub_DollarName wxfile)}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [5181]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName comm)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comm='> name:comm)
                          op: assign_op.Equal
                          rhs: {(DQ <'*** NO COMMENTS ***'>)}
                          spids: [5228]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5214 5225]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName fmt)}
                                  right: {(DQ <text>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {<-->} {(DQ ($ Id.VSub_DollarName comm))})
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [5238 5253]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Pipeline
              children: [
                (C {<print>} {<-->} {(DQ ($ Id.VSub_DollarName comm))})
                (C {<html_quote>})
                (C {<its2url>})
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: getcomments
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'fmt='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<Id.Lit_VarLike 'p='> ($ Id.VSub_Number 2)})
            (C {<typeset>} {<Id.Lit_VarLike 'pp='> ($ Id.VSub_Number 3)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName Nflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)]
                  spids: [5333 5344]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName wxfile)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<comments_from_wx>} {($ Id.VSub_DollarName fmt)} {($ Id.VSub_DollarName p)})
                  ]
                  spids: [5369 5380]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: printCI
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<integer>} {<Id.Lit_VarLike 'tot='> ($ Id.VSub_Number 1)} 
              {<Id.Lit_VarLike 'ins='> ($ Id.VSub_Number 2)} {<Id.Lit_VarLike 'del='> ($ Id.VSub_Number 3)} {<Id.Lit_VarLike 'mod='> ($ Id.VSub_Number 4)} 
              {<Id.Lit_VarLike 'unc='> ($ Id.VSub_Number 5)}
            )
            (C {<typeset>} {<str>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: ($ Id.Lit_ArithVarLike tot)
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'str='> name:str)
                          op: assign_op.Equal
                          rhs: {(DQ <line>)}
                          spids: [5457]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5440 5454]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'str='> name:str)
                      op: assign_op.Equal
                      rhs: {(DQ <lines>)}
                      spids: [5466]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<printf>} {(SQ <'%d %s changed: %d ins; %d del; %d mod; %d unchg\\n'>)} 
              {($ Id.VSub_DollarName tot)} {($ Id.VSub_DollarName str)} {($ Id.VSub_DollarName ins)} {($ Id.VSub_DollarName del)} 
              {($ Id.VSub_DollarName mod)} {($ Id.VSub_DollarName unc)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: difflines
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<integer>} {<tot>} {<mod>} {<del>} {<ins>} {<unc>} {<err>})
            (C {<typeset>} {<filename>})
            (C {<eval>} 
              {
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<diff>} {<-e>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)})
                        (C {($ Id.VSub_DollarName AWK)} 
                          {
                            (SQ <'\n'> <'\t# Change range of lines: N,Nc\n'> 
                              <'\t/^[0-9]*,[0-9]*c$/ {\n'> <'\t\tn=split(substr($1,1,length($1)-1), counts, ",");\n'> <'\t\tif (n != 2) {\n'> <'\t\t\terror=2\n'> 
                              <'\t\t\texit;\n'> <'\t\t}\n'> <'\t\t#\n'> <'\t\t# 3,5c means lines 3 , 4 and 5 are changed, a total of 3 lines.\n'> 
                              <'\t\t# following would be 5 - 3 = 2! Hence +1 for correction.\n'> <'\t\t#\n'> <'\t\tr=(counts[2]-counts[1])+1;\n'> <'\n'> <'\t\t#\n'> 
                              <
'\t\t# Now count replacement lines: each represents a change instead\n'
                              > <'\t\t# of a delete, so increment c and decrement r.\n'> <'\t\t#\n'> 
                              <'\t\twhile (getline != /^\\.$/) {\n'> <'\t\t\tc++;\n'> <'\t\t\tr--;\n'> <'\t\t}\n'> <'\t\t#\n'> 
                              <'\t\t# If there were more replacement lines than original lines,\n'> <'\t\t# then r will be negative; in this case there are no deletions,\n'> 
                              <
'\t\t# but there are r changes that should be counted as adds, and\n'
                              > <'\t\t# since r is negative, subtract it from a and add it to c.\n'> <'\t\t#\n'> <'\t\tif (r < 0) {\n'> 
                              <'\t\t\ta-=r;\n'> <'\t\t\tc+=r;\n'> <'\t\t}\n'> <'\n'> <'\t\t#\n'> 
                              <
'\t\t# If there were more original lines than replacement lines, then\n'
                              > <'\t\t# r will be positive; in this case, increment d by that much.\n'> <'\t\t#\n'> 
                              <'\t\tif (r > 0) {\n'> <'\t\t\td+=r;\n'> <'\t\t}\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> <'\t# Change lines: Nc\n'> 
                              <'\t/^[0-9].*c$/ {\n'> <'\t\t# The first line is a replacement; any more are additions.\n'> 
                              <'\t\tif (getline != /^\\.$/) {\n'> <'\t\t\tc++;\n'> <'\t\t\twhile (getline != /^\\.$/) a++;\n'> <'\t\t}\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> 
                              <'\t# Add lines: both Na and N,Na\n'> <'\t/^[0-9].*a$/ {\n'> <'\t\twhile (getline != /^\\.$/) a++;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> 
                              <'\t# Delete range of lines: N,Nd\n'> <'\t/^[0-9]*,[0-9]*d$/ {\n'> <'\t\tn=split(substr($1,1,length($1)-1), counts, ",");\n'> 
                              <'\t\tif (n != 2) {\n'> <'\t\t\terror=2\n'> <'\t\t\texit;\n'> <'\t\t}\n'> <'\t\t#\n'> 
                              <
'\t\t# 3,5d means lines 3 , 4 and 5 are deleted, a total of 3 lines.\n'
                              > <'\t\t# following would be 5 - 3 = 2! Hence +1 for correction.\n'> <'\t\t#\n'> 
                              <'\t\tr=(counts[2]-counts[1])+1;\n'> <'\t\td+=r;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> 
                              <'\t# Delete line: Nd.   For example 10d says line 10 is deleted.\n'> <'\t/^[0-9]*d$/ {d++; next}\n'> <'\n'> <'\t# Should not get here!\n'> <'\t{\n'> <'\t\terror=1;\n'> 
                              <'\t\texit;\n'> <'\t}\n'> <'\n'> <'\t# Finish off - print results\n'> <'\tEND {\n'> 
                              <'\t\tprintf("tot=%d;mod=%d;del=%d;ins=%d;err=%d\\n",\n'> <'\t\t    (c+d+a), c, d, a, error);\n'> <'\t}'>
                            )
                          }
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: {($ Id.VSub_QMark '?')}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: ($ Id.Lit_ArithVarLike err)
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {(DQ <'Unexpected Error occurred reading'>)} 
                      {
                        (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                          <'diff -e '> ($ Id.VSub_Number 1) <' '> ($ Id.VSub_Number 2) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'?='> ($ Id.VSub_QMark '?') 
                          <', err='>
                        )
                      } {($ Id.VSub_DollarName err)}
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [5661 5683]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.DParen
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_PlusEqual
                  left: ($ Id.Lit_ArithVarLike TOTL)
                  right: ($ Id.Lit_ArithVarLike tot)
                )
              redirects: []
            )
            (command.DParen
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_PlusEqual
                  left: ($ Id.Lit_ArithVarLike TMOD)
                  right: ($ Id.Lit_ArithVarLike mod)
                )
              redirects: []
            )
            (command.DParen
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_PlusEqual
                  left: ($ Id.Lit_ArithVarLike TDEL)
                  right: ($ Id.Lit_ArithVarLike del)
                )
              redirects: []
            )
            (command.DParen
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_PlusEqual
                  left: ($ Id.Lit_ArithVarLike TINS)
                  right: ($ Id.Lit_ArithVarLike ins)
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'unc='> name:unc)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [{<wc>} {<-l>}]
                            redirects: [
                              (redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {($ Id.VSub_Number 1)}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [5774]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: ($ Id.Lit_ArithVarLike unc)
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.DParen
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_MinusEqual
                          left: ($ Id.Lit_ArithVarLike unc)
                          right: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Plus
                              left: ($ Id.Lit_ArithVarLike del)
                              right: ($ Id.Lit_ArithVarLike mod)
                            )
                        )
                      redirects: []
                    )
                    (command.DParen
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_PlusEqual
                          left: ($ Id.Lit_ArithVarLike TUNC)
                          right: ($ Id.Lit_ArithVarLike unc)
                        )
                      redirects: []
                    )
                  ]
                  spids: [5788 5802]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<print>} 
              {
                (DQ <'<span class='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) <lineschanged> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
                )
              }
            )
            (C {<printCI>} {($ Id.VSub_DollarName tot)} {($ Id.VSub_DollarName ins)} 
              {($ Id.VSub_DollarName del)} {($ Id.VSub_DollarName mod)} {($ Id.VSub_DollarName unc)}
            )
            (C {<print>} {(DQ <'</span>'>)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: flist_from_wx
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'argfile='> ($ Id.VSub_Number 1)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name argfile>
                                        var_name: argfile
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_DPercent '%%'>
                                            arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName argfile)}
                          spids: [5940]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5905 5921]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName argfile)}
                      spids: [5949]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName AWK)}
                {
                  (SQ <'{ c = 1; print;\n'> <'\t  while (getline) {\n'> 
                    <'\t\tif (NF == 0) { c = -c; continue }\n'> <'\t\tif (c > 0) print\n'> <'\t  }\n'> <'\t}'>
                  )
                }
                {($ Id.VSub_DollarName wxfile)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName FLIST)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {<print>} {(DQ <' Done.'>)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: hg_active_wxfile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'child='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<Id.Lit_VarLike 'parent='> ($ Id.VSub_Number 2)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPFLIST='> name:TMPFLIST)
                  op: assign_op.Equal
                  rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.active>}
                  spids: [6014]
                )
              ]
              redirects: []
            )
            (C {($ Id.VSub_DollarName HG_ACTIVE)} {<-w>} {($ Id.VSub_DollarName child)} {<-p>} 
              {($ Id.VSub_DollarName parent)} {<-o>} {($ Id.VSub_DollarName TMPFLIST)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TMPFLIST)}
                  spids: [6035]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: flist_from_mercurial
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'child='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<Id.Lit_VarLike 'parent='> ($ Id.VSub_Number 2)})
            (C {<print>} 
              {
                (DQ <' File list from: hg-active -p '> ($ Id.VSub_DollarName parent) <' ...'> 
                  <Id.Lit_BadBackslash '\\'> <c>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_x
                                      child: {($ Id.VSub_DollarName HG_ACTIVE)}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>})
                    (C {<print>} {<-u2>} {(DQ <'Error: hg-active tool not found.  Exiting'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [6087 6100]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<hg_active_wxfile>} {($ Id.VSub_DollarName child)} {($ Id.VSub_DollarName parent)})
            (C {<flist_from_wx>} {($ Id.VSub_DollarName TMPFLIST)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: git_wxfile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'child='> (DQ ($ Id.VSub_Number 1))})
            (C {<typeset>} {<Id.Lit_VarLike 'parent='> (DQ ($ Id.VSub_Number 2))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPFLIST='> name:TMPFLIST)
                  op: assign_op.Equal
                  rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.active>}
                  spids: [6178]
                )
              ]
              redirects: []
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName PERL)}
                {<-e>}
                {
                  (SQ <'my (%files, %realfiles, $msg);\n'> <'\tmy $parent = $ARGV[0];\n'> 
                    <'\tmy $child = $ARGV[1];\n'> <'\n'> <'\topen(F, "git diff -M --name-status $parent..$child |");\n'> <'\twhile (<F>) {\n'> 
                    <'\t    chomp;\n'> <'\t    if (/^R(\\d+)\\s+([^ ]+)\\s+([^ ]+)/) { # rename\n'> 
                    <'\t\tif ($1 >= 75) {\t\t # Probably worth treating as a rename\n'> <'\t\t    $realfiles{$3} = $2;\n'> <'\t\t} else {\n'> <'\t\t    $realfiles{$3} = $3;\n'> 
                    <'\t\t    $realfiles{$2} = $2;\n'> <'\t\t}\n'> <'\t    } else {\n'> <'\t\tmy $f = (split /\\s+/, $_)[1];\n'> <'\t\t$realfiles{$f} = $f;\n'> 
                    <'\t    }\n'> <'\t}\n'> <'\tclose(F);\n'> <'\n'> <'\tmy $state = 1;\t\t    # 0|comments, 1|files\n'> 
                    <'\topen(F, "git whatchanged --pretty=format:%B $parent..$child |");\n'> <'\twhile (<F>) {\n'> <'\t    chomp;\n'> <'\t    if (/^:[0-9]{6}/) {\n'> 
                    <'\t\tmy ($unused, $fname, $fname2) = split(/\\t/, $_);\n'> <'\t\t$fname = $fname2 if defined($fname2);\n'> 
                    <'\t\tnext if !defined($realfiles{$fname}); # No real change\n'> <'\t\t$state = 1;\n'> <'\t\tchomp $msg;\n'> <'\t\t$files{$fname} .= $msg;\n'> <'\t    } else {\n'> 
                    <'\t\tif ($state == 1) {\n'> <'\t\t    $state = 0;\n'> <'\t\t    $msg = /^\\n/ ? "" : "\\n";\n'> <'\t\t}\n'> 
                    <'\t\t$msg .= "$_\\n" if ($_);\n'> <'\t    }\n'> <'\t}\n'> <'\tclose(F);\n'> <'\t \n'> <'\tfor (sort keys %files) {\n'> 
                    <'\t    if ($realfiles{$_} ne $_) {\n'> <'\t\tprint "$_ $realfiles{$_}\\n$files{$_}\\n\\n";\n'> <'\t    } else {\n'> 
                    <'\t\tprint "$_\\n$files{$_}\\n\\n"\n'> <'\t    }\n'> <'\t}'>
                  )
                }
                {(${ Id.VSub_Name parent)}
                {(${ Id.VSub_Name child)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName TMPFLIST)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TMPFLIST)}
                  spids: [6254]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: flist_from_git
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'child='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<Id.Lit_VarLike 'parent='> ($ Id.VSub_Number 2)})
            (C {<print>} {(DQ <' File list from: git ...'> <Id.Lit_BadBackslash '\\'> <c>)})
            (command.Sentence
              child: 
                (C {<git_wxfile>} {(DQ ($ Id.VSub_DollarName child))} 
                  {(DQ ($ Id.VSub_DollarName parent))}
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<flist_from_wx>} {($ Id.VSub_DollarName TMPFLIST)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: flist_from_subversion
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [6347]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OLDPWD='> name:OLDPWD)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                  spids: [6351]
                )
              ]
              redirects: []
            )
            (C {<cd>} {($ Id.VSub_DollarName CWS)})
            (C {<print>} {<-u2>} 
              {(DQ <' File list from: svn status ... '> <Id.Lit_BadBackslash '\\'> <c>)}
            )
            (command.Pipeline
              children: [
                (C {<svn>} {<status>})
                (command.Simple
                  words: [{($ Id.VSub_DollarName AWK)} {(SQ <'/^[ACDMR]/ { print $NF }'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName FLIST)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
            (C {<print>} {<-u2>} {(DQ <' Done.'>)})
            (C {<cd>} {($ Id.VSub_DollarName OLDPWD)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: env_from_flist
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_r child:{($ Id.VSub_DollarName FLIST)})
                  redirects: []
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (C {<eval>} 
              {
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {($ Id.VSub_DollarName SED)} {<-e>} 
                          {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)} {($ Id.VSub_DollarName FLIST)}
                        )
                        (C {($ Id.VSub_DollarName GREP)} {<Id.Lit_Equals '='>})
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  right: <Id.Backtick_Right '`'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName codemgr_ws)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName CODEMGR_WS)}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName CODEMGR_WS)}
                          spids: [6493]
                        )
                      ]
                      redirects: []
                    )
                    (C {<export>} {<CODEMGR_WS>})
                  ]
                  spids: [6473 6490]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName codemgr_parent)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'codemgr_parent='>
                              name: codemgr_parent
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                          spids: [6538]
                        )
                      ]
                      redirects: []
                    )
                    (C {<export>} {<CODEMGR_PARENT>})
                  ]
                  spids: [6518 6535]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: look_for_prog
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<path>})
            (C {<typeset>} {<ppath>})
            (C {<typeset>} {<Id.Lit_VarLike 'progname='> ($ Id.VSub_Number 1)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PATH)}
                  spids: [6576]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName ppath) <Id.Lit_Colon ':'> <'/usr/sfw/bin'> 
                      <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'>
                    }
                  spids: [6580]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName ppath) <Id.Lit_Colon ':'> <'/opt/onbld/bin'>}
                  spids: [6590]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName ppath) <Id.Lit_Colon ':'> <'/opt/onbld/bin/'> 
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: (C {<uname>} {<-p>})
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [6596]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName ppath)}
                  spids: [6610]
                )
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prog='> name:prog)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: (C {<whence>} {($ Id.VSub_DollarName progname)})
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [6613]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName prog)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<print>} {($ Id.VSub_DollarName prog)})]
                  spids: [6623 6634]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: get_file_mode
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {($ Id.VSub_DollarName PERL)} {<-e>} 
              {
                (SQ <'\n'> <'\t\tif (@stat = stat($ARGV[0])) {\n'> <'\t\t\t$mode = $stat[2] & 0777;\n'> 
                  <'\t\t\tprintf "%03o\\n", $mode;\n'> <'\t\t\texit 0;\n'> <'\t\t} else {\n'> <'\t\t\texit 1;\n'> <'\t\t}\n'> <'\t    '>
                )
              } {($ Id.VSub_Number 1)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: build_old_new_mercurial
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))})
            (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))})
            (C {<typeset>} {<Id.Lit_VarLike 'old_mode='>})
            (C {<typeset>} {<Id.Lit_VarLike 'new_mode='>})
            (C {<typeset>} {<file>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(DQ ($ Id.VSub_DollarName PDIR))}
                                  right: {(DQ <.>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName PF))}
                          spids: [6754]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [6734 6751]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF))}
                      spids: [6763]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} {($ Id.VSub_DollarName file)})
                              (C {($ Id.VSub_DollarName SED)} {(SQ <'s#/#\\\\/#g'>)})
                            ]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [6774]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old_mode='> name:old_mode)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [
                              {($ Id.VSub_DollarName SED)}
                              {<-n>}
                              {<-e>}
                              {
                                (DQ <'/^'> <Id.Lit_BadBackslash '\\'> <'(...'> 
                                  <Id.Lit_BadBackslash '\\'> <') . '> (${ Id.VSub_Name file) <Id.Lit_Dollar '$'> <'/s//'> <Id.Lit_BadBackslash '\\'> <'1/p'>
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {($ Id.VSub_DollarName HG_PARENT_MANIFEST)}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [6799]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_mode='> name:new_mode)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (C {<get_file_mode>} 
                            {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                              ($ Id.VSub_DollarName F)
                            }
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [6858]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(DQ ($ Id.VSub_DollarName new_mode))}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobEqual
                                          left: {(DQ ($ Id.VSub_DollarName new_mode))}
                                          right: 
                                            {<Id.Lit_Other '*'> <Id.Lit_Other '['> <1357> 
                                              <Id.Lit_Other ']'> <Id.Lit_Other '*'>
                                            }
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'new_mode='>
                                      name: new_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<755>}
                                  spids: [6910]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [6888 6907]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_mode='> name:new_mode)
                              op: assign_op.Equal
                              rhs: {<644>}
                              spids: [6917]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [6872 6885]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<rm>} {<-rf>} 
              {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                ($ Id.VSub_DollarName F)
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_e
                                  child: 
                                    {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                      ($ Id.VSub_DollarName F)
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<cp>} 
                      {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                        ($ Id.VSub_DollarName F)
                      } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName new_mode)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<chmod>} {($ Id.VSub_DollarName new_mode)} 
                              {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                ($ Id.VSub_DollarName F)
                              }
                            )
                          ]
                          spids: [6984 6995]
                        )
                      ]
                      else_action: [
                        (C {<print>} {<-u2>} 
                          {
                            (DQ <'ERROR: set mode of '> ($ Id.VSub_DollarName newdir) <'/'> 
                              ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)
                            )
                          }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [6951 6966]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName parent_webrev)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_e
                                      child: 
                                        {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) 
                                          <'/'> ($ Id.VSub_DollarName PF)
                                        }
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<cp>} 
                      {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                        ($ Id.VSub_DollarName PF)
                      } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)}
                    )
                  ]
                  spids: [7065 7086]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName HG_PARENT)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<hg>}
                        {<cat>}
                        {<-R>}
                        {($ Id.VSub_DollarName CWS)}
                        {<-r>}
                        {($ Id.VSub_DollarName HG_PARENT)}
                        {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                          ($ Id.VSub_DollarName PF)
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: 
                            {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                              ($ Id.VSub_DollarName PF)
                            }
                        )
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_NEqual
                                          left: {($ Id.VSub_QMark '?')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<rm>} {<-f>} 
                              {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                                ($ Id.VSub_DollarName PF)
                              }
                            )
                          ]
                          spids: [7151 7165]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName old_mode)}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<chmod>} {($ Id.VSub_DollarName old_mode)} 
                                  {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) 
                                    <'/'> ($ Id.VSub_DollarName PF)
                                  }
                                )
                              ]
                              spids: [7182 7193]
                            )
                          ]
                          else_action: [
                            (C {<print>} {<-u2>} 
                              {
                                (DQ <'ERROR: set mode of '> ($ Id.VSub_DollarName olddir) <'/'> 
                                  ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)
                                )
                              }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7104 7115]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: build_old_new_git
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))})
            (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))})
            (C {<typeset>} {<Id.Lit_VarLike 'o_mode='>})
            (C {<typeset>} {<Id.Lit_VarLike 'n_mode='>})
            (C {<typeset>} {<Id.Lit_VarLike 'o_object='>})
            (C {<typeset>} {<Id.Lit_VarLike 'n_object='>})
            (C {<typeset>} {<Id.Lit_VarLike 'OWD='> ($ Id.VSub_DollarName PWD)})
            (C {<typeset>} {<file>})
            (C {<typeset>} {<type>})
            (C {<cd>} {($ Id.VSub_DollarName CWS)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(DQ ($ Id.VSub_DollarName PDIR))}
                                  right: {(DQ <.>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName PF))}
                          spids: [7337]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7317 7334]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF))}
                      spids: [7346]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName parent_webrev)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_e
                                      child: 
                                        {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) 
                                          <'/'> ($ Id.VSub_DollarName PF)
                                        }
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<cp>} 
                      {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                        ($ Id.VSub_DollarName PF)
                      } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)}
                    )
                  ]
                  spids: [7358 7379]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (C {($ Id.VSub_DollarName GIT)} {<ls-tree>} {($ Id.VSub_DollarName GIT_PARENT)} 
                      {($ Id.VSub_DollarName file)}
                    )
                    (C {<read>} {<o_mode>} {<type>} {<o_object>} {<junk>})
                  ]
                  negated: F
                  stderr_indices: []
                )
                (command.Simple
                  words: [
                    {($ Id.VSub_DollarName GIT)}
                    {<cat-file>}
                    {($ Id.VSub_DollarName type)}
                    {($ Id.VSub_DollarName o_object)}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName file)}
                    )
                    (redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_NEqual
                                      left: {($ Id.VSub_QMark '?')}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<rm>} {<-f>} 
                          {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName file)}
                        )
                      ]
                      spids: [7440 7454]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName o_mode)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_mode='> name:o_mode)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name o_mode>
                                    var_name: o_mode
                                    suffix_op: 
                                      (suffix_op.PatSub
                                        pat: 
                                          {<Id.Lit_Other '?'> <Id.Lit_Other '?'> <Id.Lit_Other '?'>}
                                        replace: {}
                                        replace_mode: Id.Undefined_Tok
                                        slash_tok: <Id.VOp2_Slash _>
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              spids: [7484]
                            )
                          ]
                          redirects: []
                        )
                        (C {<chmod>} {($ Id.VSub_DollarName o_mode)} 
                          {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName file)}
                        )
                      ]
                      spids: [7466 7477]
                    )
                  ]
                  else_action: [
                    (C {<print>} {<-u2>} 
                      {
                        (DQ <'ERROR: set mode of '> ($ Id.VSub_DollarName olddir) <'/'> 
                          ($ Id.VSub_DollarName file)
                        )
                      }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(DQ ($ Id.VSub_DollarName DIR))}
                                  right: {(DQ <.>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName F))}
                          spids: [7562]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7542 7559]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F))}
                      spids: [7571]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (C {<rm>} {<-rf>} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName file)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_e
                                  child: 
                                    {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                      ($ Id.VSub_DollarName F)
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<cp>} 
                      {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                        ($ Id.VSub_DollarName F)
                      } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                    )
                    (C {<chmod>} 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (C {<get_file_mode>} 
                              {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                ($ Id.VSub_DollarName F)
                              }
                            )
                          right: <Id.Eof_RParen _>
                        )
                      } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                    )
                  ]
                  spids: [7592 7607]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<cd>} {($ Id.VSub_DollarName OWD)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: build_old_new_subversion
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))})
            (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))})
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                ($ Id.VSub_DollarName F)
              }
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_e
                      child: 
                        {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                          ($ Id.VSub_DollarName F)
                        }
                    )
                  redirects: []
                )
                (C {<cp>} 
                  {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                    ($ Id.VSub_DollarName F)
                  } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName PWS)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_e
                                      child: 
                                        {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) 
                                          <'/'> ($ Id.VSub_DollarName PF)
                                        }
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<cp>} 
                      {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                        ($ Id.VSub_DollarName PF)
                      } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)}
                    )
                  ]
                  spids: [7723 7744]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (C {<svn>} {<status>} 
                      {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                        ($ Id.VSub_DollarName F)
                      }
                    )
                    (C {<read>} {<stat>} {<file>})
                  ]
                  negated: F
                  stderr_indices: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_DollarName stat)}
                                      right: {(DQ <A>)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [
                            {<svn>}
                            {<cat>}
                            {<-r>}
                            {<BASE>}
                            {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                              ($ Id.VSub_DollarName F)
                            }
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                                  ($ Id.VSub_DollarName PF)
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      spids: [7788 7803]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: build_old_new_unknown
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))})
            (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))})
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                ($ Id.VSub_DollarName F)
              }
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_e
                      child: 
                        {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                          ($ Id.VSub_DollarName F)
                        }
                    )
                  redirects: []
                )
                (C {<cp>} 
                  {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                    ($ Id.VSub_DollarName F)
                  } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_f
                                  child: 
                                    {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                                      ($ Id.VSub_DollarName PF)
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<rm>} {<-f>} 
                      {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                        ($ Id.VSub_DollarName PF)
                      }
                    )
                    (C {<cp>} 
                      {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> 
                        ($ Id.VSub_DollarName PF)
                      } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)}
                    )
                  ]
                  spids: [7926 7941]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: build_old_new
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'WDIR='> ($ Id.VSub_Number 1)})
            (C {<typeset>} {<Id.Lit_VarLike 'PWS='> ($ Id.VSub_Number 2)})
            (C {<typeset>} {<Id.Lit_VarLike 'PDIR='> ($ Id.VSub_Number 3)})
            (C {<typeset>} {<Id.Lit_VarLike 'PF='> ($ Id.VSub_Number 4)})
            (C {<typeset>} {<Id.Lit_VarLike 'CWS='> ($ Id.VSub_Number 5)})
            (C {<typeset>} {<Id.Lit_VarLike 'DIR='> ($ Id.VSub_Number 6)})
            (C {<typeset>} {<Id.Lit_VarLike 'F='> ($ Id.VSub_Number 7)})
            (C {<typeset>} 
              {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_DollarName WDIR) <'/raw_files/old'>)}
            )
            (C {<typeset>} 
              {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_DollarName WDIR) <'/raw_files/new'>)}
            )
            (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR)})
            (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName SCM_MODE)}
                                  right: {(DQ <mercurial>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<build_old_new_mercurial>} {(DQ ($ Id.VSub_DollarName olddir))} 
                      {(DQ ($ Id.VSub_DollarName newdir))}
                    )
                  ]
                  spids: [8063 8078]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName SCM_MODE)}
                                  right: {(DQ <git>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<build_old_new_git>} {(DQ ($ Id.VSub_DollarName olddir))} 
                      {(DQ ($ Id.VSub_DollarName newdir))}
                    )
                  ]
                  spids: [8092 8107]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName SCM_MODE)}
                                  right: {(DQ <subversion>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<build_old_new_subversion>} {(DQ ($ Id.VSub_DollarName olddir))} 
                      {(DQ ($ Id.VSub_DollarName newdir))}
                    )
                  ]
                  spids: [8121 8136]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName SCM_MODE)}
                                  right: {(DQ <unknown>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<build_old_new_unknown>} {(DQ ($ Id.VSub_DollarName olddir))} 
                      {(DQ ($ Id.VSub_DollarName newdir))}
                    )
                  ]
                  spids: [8150 8165]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: 
                                            {($ Id.VSub_DollarName olddir) <'/'> 
                                              ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)
                                            }
                                        )
                                    )
                                  right: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: 
                                            {($ Id.VSub_DollarName newdir) <'/'> 
                                              ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)
                                            }
                                        )
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {(DQ <'*** Error: file not in parent or child'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [8183 8212]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<print>} 
              {
                (SQ <'Usage:\\twebrev [common-options]\n'> 
                  <'\twebrev [common-options] ( <file> | - )\n'> <'\twebrev [common-options] -w <wx file>\n'> <'\n'> <'Options:\n'> 
                  <'\t-c <revision>: generate webrev for single revision (git only)\n'> <'\t-C <filename>: Use <filename> for the information tracking configuration.\n'> 
                  <'\t-D: delete remote webrev\n'> <'\t-h <revision>: specify "head" revision for comparison (git only)\n'> 
                  <'\t-i <filename>: Include <filename> in the index.html file.\n'> <'\t-I <filename>: Use <filename> for the information tracking registry.\n'> 
                  <'\t-n: do not generate the webrev (useful with -U)\n'> <'\t-O: Print bugids/arc cases suitable for OpenSolaris.\n'> 
                  <'\t-o <outdir>: Output webrev to specified directory.\n'> <'\t-p <compare-against>: Use specified parent wkspc or basis for comparison\n'> 
                  <'\t-t <remote_target>: Specify remote destination for webrev upload\n'> <'\t-U: upload the webrev to remote destination\n'> <'\t-w <wxfile>: Use specified wx active file.\n'> 
                  <'\n'> <'Environment:\n'> <'\tWDIR: Control the output directory.\n'> 
                  <'\tWEBREV_TRASH_DIR: Set directory for webrev delete.\n'> <'\n'> <'SCM Environment:\n'> <'\tCODEMGR_WS: Workspace location.\n'> 
                  <'\tCODEMGR_PARENT: Parent workspace location.\n'>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (C {<trap>} {(DQ <'rm -f /tmp/'> ($ Id.VSub_Dollar '$') <'.* ; exit'>)} {<0>} {<1>} {<2>} {<3>} {<15>})
    (C {<set>} {<Id.Lit_Other '+'> <o>} {<noclobber>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (C {<'/bin/dirname'>} 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<whence>} {($ Id.VSub_Number 0)})
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                  )
                right: <Id.Eof_RParen _>
              ) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)
            }
          spids: [8337]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName WDIFF)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIFF='> name:WDIFF)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<wdiff>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8363]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName WX)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WX='> name:WX)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<wx>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8382]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName HG_ACTIVE)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HG_ACTIVE='> name:HG_ACTIVE)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<hg-active>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8401]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName GIT)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT='> name:GIT)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<git>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8420]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName WHICH_SCM)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHICH_SCM='> name:WHICH_SCM)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<which_scm>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8439]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName CODEREVIEW)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CODEREVIEW='> name:CODEREVIEW)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<codereview>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8458]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName PS2PDF)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PS2PDF='> name:PS2PDF)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<ps2pdf>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8477]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName PERL)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PERL='> name:PERL)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<perl>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8496]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName RSYNC)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RSYNC='> name:RSYNC)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<rsync>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8515]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SCCS)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCCS='> name:SCCS)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<sccs>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8534]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName AWK)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AWK='> name:AWK)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<nawk>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8553]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName AWK)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AWK='> name:AWK)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<gawk>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8572]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName AWK)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AWK='> name:AWK)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<awk>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8591]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SCP)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCP='> name:SCP)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<scp>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8610]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SED)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SED='> name:SED)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<sed>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8629]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SFTP)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SFTP='> name:SFTP)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<sftp>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8648]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SORT)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SORT='> name:SORT)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<sort>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8667]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName MKTEMP)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MKTEMP='> name:MKTEMP)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<mktemp>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8686]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName GREP)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GREP='> name:GREP)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<grep>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8705]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName FIND)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FIND='> name:FIND)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<find>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8724]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName MANDOC)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MANDOC='> name:MANDOC)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<mandoc>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8743]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName COL)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COL='> name:COL)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<look_for_prog>} {<col>})
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [8762]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TRASH_DIR='> name:TRASH_DIR)
          op: assign_op.Equal
          rhs: {(DQ <.trash>)}
          spids: [8775]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName WEBREV_TRASH_DIR)})
          redirects: []
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TRASH_DIR='> name:TRASH_DIR)
              op: assign_op.Equal
              rhs: {($ Id.VSub_DollarName WEBREV_TRASH_DIR)}
              spids: [8790]
            )
          ]
          redirects: []
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalNot
                          child: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_x
                              child: {($ Id.VSub_DollarName PERL)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<print>} {<-u2>} {(DQ <'Error: No perl interpreter found.  Exiting.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [8794 8807]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalNot
                          child: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_x
                              child: {($ Id.VSub_DollarName WHICH_SCM)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<print>} {<-u2>} {(DQ <'Error: Could not find which_scm.  Exiting.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [8826 8839]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: 
            (bool_expr.LogicalNot
              child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{($ Id.VSub_DollarName CODEREVIEW)})
            )
          redirects: []
        )
        (C {<print>} {<-u2>} {(DQ <'WARNING: codereview(1) not found.'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: 
            (bool_expr.LogicalNot
              child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{($ Id.VSub_DollarName PS2PDF)})
            )
          redirects: []
        )
        (C {<print>} {<-u2>} {(DQ <'WARNING: ps2pdf(1) not found.'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: 
            (bool_expr.LogicalNot
              child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{($ Id.VSub_DollarName WDIFF)})
            )
          redirects: []
        )
        (C {<print>} {<-u2>} {(DQ <'WARNING: wdiff not found.'>)})
      ]
    )
    (C {<integer>} {<TOTL>} {<TINS>} {<TDEL>} {<TMOD>} {<TUNC>})
    (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'DEFAULT_REMOTE_HOST='> (DQ <cr.opensolaris.org>)})
    (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'rsync_prefix='> (DQ <'rsync://'>)})
    (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'ssh_prefix='> (DQ <'ssh://'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cflag='> name:cflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8984]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Cflag='> name:Cflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8986]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Dflag='> name:Dflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8988]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flist_mode='> name:flist_mode)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8990]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flist_file='> name:flist_file)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8992]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hflag='> name:hflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8994]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iflag='> name:iflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8996]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Iflag='> name:Iflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [8998]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lflag='> name:lflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9000]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Nflag='> name:Nflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9002]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nflag='> name:nflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9004]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Oflag='> name:Oflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9006]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oflag='> name:oflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9008]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pflag='> name:pflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9010]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tflag='> name:tflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9012]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uflag='> name:uflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9014]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Uflag='> name:Uflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9016]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wflag='> name:wflag)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9018]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote_target='> name:remote_target)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [9020]
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: (condition.Shell commands:[(C {<getopts>} {(DQ <'c:C:Dh:i:I:lnNo:Op:t:Uw'>)} {<opt>})])
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName opt)}
              arms: [
                (case_arm
                  pat_list: [{<c>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cflag='> name:cflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9058]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'codemgr_head='>
                              name: codemgr_head
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [9062]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'codemgr_parent='>
                              name: codemgr_parent
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG) <Id.Lit_TildeLike '~1'>}
                          spids: [9066]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9055 9056 9069 -1]
                )
                (case_arm
                  pat_list: [{<C>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Cflag='> name:Cflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9076]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITSCONF='> name:ITSCONF)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [9080]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9073 9074 9082 -1]
                )
                (case_arm
                  pat_list: [{<D>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Dflag='> name:Dflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9089]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9086 9087 9091 -1]
                )
                (case_arm
                  pat_list: [{<h>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hflag='> name:hflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9098]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'codemgr_head='>
                              name: codemgr_head
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [9102]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9095 9096 9104 -1]
                )
                (case_arm
                  pat_list: [{<i>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iflag='> name:iflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9111]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'INCLUDE_FILE='>
                              name: INCLUDE_FILE
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [9115]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9108 9109 9117 -1]
                )
                (case_arm
                  pat_list: [{<I>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Iflag='> name:Iflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9124]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITSREG='> name:ITSREG)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [9128]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9121 9122 9130 -1]
                )
                (case_arm
                  pat_list: [{<N>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Nflag='> name:Nflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9137]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9134 9135 9139 -1]
                )
                (case_arm
                  pat_list: [{<n>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nflag='> name:nflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9146]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9143 9144 9148 -1]
                )
                (case_arm
                  pat_list: [{<O>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Oflag='> name:Oflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9155]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9152 9153 9157 -1]
                )
                (case_arm
                  pat_list: [{<o>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oflag='> name:oflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9164]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIR='> name:WDIR)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name OPTARG>
                                var_name: OPTARG
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          spids: [9172]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9161 9162 9178 -1]
                )
                (case_arm
                  pat_list: [{<p>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pflag='> name:pflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9185]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'codemgr_parent='>
                              name: codemgr_parent
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [9189]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9182 9183 9191 -1]
                )
                (case_arm
                  pat_list: [{<t>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tflag='> name:tflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9198]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'remote_target='>
                              name: remote_target
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [9202]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9195 9196 9204 -1]
                )
                (case_arm
                  pat_list: [{<U>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Uflag='> name:Uflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9211]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9208 9209 9213 -1]
                )
                (case_arm
                  pat_list: [{<w>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wflag='> name:wflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9220]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9217 9218 9222 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_QMark '?'>}]
                  action: [(C {<usage>})]
                  spids: [9226 9227 9230 -1]
                )
              ]
              redirects: []
            )
          ]
        )
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLIST='> name:FLIST)
          op: assign_op.Equal
          rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.flist>}
          spids: [9238]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalAnd
                          left: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName wflag)}
                            )
                          right: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName lflag)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<usage>})]
          spids: [9244 9261]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalAnd
                          left: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName nflag)}
                            )
                          right: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: {($ Id.VSub_DollarName Uflag)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<print>} {(DQ <'it does not make sense to skip webrev generation'>)} 
              {(DQ <'without -U'>)}
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [9272 9289]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalAnd
                          left: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName tflag)}
                            )
                          right: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName Uflag)}
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName Dflag)}
                                )
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'remote target has to be used only for upload or delete'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [9312 9335]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Pipeline
          children: [(C {($ Id.VSub_DollarName WHICH_SCM)}) (C {<read>} {<SCM_MODE>} {<junk>})]
          negated: F
          stderr_indices: []
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {($ Id.VSub_DollarName SCM_MODE)}
                          right: {(DQ <mercurial>)}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {(${ Id.VSub_Name PWD)}
                                  right: {(DQ <'usr/closed'>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'testparent='> name:testparent)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name CODEMGR_WS) <'/usr/closed'>}
                          spids: [9452]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(DQ ($ Id.VSub_DollarName Oflag))}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {<-u2>} {(DQ <'OpenSolaris output not permitted with'>)} 
                              {(DQ <'usr/closed changes'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [9471 9484]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [9432 9449]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'testparent='> name:testparent)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name CODEMGR_WS)}
                      spids: [9513]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalAnd
                      left: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_z
                          child: {($ Id.VSub_DollarName codemgr_ws)}
                        )
                      right: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_n
                          child: {($ Id.VSub_DollarName testparent)}
                        )
                    )
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                words: [{<hg>} {<root>} {<-R>} {($ Id.VSub_DollarName testparent)}]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                more_env: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      spids: [9540]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_z
                      child: {($ Id.VSub_DollarName codemgr_ws)}
                    )
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                words: [{<hg>} {<root>}]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                more_env: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      spids: [9565]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName codemgr_ws)}
                  spids: [9576]
                )
              ]
              redirects: []
            )
          ]
          spids: [9386 9401]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {($ Id.VSub_DollarName SCM_MODE)}
                          right: {(DQ <git>)}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalAnd
                      left: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_z
                          child: {($ Id.VSub_DollarName codemgr_ws)}
                        )
                      right: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_n
                          child: {($ Id.VSub_DollarName CODEMGR_WS)}
                        )
                    )
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                words: [
                                  {($ Id.VSub_DollarName GIT)}
                                  {<--git-dir> <Id.Lit_Equals '='> ($ Id.VSub_DollarName CODEMGR_WS) 
                                    <'/.git'>
                                  }
                                  {<rev-parse>}
                                  {<--git-dir>}
                                ]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                more_env: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      spids: [9635]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_z
                      child: {($ Id.VSub_DollarName codemgr_ws)}
                    )
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                words: [{($ Id.VSub_DollarName GIT)} {<rev-parse>} {<--git-dir>}]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                more_env: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      spids: [9667]
                    )
                  ]
                  redirects: []
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(DQ ($ Id.VSub_DollarName codemgr_ws))}
                                  right: {(DQ <.git>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name codemgr_ws))}
                          spids: [9701]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9681 9698]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: {(DQ ($ Id.VSub_DollarName codemgr_ws))}
                                  right: {<Id.Lit_Other '*'> (DQ <'/.git'>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<dirname>} {($ Id.VSub_DollarName codemgr_ws)})
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [9738]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9717 9735]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName codemgr_ws))}
                  spids: [9752]
                )
              ]
              redirects: []
            )
          ]
          spids: [9579 9594]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {($ Id.VSub_DollarName SCM_MODE)}
                          right: {(DQ <subversion>)}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName CODEMGR_WS)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_d
                                      child: {($ Id.VSub_DollarName CODEMGR_WS) <'/.svn'>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName CODEMGR_WS)}
                          spids: [9816]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [9795 9813]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (C {<svn>} {<info>})
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: (C {<read>} {<line>})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {($ Id.VSub_DollarName line)}
                                                  right: {(DQ <'URL: '>) <Id.Lit_Other '*'>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'url='>
                                              name: url
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name line>
                                                var_name: line
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {<'URL: '>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          spids: [9858]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [9839 9855]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {($ Id.VSub_DollarName line)}
                                                  right: 
                                                    {(DQ <'Repository Root: '>) <Id.Lit_Other '*'>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'repo='>
                                              name: repo
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name line>
                                                var_name: line
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {<'Repository Root: '>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          spids: [9885]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [9866 9882]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  negated: F
                  stderr_indices: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rel='> name:rel)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name url>
                            var_name: url
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_Pound '#'>
                                arg_word: {($ Id.VSub_DollarName repo)}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      spids: [9900]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name PWD>
                            var_name: PWD
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_Percent '%'>
                                arg_word: {($ Id.VSub_DollarName rel)}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      spids: [9908]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          spids: [9757 9772]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name CWS)})
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name CODEMGR_WS>
                        var_name: CODEMGR_WS
                        suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<.>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [9949]
                )
              ]
              redirects: []
            )
          ]
          spids: [9933 9946]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ForEach
      iter_names: [do_everything]
      iterable: (for_iter.Words words:[{<1>}])
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName nflag)}
                                    )
                                  right: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName Uflag)}
                                        )
                                      right: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName Dflag)}
                                        )
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                  spids: [10001 10028]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName pflag)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_d
                                      child: 
                                        {($ Id.VSub_DollarName codemgr_parent) <'/raw_files/new'>}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'parent_webrev='>
                              name: parent_webrev
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (C {<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName codemgr_parent))})
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [10069]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'codemgr_parent='>
                              name: codemgr_parent
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (C {<readlink>} {<-f>} 
                                    {(DQ ($ Id.VSub_DollarName codemgr_parent) <'/raw_files/new'>)}
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [10081]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [10048 10066]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName wflag)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName lflag)}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<shift>} 
                      {
                        (word_part.ArithSub
                          anode: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Minus
                              left: {($ Id.VSub_DollarName OPTIND)}
                              right: {<Id.Lit_Digits 1>}
                            )
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_Number 1)}
                                          right: {(DQ <->)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName FLIST)}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'flist_mode='>
                                      name: flist_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <stdin>)}
                                  spids: [10154]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'flist_done='>
                                      name: flist_done
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [10160]
                                )
                              ]
                              redirects: []
                            )
                            (C {<shift>})
                          ]
                          spids: [10129 10144]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_Number 1)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.LogicalNot
                                                  child: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_r
                                                      child: {($ Id.VSub_Number 1)}
                                                    )
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<print>} {<-u2>} 
                                      {(DQ ($ Id.VSub_Number 1) <': no such file or not readable'>)}
                                    )
                                    (C {<usage>})
                                  ]
                                  spids: [10181 10194]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.Simple
                              words: [{<cat>} {($ Id.VSub_Number 1)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName FLIST)}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'flist_mode='>
                                      name: flist_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <file>)}
                                  spids: [10222]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'flist_file='>
                                      name: flist_file
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                  spids: [10228]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'flist_done='>
                                      name: flist_done
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [10232]
                                )
                              ]
                              redirects: []
                            )
                            (C {<shift>})
                          ]
                          spids: [10167 10178]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'flist_mode='>
                                  name: flist_mode
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <auto>)}
                              spids: [10242]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [10096 10113]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName SCM_MODE))}
              arms: [
                (case_arm
                  pat_list: [{<mercurial>} {<git>} {<subversion>}]
                  action: []
                  spids: [10273 10278 10281 -1]
                )
                (case_arm
                  pat_list: [{<unknown>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName flist_mode)}
                                          right: {(DQ <auto>)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {<-u2>} 
                              {(DQ <'Unable to determine SCM in use and file list not specified'>)}
                            )
                            (C {<print>} {<-u2>} 
                              {(DQ <'See which_scm(1) for SCM detection information.'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [10287 10302]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [10283 10284 10331 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName flist_mode)}
                                          right: {(DQ <auto>)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {<-u2>} 
                              {
                                (DQ <'Unsupported SCM in use ('> ($ Id.VSub_DollarName SCM_MODE) 
                                  <') and file list not specified'>
                                )
                              }
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [10337 10352]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [10333 10334 10374 -1]
                )
              ]
              redirects: []
            )
            (C {<print>} {<-u2>} {(DQ <'   SCM detected: '> ($ Id.VSub_DollarName SCM_MODE))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName wflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<shift>} 
                      {
                        (word_part.ArithSub
                          anode: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Minus
                              left: {($ Id.VSub_DollarName OPTIND)}
                              right: {<Id.Lit_Digits 1>}
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                          spids: [10439]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName wxfile)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName CODEMGR_WS)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_r
                                                  child: 
                                                    {($ Id.VSub_DollarName CODEMGR_WS) <'/wx/active'>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'wxfile='>
                                              name: wxfile
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName CODEMGR_WS) <'/wx/active'>}
                                          spids: [10478]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [10463 10475]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [10443 10460]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: {($ Id.VSub_DollarName wxfile)}
                            )
                          redirects: []
                        )
                        (C {<print>} {<-u2>} {(DQ <'wx file not specified, and could not '>)} 
                          {
                            (DQ <'be auto-detected (check '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                                ch: '$'
                              ) <'CODEMGR_WS)'>
                            )
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_r
                                              child: {($ Id.VSub_DollarName wxfile)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {<-u2>} 
                              {(DQ ($ Id.VSub_DollarName wxfile) <': no such file or not readable'>)}
                            )
                            (C {<usage>})
                          ]
                          spids: [10524 10537]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<print>} {<-u2>} 
                      {
                        (DQ <' File list from: wx \'active\' file \''> ($ Id.VSub_DollarName wxfile) 
                          <'\' ... '> <Id.Lit_BadBackslash '\\'> <c>
                        )
                      }
                    )
                    (C {<flist_from_wx>} {($ Id.VSub_DollarName wxfile)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flist_done='> name:flist_done)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [10575]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(DQ ($ Id.VSub_Star '*'))}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<shift>})]
                          spids: [10579 10592]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [10389 10400]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName flist_mode)}
                                  right: {(DQ <stdin>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<print>} {<-u2>} {(DQ <' File list from: standard input'>)})]
                  spids: [10600 10615]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName flist_mode)}
                                  right: {(DQ <file>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {<-u2>} {(DQ <' File list from: '> ($ Id.VSub_DollarName flist_file))})
                  ]
                  spids: [10626 10641]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_gt
                                  left: {($ Id.VSub_Pound '#')}
                                  right: {<0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<print>} {<-u2>} {(DQ <'WARNING: unused arguments: '> ($ Id.VSub_Star '*'))})
                  ]
                  spids: [10656 10669]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName SCM_MODE)}
                                  right: {(DQ <mercurial>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName codemgr_parent)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'codemgr_parent='>
                                      name: codemgr_parent
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                                  spids: [10755]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10735 10752]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName codemgr_parent)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'codemgr_parent='>
                                      name: codemgr_parent
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {<hg>}
                                              {<path>}
                                              {<-R>}
                                              {($ Id.VSub_DollarName codemgr_ws)}
                                              {<default>}
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            more_env: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  spids: [10777]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10763 10774]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName codemgr_parent)}
                          spids: [10800]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName parent_webrev)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'real_parent='>
                                      name: real_parent
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {<hg>}
                                              {<path>}
                                              {<-R>}
                                              {($ Id.VSub_DollarName codemgr_ws)}
                                              {<default>}
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            more_env: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [10835]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10821 10832]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'real_parent='>
                                  name: real_parent
                                )
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName PWS)}
                              spids: [10855]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName flist_done)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<flist_from_mercurial>} {($ Id.VSub_DollarName CWS)} 
                              {($ Id.VSub_DollarName real_parent)}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'flist_done='>
                                      name: flist_done
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [10908]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10887 10898]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName flist_done)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<env_from_flist>})]
                          spids: [10940 10951]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_x
                                              child: {($ Id.VSub_DollarName HG_ACTIVE)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName wxfile)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} 
                              {
                                (DQ <'  Comments from: hg-active -p '> 
                                  ($ Id.VSub_DollarName real_parent) <' ...'> <Id.Lit_BadBackslash '\\'> <c>
                                )
                              }
                            )
                            (C {<hg_active_wxfile>} {($ Id.VSub_DollarName CWS)} 
                              {($ Id.VSub_DollarName real_parent)}
                            )
                            (C {<print>} {(DQ <' Done.'>)})
                          ]
                          spids: [10973 10990]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName HG_PARENT)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<eval>} 
                              {
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                          {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)} {($ Id.VSub_DollarName wxfile)}
                                        )
                                        (C {($ Id.VSub_DollarName GREP)} 
                                          {<Id.Lit_VarLike 'HG_PARENT='>}
                                        )
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Backtick_Right '`'>
                                )
                              }
                            )
                          ]
                          spids: [11042 11053]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName HG_PARENT)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_x
                                              child: {($ Id.VSub_DollarName HG_ACTIVE)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Pipeline
                              children: [
                                (C {($ Id.VSub_DollarName HG_ACTIVE)} {<-w>} 
                                  {($ Id.VSub_DollarName codemgr_ws)} {<-p>} {($ Id.VSub_DollarName real_parent)}
                                )
                                (C {<eval>} 
                                  {
                                    (command_sub
                                      left_token: <Id.Left_Backtick '`'>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {($ Id.VSub_DollarName SED)} {<-e>} 
                                              {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)}
                                            )
                                            (C {($ Id.VSub_DollarName GREP)} 
                                              {<Id.Lit_VarLike 'HG_PARENT='>}
                                            )
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Backtick_Right '`'>
                                    )
                                  }
                                )
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          ]
                          spids: [11105 11122]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName HG_PARENT)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {<-u2>} {(DQ <'Error: Cannot discover parent revision'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [11162 11173]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pnode='> name:pnode)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<trim_digest>} {($ Id.VSub_DollarName HG_PARENT)})
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [11194]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PRETTY_PWS='> name:PRETTY_PWS)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name PWS) <' (at '> (${ Id.VSub_Name pnode) <')'>)}
                          spids: [11202]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cnode='> name:cnode)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [
                                      {<hg>}
                                      {<parent>}
                                      {<-R>}
                                      {($ Id.VSub_DollarName codemgr_ws)}
                                      {<--template>}
                                      {(SQ <'{node|short}'>)}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    more_env: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [11215]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PRETTY_CWS='> name:PRETTY_CWS)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ (${ Id.VSub_Name CWS) <' (at '> (${ Id.VSub_Name cnode) <')'>) 
                              <Id.Lit_RBrace '}'>
                            }
                          spids: [11238]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [10696 10711]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName SCM_MODE)}
                                  right: {(DQ <git>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalOr
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName cflag)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName hflag)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'head_rev='>
                                      name: head_rev
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {($ Id.VSub_DollarName GIT)} {<rev-parse>} {<--verify>} 
                                            {<--quiet>} {(DQ ($ Id.VSub_DollarName codemgr_head))}
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [11293]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_z
                                                  child: {($ Id.VSub_DollarName head_rev)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<print>} {<-u2>} 
                                      {(DQ <'Error: bad revision '> (${ Id.VSub_Name codemgr_head))}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [11309 11320]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [11273 11290]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName codemgr_head)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'codemgr_head='>
                                          name: codemgr_head
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <HEAD>)}
                                      spids: [11361]
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          spids: [11347 11358]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName codemgr_parent)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'codemgr_parent='>
                                      name: codemgr_parent
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                                  spids: [11400]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11380 11397]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'this_branch='>
                              name: this_branch
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName GIT)} {<branch>})
                                      (C {<nawk>} {(SQ <'$1 == "*" { print $2 }'>)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [11416]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'par_branch='> name:par_branch)
                          op: assign_op.Equal
                          rhs: {(DQ <'origin/master'>)}
                          spids: [11432]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {($ Id.VSub_DollarName this_branch)}
                                          right: {(DQ <'(no branch)'>)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Pipeline
                              children: [
                                (C {($ Id.VSub_DollarName GIT)} {<for-each-ref>} 
                                  {<--format> <Id.Lit_Equals '='> 
                                    (SQ <'%(refname:short) %(upstream:short)'>)
                                  } {<'refs/heads/'>}
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<read>} {<local>} {<remote>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DBracket
                                                          expr: 
                                                            (bool_expr.Binary
                                                              op_id: Id.BoolBinary_GlobDEqual
                                                              left: {(DQ ($ Id.VSub_DollarName local))}
                                                              right: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName this_branch)
                                                                  )
                                                                }
                                                            )
                                                          redirects: []
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'par_branch='>
                                                          name: par_branch
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName remote))}
                                                      spids: [11513]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [11493 11510]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                    )
                                  redirects: []
                                )
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          ]
                          spids: [11443 11458]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName codemgr_parent)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'codemgr_parent='>
                                      name: codemgr_parent
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName par_branch)}
                                  spids: [11543]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11529 11540]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName codemgr_parent)}
                          spids: [11550]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName parent_webrev)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'real_parent='>
                                      name: real_parent
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName par_branch)}
                                  spids: [11585]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11571 11582]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'real_parent='>
                                  name: real_parent
                                )
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName PWS)}
                              spids: [11592]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName flist_done)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<flist_from_git>} {(DQ ($ Id.VSub_DollarName codemgr_head))} 
                              {(DQ ($ Id.VSub_DollarName real_parent))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'flist_done='>
                                      name: flist_done
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [11625]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11600 11611]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName flist_done)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<env_from_flist>})]
                          spids: [11649 11660]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName wxfile)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} 
                              {(DQ <'  Comments from: git...'> <Id.Lit_BadBackslash '\\'> <c>)}
                            )
                            (C {<git_wxfile>} {(DQ ($ Id.VSub_DollarName codemgr_head))} 
                              {(DQ ($ Id.VSub_DollarName real_parent))}
                            )
                            (C {<print>} {(DQ <' Done.'>)})
                          ]
                          spids: [11686 11697]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName GIT_PARENT)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'GIT_PARENT='>
                                      name: GIT_PARENT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {($ Id.VSub_DollarName GIT)} {<merge-base>} 
                                            {(DQ ($ Id.VSub_DollarName real_parent))} {(DQ ($ Id.VSub_DollarName codemgr_head))}
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [11745]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11731 11742]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName GIT_PARENT)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {<-u2>} {(DQ <'Error: Cannot discover parent revision'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [11764 11775]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pnode='> name:pnode)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<trim_digest>} {($ Id.VSub_DollarName GIT_PARENT)})
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [11796]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName cflag)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'PRETTY_PWS='>
                                      name: PRETTY_PWS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <'previous revision (at '> (${ Id.VSub_Name pnode) <')'>)}
                                  spids: [11819]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11805 11816]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName real_parent)}
                                          right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origin='> name:origin)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {($ Id.VSub_DollarName real_parent)})
                                              (C {<cut>} {<'-d/'>} {<-f1>})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [11847]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origin='> name:origin)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName GIT)} {<remote>} {<-v>})
                                              (C {($ Id.VSub_DollarName AWK)} 
                                                {(SQ <'$1 == "'>) ($ Id.VSub_DollarName origin) 
                                                  (SQ <'" { print $2; exit }'>)
                                                }
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [11863]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'PRETTY_PWS='>
                                      name: PRETTY_PWS
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name PWS) <' ('> (${ Id.VSub_Name origin) <' at '> 
                                        (${ Id.VSub_Name pnode) <')'>
                                      )
                                    }
                                  spids: [11887]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11829 11844]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName pflag)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName parent_webrev)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'PRETTY_PWS='>
                                      name: PRETTY_PWS
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name CWS) <' (explicit revision '> 
                                        (${ Id.VSub_Name pnode) <')'>
                                      )
                                    }
                                  spids: [11924]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11904 11921]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'PRETTY_PWS='>
                                  name: PRETTY_PWS
                                )
                              op: assign_op.Equal
                              rhs: {(DQ (${ Id.VSub_Name PWS) <' (at '> (${ Id.VSub_Name pnode) <')'>)}
                              spids: [11940]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cnode='> name:cnode)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [
                                      {($ Id.VSub_DollarName GIT)}
                                      {<--git-dir> <Id.Lit_Equals '='> (${ Id.VSub_Name codemgr_ws) 
                                        <'/.git'>
                                      }
                                      {<rev-parse>}
                                      {<--short> <Id.Lit_Equals '='> <12>}
                                      {(${ Id.VSub_Name codemgr_head)}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    more_env: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [11957]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalOr
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName cflag)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName hflag)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'PRETTY_CWS='>
                                      name: PRETTY_CWS
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name CWS) <' (explicit head at '> 
                                        (${ Id.VSub_Name cnode) <')'>
                                      )
                                    }
                                  spids: [12006]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [11986 12003]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'PRETTY_CWS='>
                                  name: PRETTY_CWS
                                )
                              op: assign_op.Equal
                              rhs: {(DQ (${ Id.VSub_Name CWS) <' (at '> (${ Id.VSub_Name cnode) <')'>)}
                              spids: [12022]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [11251 11266]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName SCM_MODE)}
                                  right: {(DQ <subversion>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName codemgr_parent)}
                            )
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName codemgr_parent)}
                              spids: [12082]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName flist_done)}
                                            )
                                          right: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {($ Id.VSub_DollarName flist_mode)}
                                              right: {(DQ <auto>)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<flist_from_subversion>} {($ Id.VSub_DollarName CWS)} 
                              {($ Id.VSub_DollarName OLDPWD)}
                            )
                          ]
                          spids: [12087 12108]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [12037 12052]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName SCM_MODE)}
                                      right: {(DQ <unknown>)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<print>} {<-u2>} {(DQ <'    Unknown type of SCM in use'>)})]
                      spids: [12123 12138]
                    )
                  ]
                  else_action: [
                    (C {<print>} {<-u2>} 
                      {(DQ <'    Unsupported SCM in use: '> ($ Id.VSub_DollarName SCM_MODE))}
                    )
                  ]
                  redirects: []
                )
                (C {<env_from_flist>})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName CODEMGR_WS)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<print>} {<-u2>} {(DQ <'SCM not detected/supported and '>)} 
                          {(DQ <'CODEMGR_WS not specified'>)}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      spids: [12171 12182]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<print>} {<-u2>} {(DQ <'SCM not detected/supported and '>)} 
                          {(DQ <'CODEMGR_PARENT not specified'>)}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      spids: [12209 12220]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName CODEMGR_WS)}
                      spids: [12247]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)}
                      spids: [12251]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName iflag)}
                                    )
                                  right: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_r
                                      child: {(DQ ($ Id.VSub_DollarName CWS) <'/webrev-info'>)}
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iflag='> name:iflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [12292]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'INCLUDE_FILE='>
                              name: INCLUDE_FILE
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName CWS) <'/webrev-info'>)}
                          spids: [12296]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [12269 12289]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName iflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_r
                                              child: {($ Id.VSub_DollarName INCLUDE_FILE)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {<-u2>} 
                              {
                                (DQ <'include file \''> ($ Id.VSub_DollarName INCLUDE_FILE) 
                                  <'\' does not exist or is'>
                                )
                              } {(DQ <'not readable.'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [12319 12332]
                        )
                      ]
                      else_action: [
                        (C {<cp>} {($ Id.VSub_DollarName INCLUDE_FILE)} 
                          {<'/tmp/'> ($ Id.VSub_Dollar '$') <.include>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [12305 12316]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName Nflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                  spids: [12393 12404]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<typeset>} {<-A>} {<itsinfo>})
            (C {<typeset>} {<-r>} 
              {<Id.Lit_VarLike 'its_sed_script='> <'/tmp/'> ($ Id.VSub_Dollar '$') <.its_sed>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'valid_prefixes='> name:valid_prefixes)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [12427]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName nflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEFREGFILE='> name:DEFREGFILE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<'/bin/dirname'>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: (C {<whence>} {($ Id.VSub_Number 0)})
                                            right: <Id.Eof_RParen _>
                                          )
                                        )
                                      }
                                    )
                                  right: <Id.Eof_RParen _>
                                ) <'/../etc/its.reg'>
                              )
                            }
                          spids: [12443]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName Iflag)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'REGFILE='>
                                      name: REGFILE
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName ITSREG)}
                                  spids: [12474]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12460 12471]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_r
                                          child: {($ Id.VSub_DollarName HOME) <'/.its.reg'>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'REGFILE='>
                                      name: REGFILE
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName HOME) <'/.its.reg'>}
                                  spids: [12493]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12478 12490]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REGFILE='> name:REGFILE)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName DEFREGFILE)}
                              spids: [12501]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_r
                                              child: {($ Id.VSub_DollarName REGFILE)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} 
                              {
                                (DQ <'ERROR: Unable to read database registry file '> 
                                  ($ Id.VSub_DollarName REGFILE)
                                )
                              }
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [12508 12521]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {($ Id.VSub_DollarName REGFILE)}
                                          right: {($ Id.VSub_DollarName DEFREGFILE)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {(DQ <'   its.reg from: '> ($ Id.VSub_DollarName REGFILE))})
                          ]
                          spids: [12537 12550]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.Pipeline
                      children: [
                        (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'/^#/d'>)} {<-e>} 
                          {(SQ <'/^[ \t]*$/d'>)} {($ Id.VSub_DollarName REGFILE)}
                        )
                        (command.WhileUntil
                          keyword: <Id.KW_While while>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<read>} {<LINE>})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          body: 
                            (command.DoGroup
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name LINE>
                                            var_name: LINE
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VOp1_DPercent '%%'>
                                                arg_word: {<'='> <Id.Lit_Other '*'>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      spids: [12594]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'value='>
                                          name: value
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name LINE>
                                              var_name: LINE
                                              suffix_op: 
                                                (suffix_op.Unary
                                                  op: <Id.VOp1_Pound '#'>
                                                  arg_word: {<Id.Lit_Other '*'> <'='>}
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            )
                                          )
                                        }
                                      spids: [12603]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {($ Id.VSub_DollarName name)}
                                                      right: {<PREFIX>}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'p='>
                                                  name: p
                                                )
                                              op: assign_op.Equal
                                              rhs: {(${ Id.VSub_Name value)}
                                              spids: [12631]
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'valid_prefixes='>
                                                  name: valid_prefixes
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ (${ Id.VSub_Name p) <' '> 
                                                    (${ Id.VSub_Name valid_prefixes)
                                                  )
                                                }
                                              spids: [12637]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [12615 12628]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'itsinfo['>
                                              name: itsinfo
                                              index: 
                                                {(DQ (${ Id.VSub_Name p) <_> (${ Id.VSub_Name name))}
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ (${ Id.VSub_Name value))}
                                          spids: [12652]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                          redirects: []
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DEFCONFFILE='>
                              name: DEFCONFFILE
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<'/bin/dirname'>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: (C {<whence>} {($ Id.VSub_Number 0)})
                                            right: <Id.Eof_RParen _>
                                          )
                                        )
                                      }
                                    )
                                  right: <Id.Eof_RParen _>
                                ) <'/../etc/its.conf'>
                              )
                            }
                          spids: [12688]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONFFILES='> name:CONFFILES)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName DEFCONFFILE)}
                          spids: [12705]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_r
                                          child: {($ Id.VSub_DollarName HOME) <'/.its.conf'>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CONFFILES='>
                                      name: CONFFILES
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name CONFFILES) <' '> ($ Id.VSub_DollarName HOME) 
                                        <'/.its.conf'>
                                      )
                                    }
                                  spids: [12724]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12709 12721]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName Cflag)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CONFFILES='>
                                      name: CONFFILES
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ (${ Id.VSub_Name CONFFILES) <' '> (${ Id.VSub_Name ITSCONF))}
                                  spids: [12752]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12738 12749]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'its_domain='> name:its_domain)
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [12767]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'its_priority='>
                              name: its_priority
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word.Empty)
                          spids: [12770]
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [cf]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name CONFFILES)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.LogicalNot
                                                  child: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_r
                                                      child: {($ Id.VSub_DollarName cf)}
                                                    )
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<print>} 
                                      {
                                        (DQ <'ERROR: Unable to read database configuration file '> 
                                          ($ Id.VSub_DollarName cf)
                                        )
                                      }
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [12787 12800]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobNEqual
                                                  left: {($ Id.VSub_DollarName cf)}
                                                  right: {($ Id.VSub_DollarName DEFCONFFILE)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<print>} 
                                      {(DQ <'       its.conf: reading '> ($ Id.VSub_DollarName cf))}
                                    )
                                  ]
                                  spids: [12816 12829]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.Pipeline
                              children: [
                                (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'/^#/d'>)} {<-e>} 
                                  {(SQ <'/^[ \t]*$/d'>)} {($ Id.VSub_DollarName cf)}
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<read>} {<LINE>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [(C {<eval>} {(DQ (${ Id.VSub_Name LINE))})]
                                    )
                                  redirects: []
                                )
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [p]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name valid_prefixes)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_z
                                                  child: 
                                                    {
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name itsinfo>
                                                        var_name: itsinfo
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {(DQ (${ Id.VSub_Name p) <_INFO>)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'itsinfo['>
                                              name: itsinfo
                                              index: {(DQ (${ Id.VSub_Name p) <_INFO>)}
                                            )
                                          op: assign_op.Equal
                                          rhs: {(${ Id.VSub_Name p)}
                                          spids: [12965]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [12941 12962]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.IndexedName
                                          left: <Id.Lit_ArrayLhsOpen 'itsinfo['>
                                          name: itsinfo
                                          index: {(DQ (${ Id.VSub_Name p) <_INFO>)}
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <'<a href='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\\\'>
                                              ch: '\\'
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                            (braced_var_sub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name itsinfo>
                                              var_name: itsinfo
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: {(DQ (${ Id.VSub_Name p) <_INFO>)}
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) <'>'> (${ Id.VSub_Name p) <'</a>'>
                                          )
                                        }
                                      spids: [12988]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName Oflag)}
                                    )
                                  redirects: []
                                )
                                (command.ForEach
                                  iter_names: [d]
                                  iterable: (for_iter.Words words:[{(${ Id.VSub_Name its_domain)}])
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DBracket
                                                          expr: 
                                                            (bool_expr.Unary
                                                              op_id: Id.BoolUnary_n
                                                              child: 
                                                                {
                                                                  (braced_var_sub
                                                                    left: <Id.Left_DollarBrace '${'>
                                                                    token: <Id.VSub_Name itsinfo>
                                                                    var_name: itsinfo
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          {
                                                                            (DQ (${ Id.VSub_Name p) 
                                                                              <_INTERNAL_URL_> (${ Id.VSub_Name d)
                                                                            )
                                                                          }
                                                                      )
                                                                    right: <Id.Right_DollarBrace '}'>
                                                                  )
                                                                }
                                                            )
                                                          redirects: []
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.IndexedName
                                                          left: <Id.Lit_ArrayLhsOpen 'itsinfo['>
                                                          name: itsinfo
                                                          index: {(DQ (${ Id.VSub_Name p) <_URL>)}
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              left: <Id.Left_DollarBrace '${'>
                                                              token: <Id.VSub_Name itsinfo>
                                                              var_name: itsinfo
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    {(${ Id.VSub_Name p) 
                                                                      <Id.Lit_ArithVarLike 
_INTERNAL_URL_
                                                                      > (${ Id.VSub_Name d)
                                                                    }
                                                                )
                                                              right: <Id.Right_DollarBrace '}'>
                                                            )
                                                          )
                                                        }
                                                      spids: [13123]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Break break>
                                                )
                                              ]
                                              spids: [13096 13120]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                    )
                                  redirects: []
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_z
                                                  child: 
                                                    {
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name itsinfo>
                                                        var_name: itsinfo
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {(DQ (${ Id.VSub_Name p) <_URL>)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              left: <Id.Lit_ArrayLhsOpen 'itsinfo['>
                                              name: itsinfo
                                              index: {(DQ (${ Id.VSub_Name p) <_URL>)}
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (braced_var_sub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name itsinfo>
                                                  var_name: itsinfo
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        {(${ Id.VSub_Name p) 
                                                          <Id.Lit_ArithVarLike _EXTERNAL_URL>
                                                        }
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          spids: [13187]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [13163 13184]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'itsinfo['>
                                      name: itsinfo
                                      index: {(DQ (${ Id.VSub_Name p) <_URL>)}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'<a href='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                          ch: '\\'
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                        (braced_var_sub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name itsinfo>
                                          var_name: itsinfo
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _URL>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <'>&</a>'>
                                      )
                                    }
                                  spids: [13231]
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              words: [
                                {<print>}
                                {
                                  (DQ <'/^'> (${ Id.VSub_Name p) <'[: \t]/ {\n'> <'\t\t\t\ts;'> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name itsinfo>
                                      var_name: itsinfo
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _REGEX>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <';'> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name itsinfo>
                                      var_name: itsinfo
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _URL>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <';g\n'> <'\t\t\t\ts;^'> (${ Id.VSub_Name p) <';'> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name itsinfo>
                                      var_name: itsinfo
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _INFO>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <';\n'> <'\t\t\t}'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(${ Id.VSub_Name its_sed_script)}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ForEach
                      iter_names: [p]
                      iterable: (for_iter.Words words:[{(${ Id.VSub_Name its_priority)}])
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<print>}
                                {
                                  (DQ <'/^'> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name itsinfo>
                                      var_name: itsinfo
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _REGEX>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <'[ \t]/ {\n'> <'\t\t\t\ts;^'> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name itsinfo>
                                      var_name: itsinfo
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _REGEX>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <';'> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name itsinfo>
                                      var_name: itsinfo
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _URL>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    ) <';g\n'> <'\t\t\t}'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(${ Id.VSub_Name its_sed_script)}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [12429 12440]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
        )
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIR='> name:WDIR)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name WDIR>
                var_name: WDIR
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {($ Id.VSub_DollarName CWS) <Id.Lit_Slash '/'> <webrev>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
          spids: [13432]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName oflag)})
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WNAME='> name:WNAME)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name WDIR>
                        var_name: WDIR
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_DPound '##'>
                            arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [13468]
                )
              ]
              redirects: []
            )
          ]
          spids: [13454 13465]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WNAME='> name:WNAME)
              op: assign_op.Equal
              rhs: 
                {
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name CWS>
                    var_name: CWS
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VOp1_DPound '##'>
                        arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              spids: [13479]
            )
          ]
          redirects: []
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalOr
                          left: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName Dflag)}
                            )
                          right: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName Uflag)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName tflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'remote_target='>
                              name: remote_target
                            )
                          op: assign_op.Equal
                          rhs: 
                            {(${ Id.VSub_Name DEFAULT_REMOTE_HOST) <Id.Lit_Colon ':'> 
                              (${ Id.VSub_Name WNAME)
                            }
                          spids: [13543]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [13529 13540]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {(DQ (${ Id.VSub_Name remote_target))}
                                          right: {(${ Id.VSub_Name rsync_prefix) <Id.Lit_Other '*'>}
                                        )
                                      right: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {(DQ (${ Id.VSub_Name remote_target))}
                                          right: {(${ Id.VSub_Name ssh_prefix) <Id.Lit_Other '*'>}
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<print>} {(DQ <'ERROR: invalid prefix of upload URI'>)} 
                          {(DQ <'('> ($ Id.VSub_DollarName remote_target) <')'>)}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      spids: [13568 13604]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (C {<typeset>} 
                  {<Id.Lit_VarLike 'target_no_prefix='> 
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name remote_target>
                      var_name: remote_target
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VOp1_DPound '##'>
                          arg_word: {<Id.Lit_Other '*'> <':'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'>}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  }
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(${ Id.VSub_Name target_no_prefix)}
                                      right: 
                                        {<Id.Lit_Other '*'> <Id.Lit_Colon ':'> <Id.Lit_Other '*'>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {(DQ (${ Id.VSub_Name remote_target))}
                                              right: {<Id.Lit_Other '*'> <Id.Lit_Colon ':'>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'remote_target='>
                                          name: remote_target
                                        )
                                      op: assign_op.Equal
                                      rhs: {(${ Id.VSub_Name remote_target) (${ Id.VSub_Name WNAME)}
                                      spids: [13708]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [13687 13705]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [13667 13684]
                    )
                  ]
                  else_action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(${ Id.VSub_Name target_no_prefix)}
                                          right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<print>} {(DQ <'ERROR: badly formed upload URI'>)} 
                              {(DQ <'('> ($ Id.VSub_DollarName remote_target) <')'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [13723 13740]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'remote_target='>
                                  name: remote_target
                                )
                              op: assign_op.Equal
                              rhs: 
                                {(${ Id.VSub_Name remote_target) <Id.Lit_Colon ':'> 
                                  (${ Id.VSub_Name WNAME)
                                }
                              spids: [13766]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote_target='> name:remote_target)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name remote_target>
                        var_name: remote_target
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VOp1_Percent '%'>
                            arg_word: {<Id.Lit_Slash '/'>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  spids: [13802]
                )
              ]
              redirects: []
            )
          ]
          spids: [13493 13510]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalAnd
                          left: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: {($ Id.VSub_DollarName Uflag)}
                            )
                          right: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName Dflag)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<delete_webrev>} {<1>} {<1>})
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          spids: [13821 13838]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName nflag)})
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName Dflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<delete_webrev>} {<1>} {<1>})
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: {($ Id.VSub_QMark '?')}
                              right: {<Id.Lit_Digits 0>}
                            )
                          redirects: []
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {($ Id.VSub_QMark '?')}
                        )
                      ]
                    )
                  ]
                  spids: [13878 13889]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName Uflag)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<upload_webrev>})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_QMark '?')}
                    )
                  ]
                  spids: [13920 13931]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [13864 13875]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name WDIR>
                            var_name: WDIR
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_DPercent '%%'>
                                arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        )
                      } {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIR='> name:WDIR)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName WDIR)}
                  spids: [13966]
                )
              ]
              redirects: []
            )
          ]
          spids: [13947 13963]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalNot
                          child: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_d
                              child: {($ Id.VSub_DollarName WDIR)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName WDIR)})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_NEqual
                      left: {($ Id.VSub_QMark '?')}
                      right: {<Id.Lit_Digits 0>}
                    )
                  redirects: []
                )
                (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
            )
          ]
          spids: [13974 13987]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<print>} 
      {
        (DQ <'      Workspace: '> 
          (braced_var_sub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name PRETTY_CWS>
            var_name: PRETTY_CWS
            suffix_op: 
              (suffix_op.Unary
                op: <Id.VTest_ColonHyphen _>
                arg_word: {($ Id.VSub_DollarName CWS)}
              )
            right: <Id.Right_DollarBrace '}'>
          )
        )
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_n
                          child: {($ Id.VSub_DollarName parent_webrev)}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<print>} {(DQ <'Compare against: webrev at '> ($ Id.VSub_DollarName parent_webrev))})
          ]
          spids: [14037 14048]
        )
      ]
      else_action: [
        (C {<print>} 
          {
            (DQ <'Compare against: '> 
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name PRETTY_PWS>
                var_name: PRETTY_PWS
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {($ Id.VSub_DollarName PWS)}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            )
          }
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName INCLUDE_FILE)})
          redirects: []
        )
        (C {<print>} {(DQ <'      Including: '> ($ Id.VSub_DollarName INCLUDE_FILE))})
      ]
    )
    (C {<print>} {(DQ <'      Output to: '> ($ Id.VSub_DollarName WDIR))})
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: 
            (bool_expr.LogicalNot
              child: 
                (bool_expr.Binary
                  op_id: Id.BoolBinary_ef
                  left: {($ Id.VSub_DollarName FLIST)}
                  right: {($ Id.VSub_DollarName WDIR) <'/file.list'>}
                )
            )
          redirects: []
        )
        (C {<cp>} {($ Id.VSub_DollarName FLIST)} {($ Id.VSub_DollarName WDIR) <'/file.list'>})
      ]
    )
    (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>})
    (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.ps>})
    (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.pdf>})
    (C {<touch>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>})
    (C {<print>} {(DQ <'   Output Files:'>)})
    (command.Simple
      words: [
        {($ Id.VSub_DollarName SED)}
        {<-e>}
        {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)}
        {<-e>}
        {(DQ <'/=/d'>)}
        {<-e>}
        {(DQ <'/^[   ]*'> <Id.Lit_Dollar '$'> <'/d'>)}
        {($ Id.VSub_DollarName FLIST)}
      ]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.flist.clean>}
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLIST='> name:FLIST)
          op: assign_op.Equal
          rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.flist.clean>}
          spids: [14216]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {($ Id.VSub_DollarName SCM_MODE)}
                          right: {(DQ <mercurial>)}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SEDFILE='> name:SEDFILE)
                  op: assign_op.Equal
                  rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.manifest.sed>}
                  spids: [14309]
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [
                    {($ Id.VSub_DollarName SED)}
                    {
                      (SQ <'\n'> <'\t\ts#^[^ ]* ##\n'> <'\t\ts#/#\\\\\\/#g\n'> 
                        <'\t\ts#^.*$#/^... . &$/p#\n'> <'\t'>
                      )
                    }
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_DollarName FLIST)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (command.Simple
                  words: [{($ Id.VSub_DollarName SORT)} {<-u>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName SEDFILE)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'HG_PARENT_MANIFEST='>
                      name: HG_PARENT_MANIFEST
                    )
                  op: assign_op.Equal
                  rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.manifest>}
                  spids: [14357]
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (C {<hg>} {<-R>} {($ Id.VSub_DollarName CWS)} {<manifest>} {<-v>} {<-r>} 
                  {($ Id.VSub_DollarName HG_PARENT)}
                )
                (command.Simple
                  words: [{($ Id.VSub_DollarName SED)} {<-n>} {<-f>} {($ Id.VSub_DollarName SEDFILE)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName HG_PARENT_MANIFEST)}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
          ]
          spids: [14231 14246]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Pipeline
      children: [
        (C {<cat>} {($ Id.VSub_DollarName FLIST)})
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: (condition.Shell commands:[(C {<read>} {<LINE>})])
          body: 
            (command.DoGroup
              children: [
                (C {<set>} {<->} {($ Id.VSub_DollarName LINE)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P='> name:P)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                      spids: [14426]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldname='> name:oldname)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                      spids: [14455]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldpath='> name:oldpath)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                      spids: [14460]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rename='> name:rename)
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [14465]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_eq
                                      left: {($ Id.VSub_Pound '#')}
                                      right: {<2>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 2)}
                              spids: [14484]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_f
                                              child: {($ Id.VSub_DollarName PP)}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'oldname='>
                                          name: oldname
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <' (copied from '> ($ Id.VSub_DollarName PP) <')'>)}
                                      spids: [14505]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [14491 14502]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldname='>
                                      name: oldname
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <' (renamed from '> ($ Id.VSub_DollarName PP) <')'>)}
                                  spids: [14516]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldpath='> name:oldpath)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName PP))}
                              spids: [14527]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rename='> name:rename)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [14533]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PDIR='> name:PDIR)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name PP>
                                    var_name: PP
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_Percent '%'>
                                        arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              spids: [14537]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {($ Id.VSub_DollarName PDIR)}
                                              right: {($ Id.VSub_DollarName PP)}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PDIR='> name:PDIR)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.>)}
                                      spids: [14562]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [14546 14559]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PF='> name:PF)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name PP>
                                    var_name: PP
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_DPound '##'>
                                        arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              spids: [14575]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name P>
                                    var_name: P
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_Percent '%'>
                                        arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              spids: [14585]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {($ Id.VSub_DollarName DIR)}
                                              right: {($ Id.VSub_DollarName P)}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.>)}
                                      spids: [14610]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [14594 14607]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'F='> name:F)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name P>
                                    var_name: P
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_DPound '##'>
                                        arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              spids: [14623]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [14468 14481]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name P>
                                var_name: P
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          spids: [14636]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(DQ ($ Id.VSub_DollarName DIR))}
                                          right: {(DQ ($ Id.VSub_DollarName P))}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR)
                                  op: assign_op.Equal
                                  rhs: {(DQ <.>)}
                                  spids: [14665]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [14645 14662]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'F='> name:F)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name P>
                                var_name: P
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          spids: [14678]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName P)}
                          spids: [14688]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PDIR='> name:PDIR)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName DIR)}
                          spids: [14692]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PF='> name:PF)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName F)}
                          spids: [14696]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMM='> name:COMM)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (C {<getcomments>} {<html>} {($ Id.VSub_DollarName P)} 
                                {($ Id.VSub_DollarName PP)}
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      spids: [14704]
                    )
                  ]
                  redirects: []
                )
                (C {<print>} 
                  {
                    (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName P) 
                      ($ Id.VSub_DollarName oldname) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <t> 
                      <Id.Lit_BadBackslash '\\'> <c>
                    )
                  }
                )
                (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR)})
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<build_old_new>} {(DQ ($ Id.VSub_DollarName WDIR))} 
                      {(DQ ($ Id.VSub_DollarName PWS))} {(DQ ($ Id.VSub_DollarName PDIR))} {(DQ ($ Id.VSub_DollarName PF))} {(DQ ($ Id.VSub_DollarName CWS))} 
                      {(DQ ($ Id.VSub_DollarName DIR))} {(DQ ($ Id.VSub_DollarName F))}
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OWD='> name:OWD)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName PWD)}
                      spids: [14831]
                    )
                  ]
                  redirects: []
                )
                (C {<cd>} {($ Id.VSub_DollarName WDIR) <'/raw_files'>})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName PDIR)}
                                      right: {(DQ <.>)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ofile='> name:ofile)
                              op: assign_op.Equal
                              rhs: {<'old/'> ($ Id.VSub_DollarName PF)}
                              spids: [14880]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [14862 14877]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ofile='> name:ofile)
                          op: assign_op.Equal
                          rhs: {<'old/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)}
                          spids: [14888]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName DIR)}
                                      right: {(DQ <.>)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nfile='> name:nfile)
                              op: assign_op.Equal
                              rhs: {<'new/'> ($ Id.VSub_DollarName F)}
                              spids: [14916]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [14898 14913]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nfile='> name:nfile)
                          op: assign_op.Equal
                          rhs: {<'new/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                          spids: [14924]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'mv_but_nodiff='>
                          name: mv_but_nodiff
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [14935]
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  words: [{<cmp>} {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_QMark '?')}
                                          right: {<0>}
                                        )
                                      right: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName rename)}
                                          right: {<1>}
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'mv_but_nodiff='>
                                  name: mv_but_nodiff
                                )
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [14976]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [14952 14973]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cleanse_rmfile='>
                          name: cleanse_rmfile
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ($ Id.VSub_DollarName SED) <' \'s/^'> <Id.Lit_BadBackslash '\\'> 
                            <'(@@ [0-9+,-]*'> <Id.Lit_BadBackslash '\\'> <') [0-9+,-]* @@'> <Id.Lit_Dollar '$'> <'/'> <Id.Lit_BadBackslash '\\'> 
                            <'1 +0,0 @@/\''>
                          )
                        }
                      spids: [15036]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cleanse_newfile='>
                          name: cleanse_newfile
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ($ Id.VSub_DollarName SED) <' \'s/^@@ [0-9+,-]* '> 
                            <Id.Lit_BadBackslash '\\'> <'([0-9+,-]* @@'> <Id.Lit_BadBackslash '\\'> <')'> <Id.Lit_Dollar '$'> <'/@@ -0,0 '> 
                            <Id.Lit_BadBackslash '\\'> <'1/\''>
                          )
                        }
                      spids: [15051]
                    )
                  ]
                  redirects: []
                )
                (C {<rm>} {<-f>} 
                  {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                    ($ Id.VSub_DollarName F) <.patch>
                  }
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {($ Id.VSub_DollarName rename)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                                          {(DQ ($ Id.VSub_DollarName ofile))} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.Pipeline
                                  children: [
                                    (C {<diff>} {<-u>} {<'/dev/null'>} {($ Id.VSub_DollarName nfile)})
                                    (command.Simple
                                      words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_newfile))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {($ Id.VSub_DollarName WDIR) <'/'> 
                                              ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch>
                                            }
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                  stderr_indices: []
                                )
                              ]
                              spids: [15093 15108]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                                          {(DQ ($ Id.VSub_DollarName nfile))} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.Pipeline
                                  children: [
                                    (C {<diff>} {<-u>} {($ Id.VSub_DollarName ofile)} {<'/dev/null'>})
                                    (command.Simple
                                      words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_rmfile))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {($ Id.VSub_DollarName WDIR) <'/'> 
                                              ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch>
                                            }
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                  stderr_indices: []
                                )
                              ]
                              spids: [15141 15156]
                            )
                          ]
                          else_action: [
                            (command.Simple
                              words: [
                                {<diff>}
                                {<-u>}
                                {($ Id.VSub_DollarName ofile)}
                                {($ Id.VSub_DollarName nfile)}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: 
                                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                      ($ Id.VSub_DollarName F) <.patch>
                                    }
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [15079 15090]
                    )
                  ]
                  else_action: [
                    (command.Pipeline
                      children: [
                        (C {<diff>} {<-u>} {($ Id.VSub_DollarName ofile)} {<'/dev/null'>})
                        (command.Simple
                          words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_rmfile))}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.patch>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                    (command.Pipeline
                      children: [
                        (C {<diff>} {<-u>} {<'/dev/null'>} {($ Id.VSub_DollarName nfile)})
                        (command.Simple
                          words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_newfile))}]
                          redirects: [
                            (redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.patch>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  words: [
                    {<cat>}
                    {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                      ($ Id.VSub_DollarName F) <.patch>
                    }
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (C {<print>} {(DQ <' patch'> <Id.Lit_BadBackslash '\\'> <c>)})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {($ Id.VSub_DollarName ofile)}
                                        )
                                      right: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_f
                                              child: {($ Id.VSub_DollarName nfile)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName mv_but_nodiff)}
                                            )
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name CDIFFCMD>
                                var_name: CDIFFCMD
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_ColonHyphen _>
                                    arg_word: {<'diff -bt -C 5'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                            {($ Id.VSub_DollarName ofile)}
                            {($ Id.VSub_DollarName nfile)}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.cdiff>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (command.Simple
                          words: [
                            {<diff_to_html>}
                            {($ Id.VSub_DollarName F)}
                            {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                            {(DQ <C>)}
                            {(DQ ($ Id.VSub_DollarName COMM))}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.cdiff>
                                }
                            )
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.cdiff.html>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' cdiffs'> <Id.Lit_BadBackslash '\\'> <c>)})
                        (command.Simple
                          words: [
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name UDIFFCMD>
                                var_name: UDIFFCMD
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_ColonHyphen _>
                                    arg_word: {<'diff -bt -U 5'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                            {($ Id.VSub_DollarName ofile)}
                            {($ Id.VSub_DollarName nfile)}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.udiff>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (command.Simple
                          words: [
                            {<diff_to_html>}
                            {($ Id.VSub_DollarName F)}
                            {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                            {(DQ <U>)}
                            {(DQ ($ Id.VSub_DollarName COMM))}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.udiff>
                                }
                            )
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.udiff.html>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' udiffs'> <Id.Lit_BadBackslash '\\'> <c>)})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_x
                                              child: {($ Id.VSub_DollarName WDIFF)}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.Simple
                                  words: [
                                    {($ Id.VSub_DollarName WDIFF)}
                                    {<-c>}
                                    {(DQ ($ Id.VSub_DollarName COMM))}
                                    {<-t>}
                                    {
                                      (DQ ($ Id.VSub_DollarName WNAME) <' Wdiff '> 
                                        ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)
                                      )
                                    }
                                    {($ Id.VSub_DollarName ofile)}
                                    {($ Id.VSub_DollarName nfile)}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.wdiff.html>
                                        }
                                    )
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_eq
                                                      left: {($ Id.VSub_QMark '?')}
                                                      right: {<0>}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<print>} {(DQ <' wdiffs'> <Id.Lit_BadBackslash '\\'> <c>)})
                                      ]
                                      spids: [15537 15550]
                                    )
                                  ]
                                  else_action: [
                                    (C {<print>} {(DQ <' wdiffs[fail]'> <Id.Lit_BadBackslash '\\'> <c>)})
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [15484 15495]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.Simple
                          words: [
                            {<sdiff_to_html>}
                            {($ Id.VSub_DollarName ofile)}
                            {($ Id.VSub_DollarName nfile)}
                            {($ Id.VSub_DollarName F)}
                            {($ Id.VSub_DollarName DIR)}
                            {(DQ ($ Id.VSub_DollarName COMM))}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.sdiff.html>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' sdiffs'> <Id.Lit_BadBackslash '\\'> <c>)})
                        (C {<print>} {(DQ <' frames'> <Id.Lit_BadBackslash '\\'> <c>)})
                        (C {<rm>} {<-f>} 
                          {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                            ($ Id.VSub_DollarName F) <.cdiff>
                          } {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.udiff>}
                        )
                        (command.Simple
                          words: [
                            {<difflines>}
                            {($ Id.VSub_DollarName ofile)}
                            {($ Id.VSub_DollarName nfile)}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.count>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      spids: [15324 15347]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {($ Id.VSub_DollarName ofile)}
                                        )
                                      right: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_f
                                              child: {($ Id.VSub_DollarName nfile)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName mv_but_nodiff)}
                                            )
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [
                            {<difflines>}
                            {($ Id.VSub_DollarName ofile)}
                            {($ Id.VSub_DollarName nfile)}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.count>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      spids: [15661 15684]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName nfile)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [{<difflines>} {<'/dev/null'>} {($ Id.VSub_DollarName nfile)}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.count>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      spids: [15707 15718]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName ofile)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [{<difflines>} {($ Id.VSub_DollarName ofile)} {<'/dev/null'>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.count>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      ]
                      spids: [15741 15752]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {(DQ ($ Id.VSub_DollarName nfile))}
                                        )
                                      right: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobEqual
                                              left: {(DQ ($ Id.VSub_DollarName nfile))}
                                              right: 
                                                {<Id.Lit_Other '*'> <.> 
                                                  (word_part.ExtGlob
                                                    op: <Id.ExtGlob_Plus '+('>
                                                    arms: [{<'[0-9]'>}]
                                                  ) (word_part.ExtGlob op:<Id.ExtGlob_Star '*('> arms:[{<'[a-zA-Z]'>}])
                                                }
                                            )
                                          right: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_x
                                                  child: {($ Id.VSub_DollarName MANDOC)}
                                                )
                                              right: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_x
                                                  child: {($ Id.VSub_DollarName COL)}
                                                )
                                            )
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Pipeline
                          children: [
                            (C {($ Id.VSub_DollarName MANDOC)} {<-Tascii>} 
                              {($ Id.VSub_DollarName nfile)}
                            )
                            (command.Simple
                              words: [{($ Id.VSub_DollarName COL)} {<-b>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName nfile) <.man.txt>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                          negated: F
                          stderr_indices: []
                        )
                        (command.Simple
                          words: [{<source_to_html>} {<txt>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName nfile) <.man.txt>}
                            )
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName nfile) <.man.txt.html>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' man-txt'> <Id.Lit_BadBackslash '\\'> <c>)})
                        (command.Simple
                          words: [{<print>} {(DQ ($ Id.VSub_DollarName MANCSS))}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> 
                                  ($ Id.VSub_DollarName DIR) <'/man.css'>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (command.Simple
                          words: [
                            {($ Id.VSub_DollarName MANDOC)}
                            {<-Thtml>}
                            {<-Ostyle> <Id.Lit_Equals '='> <man.css>}
                            {($ Id.VSub_DollarName nfile)}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName nfile) <.man.html>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' man-html'> <Id.Lit_BadBackslash '\\'> <c>)})
                        (command.Simple
                          words: [
                            {($ Id.VSub_DollarName MANDOC)}
                            {<-Tascii>}
                            {($ Id.VSub_DollarName nfile)}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName nfile) <.man.raw>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' man-raw'> <Id.Lit_BadBackslash '\\'> <c>)})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_f
                                                  child: {(DQ ($ Id.VSub_DollarName ofile))}
                                                )
                                              right: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_z
                                                  child: {($ Id.VSub_DollarName mv_but_nodiff)}
                                                )
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.Pipeline
                                  children: [
                                    (C {($ Id.VSub_DollarName MANDOC)} {<-Tascii>} 
                                      {($ Id.VSub_DollarName ofile)}
                                    )
                                    (command.Simple
                                      words: [{($ Id.VSub_DollarName COL)} {<-b>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName ofile) <.man.txt>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                  stderr_indices: []
                                )
                                (command.Simple
                                  words: [
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name CDIFFCMD>
                                        var_name: CDIFFCMD
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonHyphen _>
                                            arg_word: {<'diff -bt -C 5'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                    {($ Id.VSub_DollarName ofile) <.man.txt>}
                                    {($ Id.VSub_DollarName nfile) <.man.txt>}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.man.cdiff>
                                        }
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (command.Simple
                                  words: [
                                    {<diff_to_html>}
                                    {($ Id.VSub_DollarName F)}
                                    {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                                    {(DQ <C>)}
                                    {(DQ ($ Id.VSub_DollarName COMM))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.man.cdiff>
                                        }
                                    )
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.man.cdiff.html>
                                        }
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (C {<print>} {(DQ <' man-cdiffs'> <Id.Lit_BadBackslash '\\'> <c>)})
                                (command.Simple
                                  words: [
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name UDIFFCMD>
                                        var_name: UDIFFCMD
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonHyphen _>
                                            arg_word: {<'diff -bt -U 5'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                    {($ Id.VSub_DollarName ofile) <.man.txt>}
                                    {($ Id.VSub_DollarName nfile) <.man.txt>}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.man.udiff>
                                        }
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (command.Simple
                                  words: [
                                    {<diff_to_html>}
                                    {($ Id.VSub_DollarName F)}
                                    {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)}
                                    {(DQ <U>)}
                                    {(DQ ($ Id.VSub_DollarName COMM))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.man.udiff>
                                        }
                                    )
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.man.udiff.html>
                                        }
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (C {<print>} {(DQ <' man-udiffs'> <Id.Lit_BadBackslash '\\'> <c>)})
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_x
                                                      child: {($ Id.VSub_DollarName WDIFF)}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName WDIFF)}
                                            {<-c>}
                                            {(DQ ($ Id.VSub_DollarName COMM))}
                                            {<-t>}
                                            {
                                              (DQ ($ Id.VSub_DollarName WNAME) <' Wdiff '> 
                                                ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)
                                              )
                                            }
                                            {($ Id.VSub_DollarName ofile) <.man.txt>}
                                            {($ Id.VSub_DollarName nfile) <.man.txt>}
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: 
                                                {($ Id.VSub_DollarName WDIR) <'/'> 
                                                  ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.wdiff.html>
                                                }
                                            )
                                            (redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          more_env: []
                                          do_fork: T
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DBracket
                                                          expr: 
                                                            (bool_expr.Binary
                                                              op_id: Id.BoolBinary_eq
                                                              left: {($ Id.VSub_QMark '?')}
                                                              right: {<0>}
                                                            )
                                                          redirects: []
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (C {<print>} 
                                                  {
                                                    (DQ <' man-wdiffs'> <Id.Lit_BadBackslash '\\'> <c>)
                                                  }
                                                )
                                              ]
                                              spids: [16183 16196]
                                            )
                                          ]
                                          else_action: [
                                            (C {<print>} 
                                              {
                                                (DQ <' man-wdiffs[fail]'> <Id.Lit_BadBackslash '\\'> 
                                                  <c>
                                                )
                                              }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [16128 16139]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                                (command.Simple
                                  words: [
                                    {<sdiff_to_html>}
                                    {($ Id.VSub_DollarName ofile) <.man.txt>}
                                    {($ Id.VSub_DollarName nfile) <.man.txt>}
                                    {($ Id.VSub_DollarName F) <.man>}
                                    {($ Id.VSub_DollarName DIR)}
                                    {(DQ ($ Id.VSub_DollarName COMM))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) 
                                          <'/'> ($ Id.VSub_DollarName F) <.man.sdiff.html>
                                        }
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                                (C {<print>} {(DQ <' man-sdiffs'> <Id.Lit_BadBackslash '\\'> <c>)})
                                (C {<print>} {(DQ <' man-frames'> <Id.Lit_BadBackslash '\\'> <c>)})
                              ]
                              spids: [15944 15963]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (C {<rm>} {<-f>} {($ Id.VSub_DollarName ofile) <.man.txt>} 
                          {($ Id.VSub_DollarName nfile) <.man.txt>}
                        )
                        (C {<rm>} {<-f>} 
                          {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                            ($ Id.VSub_DollarName F) <.man.cdiff>
                          } 
                          {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                            ($ Id.VSub_DollarName F) <.man.udiff>
                          }
                        )
                      ]
                      spids: [15795 15839]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName nfile)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ocr='> name:ocr)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName ofile)}
                              spids: [16344]
                            )
                          ]
                          redirects: []
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName ofile)}
                                    )
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ocr='> name:ocr)
                                  op: assign_op.Equal
                                  rhs: {<'/dev/null'>}
                                  spids: [16360]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: {($ Id.VSub_DollarName mv_but_nodiff)}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'textcomm='>
                                          name: textcomm
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (C {<getcomments>} {<text>} {($ Id.VSub_DollarName P)} 
                                                {($ Id.VSub_DollarName PP)}
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      spids: [16379]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_x
                                                      child: {($ Id.VSub_DollarName CODEREVIEW)}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName CODEREVIEW)}
                                                {<-y>}
                                                {(DQ ($ Id.VSub_DollarName textcomm))}
                                                {<-e>}
                                                {($ Id.VSub_DollarName ocr)}
                                                {($ Id.VSub_DollarName nfile)}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.psfile>}
                                                )
                                                (redir
                                                  op: <Id.Redir_Great '2>'>
                                                  loc: (redir_loc.Fd fd:2)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              words: [
                                                {<cat>}
                                                {<'/tmp/'> ($ Id.VSub_Dollar '$') <.psfile>}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {($ Id.VSub_DollarName WDIR) <'/'> 
                                                      ($ Id.VSub_DollarName WNAME) <.ps>
                                                    }
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DBracket
                                                          expr: 
                                                            (bool_expr.Binary
                                                              op_id: Id.BoolBinary_eq
                                                              left: {($ Id.VSub_QMark '?')}
                                                              right: {<0>}
                                                            )
                                                          redirects: []
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (C {<print>} 
                                                  {(DQ <' ps'> <Id.Lit_BadBackslash '\\'> <c>)}
                                                )
                                              ]
                                              spids: [16451 16464]
                                            )
                                          ]
                                          else_action: [
                                            (C {<print>} 
                                              {(DQ <' ps[fail]'> <Id.Lit_BadBackslash '\\'> <c>)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [16393 16404]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                              spids: [16365 16376]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [16330 16341]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName ofile)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [{<source_to_html>} {<Old>} {($ Id.VSub_DollarName PP)}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName ofile)}
                            )
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <-.html>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' old'> <Id.Lit_BadBackslash '\\'> <c>)})
                      ]
                      spids: [16501 16512]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName nfile)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [{<source_to_html>} {<New>} {($ Id.VSub_DollarName P)}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName nfile)}
                            )
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> 
                                  ($ Id.VSub_DollarName F) <.html>
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (C {<print>} {(DQ <' new'> <Id.Lit_BadBackslash '\\'> <c>)})
                      ]
                      spids: [16548 16559]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (C {<cd>} {($ Id.VSub_DollarName OWD)})
                (C {<print>})
              ]
            )
          redirects: []
        )
      ]
      negated: F
      stderr_indices: []
    )
    (command.Simple
      words: [{<frame_nav_js>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName WDIR) <'/ancnav.js'>}
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<frame_navigation>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName WDIR) <'/ancnav.html'>}
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalNot
                          child: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: 
                                {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.ps>}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<print>} {(DQ <' Generating PDF: Skipped: no output available'>)})]
          spids: [16621 16637]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalAnd
                          left: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_x
                              child: {($ Id.VSub_DollarName CODEREVIEW)}
                            )
                          right: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_x
                              child: {($ Id.VSub_DollarName PS2PDF)}
                            )
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<print>} {(DQ <' Generating PDF: '> <Id.Lit_BadBackslash '\\'> <c>)})
            (command.Pipeline
              children: [
                (C {<fix_postscript>} 
                  {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.ps>}
                )
                (command.Simple
                  words: [{($ Id.VSub_DollarName PS2PDF)} {<->}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.pdf>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
              negated: F
              stderr_indices: []
            )
            (C {<print>} {(DQ <Done.>)})
          ]
          spids: [16646 16663]
        )
      ]
      else_action: [
        (C {<print>} {(DQ <' Generating PDF: Skipped: missing \'ps2pdf\' or \'codereview\''>)})
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_n
                          child: {(DQ ($ Id.VSub_DollarName Oflag))}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {($ Id.VSub_DollarName FIND)} {($ Id.VSub_DollarName WDIR)} {<-type>} {<d>} {<-name>} 
              {<closed>} {<-exec>} {<'/bin/rm'>} {<-rf>} {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>} 
              {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'> ch:';')}
            )
          ]
          spids: [16721 16734]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<cd>} {($ Id.VSub_DollarName CWS)})
    (command.Simple
      words: [{<print>} {(DQ ($ Id.VSub_DollarName TOTL))}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName WDIR) <'/TotalChangedLines'>}
        )
      ]
      more_env: []
      do_fork: T
    )
    (C {<print>} {(DQ <'     index.html: '> <Id.Lit_BadBackslash '\\'> <c>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INDEXFILE='> name:INDEXFILE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName WDIR) <'/index.html'>}
          spids: [16798]
        )
      ]
      redirects: []
    )
    (command.Simple
      words: [{<exec>}]
      redirects: [(redir op:<Id.Redir_LessAnd '3<&'> loc:(redir_loc.Fd fd:3) arg:{<1>})]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<exec>}]
      redirects: [(redir op:<Id.Redir_LessAnd '1<&'> loc:(redir_loc.Fd fd:1) arg:{<->})]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<exec>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName INDEXFILE)}
        )
      ]
      more_env: []
      do_fork: T
    )
    (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))})
    (C {<print>} {(DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <'</title>'>)})
    (C {<print>} {(DQ <'</head>'>)})
    (C {<print>} 
      {
        (DQ <'<body id='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
          <SUNWwebrev> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
        )
      }
    )
    (C {<print>} 
      {
        (DQ <'<div class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
          <summary> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
        )
      }
    )
    (C {<print>} {(DQ <'<h2>Code Review for '> ($ Id.VSub_DollarName WNAME) <'</h2>'>)})
    (C {<print>} {(DQ <'<table>'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [16916]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ ($ Id.VSub_DollarName SCM_MODE))}
                          right: {<mercurial>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [{<hg>} {<showconfig>} {<ui.username>}]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [16936]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(DQ ($ Id.VSub_DollarName preparer))}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<echo>} {(DQ ($ Id.VSub_DollarName preparer))})
                                        (C {<html_quote>})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          spids: [16967]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [16951 16964]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [16918 16933]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_z
                          child: {(DQ ($ Id.VSub_DollarName preparer))}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {($ Id.VSub_DollarName PERL)} {<-e>} 
                            {
                              (SQ <'\n'> 
                                <
'\t        ($login, $pw, $uid, $gid, $quota, $cmt, $gcos) = getpwuid($<);\n'
                                > <'\t        if ($login) {\n'> <'\t            $gcos =~ s/\\&/ucfirst($login)/e;\n'> 
                                <'\t            printf "%s (%s)\\n", $gcos, $login;\n'> <'\t        } else {\n'> <'\t            printf "(unknown)\\n";\n'> <'\t        }\n'> <'\t'>
                              )
                            }
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [17003]
                )
              ]
              redirects: []
            )
          ]
          spids: [16987 17000]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREPDATE='> name:PREPDATE)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    words: [
                      {<'/usr/bin/date'>}
                      {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <Y-> <Id.Lit_Other '%'> <b-> 
                        <Id.Lit_Other '%'> <d> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.Lit_Other '%'> <R> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\ '>
                          ch: ' '
                        ) <Id.Lit_Other '%'> <z> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') 
                        <Id.Lit_Other '%'> <Z>
                      }
                    ]
                    redirects: []
                    more_env: [(env_pair name:LC_ALL val:{<C>} spids:[17029])]
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
          spids: [17027]
        )
      ]
      redirects: []
    )
    (C {<print>} 
      {
        (DQ <'<tr><th>Prepared by:</th><td>'> ($ Id.VSub_DollarName preparer) <' on '> 
          ($ Id.VSub_DollarName PREPDATE) <'</td></tr>'>
        )
      }
    )
    (C {<print>} 
      {
        (DQ <'<tr><th>Workspace:</th><td>'> 
          (braced_var_sub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name PRETTY_CWS>
            var_name: PRETTY_CWS
            suffix_op: 
              (suffix_op.Unary
                op: <Id.VTest_ColonHyphen _>
                arg_word: {($ Id.VSub_DollarName CWS)}
              )
            right: <Id.Right_DollarBrace '}'>
          )
        )
      }
    )
    (C {<print>} {(DQ <'</td></tr>'>)})
    (C {<print>} {(DQ <'<tr><th>Compare against:</th><td>'>)})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_n
                          child: {($ Id.VSub_DollarName parent_webrev)}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<print>} {(DQ <'webrev at '> ($ Id.VSub_DollarName parent_webrev))})]
          spids: [17085 17096]
        )
      ]
      else_action: [
        (C {<print>} 
          {
            (DQ 
              (braced_var_sub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name PRETTY_PWS>
                var_name: PRETTY_PWS
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {($ Id.VSub_DollarName PWS)}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            )
          }
        )
      ]
      redirects: []
    )
    (C {<print>} {(DQ <'</td></tr>'>)})
    (C {<print>} {(DQ <'<tr><th>Summary of changes:</th><td>'>)})
    (C {<printCI>} {($ Id.VSub_DollarName TOTL)} {($ Id.VSub_DollarName TINS)} 
      {($ Id.VSub_DollarName TDEL)} {($ Id.VSub_DollarName TMOD)} {($ Id.VSub_DollarName TUNC)}
    )
    (C {<print>} {(DQ <'</td></tr>'>)})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_f
                          child: 
                            {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wpatch_url='> name:wpatch_url)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<print>} {($ Id.VSub_DollarName WNAME) <.patch>})
                                (C {<url_encode>})
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                  spids: [17169]
                )
              ]
              redirects: []
            )
            (C {<print>} {(DQ <'<tr><th>Patch of changes:</th><td>'>)})
            (C {<print>} 
              {
                (DQ <'<a href='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  ($ Id.VSub_DollarName wpatch_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ($ Id.VSub_DollarName WNAME) 
                  <'.patch</a></td></tr>'>
                )
              }
            )
          ]
          spids: [17152 17166]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_f
                          child: 
                            {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.pdf>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wpdf_url='> name:wpdf_url)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<print>} {($ Id.VSub_DollarName WNAME) <.pdf>})
                                (C {<url_encode>})
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                  spids: [17222]
                )
              ]
              redirects: []
            )
            (C {<print>} {(DQ <'<tr><th>Printable review:</th><td>'>)})
            (C {<print>} 
              {
                (DQ <'<a href='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  ($ Id.VSub_DollarName wpdf_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ($ Id.VSub_DollarName WNAME) 
                  <'.pdf</a></td></tr>'>
                )
              }
            )
          ]
          spids: [17205 17219]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_n
                          child: {(DQ ($ Id.VSub_DollarName iflag))}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<print>} {(DQ <'<tr><th>Author comments:</th><td><div>'>)})
            (C {<cat>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.include>})
            (C {<print>} {(DQ <'</div></td></tr>'>)})
          ]
          spids: [17259 17272]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<print>} {(DQ <'</table>'>)})
    (C {<print>} {(DQ <'</div>'>)})
    (command.Pipeline
      children: [
        (C {<cat>} {($ Id.VSub_DollarName FLIST)})
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: (condition.Shell commands:[(C {<read>} {<LINE>})])
          body: 
            (command.DoGroup
              children: [
                (C {<set>} {<->} {($ Id.VSub_DollarName LINE)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P='> name:P)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                      spids: [17341]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_Pound '#')}
                                      right: {<2>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 2)}
                              spids: [17362]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldname='> name:oldname)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName PP))}
                              spids: [17366]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [17346 17359]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName P)}
                          spids: [17375]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldname='> name:oldname)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                          spids: [17379]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'mv_but_nodiff='>
                          name: mv_but_nodiff
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [17388]
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  words: [
                    {<cmp>}
                    {($ Id.VSub_DollarName WDIR) <'/raw_files/old/'> ($ Id.VSub_DollarName PP)}
                    {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName P)}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_QMark '?')}
                                          right: {<0>}
                                        )
                                      right: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(DQ ($ Id.VSub_DollarName oldname))}
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'mv_but_nodiff='>
                                  name: mv_but_nodiff
                                )
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [17433]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [17409 17430]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name P>
                            var_name: P
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_Percent '%'>
                                arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      spids: [17441]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {($ Id.VSub_DollarName DIR)}
                                      right: {($ Id.VSub_DollarName P)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR)
                              op: assign_op.Equal
                              rhs: {(DQ <.>)}
                              spids: [17466]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [17450 17463]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'F='> name:F)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName P)}
                      spids: [17492]
                    )
                  ]
                  redirects: []
                )
                (C {<print>} {(DQ <'<p>'>)})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName F) <.cdiff.html>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'cdiff_url='>
                                  name: cdiff_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.cdiff.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17527]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'udiff_url='>
                                  name: udiff_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.udiff.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17542]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'sdiff_url='>
                                  name: sdiff_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.sdiff.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17557]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'frames_url='>
                                  name: frames_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.frames.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17572]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName cdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Cdiffs</a>'>
                            )
                          }
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName udiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Udiffs</a>'>
                            )
                          }
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_f
                                                  child: {($ Id.VSub_DollarName F) <.wdiff.html>}
                                                )
                                              right: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_x
                                                  child: {($ Id.VSub_DollarName WDIFF)}
                                                )
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'wdiff_url='>
                                          name: wdiff_url
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (command_sub
                                              left_token: <Id.Left_DollarParen '$('>
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (C {<print>} 
                                                      {($ Id.VSub_DollarName P) <.wdiff.html>}
                                                    )
                                                    (C {<url_encode>})
                                                  ]
                                                  negated: F
                                                  stderr_indices: []
                                                )
                                              right: <Id.Eof_RParen _>
                                            )
                                          )
                                        }
                                      spids: [17630]
                                    )
                                  ]
                                  redirects: []
                                )
                                (C {<print>} 
                                  {
                                    (DQ <'<a href='> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      ) ($ Id.VSub_DollarName wdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                      <'>Wdiffs</a>'>
                                    )
                                  }
                                )
                              ]
                              spids: [17609 17627]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName sdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Sdiffs</a>'>
                            )
                          }
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName frames_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Frames</a>'>
                            )
                          }
                        )
                      ]
                      spids: [17512 17524]
                    )
                  ]
                  else_action: [
                    (C {<print>} {(DQ <' ------ ------'>)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_x
                                          child: {($ Id.VSub_DollarName WDIFF)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<print>} {(DQ <' ------'>)})]
                          spids: [17691 17702]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<print>} {(DQ <' ------ ------'>)})
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName F) <-.html>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'oldfile_url='>
                                  name: oldfile_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <-.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17746]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName oldfile_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Old</a>'>
                            )
                          }
                        )
                      ]
                      spids: [17731 17743]
                    )
                  ]
                  else_action: [(C {<print>} {(DQ <' ---'>)})]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName F) <.html>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'newfile_url='>
                                  name: newfile_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17806]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName newfile_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>New</a>'>
                            )
                          }
                        )
                      ]
                      spids: [17791 17803]
                    )
                  ]
                  else_action: [(C {<print>} {(DQ <' ---'>)})]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName F) <.patch>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'patch_url='>
                                  name: patch_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.patch>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17861]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName patch_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Patch</a>'>
                            )
                          }
                        )
                      ]
                      spids: [17846 17858]
                    )
                  ]
                  else_action: [(C {<print>} {(DQ <' -----'>)})]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: 
                                        {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> 
                                          ($ Id.VSub_DollarName P)
                                        }
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'rawfiles_url='>
                                  name: rawfiles_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {<'raw_files/new/'> ($ Id.VSub_DollarName P)})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [17917]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName rawfiles_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Raw</a>'>
                            )
                          }
                        )
                      ]
                      spids: [17901 17914]
                    )
                  ]
                  else_action: [(C {<print>} {(DQ <' ---'>)})]
                  redirects: []
                )
                (C {<print>} {(DQ <'<b>'> ($ Id.VSub_DollarName P) <'</b>'>)})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {(DQ ($ Id.VSub_DollarName oldname))}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {(DQ ($ Id.VSub_DollarName mv_but_nodiff))}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<print>} 
                                  {(DQ <'<i>(copied from '> ($ Id.VSub_DollarName oldname) <')</i>'>)}
                                )
                              ]
                              spids: [17987 18000]
                            )
                          ]
                          else_action: [
                            (C {<print>} 
                              {
                                (DQ <'<i>(copied and modified from '> ($ Id.VSub_DollarName oldname) 
                                  <')</i>'>
                                )
                              }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [17971 17984]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {(DQ ($ Id.VSub_DollarName oldname))}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {(DQ ($ Id.VSub_DollarName mv_but_nodiff))}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<print>} 
                                  {
                                    (DQ <'<i>(renamed from '> ($ Id.VSub_DollarName oldname) <')</i>'>)
                                  }
                                )
                              ]
                              spids: [18043 18056]
                            )
                          ]
                          else_action: [
                            (C {<print>} 
                              {
                                (DQ <'<i>(renamed and modified from '> ($ Id.VSub_DollarName oldname) 
                                  <')</i>'>
                                )
                              }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [18027 18040]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {($ Id.VSub_DollarName F) <-.html>}
                                        )
                                      right: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_f
                                              child: {($ Id.VSub_DollarName F) <.html>}
                                            )
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<print>} {(DQ <' <i>(deleted)</i>'>)})]
                      spids: [18091 18112]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} 
                                  {(DQ ($ Id.VSub_DollarName Oflag))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.LogicalOr
                                              left: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {($ Id.VSub_DollarName P)}
                                                  right: {<'usr/closed/'> <Id.Lit_Other '*'>}
                                                )
                                              right: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {($ Id.VSub_DollarName P)}
                                                  right: 
                                                    {<'deleted_files/usr/closed/'> <Id.Lit_Other '*'>}
                                                )
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<print>} {(DQ <'&nbsp;&nbsp;<i>Closed source: omitted from'>)} 
                                  {(DQ <'this review</i>'>)}
                                )
                              ]
                              spids: [18148 18173]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [18130 18145]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'manpage='> name:manpage)
                      op: assign_op.Equal
                      rhs: (rhs_word.Empty)
                      spids: [18196]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {($ Id.VSub_DollarName F) <.man.cdiff.html>}
                                        )
                                      right: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: 
                                            {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> 
                                              ($ Id.VSub_DollarName P) <.man.txt.html>
                                            }
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'manpage='> name:manpage)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [18225]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} {(DQ <'<br/>man:'>)})
                      ]
                      spids: [18199 18222]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName F) <.man.cdiff.html>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'mancdiff_url='>
                                  name: mancdiff_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.man.cdiff.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [18255]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'manudiff_url='>
                                  name: manudiff_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.man.udiff.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [18270]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'mansdiff_url='>
                                  name: mansdiff_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.man.sdiff.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [18285]
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'manframes_url='>
                                  name: manframes_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} {($ Id.VSub_DollarName P) <.man.frames.html>})
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [18300]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName mancdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Cdiffs</a>'>
                            )
                          }
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName manudiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Udiffs</a>'>
                            )
                          }
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_f
                                                  child: {($ Id.VSub_DollarName F) <.man.wdiff.html>}
                                                )
                                              right: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_x
                                                  child: {($ Id.VSub_DollarName WDIFF)}
                                                )
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'manwdiff_url='>
                                          name: manwdiff_url
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (command_sub
                                              left_token: <Id.Left_DollarParen '$('>
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (C {<print>} 
                                                      {($ Id.VSub_DollarName P) <.man.wdiff.html>}
                                                    )
                                                    (C {<url_encode>})
                                                  ]
                                                  negated: F
                                                  stderr_indices: []
                                                )
                                              right: <Id.Eof_RParen _>
                                            )
                                          )
                                        }
                                      spids: [18358]
                                    )
                                  ]
                                  redirects: []
                                )
                                (C {<print>} 
                                  {
                                    (DQ <'<a href='> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      ) ($ Id.VSub_DollarName manwdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                      <'>Wdiffs</a>'>
                                    )
                                  }
                                )
                              ]
                              spids: [18337 18355]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName mansdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Sdiffs</a>'>
                            )
                          }
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName manframes_url) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) <'>Frames</a>'>
                            )
                          }
                        )
                      ]
                      spids: [18240 18252]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName manpage)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<print>} {(DQ <' ------ ------'>)})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_x
                                              child: {($ Id.VSub_DollarName WDIFF)}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [(C {<print>} {(DQ <' ------'>)})]
                              spids: [18430 18441]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (C {<print>} {(DQ <' ------ ------'>)})
                      ]
                      spids: [18409 18420]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: 
                                        {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> 
                                          ($ Id.VSub_DollarName P) <.man.txt.html>
                                        }
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'mantxt_url='>
                                  name: mantxt_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} 
                                              {<'raw_files/new/'> ($ Id.VSub_DollarName P) 
                                                <.man.txt.html>
                                              }
                                            )
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [18482]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName mantxt_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>TXT</a>'>
                            )
                          }
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'manhtml_url='>
                                  name: manhtml_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} 
                                              {<'raw_files/new/'> ($ Id.VSub_DollarName P) <.man.html>}
                                            )
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [18509]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName manhtml_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>HTML</a>'>
                            )
                          }
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'manraw_url='>
                                  name: manraw_url
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<print>} 
                                              {<'raw_files/new/'> ($ Id.VSub_DollarName P) <.man.raw>}
                                            )
                                            (C {<url_encode>})
                                          ]
                                          negated: F
                                          stderr_indices: []
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              spids: [18536]
                            )
                          ]
                          redirects: []
                        )
                        (C {<print>} 
                          {
                            (DQ <'<a href='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName manraw_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              <'>Raw</a>'>
                            )
                          }
                        )
                      ]
                      spids: [18465 18479]
                    )
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName manpage)}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<print>} {(DQ <' --- ---- ---'>)})]
                      spids: [18563 18574]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (C {<print>} {(DQ <'</p>'>)})
                (C {<print>} {(DQ <'<blockquote><pre>'>)})
                (C {<getcomments>} {<html>} {($ Id.VSub_DollarName P)} {($ Id.VSub_DollarName PP)})
                (C {<print>} {(DQ <'</pre>'>)})
                (C {<print>} 
                  {
                    (DQ <'<!-- Add comments to explain changes in '> ($ Id.VSub_DollarName P) 
                      <' here -->'>
                    )
                  }
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName F) <.count>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<cat>} {($ Id.VSub_DollarName F) <.count>})
                        (C {<rm>} {($ Id.VSub_DollarName F) <.count>})
                      ]
                      spids: [18642 18654]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName SCM_MODE)}
                                          right: {(DQ <mercurial>)}
                                        )
                                      right: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName SCM_MODE)}
                                          right: {(DQ <unknown>)}
                                        )
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old_mode='> name:old_mode)
                              op: assign_op.Equal
                              rhs: (rhs_word.Empty)
                              spids: [18718]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_f
                                              child: 
                                                {($ Id.VSub_DollarName WDIR) <'/raw_files/old/'> 
                                                  ($ Id.VSub_DollarName PP)
                                                }
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'old_mode='>
                                          name: old_mode
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (C {<get_file_mode>} 
                                                {($ Id.VSub_DollarName WDIR) <'/raw_files/old/'> 
                                                  ($ Id.VSub_DollarName PP)
                                                }
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      spids: [18737]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [18721 18734]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_mode='> name:new_mode)
                              op: assign_op.Equal
                              rhs: (rhs_word.Empty)
                              spids: [18753]
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_f
                                              child: 
                                                {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> 
                                                  ($ Id.VSub_DollarName P)
                                                }
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'new_mode='>
                                          name: new_mode
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (C {<get_file_mode>} 
                                                {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> 
                                                  ($ Id.VSub_DollarName P)
                                                }
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      spids: [18772]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [18756 18769]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_z
                                                  child: {(DQ ($ Id.VSub_DollarName old_mode))}
                                                )
                                              right: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobEqual
                                                  left: {(DQ ($ Id.VSub_DollarName new_mode))}
                                                  right: 
                                                    {<Id.Lit_Other '*'> <Id.Lit_Other '['> <1357> 
                                                      <Id.Lit_Other ']'> <Id.Lit_Other '*'>
                                                    }
                                                )
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<print>} 
                                  {
                                    (DQ <'<span class='> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      ) <chmod> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
                                    )
                                  }
                                )
                                (C {<print>} 
                                  {
                                    (DQ <'<p>new executable file: mode '> 
                                      ($ Id.VSub_DollarName new_mode) <'</p>'>
                                    )
                                  }
                                )
                                (C {<print>} {(DQ <'</span>'>)})
                              ]
                              spids: [18788 18815]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(DQ ($ Id.VSub_DollarName old_mode))}
                                                )
                                              right: 
                                                (bool_expr.LogicalAnd
                                                  left: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_n
                                                      child: {(DQ ($ Id.VSub_DollarName new_mode))}
                                                    )
                                                  right: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ ($ Id.VSub_DollarName old_mode))}
                                                      right: {(DQ ($ Id.VSub_DollarName new_mode))}
                                                    )
                                                )
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<print>} 
                                  {
                                    (DQ <'<span class='> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      ) <chmod> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
                                    )
                                  }
                                )
                                (C {<print>} 
                                  {
                                    (DQ <'<p>mode change: '> ($ Id.VSub_DollarName old_mode) <' to '> 
                                      ($ Id.VSub_DollarName new_mode) <'</p>'>
                                    )
                                  }
                                )
                                (C {<print>} {(DQ <'</span>'>)})
                              ]
                              spids: [18845 18879]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobEqual
                                              left: {(DQ ($ Id.VSub_DollarName new_mode))}
                                              right: 
                                                {<Id.Lit_Other '*'> <Id.Lit_Other '['> <1357> 
                                                  <Id.Lit_Other ']'> <Id.Lit_Other '*'>
                                                }
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<print>} 
                                  {
                                    (DQ <'<span class='> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      ) <chmod> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
                                    )
                                  }
                                )
                                (C {<print>} 
                                  {
                                    (DQ <'<p>executable file: mode '> ($ Id.VSub_DollarName new_mode) 
                                      <'</p>'>
                                    )
                                  }
                                )
                                (C {<print>} {(DQ <'</span>'>)})
                              ]
                              spids: [18911 18930]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [18673 18699]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (C {<print>} {(DQ <'</blockquote>'>)})
              ]
            )
          redirects: []
        )
      ]
      negated: F
      stderr_indices: []
    )
    (C {<print>})
    (C {<print>})
    (C {<print>} {(DQ <'<hr></hr>'>)})
    (C {<print>} 
      {
        (DQ <'<p style='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
          <'font-size: small'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
        )
      }
    )
    (C {<print>} {(DQ <'This code review page was prepared using <b>'> ($ Id.VSub_Number 0) <'</b>.'>)})
    (C {<print>} 
      {
        (DQ <'Webrev is maintained by the <a href='> 
          (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'http://www.illumos.org'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'>
        )
      }
    )
    (C {<print>} {(DQ <'illumos</a> project.  The latest version may be obtained'>)})
    (C {<print>} 
      {
        (DQ <'<a href='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
          <'http://src.illumos.org/source/xref/illumos-gate/usr/src/tools/scripts/webrev.sh'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>here</a>.</p>'>
        )
      }
    )
    (C {<print>} {(DQ <'</body>'>)})
    (C {<print>} {(DQ <'</html>'>)})
    (command.Simple
      words: [{<exec>}]
      redirects: [(redir op:<Id.Redir_LessAnd '1<&'> loc:(redir_loc.Fd fd:1) arg:{<->})]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<exec>}]
      redirects: [(redir op:<Id.Redir_LessAnd '1<&'> loc:(redir_loc.Fd fd:1) arg:{<3>})]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<exec>}]
      redirects: [(redir op:<Id.Redir_LessAnd '3<&'> loc:(redir_loc.Fd fd:3) arg:{<->})]
      more_env: []
      do_fork: T
    )
    (C {<print>} {(DQ <Done.>)})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName Dflag)})
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<delete_webrev>} {<1>} {<1>})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_DEqual
                      left: {($ Id.VSub_QMark '?')}
                      right: {<Id.Lit_Digits 0>}
                    )
                  redirects: []
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_QMark '?')}
                )
              ]
            )
          ]
          spids: [19084 19095]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName Uflag)})
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<upload_webrev>})
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          spids: [19125 19136]
        )
      ]
      else_action: []
      redirects: []
    )
  ]
)