(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{(gawk)} {(--version)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:109)
              fd: -1
              arg_word: {(/dev/null)}
            )
          ]
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:114)
          arg_word: {(1)}
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                  {(DQ (--version))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:134)
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'0.23\\n' span_id:142))})
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:147)
                )
              ]
            )
          ]
          spids: [119 136]
        )
      ]
    )
    (command.ShFunction
      name: usage
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [
                {(printf)}
                {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:161))}
                {
                  (SQ 
                    (Token
                      id: Id.Lit_Chars
                      val: 'This utility converts ANSI codes in data passed to stdin\n'
                      span_id: 166
                    ) (Token id:Id.Lit_Chars val:'It has 4 optional parameters:\n' span_id:167) 
                    (Token
                      id: Id.Lit_Chars
                      val: 
'--bg=dark --palette=linux|solarized|tango|xterm --css-only|--body-only\n'
                      span_id: 168
                    ) 
                    (Token
                      id: Id.Lit_Chars
                      val: 'E.g.: ls -l --color=always | ansi2html.sh --bg=dark > ls.html'
                      span_id: 169
                    )
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:172)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:176)
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                  {(DQ (--help))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:196)
            )
          ]
          action: [(C {(usage)})]
          spids: [181 198]
        )
      ]
    )
    (command.ShFunction
      name: processArg
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                  {(DQ ('--bg=dark'))} {(Id.Lit_RBracket ']')}
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:dark_bg)
                              op: assign_op.Equal
                              rhs: {(yes)}
                              spids: [231]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:233)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:235)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:236)
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                  {(DQ (--css-only))} {(Id.Lit_RBracket ']')}
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:css_only)
                              op: assign_op.Equal
                              rhs: {(yes)}
                              spids: [259]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:261)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:263)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:264)
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                  {(DQ (--body-only))} {(Id.Lit_RBracket ']')}
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:body_only)
                              op: assign_op.Equal
                              rhs: {(yes)}
                              spids: [287]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:289)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:291)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:292)
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                          {(DQ ('--palette=solarized'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:312)
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P0)
                              op: assign_op.Equal
                              rhs: {(073642)}
                              spids: [321]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:323)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P1)
                              op: assign_op.Equal
                              rhs: {(D30102)}
                              spids: [325]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:327)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P2)
                              op: assign_op.Equal
                              rhs: {(859900)}
                              spids: [329]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:331)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P3)
                              op: assign_op.Equal
                              rhs: {(B58900)}
                              spids: [333]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:335)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P4)
                              op: assign_op.Equal
                              rhs: {(268BD2)}
                              spids: [338]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:340)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P5)
                              op: assign_op.Equal
                              rhs: {(D33682)}
                              spids: [342]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:344)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P6)
                              op: assign_op.Equal
                              rhs: {(2AA198)}
                              spids: [346]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:348)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P7)
                              op: assign_op.Equal
                              rhs: {(EEE8D5)}
                              spids: [350]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:352)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P8)
                              op: assign_op.Equal
                              rhs: {(002B36)}
                              spids: [355]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:357)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P9)
                              op: assign_op.Equal
                              rhs: {(CB4B16)}
                              spids: [359]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:361)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P10)
                              op: assign_op.Equal
                              rhs: {(586E75)}
                              spids: [363]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:365)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P11)
                              op: assign_op.Equal
                              rhs: {(657B83)}
                              spids: [367]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:369)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P12)
                              op: assign_op.Equal
                              rhs: {(839496)}
                              spids: [372]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:374)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P13)
                              op: assign_op.Equal
                              rhs: {(6C71C4)}
                              spids: [376]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:378)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P14)
                              op: assign_op.Equal
                              rhs: {(93A1A1)}
                              spids: [380]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:382)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P15)
                              op: assign_op.Equal
                              rhs: {(FDF6E3)}
                              spids: [384]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:386)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:389)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:390)
                    )
                  ]
                  spids: [297 314]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                          {(DQ ('--palette=solarized-xterm'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:408)
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P0)
                              op: assign_op.Equal
                              rhs: {(262626)}
                              spids: [417]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:419)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P1)
                              op: assign_op.Equal
                              rhs: {(AF0000)}
                              spids: [421]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:423)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P2)
                              op: assign_op.Equal
                              rhs: {(5F8700)}
                              spids: [425]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:427)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P3)
                              op: assign_op.Equal
                              rhs: {(AF8700)}
                              spids: [429]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:431)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P4)
                              op: assign_op.Equal
                              rhs: {(0087FF)}
                              spids: [434]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:436)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P5)
                              op: assign_op.Equal
                              rhs: {(AF005F)}
                              spids: [438]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:440)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P6)
                              op: assign_op.Equal
                              rhs: {(00AFAF)}
                              spids: [442]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:444)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P7)
                              op: assign_op.Equal
                              rhs: {(E4E4E4)}
                              spids: [446]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:448)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P8)
                              op: assign_op.Equal
                              rhs: {(1C1C1C)}
                              spids: [451]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:453)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P9)
                              op: assign_op.Equal
                              rhs: {(D75F00)}
                              spids: [455]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:457)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P10)
                              op: assign_op.Equal
                              rhs: {(585858)}
                              spids: [459]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:461)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P11)
                              op: assign_op.Equal
                              rhs: {(626262)}
                              spids: [463]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:465)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P12)
                              op: assign_op.Equal
                              rhs: {(808080)}
                              spids: [468]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:470)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P13)
                              op: assign_op.Equal
                              rhs: {(5F5FAF)}
                              spids: [472]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:474)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P14)
                              op: assign_op.Equal
                              rhs: {(8A8A8A)}
                              spids: [476]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:478)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P15)
                              op: assign_op.Equal
                              rhs: {(FFFFD7)}
                              spids: [480]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:482)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:485)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:486)
                    )
                  ]
                  spids: [393 410]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                          {(DQ ('--palette=tango'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:504)
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P0)
                              op: assign_op.Equal
                              rhs: {(000000)}
                              spids: [513]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:515)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P1)
                              op: assign_op.Equal
                              rhs: {(CC0000)}
                              spids: [517]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:519)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P2)
                              op: assign_op.Equal
                              rhs: {(4E9A06)}
                              spids: [521]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:523)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P3)
                              op: assign_op.Equal
                              rhs: {(C4A000)}
                              spids: [525]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:527)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P4)
                              op: assign_op.Equal
                              rhs: {(3465A4)}
                              spids: [530]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:532)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P5)
                              op: assign_op.Equal
                              rhs: {(75507B)}
                              spids: [534]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:536)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P6)
                              op: assign_op.Equal
                              rhs: {(06989A)}
                              spids: [538]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:540)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P7)
                              op: assign_op.Equal
                              rhs: {(D3D7CF)}
                              spids: [542]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:544)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P8)
                              op: assign_op.Equal
                              rhs: {(555753)}
                              spids: [547]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:549)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P9)
                              op: assign_op.Equal
                              rhs: {(EF2929)}
                              spids: [551]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:553)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P10)
                              op: assign_op.Equal
                              rhs: {(8AE234)}
                              spids: [555]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:557)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P11)
                              op: assign_op.Equal
                              rhs: {(FCE94F)}
                              spids: [559]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:561)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P12)
                              op: assign_op.Equal
                              rhs: {(729FCF)}
                              spids: [564]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:566)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P13)
                              op: assign_op.Equal
                              rhs: {(AD7FA8)}
                              spids: [568]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:570)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P14)
                              op: assign_op.Equal
                              rhs: {(34E2E2)}
                              spids: [572]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:574)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P15)
                              op: assign_op.Equal
                              rhs: {(EEEEEC)}
                              spids: [576]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:578)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:581)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:582)
                    )
                  ]
                  spids: [489 506]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                          {(DQ ('--palette=xterm'))} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:600)
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P0)
                              op: assign_op.Equal
                              rhs: {(000000)}
                              spids: [605]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:607)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P1)
                              op: assign_op.Equal
                              rhs: {(CD0000)}
                              spids: [609]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:611)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P2)
                              op: assign_op.Equal
                              rhs: {(00CD00)}
                              spids: [613]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:615)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P3)
                              op: assign_op.Equal
                              rhs: {(CDCD00)}
                              spids: [617]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:619)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P4)
                              op: assign_op.Equal
                              rhs: {(0000EE)}
                              spids: [622]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:624)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P5)
                              op: assign_op.Equal
                              rhs: {(CD00CD)}
                              spids: [626]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:628)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P6)
                              op: assign_op.Equal
                              rhs: {(00CDCD)}
                              spids: [630]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:632)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P7)
                              op: assign_op.Equal
                              rhs: {(E5E5E5)}
                              spids: [634]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:636)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P8)
                              op: assign_op.Equal
                              rhs: {(7F7F7F)}
                              spids: [639]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:641)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P9)
                              op: assign_op.Equal
                              rhs: {(FF0000)}
                              spids: [643]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:645)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P10)
                              op: assign_op.Equal
                              rhs: {(00FF00)}
                              spids: [647]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:649)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P11)
                              op: assign_op.Equal
                              rhs: {(FFFF00)}
                              spids: [651]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:653)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P12)
                              op: assign_op.Equal
                              rhs: {(5C5CFF)}
                              spids: [656]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:658)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P13)
                              op: assign_op.Equal
                              rhs: {(FF00FF)}
                              spids: [660]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:662)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P14)
                              op: assign_op.Equal
                              rhs: {(00FFFF)}
                              spids: [664]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:666)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:P15)
                              op: assign_op.Equal
                              rhs: {(FFFFFF)}
                              spids: [668]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:670)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:673)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:674)
                    )
                  ]
                  spids: [585 602]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P0)
                          op: assign_op.Equal
                          rhs: {(000000)}
                          spids: [683]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:685)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P1)
                          op: assign_op.Equal
                          rhs: {(AA0000)}
                          spids: [687]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:689)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P2)
                          op: assign_op.Equal
                          rhs: {(00AA00)}
                          spids: [691]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:693)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P3)
                          op: assign_op.Equal
                          rhs: {(AA5500)}
                          spids: [695]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:697)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P4)
                          op: assign_op.Equal
                          rhs: {(0000AA)}
                          spids: [700]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:702)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P5)
                          op: assign_op.Equal
                          rhs: {(AA00AA)}
                          spids: [704]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:706)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P6)
                          op: assign_op.Equal
                          rhs: {(00AAAA)}
                          spids: [708]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:710)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P7)
                          op: assign_op.Equal
                          rhs: {(AAAAAA)}
                          spids: [712]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:714)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P8)
                          op: assign_op.Equal
                          rhs: {(555555)}
                          spids: [717]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:719)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P9)
                          op: assign_op.Equal
                          rhs: {(FF5555)}
                          spids: [721]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:723)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P10)
                          op: assign_op.Equal
                          rhs: {(55FF55)}
                          spids: [725]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:727)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P11)
                          op: assign_op.Equal
                          rhs: {(FFFF55)}
                          spids: [729]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:731)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P12)
                          op: assign_op.Equal
                          rhs: {(5555FF)}
                          spids: [734]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:736)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P13)
                          op: assign_op.Equal
                          rhs: {(FF55FF)}
                          spids: [738]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:740)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P14)
                          op: assign_op.Equal
                          rhs: {(55FFFF)}
                          spids: [742]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:744)
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:P15)
                          op: assign_op.Equal
                          rhs: {(FFFFFF)}
                          spids: [746]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:748)
                )
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                          {(DQ ('--palette=linux'))} {(Id.Lit_RBracket ']')}
                        )
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:767)
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:768)
                )
              ]
            )
          ]
        )
    )
    (C {(processArg)})
    (command.ForEach
      iter_name: var
      iter_words: [{(DQ ($ Id.VSub_At '$@'))}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.Sentence
              child: (C {(processArg)} {($ Id.VSub_DollarName '$var')})
              terminator: (Token id:Id.Op_Semi val:';' span_id:797)
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')})
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (C {(usage)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Pipeline
                  children: [
                    (command.Simple
                      words: [{(sed)} {(--version)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:838)
                          fd: -1
                          arg_word: {(/dev/null)}
                        )
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:841)
                          fd: 2
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                  negated: T
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:843)
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [{(gsed)} {(--version)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:854)
                              fd: -1
                              arg_word: {(/dev/null)}
                            )
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:857)
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:859)
                    )
                  ]
                  action: [(C {(alias)} {(Id.Lit_VarLike 'sed=') (gsed)})]
                  spids: [848 861]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{(echo)} {(DQ ("Error, can't find an acceptable GNU sed."))}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:879)
                      fd: -1
                      arg_word: {(2)}
                    )
                  ]
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:883)
                  arg_word: {(1)}
                )
              ]
            )
          ]
          spids: [830 845]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')})
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:916))} 
          {
            (DQ ('<html>\n') ('<head>\n') ('<meta http-equiv=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:923)
              ) (Content-Type) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:925)) 
              (' content=') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:927)) 
              ('text/html; charset=utf-8') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:929)) ('/>\n') 
              ('<style type=') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:932)) (text/css) 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:934)
              ) ('>\n')
            )
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (C {(printf)} 
          {
            (DQ ('.ef0,.f0 { color: #') ($ Id.VSub_DollarName '$P0') 
              ('; } .eb0,.b0 { background-color: #') ($ Id.VSub_DollarName '$P0') ('; }\n') ('.ef1,.f1 { color: #') ($ Id.VSub_DollarName '$P1') 
              ('; } .eb1,.b1 { background-color: #') ($ Id.VSub_DollarName '$P1') ('; }\n') ('.ef2,.f2 { color: #') ($ Id.VSub_DollarName '$P2') 
              ('; } .eb2,.b2 { background-color: #') ($ Id.VSub_DollarName '$P2') ('; }\n') ('.ef3,.f3 { color: #') ($ Id.VSub_DollarName '$P3') 
              ('; } .eb3,.b3 { background-color: #') ($ Id.VSub_DollarName '$P3') ('; }\n') ('.ef4,.f4 { color: #') ($ Id.VSub_DollarName '$P4') 
              ('; } .eb4,.b4 { background-color: #') ($ Id.VSub_DollarName '$P4') ('; }\n') ('.ef5,.f5 { color: #') ($ Id.VSub_DollarName '$P5') 
              ('; } .eb5,.b5 { background-color: #') ($ Id.VSub_DollarName '$P5') ('; }\n') ('.ef6,.f6 { color: #') ($ Id.VSub_DollarName '$P6') 
              ('; } .eb6,.b6 { background-color: #') ($ Id.VSub_DollarName '$P6') ('; }\n') ('.ef7,.f7 { color: #') ($ Id.VSub_DollarName '$P7') 
              ('; } .eb7,.b7 { background-color: #') ($ Id.VSub_DollarName '$P7') ('; }\n') ('.ef8, .f0 > .bold,.bold > .f0 { color: #') 
              ($ Id.VSub_DollarName '$P8') ('; font-weight: normal; }\n') ('.ef9, .f1 > .bold,.bold > .f1 { color: #') 
              ($ Id.VSub_DollarName '$P9') ('; font-weight: normal; }\n') ('.ef10,.f2 > .bold,.bold > .f2 { color: #') 
              ($ Id.VSub_DollarName '$P10') ('; font-weight: normal; }\n') ('.ef11,.f3 > .bold,.bold > .f3 { color: #') 
              ($ Id.VSub_DollarName '$P11') ('; font-weight: normal; }\n') ('.ef12,.f4 > .bold,.bold > .f4 { color: #') 
              ($ Id.VSub_DollarName '$P12') ('; font-weight: normal; }\n') ('.ef13,.f5 > .bold,.bold > .f5 { color: #') 
              ($ Id.VSub_DollarName '$P13') ('; font-weight: normal; }\n') ('.ef14,.f6 > .bold,.bold > .f6 { color: #') 
              ($ Id.VSub_DollarName '$P14') ('; font-weight: normal; }\n') ('.ef15,.f7 > .bold,.bold > .f7 { color: #') 
              ($ Id.VSub_DollarName '$P15') ('; font-weight: normal; }\n') ('.eb8  { background-color: #') ($ Id.VSub_DollarName '$P8') ('; }\n') 
              ('.eb9  { background-color: #') ($ Id.VSub_DollarName '$P9') ('; }\n') ('.eb10 { background-color: #') ($ Id.VSub_DollarName '$P10') 
              ('; }\n') ('.eb11 { background-color: #') ($ Id.VSub_DollarName '$P11') ('; }\n') ('.eb12 { background-color: #') 
              ($ Id.VSub_DollarName '$P12') ('; }\n') ('.eb13 { background-color: #') ($ Id.VSub_DollarName '$P13') ('; }\n') 
              ('.eb14 { background-color: #') ($ Id.VSub_DollarName '$P14') ('; }\n') ('.eb15 { background-color: #') ($ Id.VSub_DollarName '$P15') 
              ('; }\n')
            )
          }
        )
      ]
    )
    (command.ForEach
      iter_name: red
      iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ForEach
              iter_name: green
              iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ForEach
                      iter_name: blue
                      iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:c)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Plus
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Plus
                                                    left: (arith_expr.ArithWord w:{(Id.Lit_Digits 16)})
                                                    right: 
                                                      (arith_expr.Binary
                                                        op_id: Id.Arith_Star
                                                        left: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$red')}
                                                          )
                                                        right: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 36)}
                                                          )
                                                      )
                                                  )
                                                right: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$green')}
                                                      )
                                                    right: (arith_expr.ArithWord w:{(Id.Lit_Digits 6)})
                                                  )
                                              )
                                            right: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$blue')}
                                              )
                                          )
                                      )
                                    }
                                  spids: [1113]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:r)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$red')}
                                                      )
                                                    right: 
                                                      (arith_expr.ArithWord
                                                        w: {(Id.Lit_Digits 40)}
                                                      )
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 55)})
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$red')}
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                              )
                                          )
                                      )
                                    }
                                  spids: [1144]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:g)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$green')}
                                                      )
                                                    right: 
                                                      (arith_expr.ArithWord
                                                        w: {(Id.Lit_Digits 40)}
                                                      )
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 55)})
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$green')}
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                              )
                                          )
                                      )
                                    }
                                  spids: [1171]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:b)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$blue')}
                                                      )
                                                    right: 
                                                      (arith_expr.ArithWord
                                                        w: {(Id.Lit_Digits 40)}
                                                      )
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 55)})
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$blue')}
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                              )
                                          )
                                      )
                                    }
                                  spids: [1198]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} 
                                  {(Id.Lit_RBracket ']')}
                                )
                                (C {(printf)} {(DQ ('.ef%d { color: #%2.2x%2.2x%2.2x; } '))} 
                                  {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$r')} {($ Id.VSub_DollarName '$g')} {($ Id.VSub_DollarName '$b')}
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} 
                                  {(Id.Lit_RBracket ']')}
                                )
                                (C {(printf)} 
                                  {
                                    (DQ ('.eb%d { background-color: #%2.2x%2.2x%2.2x; }') 
                                      (Id.Lit_Other '\\') (n)
                                    )
                                  } {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$r')} {($ Id.VSub_DollarName '$g')} 
                                  {($ Id.VSub_DollarName '$b')}
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ForEach
      iter_name: gray
      iter_words: [
        {
          (command_sub
            left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1290)
            command_list: (command.CommandList children:[(C {(seq)} {(0)} {(23)})])
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:c)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$gray')})
                            right: (arith_expr.ArithWord w:{(Id.Lit_Digits 232)})
                          )
                      )
                    }
                  spids: [1302]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:l)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Star
                                left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$gray')})
                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)})
                              )
                            right: (arith_expr.ArithWord w:{(Id.Lit_Digits 8)})
                          )
                      )
                    }
                  spids: [1311]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} 
                  {(Id.Lit_RBracket ']')}
                )
                (C {(printf)} {(DQ ('.ef%d { color: #%2.2x%2.2x%2.2x; } '))} 
                  {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$l')} {($ Id.VSub_DollarName '$l')} {($ Id.VSub_DollarName '$l')}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} 
                  {(Id.Lit_RBracket ']')}
                )
                (C {(printf)} 
                  {(DQ ('.eb%d { background-color: #%2.2x%2.2x%2.2x; }') (Id.Lit_Other '\\') (n))} {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$l')} {($ Id.VSub_DollarName '$l')} 
                  {($ Id.VSub_DollarName '$l')}
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:1391))} 
          {
            (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1395) 
              (Token id:Id.Lit_Chars val:'.f9 { color: ' span_id:1396)
            ) 
            (command_sub
              left_token: (Token id:Id.Left_Backtick val:'`' span_id:1398)
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                        (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P7') (';'))})
                        (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P0') (';'))})
                      ]
                    )
                  ]
                )
            ) 
            (SQ (Token id:Id.Lit_Chars val:' }\n' span_id:1430) 
              (Token id:Id.Lit_Chars val:'.b9 { background-color: #' span_id:1431)
            ) 
            (command_sub
              left_token: (Token id:Id.Left_Backtick val:'`' span_id:1433)
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                        (C {(printf)} {($ Id.VSub_DollarName '$P0')})
                        (C {(printf)} {($ Id.VSub_DollarName '$P15')})
                      ]
                    )
                  ]
                )
            ) 
            (SQ (Token id:Id.Lit_Chars val:'; }\n' span_id:1457) 
              (Token
                id: Id.Lit_Chars
                val: '.f9 > .bold,.bold > .f9, body.f9 > pre > .bold {\n'
                span_id: 1458
              ) (Token id:Id.Lit_Chars val:'  /* Bold is heavy black on white, or bright white\n' span_id:1459) 
              (Token
                id: Id.Lit_Chars
                val: '     depending on the default background */\n'
                span_id: 1460
              ) (Token id:Id.Lit_Chars val:'  color: ' span_id:1461)
            ) 
            (command_sub
              left_token: (Token id:Id.Left_Backtick val:'`' span_id:1463)
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                        (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P15') (';'))})
                        (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P0') (';'))})
                      ]
                    )
                  ]
                )
            ) 
            (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1495) 
              (Token id:Id.Lit_Chars val:'  font-weight: ' span_id:1496)
            ) 
            (command_sub
              left_token: (Token id:Id.Left_Backtick val:'`' span_id:1498)
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                        (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'normal;' span_id:1514))})
                        (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'bold;' span_id:1522))})
                      ]
                    )
                  ]
                )
            ) 
            (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1526) 
              (Token id:Id.Lit_Chars val:'}\n' span_id:1527) (Token id:Id.Lit_Chars val:'.reverse {\n' span_id:1528) 
              (Token
                id: Id.Lit_Chars
                val: '  /* CSS does not support swapping fg and bg colours unfortunately,\n'
                span_id: 1529
              ) 
              (Token
                id: Id.Lit_Chars
                val: '     so just hardcode something that will look OK on all backgrounds. */\n'
                span_id: 1530
              ) (Token id:Id.Lit_Chars val:'  ' span_id:1531)
            ) 
            (DQ ('color: #') ($ Id.VSub_DollarName '$P0') ('; background-color: #') 
              ($ Id.VSub_DollarName '$P7') (';')
            ) 
            (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1541) 
              (Token id:Id.Lit_Chars val:'}\n' span_id:1542) (Token id:Id.Lit_Chars val:'.underline { text-decoration: underline; }\n' span_id:1543) 
              (Token
                id: Id.Lit_Chars
                val: '.line-through { text-decoration: line-through; }\n'
                span_id: 1544
              ) (Token id:Id.Lit_Chars val:'.blink { text-decoration: blink; }\n' span_id:1545) 
              (Token id:Id.Lit_Chars val:'\n' span_id:1546) (Token id:Id.Lit_Chars val:'/* Avoid pixels between adjacent span elements.\n' span_id:1547) 
              (Token
                id: Id.Lit_Chars
                val: '   Note this only works for lines less than 80 chars\n'
                span_id: 1548
              ) (Token id:Id.Lit_Chars val:'   where we close span elements on the same line.\n' span_id:1549) 
              (Token
                id: Id.Lit_Chars
                val: 'span { display: inline-block; }\n'
                span_id: 1550
              ) (Token id:Id.Lit_Chars val:'*/\n' span_id:1551)
            )
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe Id.Op_DAmp]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')})
        (command.Simple
          words: [
            {(printf)}
            {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:1577))}
            {
              (SQ 
                (Token
                  id: Id.Lit_Chars
                  val: 'To use the css generated from --css-only, do: '
                  span_id: 1582
                )
              ) 
              (SQ 
                (Token
                  id: Id.Lit_Chars
                  val: '<head><link rel="stylesheet" type="text/css" href="style.css"></head>'
                  span_id: 1586
                )
              )
            }
          ]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1589)
              fd: -1
              arg_word: {(2)}
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')})
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1602))
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:1617))} 
          {
            (SQ (Token id:Id.Lit_Chars val:'</style>\n' span_id:1621) 
              (Token id:Id.Lit_Chars val:'</head>\n' span_id:1622) (Token id:Id.Lit_Chars val:'\n' span_id:1623) 
              (Token id:Id.Lit_Chars val:'<body class="f9 b9">\n' span_id:1624) (Token id:Id.Lit_Chars val:'<pre>\n' span_id:1625)
            )
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (command.Simple
          words: [
            {(printf)}
            {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:1641))}
            {
              (SQ 
                (Token
                  id: Id.Lit_Chars
                  val: 'Be sure to use <body class="f9 b9"> and <pre>'
                  span_id: 1645
                )
              )
            }
          ]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1648)
              fd: -1
              arg_word: {(2)}
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:p)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'\\x1b\\[' span_id:1654))}
          spids: [1652]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(sed)} 
          {
            (DQ ('\n') ('# escape ampersand and quote\n') ('s#&#') (Id.Lit_Other '\\') ('&amp;#g; s#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1675)
              ) ('#') (Id.Lit_Other '\\') ('&quot;#g;\n') ('s#') (Id.Lit_Other '\\') ('x1b[^') (Id.Lit_Other '\\') ('x1b]*') 
              (Id.Lit_Other '\\') (x1b) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:1686)) 
              (Id.Lit_Other '\\') ('##g  # strip anything between ') (Id.Lit_Other '\\') ('e and ST\n') ('s#') (Id.Lit_Other '\\') 
              ('x1b][0-9]*;[^') (Id.Lit_Other '\\') ('a]*') (Id.Lit_Other '\\') ('a##g # strip any OSC (xterm title etc.)\n') ('\n') 
              ('s#') (Id.Lit_Other '\\') (r) 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1702)
              ) ('## # strip trailing ') (Id.Lit_Other '\\') ('r\n') ('\n') ('# strip other non SGR escape sequences\n') 
              ('s#[') (Id.Lit_Other '\\') ('x07]##g\n') ('s#') (Id.Lit_Other '\\') ('x1b[]>=') (Id.Lit_Other '\\') 
              ('][0-9;]*##g\n') ('s#') (Id.Lit_Other '\\') ('x1bP+.') (Id.Lit_Other '\\') ('{5') (Id.Lit_Other '\\') ('}##g\n') 
              ('# Mark cursor positioning codes ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:1724)) ('Jr;c;\n') 
              ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,2') (Id.Lit_Other '\\') ('}') 
              (Id.Lit_Other '\\') (')G#') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:1738)) ('J;') 
              (Id.Lit_Other '\\') ('1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,2') 
              (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (');') (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,2') 
              (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')H#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1762)
              ) (J) (Id.Lit_Other '\\') ('1;') (Id.Lit_Other '\\') ('2;#g\n') ('\n') ('# Mark clear as ') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1770)
              ) ('Cn where n=1 is screen and n=0 is to end-of-line\n') ('s#') (${ Id.VSub_Name p) ('H#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1777)
              ) ('C1;#g\n') ('s#') (${ Id.VSub_Name p) ('K#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1784)
              ) ('C0;#g\n') ('# Mark Cursor move columns as ') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1787)
              ) ('Mn where n is +ve for right, -ve for left\n') ('s#') (${ Id.VSub_Name p) ('C#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1794)
              ) ('M1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,') 
              (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')C#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1808)
              ) (M) (Id.Lit_Other '\\') ('1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') 
              (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')D#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1824)
              ) (M-) (Id.Lit_Other '\\') ('1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') 
              (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')P#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1840)
              ) (X) (Id.Lit_Other '\\') ('1;#g\n') ('\n') ('s#') (${ Id.VSub_Name p) ('[0-9;?]*[^0-9;?m]##g\n') ('\n')
            )
          }
        )
        (C {(sed)} 
          {
            (DQ ('\n') ('# escape HTML (ampersand and quote done above)\n') ('s#>#') (Id.Lit_Other '\\') 
              ('&gt;#g; s#<#') (Id.Lit_Other '\\') ('&lt;#g;\n') ('\n') ('# normalize SGR codes a little\n') ('\n') 
              ("# split 256 colors out and mark so that they're not\n") ("# recognised by the following 'split combined' line\n") (':e\n') ('s#') (${ Id.VSub_Name p) 
              (Id.Lit_Other '\\') ('([0-9;]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (');') 
              (Id.Lit_Other '\\') ('([34]8;5;[0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#') 
              (${ Id.VSub_Name p) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) ('\xc2\xac') (Id.Lit_Other '\\') ('2m#g; t e\n') ('s#') 
              (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([34]8;5;[0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') 
              (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) ('\xc2\xac') (Id.Lit_Other '\\') ('1m#g;\n') ('\n') (':c\n') ('s#') 
              (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') 
              (');') (Id.Lit_Other '\\') ('([0-9;]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') 
              (')m#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) (Id.Lit_Other '\\') 
              ('2m#g; t c   # split combined\n') ('s#') (${ Id.VSub_Name p) (0) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')#') (${ Id.VSub_Name p) 
              (Id.Lit_Other '\\') ('1#g                                 #strip leading 0\n') ('s#') (${ Id.VSub_Name p) (1m) 
              (Id.Lit_Other '\\') ('(') (Id.Lit_Other '\\') ('(') (${ Id.VSub_Name p) ('[4579]m') (Id.Lit_Other '\\') (')*') 
              (Id.Lit_Other '\\') (')#') (Id.Lit_Other '\\') (1) (${ Id.VSub_Name p) ('1m#g                   #bold last (with clr)\n') 
              ('s#') (${ Id.VSub_Name p) ('m#') (${ Id.VSub_Name p) 
              ('0m#g                                          #add leading 0 to norm\n') ('\n') ('# undo any 256 color marking\n') ('s#') (${ Id.VSub_Name p) ('\xc2\xac') (Id.Lit_Other '\\') 
              ('([34]8;5;[0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) 
              (Id.Lit_Other '\\') ('1m#g;\n') ('\n') ('# map 16 color codes to color + bold\n') ('s#') (${ Id.VSub_Name p) (9) 
              (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) 
              ('1m#g;\n') ('s#') (${ Id.VSub_Name p) (10) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') 
              (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) ('1m#g;\n') ('\n') ("# change 'reset' code to ") 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2064)
              ) ('R\n') ('s#') (${ Id.VSub_Name p) ('0m#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2071)
              ) ('R;#g\n')
            )
          }
        )
        (C {(sed)} 
          {
            (DQ ('\n') ('# common combinations to minimise html (optional)\n') (':f\n') ('s#') 
              (${ Id.VSub_Name p) ('3[0-7]m') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') 
              (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('1m#g; t f\n') (':b\n') ('s#') (${ Id.VSub_Name p) ('4[0-7]m') (${ Id.VSub_Name p) 
              (4) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') 
              ('1m#g; t b\n') ('s#') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m') (${ Id.VSub_Name p) 
              (4) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2143)
              ) (f) (Id.Lit_Other '\\') ('1 b') (Id.Lit_Other '\\') (2) 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2149)
              ) ('>#g\n') ('s#') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m') 
              (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2168)
              ) (f) (Id.Lit_Other '\\') ('2 b') (Id.Lit_Other '\\') (1) 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2174)
              ) ('>#g\n') ('\n') ('s#') (${ Id.VSub_Name p) ('1m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2182)
              ) (bold) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2184)) ('>#g\n') 
              ('s#') (${ Id.VSub_Name p) ('4m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2191)
              ) (underline) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2193)) 
              ('>#g\n') ('s#') (${ Id.VSub_Name p) ('5m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2200)
              ) (blink) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2202)) ('>#g\n') 
              ('s#') (${ Id.VSub_Name p) ('7m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2209)
              ) (reverse) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2211)) 
              ('>#g\n') ('s#') (${ Id.VSub_Name p) ('9m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2218)
              ) (line-through) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2220)) 
              ('>#g\n') ('s#') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') (')m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2231)
              ) (f) (Id.Lit_Other '\\') (1) 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2235)
              ) ('>#g\n') ('s#') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') 
              (')m#<span class=') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2246)) (b) 
              (Id.Lit_Other '\\') (1) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2250)) ('>#g\n') 
              ('\n') ('s#') (${ Id.VSub_Name p) ('38;5;') (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,3') 
              (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2266)
              ) (ef) (Id.Lit_Other '\\') (1) 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2270)
              ) ('>#g\n') ('s#') (${ Id.VSub_Name p) ('48;5;') (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,3') 
              (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#<span class=') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2285)
              ) (eb) (Id.Lit_Other '\\') (1) 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2289)
              ) ('>#g\n') ('\n') ('s#') (${ Id.VSub_Name p) ('[0-9;]*m##g # strip unhandled codes\n')
            )
          }
        )
        (C {(sed)} 
          {
            (DQ ('\n') ("# change 'smacs' and 'rmacs' to ") 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2349)
              ) ('T1 and ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2351)) 
              ('T0 to simplify matching.\n') ('s#') (Id.Lit_Other '\\') ('x1b(0#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2356)
              ) ('T1;#g;\n') ('s#') (Id.Lit_Other '\\') ('x0E#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2361)
              ) ('T1;#g;\n') ('\n') ('s#') (Id.Lit_Other '\\') ('x1b(B#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2367)
              ) ('T0;#g\n') ('s#') (Id.Lit_Other '\\') ('x0F#') 
              (word_part.EscapedLiteral
                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2372)
              ) ('T0;#g\n')
            )
          }
        )
        (command.Subshell
          command_list: 
            (command.CommandList
              children: [
                (C {(gawk)} 
                  {
                    (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2383) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'function dump_line(l,del,c,blanks,ret) {\n'
                        span_id: 2384
                      ) (Token id:Id.Lit_Chars val:'  for(c=1;c<maxX;c++) {\n' span_id:2385) 
                      (Token
                        id: Id.Lit_Chars
                        val: '    if ((c SUBSEP l) in attr || length(cur)) {\n'
                        span_id: 2386
                      ) (Token id:Id.Lit_Chars val:'      ret = ret blanks fixas(cur,attr[c,l])\n' span_id:2387) 
                      (Token
                        id: Id.Lit_Chars
                        val: '      if(del) delete attr[c,l]\n'
                        span_id: 2388
                      ) (Token id:Id.Lit_Chars val:'      blanks=""\n' span_id:2389) 
                      (Token id:Id.Lit_Chars val:'    }\n' span_id:2390) (Token id:Id.Lit_Chars val:'    if ((c SUBSEP l) in dump) {\n' span_id:2391) 
                      (Token
                        id: Id.Lit_Chars
                        val: '      ret=ret blanks dump[c,l]\n'
                        span_id: 2392
                      ) (Token id:Id.Lit_Chars val:'      if(del) delete dump[c,l]\n' span_id:2393) 
                      (Token
                        id: Id.Lit_Chars
                        val: '      blanks=""\n'
                        span_id: 2394
                      ) (Token id:Id.Lit_Chars val:'    } else blanks=blanks " "\n' span_id:2395) 
                      (Token id:Id.Lit_Chars val:'  }\n' span_id:2396) (Token id:Id.Lit_Chars val:'  if(length(cur)) ret=ret blanks\n' span_id:2397) 
                      (Token id:Id.Lit_Chars val:'  return ret\n' span_id:2398) (Token id:Id.Lit_Chars val:'}\n' span_id:2399) (Token id:Id.Lit_Chars val:'\n' span_id:2400) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'function dump_screen(l,ret) {\n'
                        span_id: 2401
                      ) (Token id:Id.Lit_Chars val:'  for(l=1;l<=maxY;l++)\n' span_id:2402) 
                      (Token
                        id: Id.Lit_Chars
                        val: '    ret=ret dump_line(l,0) "\\n"\n'
                        span_id: 2403
                      ) (Token id:Id.Lit_Chars val:'  return ret fixas(cur, "")\n' span_id:2404) 
                      (Token id:Id.Lit_Chars val:'}\n' span_id:2405) (Token id:Id.Lit_Chars val:'\n' span_id:2406) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'function atos(a,i,ret) {\n'
                        span_id: 2407
                      ) (Token id:Id.Lit_Chars val:'  for(i=1;i<=length(a);i++) if(i in a) ret=ret a[i]\n' span_id:2408) 
                      (Token id:Id.Lit_Chars val:'  return ret\n' span_id:2409) (Token id:Id.Lit_Chars val:'}\n' span_id:2410) (Token id:Id.Lit_Chars val:'\n' span_id:2411) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'function fixas(a,s,spc,i,attr,rm,ret) {\n'
                        span_id: 2412
                      ) (Token id:Id.Lit_Chars val:'  spc=length(a)\n' span_id:2413) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  l=split(s,attr,">")\n'
                        span_id: 2414
                      ) (Token id:Id.Lit_Chars val:'  for(i=1;i<=spc;i++) {\n' span_id:2415) 
                      (Token
                        id: Id.Lit_Chars
                        val: '    rm=rm?rm:(a[i]!=attr[i]">")\n'
                        span_id: 2416
                      ) (Token id:Id.Lit_Chars val:'    if(rm) {\n' span_id:2417) 
                      (Token
                        id: Id.Lit_Chars
                        val: '      ret=ret "</span>"\n'
                        span_id: 2418
                      ) (Token id:Id.Lit_Chars val:'      delete a[i];\n' span_id:2419) 
                      (Token id:Id.Lit_Chars val:'    }\n' span_id:2420) (Token id:Id.Lit_Chars val:'  }\n' span_id:2421) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  for(i=1;i<l;i++) {\n'
                        span_id: 2422
                      ) (Token id:Id.Lit_Chars val:'    attr[i]=attr[i]">"\n' span_id:2423) 
                      (Token
                        id: Id.Lit_Chars
                        val: '    if(a[i]!=attr[i]) {\n'
                        span_id: 2424
                      ) (Token id:Id.Lit_Chars val:'      a[i]=attr[i]\n' span_id:2425) 
                      (Token
                        id: Id.Lit_Chars
                        val: '      ret = ret attr[i]\n'
                        span_id: 2426
                      ) (Token id:Id.Lit_Chars val:'    }\n' span_id:2427) (Token id:Id.Lit_Chars val:'  }\n' span_id:2428) 
                      (Token id:Id.Lit_Chars val:'  return ret\n' span_id:2429) (Token id:Id.Lit_Chars val:'}\n' span_id:2430) (Token id:Id.Lit_Chars val:'\n' span_id:2431) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'function encode(string,start,end,i,ret,pos,sc,buf) {\n'
                        span_id: 2432
                      ) (Token id:Id.Lit_Chars val:'   if(!end) end=length(string);\n' span_id:2433) 
                      (Token
                        id: Id.Lit_Chars
                        val: '   if(!start) start=1;\n'
                        span_id: 2434
                      ) (Token id:Id.Lit_Chars val:'   state=3\n' span_id:2435) 
                      (Token
                        id: Id.Lit_Chars
                        val: '   for(i=1;i<=length(string);i++) {\n'
                        span_id: 2436
                      ) (Token id:Id.Lit_Chars val:'     c=substr(string,i,1)\n' span_id:2437) 
                      (Token
                        id: Id.Lit_Chars
                        val: '     if(state==2) {\n'
                        span_id: 2438
                      ) (Token id:Id.Lit_Chars val:'       sc=sc c\n' span_id:2439) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       if(c==";") {\n'
                        span_id: 2440
                      ) (Token id:Id.Lit_Chars val:'          c=sc\n' span_id:2441) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          state=last_mode\n'
                        span_id: 2442
                      ) (Token id:Id.Lit_Chars val:'       } else continue\n' span_id:2443) 
                      (Token
                        id: Id.Lit_Chars
                        val: '     } else {\n'
                        span_id: 2444
                      ) (Token id:Id.Lit_Chars val:'       if(c=="\\r") { x=1; continue }\n' span_id:2445) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       if(c=="<") {\n'
                        span_id: 2446
                      ) (Token id:Id.Lit_Chars val:'         # Change attributes - store current active\n' span_id:2447) 
                      (Token
                        id: Id.Lit_Chars
                        val: '         # attributes in span array\n'
                        span_id: 2448
                      ) (Token id:Id.Lit_Chars val:'         split(substr(string,i),cord,">");\n' span_id:2449) 
                      (Token
                        id: Id.Lit_Chars
                        val: '         i+=length(cord[1])\n'
                        span_id: 2450
                      ) (Token id:Id.Lit_Chars val:'         span[++spc]=cord[1] ">"\n' span_id:2451) 
                      (Token
                        id: Id.Lit_Chars
                        val: '         continue\n'
                        span_id: 2452
                      ) (Token id:Id.Lit_Chars val:'       }\n' span_id:2453) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       else if(c=="&") {\n'
                        span_id: 2454
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: '         # All goes to single position till we see a semicolon\n'
                        span_id: 2455
                      ) (Token id:Id.Lit_Chars val:'         sc=c\n' span_id:2456) 
                      (Token
                        id: Id.Lit_Chars
                        val: '         state=2\n'
                        span_id: 2457
                      ) (Token id:Id.Lit_Chars val:'         continue\n' span_id:2458) 
                      (Token id:Id.Lit_Chars val:'       }\n' span_id:2459) (Token id:Id.Lit_Chars val:'       else if(c=="\\b") {\n' span_id:2460) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          # backspace move insertion point back 1\n'
                        span_id: 2461
                      ) (Token id:Id.Lit_Chars val:'          if(spc) attr[x,y]=atos(span)\n' span_id:2462) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          x=x>1?x-1:1\n'
                        span_id: 2463
                      ) (Token id:Id.Lit_Chars val:'          continue\n' span_id:2464) 
                      (Token id:Id.Lit_Chars val:'       }\n' span_id:2465) (Token id:Id.Lit_Chars val:'       else if(c=="\\"") {\n' span_id:2466) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          split(substr(string,i+2),cord,";")\n'
                        span_id: 2467
                      ) (Token id:Id.Lit_Chars val:'          cc=substr(string,i+1,1);\n' span_id:2468) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          if(cc=="T") {\n'
                        span_id: 2469
                      ) (Token id:Id.Lit_Chars val:'              # Transliterate on/off\n' span_id:2470) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              if(cord[1]==1&&state==3) last_mode=state=4\n'
                        span_id: 2471
                      ) (Token id:Id.Lit_Chars val:'              if(cord[1]==0&&state==4) last_mode=state=3\n' span_id:2472) 
                      (Token id:Id.Lit_Chars val:'          }\n' span_id:2473) (Token id:Id.Lit_Chars val:'          else if(cc=="C") {\n' span_id:2474) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              # Clear\n'
                        span_id: 2475
                      ) (Token id:Id.Lit_Chars val:'              if(cord[1]+0) {\n' span_id:2476) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                # Screen - if Recording dump screen\n'
                        span_id: 2477
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                if(dumpStatus==dsActive) ret=ret dump_screen()\n'
                        span_id: 2478
                      ) (Token id:Id.Lit_Chars val:'                dumpStatus=dsActive\n' span_id:2479) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                delete dump\n'
                        span_id: 2480
                      ) (Token id:Id.Lit_Chars val:'                delete attr\n' span_id:2481) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                x=y=1\n'
                        span_id: 2482
                      ) (Token id:Id.Lit_Chars val:'              } else {\n' span_id:2483) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                # To end of line\n'
                        span_id: 2484
                      ) (Token id:Id.Lit_Chars val:'                for(pos=x;pos<maxX;pos++) {\n' span_id:2485) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                  dump[pos,y]=" "\n'
                        span_id: 2486
                      ) (Token id:Id.Lit_Chars val:'                  if (!spc) delete attr[pos,y]\n' span_id:2487) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                  else attr[pos,y]=atos(span)\n'
                        span_id: 2488
                      ) (Token id:Id.Lit_Chars val:'                }\n' span_id:2489) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              }\n'
                        span_id: 2490
                      ) (Token id:Id.Lit_Chars val:'          }\n' span_id:2491) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          else if(cc=="J") {\n'
                        span_id: 2492
                      ) (Token id:Id.Lit_Chars val:'              # Jump to x,y\n' span_id:2493) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              i+=length(cord[2])+1\n'
                        span_id: 2494
                      ) (Token id:Id.Lit_Chars val:'              # If line is higher - dump previous screen\n' span_id:2495) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              if(dumpStatus==dsActive&&cord[1]<y) {\n'
                        span_id: 2496
                      ) (Token id:Id.Lit_Chars val:'                ret=ret dump_screen();\n' span_id:2497) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                dumpStatus=dsNew;\n'
                        span_id: 2498
                      ) (Token id:Id.Lit_Chars val:'              }\n' span_id:2499) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              x=cord[2]\n'
                        span_id: 2500
                      ) (Token id:Id.Lit_Chars val:'              if(length(cord[1]) && y!=cord[1]){\n' span_id:2501) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                y=cord[1]\n'
                        span_id: 2502
                      ) (Token id:Id.Lit_Chars val:'                if(y>maxY) maxY=y\n' span_id:2503) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                # Change y - start recording\n'
                        span_id: 2504
                      ) (Token id:Id.Lit_Chars val:'                dumpStatus=dumpStatus?dumpStatus:dsReset\n' span_id:2505) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              }\n'
                        span_id: 2506
                      ) (Token id:Id.Lit_Chars val:'          }\n' span_id:2507) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          else if(cc=="M") {\n'
                        span_id: 2508
                      ) (Token id:Id.Lit_Chars val:'              # Move left/right on current line\n' span_id:2509) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              x+=cord[1]\n'
                        span_id: 2510
                      ) (Token id:Id.Lit_Chars val:'          }\n' span_id:2511) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          else if(cc=="X") {\n'
                        span_id: 2512
                      ) (Token id:Id.Lit_Chars val:'              # delete on right\n' span_id:2513) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              for(pos=x;pos<=maxX;pos++) {\n'
                        span_id: 2514
                      ) (Token id:Id.Lit_Chars val:'                nx=pos+cord[1]\n' span_id:2515) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                if(nx<maxX) {\n'
                        span_id: 2516
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: 
'                  if((nx SUBSEP y) in attr) attr[pos,y] = attr[nx,y]\n'
                        span_id: 2517
                      ) (Token id:Id.Lit_Chars val:'                  else delete attr[pos,y]\n' span_id:2518) 
                      (Token
                        id: Id.Lit_Chars
                        val: 
'                  if((nx SUBSEP y) in dump) dump[pos,y] = dump[nx,y]\n'
                        span_id: 2519
                      ) (Token id:Id.Lit_Chars val:'                  else delete dump[pos,y]\n' span_id:2520) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                } else if(spc) {\n'
                        span_id: 2521
                      ) (Token id:Id.Lit_Chars val:'                  attr[pos,y]=atos(span)\n' span_id:2522) 
                      (Token
                        id: Id.Lit_Chars
                        val: '                  dump[pos,y]=" "\n'
                        span_id: 2523
                      ) (Token id:Id.Lit_Chars val:'                }\n' span_id:2524) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              }\n'
                        span_id: 2525
                      ) (Token id:Id.Lit_Chars val:'          }\n' span_id:2526) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          else if(cc=="R") {\n'
                        span_id: 2527
                      ) (Token id:Id.Lit_Chars val:'              # Reset attributes\n' span_id:2528) 
                      (Token
                        id: Id.Lit_Chars
                        val: '              while(spc) delete span[spc--]\n'
                        span_id: 2529
                      ) (Token id:Id.Lit_Chars val:'          }\n' span_id:2530) 
                      (Token
                        id: Id.Lit_Chars
                        val: '          i+=length(cord[1])+2\n'
                        span_id: 2531
                      ) (Token id:Id.Lit_Chars val:'          continue\n' span_id:2532) 
                      (Token id:Id.Lit_Chars val:'       }\n' span_id:2533) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       else if(state==4&&i>=start&&i<=end&&c in Trans) c=Trans[c]\n'
                        span_id: 2534
                      ) (Token id:Id.Lit_Chars val:'     }\n' span_id:2535) 
                      (Token
                        id: Id.Lit_Chars
                        val: '     if(dumpStatus==dsReset) {\n'
                        span_id: 2536
                      ) (Token id:Id.Lit_Chars val:'       delete dump\n' span_id:2537) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       delete attr\n'
                        span_id: 2538
                      ) (Token id:Id.Lit_Chars val:'       ret=ret"\\n"\n' span_id:2539) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       dumpStatus=dsActive\n'
                        span_id: 2540
                      ) (Token id:Id.Lit_Chars val:'     }\n' span_id:2541) 
                      (Token
                        id: Id.Lit_Chars
                        val: '     if(dumpStatus==dsNew) {\n'
                        span_id: 2542
                      ) (Token id:Id.Lit_Chars val:'       # After moving/clearing we are now ready to write\n' span_id:2543) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       # somthing to the screen so start recording now\n'
                        span_id: 2544
                      ) (Token id:Id.Lit_Chars val:'       ret=ret"\\n"\n' span_id:2545) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       dumpStatus=dsActive\n'
                        span_id: 2546
                      ) (Token id:Id.Lit_Chars val:'     }\n' span_id:2547) 
                      (Token
                        id: Id.Lit_Chars
                        val: '     if(dumpStatus==dsActive||dumpStatus==dsOff) {\n'
                        span_id: 2548
                      ) (Token id:Id.Lit_Chars val:'       dump[x,y] = c\n' span_id:2549) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       if(!spc) delete attr[x,y]\n'
                        span_id: 2550
                      ) (Token id:Id.Lit_Chars val:'       else attr[x,y] = atos(span)\n' span_id:2551) 
                      (Token
                        id: Id.Lit_Chars
                        val: '       if(++x>maxX) maxX=x;\n'
                        span_id: 2552
                      ) (Token id:Id.Lit_Chars val:'     }\n' span_id:2553) (Token id:Id.Lit_Chars val:'    }\n' span_id:2554) 
                      (Token
                        id: Id.Lit_Chars
                        val: 
'    # End of line if dumping increment y and set x back to first col\n'
                        span_id: 2555
                      ) (Token id:Id.Lit_Chars val:'    x=1\n' span_id:2556) 
                      (Token
                        id: Id.Lit_Chars
                        val: '    if(!dumpStatus) return ret dump_line(y,1);\n'
                        span_id: 2557
                      ) (Token id:Id.Lit_Chars val:'    else if(++y>maxY) maxY=y;\n' span_id:2558) 
                      (Token
                        id: Id.Lit_Chars
                        val: '    return ret\n'
                        span_id: 2559
                      ) (Token id:Id.Lit_Chars val:'}\n' span_id:2560) (Token id:Id.Lit_Chars val:'BEGIN{\n' span_id:2561) 
                      (Token id:Id.Lit_Chars val:'  OFS=FS\n' span_id:2562) (Token id:Id.Lit_Chars val:'  # dump screen status\n' span_id:2563) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  dsOff=0    # Not dumping screen contents just write output direct\n'
                        span_id: 2564
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: 
'  dsNew=1    # Just after move/clear waiting for activity to start recording\n'
                        span_id: 2565
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  dsReset=2  # Screen cleared build new empty buffer and record\n'
                        span_id: 2566
                      ) (Token id:Id.Lit_Chars val:'  dsActive=3 # Currently recording\n' span_id:2567) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  F="abcdefghijklmnopqrstuvwxyz{}`~"\n'
                        span_id: 2568
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: 
'  T="\xe2\x96\x92\xe2\x90\x89\xe2\x90\x8c\xe2\x90\x8d\xe2\x90\x8a\xc2\xb0\xc2\xb1\xe2\x90\xa4\xe2\x90\x8b\xe2\x94\x98\xe2\x94\x90\xe2\x94\x8c\xe2\x94\x94\xe2\x94\xbc\xe2\x8e\xba\xe2\x8e\xbb\xe2\x94\x80\xe2\x8e\xbc\xe2\x8e\xbd\xe2\x94\x9c\xe2\x94\xa4\xe2\x94\xb4\xe2\x94\xac\xe2\x94\x82\xe2\x89\xa4\xe2\x89\xa5\xcf\x80\xc2\xa3\xe2\x97\x86\xc2\xb7"\n'
                        span_id: 2569
                      ) (Token id:Id.Lit_Chars val:'  maxX=80\n' span_id:2570) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  delete cur;\n'
                        span_id: 2571
                      ) (Token id:Id.Lit_Chars val:'  x=y=1\n' span_id:2572) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  for(i=1;i<=length(F);i++)Trans[substr(F,i,1)]=substr(T,i,1);\n'
                        span_id: 2573
                      ) (Token id:Id.Lit_Chars val:'}\n' span_id:2574) (Token id:Id.Lit_Chars val:'\n' span_id:2575) 
                      (Token
                        id: Id.Lit_Chars
                        val: '{ $0=encode($0) }\n'
                        span_id: 2576
                      ) (Token id:Id.Lit_Chars val:'1\n' span_id:2577) (Token id:Id.Lit_Chars val:'END {\n' span_id:2578) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  if(dumpStatus) {\n'
                        span_id: 2579
                      ) (Token id:Id.Lit_Chars val:'    print dump_screen();\n' span_id:2580) 
                      (Token id:Id.Lit_Chars val:'  }\n' span_id:2581) (Token id:Id.Lit_Chars val:'}' span_id:2582)
                    )
                  }
                )
              ]
            )
        )
      ]
      negated: F
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')})
        (C {(printf)} 
          {
            (SQ (Token id:Id.Lit_Chars val:'</pre>\n' span_id:2601) 
              (Token id:Id.Lit_Chars val:'</body>\n' span_id:2602) (Token id:Id.Lit_Chars val:'</html>\\n' span_id:2603)
            )
          }
        )
      ]
    )
  ]
)