(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKEDBM='> name:MAKEDBM)
          op: assign_op.Equal
          rhs: {<'/usr/sbin/makedbm'>}
          spids: [97]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STDHOSTS='> name:STDHOSTS)
          op: assign_op.Equal
          rhs: {<'/usr/lib/netsvc/yp/stdhosts'>}
          spids: [100]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MULTIAWK='> name:MULTIAWK)
          op: assign_op.Equal
          rhs: {<'/usr/lib/netsvc/yp/multi.awk'>}
          spids: [103]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP='> name:MAP)
          op: assign_op.Equal
          rhs: {(DQ <hosts.byname>)}
          spids: [106]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Usage: multi [-b] [-l] [-s] [-n] [hosts file]\n'> <'Where:\n'> 
                <'\t-b\tAdd YP_INTERDOMAIN flag to hosts map\n'> <'\t-l\tConvert keys to lower case before creating map\n'> <'\t-s\tAdd YP_SECURE flag to hosts map\n'> 
                <'\t-n\tAdd IPv6 and IPv4 host addresses to ipnodes map\n'> <'\n'> <'\thosts file defaults to /etc/hosts'>
              )
            }
          spids: [112]
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: (condition.Shell commands:[(C {<getopts>} {<blsn>} {<c>})])
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName c)}
              arms: [
                (case_arm
                  pat_list: [{<b>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BFLAG='> name:BFLAG)
                          op: assign_op.Equal
                          rhs: {<-b>}
                          spids: [146]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [143 144 148 -1]
                )
                (case_arm
                  pat_list: [{<l>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LFLAG='> name:LFLAG)
                          op: assign_op.Equal
                          rhs: {<-l>}
                          spids: [154]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [151 152 156 -1]
                )
                (case_arm
                  pat_list: [{<s>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SFLAG='> name:SFLAG)
                          op: assign_op.Equal
                          rhs: {<-s>}
                          spids: [162]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [159 160 164 -1]
                )
                (case_arm
                  pat_list: [{<n>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NFLAG='> name:NFLAG)
                          op: assign_op.Equal
                          rhs: {<-n>}
                          spids: [170]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [167 168 172 -1]
                )
                (case_arm
                  pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}]
                  action: [
                    (C {<echo>} {(DQ ($ Id.VSub_DollarName USAGE))})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  spids: [175 176 188 -1]
                )
              ]
              redirects: []
            )
          ]
        )
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName NFLAG))} {<Id.Lit_Equals '='>} 
                  {(DQ <-n>)} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP='> name:MAP)
                  op: assign_op.Equal
                  rhs: {(DQ <ipnodes.byname>)}
                  spids: [215]
                )
              ]
              redirects: []
            )
          ]
          spids: [196 212]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<shift>} 
      {
        (command_sub
          left_token: <Id.Left_Backtick '`'>
          child: (C {<expr>} {($ Id.VSub_DollarName OPTIND)} {<->} {<1>})
          right: <Id.Backtick_Right '`'>
        )
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOSTS='> name:HOSTS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [251]
                )
              ]
              redirects: []
            )
          ]
          spids: [238 248]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName NFLAG))} {<Id.Lit_Equals '='>} 
                  {(DQ <-n>)} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOSTS='> name:HOSTS)
                  op: assign_op.Equal
                  rhs: {<'/etc/inet/ipnodes'>}
                  spids: [273]
                )
              ]
              redirects: []
            )
          ]
          spids: [254 270]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOSTS='> name:HOSTS)
              op: assign_op.Equal
              rhs: {<'/etc/hosts'>}
              spids: [279]
            )
          ]
          redirects: []
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName HOSTS))} {<Id.Lit_Equals '='>} 
                  {(DQ <->)} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(C {<unset>} {<HOSTS>})]
          spids: [285 301]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<cd>} 
          {<'/var/yp/'> 
            (command_sub
              left_token: <Id.Left_Backtick '`'>
              child: (C {<domainname>})
              right: <Id.Backtick_Right '`'>
            )
          }
        )
        (command.Pipeline
          children: [
            (C {<sed>} {<-e>} {(SQ <'/^[ \t]*$/d'>)} {<-e>} {(SQ <'/^#/d'>)} {<-e>} {(SQ <'s/#.*$//'>)} 
              {($ Id.VSub_DollarName HOSTS)}
            )
            (C {($ Id.VSub_DollarName STDHOSTS)} {($ Id.VSub_DollarName NFLAG)})
            (C {($ Id.VSub_DollarName MULTIAWK)} {<->})
            (C {($ Id.VSub_DollarName MAKEDBM)} {($ Id.VSub_DollarName BFLAG)} 
              {($ Id.VSub_DollarName LFLAG)} {($ Id.VSub_DollarName SFLAG)} {<->} {($ Id.VSub_DollarName MAP)}
            )
          ]
          negated: F
          stderr_indices: []
        )
      ]
    )
  ]
)