(command.CommandList
  children: [
    (C {<export>} {<Id.Lit_VarLike 'DESTTREE='> <'/usr'>})
    (C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> (DQ )})
    (C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ )})
    (C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ )})
    (C {<export>} {<Id.Lit_VarLike 'INSOPTIONS='> (DQ <-m0644>)})
    (C {<export>} {<Id.Lit_VarLike 'EXEOPTIONS='> (DQ <-m0755>)})
    (C {<export>} {<Id.Lit_VarLike 'LIBOPTIONS='> (DQ <-m0644>)})
    (C {<export>} {<Id.Lit_VarLike 'DIROPTIONS='> (DQ <-m0755>)})
    (C {<export>} {<Id.Lit_VarLike 'MOPREFIX='> (${ Id.VSub_Name PN)})
    (C {<export>} {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS_SIZE_LIMIT='> (DQ <128>)})
    (C {<declare>} {<-a>} 
      {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS='> 
        (sh_array_literal
          left: <Id.Op_LParen _>
          words: [
            (word.BracedTree
              parts: [<'/usr/share/'> (word_part.BracedTuple words:[{<doc>} {<info>} {<man>}])]
            )
          ]
        )
      }
    )
    (C {<declare>} {<-a>} 
      {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS_SKIP='> 
        (sh_array_literal
          left: <Id.Op_LParen _>
          words: [{<'/usr/share/doc/'> (${ Id.VSub_Name PF) <'/html'>}]
        )
      }
    )
    (command.ShFunction
      name: into
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike 'DESTTREE='> (DQ )})]
                  spids: [119 137]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike 'DESTTREE='> ($ Id.VSub_Number 1)})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                  stderr_indices: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [156 163]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name DESTTREE))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name DESTTREE))})
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName ret)}
                                              right: {<0>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName ret)}
                                )
                              ]
                              spids: [220 234]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [177 197]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: insinto
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> (DQ )})]
                  spids: [273 291]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> ($ Id.VSub_Number 1)})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                  stderr_indices: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [310 317]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name INSDESTTREE))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name INSDESTTREE))})
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName ret)}
                                              right: {<0>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName ret)}
                                )
                              ]
                              spids: [374 388]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [331 351]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: exeinto
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ )})]
                  spids: [427 445]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ ($ Id.VSub_Number 1))})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                  stderr_indices: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [466 473]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name _E_EXEDESTTREE_))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} 
                          {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name _E_EXEDESTTREE_))}
                        )
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName ret)}
                                              right: {<0>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName ret)}
                                )
                              ]
                              spids: [530 544]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [487 507]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: docinto
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ )})]
                  spids: [583 601]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ ($ Id.VSub_Number 1))})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                  stderr_indices: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [622 629]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {
                                    (DQ (${ Id.VSub_Name ED) <'usr/share/doc/'> (${ Id.VSub_Name PF) 
                                      <'/'> (${ Id.VSub_Name _E_DOCDESTTREE_)
                                    )
                                  } {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} 
                          {
                            (DQ (${ Id.VSub_Name ED) <'usr/share/doc/'> (${ Id.VSub_Name PF) <'/'> 
                              (${ Id.VSub_Name _E_DOCDESTTREE_)
                            )
                          }
                        )
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName ret)}
                                              right: {<0>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName ret)}
                                )
                              ]
                              spids: [696 710]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [643 668]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: insopts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<export>} {<Id.Lit_VarLike 'INSOPTIONS='> (DQ ($ Id.VSub_At '@'))})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<has>} {<-s>} {(${ Id.VSub_Name INSOPTIONS)})
                (C {<die>} {(DQ <'Never call insopts() with -s'>)})
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: diropts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<export>} {<Id.Lit_VarLike 'DIROPTIONS='> (DQ ($ Id.VSub_At '@'))})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: exeopts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<export>} {<Id.Lit_VarLike 'EXEOPTIONS='> (DQ ($ Id.VSub_At '@'))})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<has>} {<-s>} {(${ Id.VSub_Name EXEOPTIONS)})
                (C {<die>} {(DQ <'Never call exeopts() with -s'>)})
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: libopts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<export>} {<Id.Lit_VarLike 'LIBOPTIONS='> (DQ ($ Id.VSub_At '@'))})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<has>} {<-s>} {(${ Id.VSub_Name LIBOPTIONS)})
                (C {<die>} {(DQ <'Never call libopts() with -s'>)})
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: docompress
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<___eapi_has_docompress>})
                (C {<die>} {(DQ <'\'docompress\' not supported in this EAPI'>)})
              ]
            )
            (C {<local>} {<f>} {<g>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {(DQ <-x>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<shift>})
                    (command.ForEach
                      iter_names: [f]
                      iterable: (for_iter.Args)
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (C {<__strip_duplicate_slashes>} 
                                                {(DQ (${ Id.VSub_Name f))}
                                              )
                                            right: <Id.Eof_RParen _>
                                          )
                                        }
                                      spids: [931]
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name f>
                                        var_name: f
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Percent '%'>
                                            arg_word: {<Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  spids: [943]
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobEqual
                                      left: 
                                        {
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name f>
                                            var_name: f
                                            suffix_op: 
                                              (suffix_op.Slice
                                                begin: {<Id.Lit_Digits 0>}
                                                length: {<Id.Lit_Digits 1>}
                                              )
                                            right: <Id.Arith_RBrace _>
                                          )
                                        }
                                      right: {<'/'>}
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                      op: assign_op.Equal
                                      rhs: {(DQ <'/'> (${ Id.VSub_Name f))}
                                      spids: [969]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (command.ForEach
                              iter_names: [g]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                          var_name: PORTAGE_DOCOMPRESS_SKIP
                                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobEqual
                                              left: {(${ Id.VSub_Name f)}
                                              right: {(DQ (${ Id.VSub_Name g))}
                                            )
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Continue continue>
                                          arg_word: {<2>}
                                        )
                                      ]
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'PORTAGE_DOCOMPRESS_SKIP['>
                                      name: PORTAGE_DOCOMPRESS_SKIP
                                      index: 
                                        {
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                            var_name: PORTAGE_DOCOMPRESS_SKIP
                                            prefix_op: <Id.VSub_Pound '#'>
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name f)}
                                  spids: [1023]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [902 917]
                )
              ]
              else_action: [
                (command.ForEach
                  iter_names: [f]
                  iterable: (for_iter.Args)
                  body: 
                    (command.DoGroup
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {<__strip_duplicate_slashes>} {(DQ (${ Id.VSub_Name f))})
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [1059]
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name f>
                                    var_name: f
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_Percent '%'>
                                        arg_word: {<Id.Lit_Slash '/'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              spids: [1071]
                            )
                          ]
                          redirects: []
                        )
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name f>
                                        var_name: f
                                        suffix_op: 
                                          (suffix_op.Slice
                                            begin: {<Id.Lit_Digits 0>}
                                            length: {<Id.Lit_Digits 1>}
                                          )
                                        right: <Id.Arith_RBrace _>
                                      )
                                    }
                                  right: {<'/'>}
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'/'> (${ Id.VSub_Name f))}
                                  spids: [1097]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                        (command.ForEach
                          iter_names: [g]
                          iterable: 
                            (for_iter.Words
                              words: [
                                {
                                  (DQ 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name PORTAGE_DOCOMPRESS>
                                      var_name: PORTAGE_DOCOMPRESS
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                              ]
                            )
                          body: 
                            (command.DoGroup
                              children: [
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobEqual
                                          left: {(${ Id.VSub_Name f)}
                                          right: {(DQ (${ Id.VSub_Name g))}
                                        )
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                      arg_word: {<2>}
                                    )
                                  ]
                                )
                              ]
                            )
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  left: <Id.Lit_ArrayLhsOpen 'PORTAGE_DOCOMPRESS['>
                                  name: PORTAGE_DOCOMPRESS
                                  index: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name PORTAGE_DOCOMPRESS>
                                        var_name: PORTAGE_DOCOMPRESS
                                        prefix_op: <Id.VSub_Pound '#'>
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              op: assign_op.Equal
                              rhs: {(${ Id.VSub_Name f)}
                              spids: [1151]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: useq
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<has>} {($ Id.VSub_DollarName EBUILD_PHASE)} {<prerm>} {<postrm>})
                (C {<eqawarn>} 
                  {(DQ <'QA Notice: The \'useq\' function is deprecated (replaced by \'use\')'>)}
                )
              ]
            )
            (C {<use>} {(${ Id.VSub_Number 1)})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: usev
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<use>} {(${ Id.VSub_Number 1)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Number 1>
                            var_name: 1
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_Pound '#'>
                                arg_word: {<Id.Lit_Other '!'>}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [1223 1232]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<___eapi_has_usex>}) terminator:<Id.Op_Semi _>)]
            )
          action: [
            (command.ShFunction
              name: usex
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<use>} {(DQ ($ Id.VSub_Number 1))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<echo>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Number 2>
                                    var_name: 2
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_Hyphen _>
                                        arg_word: {<yes>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  ) ($ Id.VSub_Number 4)
                                )
                              }
                            )
                          ]
                          spids: [1276 1285]
                        )
                      ]
                      else_action: [
                        (C {<echo>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 3>
                                var_name: 3
                                suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<no>})
                                right: <Id.Right_DollarBrace '}'>
                              ) ($ Id.VSub_Number 5)
                            )
                          }
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [1261 1266]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShFunction
      name: use
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'u='> ($ Id.VSub_Number 1)})
            (C {<local>} {<Id.Lit_VarLike 'found='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name u>
                                        var_name: u
                                        suffix_op: 
                                          (suffix_op.Slice
                                            begin: {<Id.Lit_Digits 0>}
                                            length: {<Id.Lit_Digits 1>}
                                          )
                                        right: <Id.Arith_RBrace _>
                                      )
                                    }
                                  right: {(DQ <'!'>)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u='> name:u)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name u>
                                var_name: u
                                suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 1>})
                                right: <Id.Arith_RBrace _>
                              )
                            }
                          spids: [1377]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'found='> name:found)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [1385]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1352 1374]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: {($ Id.VSub_DollarName EBUILD_PHASE)}
                                  right: {<depend>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<true>})]
                  spids: [1393 1407]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName PORTAGE_IUSE)}
                                    )
                                  right: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName EBUILD_PHASE)}
                                        )
                                      right: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName PORTAGE_INTERNAL_CALLER)}
                                        )
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_EqualTilde
                                              left: {($ Id.VSub_DollarName u)}
                                              right: {($ Id.VSub_DollarName PORTAGE_IUSE)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.LogicalNot
                                                  child: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_EqualTilde
                                                      left: {(${ Id.VSub_Name EAPI)}
                                                      right: 
                                                        {<Id.Lit_Other '^'> <Id.Lit_Other '('> <0> 
                                                          <Id.Lit_Other '|'> <1> <Id.Lit_Other '|'> <2> <Id.Lit_Other '|'> <3> <Id.Lit_Other '|'> <4> <Id.Lit_Other '|'> <4-python> 
                                                          <Id.Lit_Other '|'> <4-slot-abi> <Id.Lit_Other ')'> <Id.Lit_Other '$'>
                                                        }
                                                    )
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ <'USE Flag \''> (${ Id.VSub_Name u) <'\' not in IUSE for '> 
                                          (${ Id.VSub_Name CATEGORY) <'/'> (${ Id.VSub_Name PF)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [1501 1535]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (C {<eqawarn>} 
                              {(DQ <'QA Notice: USE Flag \''> (${ Id.VSub_Name u) <'\' not'>)} {(DQ <'in IUSE for '> (${ Id.VSub_Name CATEGORY) <'/'> (${ Id.VSub_Name PF))}
                            )
                          ]
                          spids: [1482 1498]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [1454 1479]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'IFS='> 
                (single_quoted
                  left: <Id.Left_DollarSingleQuote '$\''>
                  tokens: [<Id.Char_Literals ' '> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\n'>]
                  right: <Id.Right_SingleQuote '\''>
                )
              } {<Id.Lit_VarLike 'prev_shopts='> ($ Id.VSub_Hyphen -)} {<ret>}
            )
            (C {<set>} {<-f>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<has>} {(${ Id.VSub_Name u)} {(${ Id.VSub_Name USE)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name found)}
                          spids: [1635]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1618 1632]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Unary
                                op_id: Id.Arith_Bang
                                child: ($ Id.Lit_ArithVarLike found)
                              )
                          )
                        }
                      spids: [1644]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {(${ Id.VSub_Name prev_shopts)}
                      right: {<Id.Lit_Other '*'> <f> <Id.Lit_Other '*'>}
                    )
                  redirects: []
                )
                (C {<set>} {<Id.Lit_Other '+'> <f>})
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {(${ Id.VSub_Name ret)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: use_with
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number 1))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_with() called without a parameter.'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_with <USEFLAG> [<flagname> [value]]'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      more_env: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1693 1706]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_use_enable_and_use_with_support_empty_third_argument>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'UW_SUFFIX='> 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 3>
                          var_name: 3
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {<'='> ($ Id.VSub_Number 3)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [1738 1743]
                )
              ]
              else_action: [
                (C {<local>} 
                  {<Id.Lit_VarLike 'UW_SUFFIX='> 
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Number 3>
                      var_name: 3
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_ColonPlus _>
                          arg_word: {<'='> ($ Id.VSub_Number 3)}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  }
                )
              ]
              redirects: []
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'UWORD='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Number 2>
                  var_name: 2
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_ColonHyphen _>
                      arg_word: {($ Id.VSub_Number 1)}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<use>} {($ Id.VSub_Number 1)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <--with-> (${ Id.VSub_Name UWORD) (${ Id.VSub_Name UW_SUFFIX))})
                  ]
                  spids: [1785 1792]
                )
              ]
              else_action: [(C {<echo>} {(DQ <--without-> (${ Id.VSub_Name UWORD))})]
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: use_enable
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number 1))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_enable() called without a parameter.'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      more_env: []
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_enable <USEFLAG> [<flagname> [value]]'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      more_env: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1838 1851]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_use_enable_and_use_with_support_empty_third_argument>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'UE_SUFFIX='> 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Number 3>
                          var_name: 3
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: {<'='> ($ Id.VSub_Number 3)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      }
                    )
                  ]
                  spids: [1883 1888]
                )
              ]
              else_action: [
                (C {<local>} 
                  {<Id.Lit_VarLike 'UE_SUFFIX='> 
                    (braced_var_sub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Number 3>
                      var_name: 3
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_ColonPlus _>
                          arg_word: {<'='> ($ Id.VSub_Number 3)}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  }
                )
              ]
              redirects: []
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'UWORD='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Number 2>
                  var_name: 2
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_ColonHyphen _>
                      arg_word: {($ Id.VSub_Number 1)}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<use>} {($ Id.VSub_Number 1)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <--enable-> (${ Id.VSub_Name UWORD) (${ Id.VSub_Name UE_SUFFIX))})
                  ]
                  spids: [1930 1937]
                )
              ]
              else_action: [(C {<echo>} {(DQ <--disable-> (${ Id.VSub_Name UWORD))})]
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: unpack
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<srcdir>})
            (C {<local>} {<x>})
            (C {<local>} {<y>} {<y_insensitive>})
            (C {<local>} {<suffix>} {<suffix_insensitive>})
            (C {<local>} {<myfail>})
            (C {<local>} 
              {<Id.Lit_VarLike 'eapi='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name EAPI>
                  var_name: EAPI
                  suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0>})
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Star '*'))} {<Id.Lit_RBracket ']'>})
                (C {<die>} {(DQ <'Nothing passed to the \'unpack\' command'>)})
              ]
            )
            (command.ForEach
              iter_names: [x]
              iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
              body: 
                (command.DoGroup
                  children: [
                    (C {<__vecho>} 
                      {(DQ <'>>> Unpacking '> (${ Id.VSub_Name x) <' to '> (${ Id.VSub_Name PWD))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suffix='> name:suffix)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name x>
                                var_name: x
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <.>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          spids: [2070]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'suffix_insensitive='>
                              name: suffix_insensitive
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [{<tr>} {(DQ <'[:upper:]'>)} {(DQ <'[:lower:]'>)}]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_TLess '<<<'>
                                        loc: (redir_loc.Fd fd:0)
                                        arg: {(DQ (${ Id.VSub_Name suffix))}
                                      )
                                    ]
                                    more_env: [(env_pair name:LC_ALL val:{<C>} spids:[2081])]
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [2079]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name x>
                                var_name: x
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<.> <Id.Lit_Other '*'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          spids: [2104]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name y>
                                var_name: y
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <.>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          spids: [2113]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'y_insensitive='>
                              name: y_insensitive
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [{<tr>} {(DQ <'[:upper:]'>)} {(DQ <'[:lower:]'>)}]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_TLess '<<<'>
                                        loc: (redir_loc.Fd fd:0)
                                        arg: {(DQ (${ Id.VSub_Name y))}
                                      )
                                    ]
                                    more_env: [(env_pair name:LC_ALL val:{<C>} spids:[2124])]
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [2122]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {(${ Id.VSub_Name x)}
                                          right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name DISTDIR) <'/'>}
                                  spids: [2176]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2152 2169]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(${ Id.VSub_Name x)}
                                          right: {<'./'> <Id.Lit_Other '*'>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir)
                                  op: assign_op.Equal
                                  rhs: (rhs_word.Empty)
                                  spids: [2206]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2183 2199]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: (C {<___eapi_unpack_supports_absolute_paths>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'srcdir='>
                                          name: srcdir
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word.Empty)
                                      spids: [2228]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {(${ Id.VSub_Name x)}
                                                      right: 
                                                        {
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name DISTDIR>
                                                            var_name: DISTDIR
                                                            suffix_op: 
                                                              (suffix_op.Unary
                                                                op: <Id.VOp1_Percent '%'>
                                                                arg_word: {<Id.Lit_Slash '/'>}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          ) <'/'> <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<eqawarn>} 
                                          {
                                            (DQ <'QA Notice: unpack called with redundant '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\$'>
                                                ch: '$'
                                              ) <'{DISTDIR} in path'>
                                            )
                                          }
                                        )
                                      ]
                                      spids: [2232 2253]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                              spids: [2216 2221]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {(${ Id.VSub_Name x)}
                                              right: 
                                                {
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name DISTDIR>
                                                    var_name: DISTDIR
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VOp1_Percent '%'>
                                                        arg_word: {<Id.Lit_Slash '/'>}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  ) <'/'> <Id.Lit_Other '*'>
                                                }
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<die>} 
                                  {
                                    (DQ <'Arguments to unpack() cannot begin with '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                        ch: '$'
                                      ) <'{DISTDIR} in EAPI '> (${ Id.VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2268 2289]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {(${ Id.VSub_Name x)}
                                              right: {<'/'> <Id.Lit_Other '*'>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<die>} 
                                  {
                                    (DQ <'Arguments to unpack() cannot be absolute in EAPI '> 
                                      (${ Id.VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2304 2321]
                            )
                          ]
                          else_action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  <
'Relative paths to unpack() must be prefixed with \'./\' in EAPI '
                                  > (${ Id.VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_s
                                              child: {(${ Id.VSub_Name srcdir) (${ Id.VSub_Name x)}
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<__helpers_die>} 
                              {(DQ <'unpack: '> (${ Id.VSub_Name x) <' does not exist'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [2353 2371]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShFunction
                      name: __unpack_tar
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(${ Id.VSub_Name y_insensitive)}
                                                  right: {<tar>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<___eapi_unpack_is_case_sensitive>})
                                                        (command.DBracket
                                                          expr: 
                                                            (bool_expr.Binary
                                                              op_id: Id.BoolBinary_GlobNEqual
                                                              left: {<tar>}
                                                              right: {(${ Id.VSub_Name y)}
                                                            )
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                              {
                                                (DQ <'secondary suffix \''> (${ Id.VSub_Name y) 
                                                  <'\' which is unofficially'>
                                                )
                                              } {(DQ <'supported with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tar\'.'>)}
                                            )
                                          ]
                                          spids: [2420 2442]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.Pipeline
                                      children: [
                                        (C {($ Id.VSub_Number 1)} {<-c>} {<-->} 
                                          {
                                            (DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x))
                                          }
                                        )
                                        (C {<tar>} {<xof>} {<->})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<__assert_sigpipe_ok>} {(DQ ($ Id.VSub_DollarName myfail))})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [2401 2417]
                                )
                              ]
                              else_action: [
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'cwd_dest='> 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name x>
                                      var_name: x
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op: <Id.VOp1_DPound '##'>
                                          arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  }
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'cwd_dest='>
                                          name: cwd_dest
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name cwd_dest>
                                            var_name: cwd_dest
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VOp1_Percent '%'>
                                                arg_word: {<.> <Id.Lit_Other '*'>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      spids: [2522]
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_Number 1)}
                                                        {<-c>}
                                                        {<-->}
                                                        {
                                                          (DQ (${ Id.VSub_Name srcdir) 
                                                            (${ Id.VSub_Name x)
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {(DQ (${ Id.VSub_Name cwd_dest))}
                                                        )
                                                      ]
                                                      more_env: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  negated: T
                                                  stderr_indices: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      spids: [2531 2559]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'myfail='> name:myfail)
                          op: assign_op.Equal
                          rhs: {(DQ <'unpack: failure unpacking '> (${ Id.VSub_Name x))}
                          spids: [2584]
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name suffix_insensitive))}
                      arms: [
                        (case_arm
                          pat_list: [{<tar>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {<tar>}
                                                      right: {(${ Id.VSub_Name suffix)}
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tar\'.'>)}
                                    )
                                  ]
                                  spids: [2608 2630]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<tar>} {<xof>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName srcdir) 
                                                      ($ Id.VSub_DollarName x)
                                                    )
                                                  }
                                                )
                                              ]
                                              negated: T
                                              stderr_indices: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2663 2677]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [2604 2605 2695 -1]
                        )
                        (case_arm
                          pat_list: [{<tgz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {<tgz>}
                                                      right: {(${ Id.VSub_Name suffix)}
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tgz\'.'>)}
                                    )
                                  ]
                                  spids: [2702 2724]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<tar>} {<xozf>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName srcdir) 
                                                      ($ Id.VSub_DollarName x)
                                                    )
                                                  }
                                                )
                                              ]
                                              negated: T
                                              stderr_indices: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2757 2771]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [2698 2699 2789 -1]
                        )
                        (case_arm
                          pat_list: [{<tbz>} {<tbz2>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' tbz tbz2 '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tbz\' or \'tbz2\'.'>)}
                                    )
                                  ]
                                  spids: [2798 2828]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.Pipeline
                              children: [
                                (C 
                                  {
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                      var_name: PORTAGE_BUNZIP2_COMMAND
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op: <Id.VTest_ColonHyphen _>
                                          arg_word: {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  } {<-c>} {<-->} {(DQ ($ Id.VSub_DollarName srcdir) ($ Id.VSub_DollarName x))}
                                )
                                (C {<tar>} {<xof>} {<->})
                              ]
                              negated: F
                              stderr_indices: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__assert_sigpipe_ok>} {(DQ ($ Id.VSub_DollarName myfail))})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [2792 2795 2901 -1]
                        )
                        (case_arm
                          pat_list: [{<zip>} {<jar>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' ZIP zip jar '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'.'>)} 
                                      {(DQ <'Instead use \'ZIP\', \'zip\', or \'jar\'.'>)}
                                    )
                                  ]
                                  spids: [2910 2940]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<unzip>} {<-qo>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                              stderr_indices: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2987 3005]
                                )
                              ]
                              else_action: []
                              redirects: [
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_ProcSubIn '<('>
                                        child: 
                                          (command.CommandList
                                            children: [
                                              (command.Sentence
                                                child: (C {<set>} {<Id.Lit_Other '+'> <x>})
                                                terminator: <Id.Op_Semi _>
                                              )
                                              (command.WhileUntil
                                                keyword: <Id.KW_While while>
                                                cond: 
                                                  (condition.Shell
                                                    commands: [
                                                      (command.Sentence
                                                        child: (C {<true>})
                                                        terminator: <Id.Op_Semi _>
                                                      )
                                                    ]
                                                  )
                                                body: 
                                                  (command.DoGroup
                                                    children: [
                                                      (command.Sentence
                                                        child: 
                                                          (command.AndOr
                                                            ops: [Id.Op_DPipe]
                                                            children: [
                                                              (C {<echo>} {<n>})
                                                              (command.ControlFlow
                                                                token: <Id.ControlFlow_Break break>
                                                              )
                                                            ]
                                                          )
                                                        terminator: <Id.Op_Semi _>
                                                      )
                                                    ]
                                                  )
                                                redirects: []
                                              )
                                            ]
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                            )
                          ]
                          spids: [2904 2907 3054 -1]
                        )
                        (case_arm
                          pat_list: [{<gz>} {<z>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' gz z Z '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'gz\', \'z\', or \'Z\'.'>)}
                                    )
                                  ]
                                  spids: [3063 3093]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__unpack_tar>} {(DQ <'gzip -d'>)})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [3057 3060 3139 -1]
                        )
                        (case_arm
                          pat_list: [{<bz2>} {<bz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' bz bz2 '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'bz\' or \'bz2\'.'>)}
                                    )
                                  ]
                                  spids: [3148 3178]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__unpack_tar>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                        var_name: PORTAGE_BUNZIP2_COMMAND
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonHyphen _>
                                            arg_word: 
                                              {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [3142 3145 3233 -1]
                        )
                        (case_arm
                          pat_list: [{<7z>}]
                          action: [
                            (C {<local>} {<my_output>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_output='>
                                      name: my_output
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<7z>} {<x>} {<-y>} 
                                              {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                  spids: [3245]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} 
                                              {<0>} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {(DQ (${ Id.VSub_Name my_output))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                    (C {<die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                  ]
                                  spids: [3266 3279]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [3236 3237 3304 -1]
                        )
                        (case_arm
                          pat_list: [{<rar>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' rar RAR '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'rar\' or \'RAR\'.'>)}
                                    )
                                  ]
                                  spids: [3311 3341]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<unrar>} {<x>} {<-idq>} {<-o> <Id.Lit_Other '+'>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                              stderr_indices: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [3374 3397]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [3307 3308 3415 -1]
                        )
                        (case_arm
                          pat_list: [{<lha>} {<lzh>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' LHA LHa lha lzh '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'.'>)} 
                                      {(DQ <'Instead use \'LHA\', \'LHa\', \'lha\', or \'lzh\'.'>)}
                                    )
                                  ]
                                  spids: [3424 3454]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<lha>} {<xfq>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                              stderr_indices: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [3493 3511]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [3418 3421 3529 -1]
                        )
                        (case_arm
                          pat_list: [{<a>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' a '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'a\'.'>)}
                                    )
                                  ]
                                  spids: [3536 3566]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<ar>} {<x>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                              stderr_indices: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [3599 3617]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [3532 3533 3635 -1]
                        )
                        (case_arm
                          pat_list: [{<deb>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' deb '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'deb\'.'>)}
                                    )
                                  ]
                                  spids: [3642 3672]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (command.Simple
                                                                words: [{<ar>} {<--version>}]
                                                                redirects: [
                                                                  (redir
                                                                    op: <Id.Redir_Great '2>'>
                                                                    loc: (redir_loc.Fd fd:2)
                                                                    arg: {<'/dev/null'>}
                                                                  )
                                                                ]
                                                                more_env: []
                                                                do_fork: T
                                                              )
                                                            right: <Id.Eof_RParen _>
                                                          )
                                                        }
                                                      right: {(DQ <'GNU ar'>) <Id.Lit_Other '*'>}
                                                    )
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  words: [{<type>} {<-P>} {<deb2targz>}]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  more_env: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name x>
                                                var_name: x
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_DPound '##'>
                                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          spids: [3769]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<local>} {<Id.Lit_VarLike 'created_symlink='> <0>})
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName srcdir) 
                                                          ($ Id.VSub_DollarName x)
                                                        )
                                                      } {<-ef>} {(DQ ($ Id.VSub_DollarName y))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Pipeline
                                                              children: [
                                                                (C {<ln>} {<-sf>} 
                                                                  {
                                                                    (DQ ($ Id.VSub_DollarName srcdir) 
                                                                      ($ Id.VSub_DollarName x)
                                                                    )
                                                                  } {(DQ ($ Id.VSub_DollarName y))}
                                                                )
                                                              ]
                                                              negated: T
                                                              stderr_indices: []
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<__helpers_die>} 
                                                      {(DQ ($ Id.VSub_DollarName myfail))}
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Return return>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  spids: [3820 3838]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'created_symlink='>
                                                      name: created_symlink
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [3856]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [3784 3805]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {<deb2targz>} {(DQ ($ Id.VSub_DollarName y))})
                                                      ]
                                                      negated: T
                                                      stderr_indices: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Return return>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [3863 3874]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {($ Id.VSub_DollarName created_symlink)} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [(C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName y))})]
                                          spids: [3892 3906]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {<mv>} {<-f>} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name y>
                                                                var_name: y
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op: <Id.VOp1_Percent '%'>
                                                                    arg_word: {<.deb>}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            ) <.tar.gz>
                                                          } {<data.tar.gz>}
                                                        )
                                                      ]
                                                      negated: T
                                                      stderr_indices: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Pipeline
                                                              children: [
                                                                (C {<mv>} {<-f>} 
                                                                  {
                                                                    (DQ 
                                                                      (braced_var_sub
                                                                        left: 
                                                                          <Id.Left_DollarBrace '${'>
                                                                        token: <Id.VSub_Name y>
                                                                        var_name: y
                                                                        suffix_op: 
                                                                          (suffix_op.Unary
                                                                            op: <Id.VOp1_Percent '%'>
                                                                            arg_word: {<.deb>}
                                                                          )
                                                                        right: 
                                                                          <Id.Right_DollarBrace '}'>
                                                                      )
                                                                    ) <.tar.xz>
                                                                  } {<data.tar.xz>}
                                                                )
                                                              ]
                                                              negated: T
                                                              stderr_indices: []
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<__helpers_die>} 
                                                      {(DQ ($ Id.VSub_DollarName myfail))}
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Return return>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  spids: [3952 3972]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [3929 3949]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [3729 3766]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (C {<ar>} {<x>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName srcdir) 
                                                          ($ Id.VSub_DollarName x)
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  negated: T
                                                  stderr_indices: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      spids: [3996 4010]
                                    )
                                  ]
                                  else_action: []
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3638 3639 4031 -1]
                        )
                        (case_arm
                          pat_list: [{<lzma>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' lzma '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'lzma\'.'>)}
                                    )
                                  ]
                                  spids: [4038 4068]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__unpack_tar>} {(DQ <'lzma -d'>)})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [4034 4035 4114 -1]
                        )
                        (case_arm
                          pat_list: [{<xz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' xz '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'xz\'.'>)}
                                    )
                                  ]
                                  spids: [4121 4151]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_unpack_supports_xz>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<__unpack_tar>} {(DQ <'xz -d'>)})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4184 4189]
                                )
                              ]
                              else_action: [
                                (C {<__vecho>} 
                                  {
                                    (DQ <'unpack '> (${ Id.VSub_Name x) 
                                      <': file format not recognized. Ignoring.'>
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [4117 4118 4222 -1]
                        )
                        (case_arm
                          pat_list: [{<txz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' txz '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'txz\'.'>)}
                                    )
                                  ]
                                  spids: [4229 4259]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_unpack_supports_txz>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {<tar>} {<xof>} 
                                                          {
                                                            (DQ ($ Id.VSub_DollarName srcdir) 
                                                              ($ Id.VSub_DollarName x)
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      negated: T
                                                      stderr_indices: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName myfail))})
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Return return>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [4300 4314]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [4292 4297]
                                )
                              ]
                              else_action: [
                                (C {<__vecho>} 
                                  {
                                    (DQ <'unpack '> (${ Id.VSub_Name x) 
                                      <': file format not recognized. Ignoring.'>
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [4225 4226 4349 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<__vecho>} 
                              {
                                (DQ <'unpack '> (${ Id.VSub_Name x) 
                                  <': file format not recognized. Ignoring.'>
                                )
                              }
                            )
                          ]
                          spids: [4352 4353 4367 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.Pipeline
              children: [
                (C {<find>} {<.>} {<-mindepth>} {<1>} {<-maxdepth>} {<1>} {<Id.KW_Bang '!'>} {<-type>} {<l>} 
                  {<-print0>}
                )
                (C {(${ Id.VSub_Name XARGS)} {<-0>} 
                  {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/chmod-lite'>)}
                )
              ]
              negated: F
              stderr_indices: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: econf
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<x>})
            (C {<local>} 
              {<Id.Lit_VarLike 'pid='> 
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name BASHPID>
                  var_name: BASHPID
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_ColonHyphen _>
                      arg_word: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<__bashpid>})
                            right: <Id.Eof_RParen _>
                          )
                        }
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<___eapi_has_prefix_variables>})]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<local>} {<Id.Lit_VarLike 'EPREFIX='>})]
                  spids: [4449 4456]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShFunction
              name: __hasg
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<x>} {<Id.Lit_VarLike 's='> ($ Id.VSub_Number 1)})
                    (C {<shift>})
                    (command.ForEach
                      iter_names: [x]
                      iterable: (for_iter.Args)
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(${ Id.VSub_Name x)}
                                          right: {(${ Id.VSub_Name s)}
                                        )
                                      redirects: []
                                    )
                                    (C {<echo>} {(DQ (${ Id.VSub_Name x))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<0>}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: __hasgq
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [{<__hasg>} {(DQ ($ Id.VSub_At '@'))}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'phase_func='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<__ebuild_arg_to_phase>} {(DQ ($ Id.VSub_DollarName EBUILD_PHASE))})
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName phase_func)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [(C {<___eapi_has_src_configure>})]
                                      negated: T
                                      stderr_indices: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_DollarName phase_func)}
                                      right: {<src_compile>}
                                    )
                                  redirects: []
                                )
                                (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} 
                                  {(DQ ($ Id.VSub_DollarName phase_func) <' instead of src_compile'>)}
                                )
                              ]
                            )
                          ]
                          spids: [4586 4593]
                        )
                      ]
                      else_action: [
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName phase_func)}
                                  right: {<src_configure>}
                                )
                              redirects: []
                            )
                            (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} 
                              {(DQ ($ Id.VSub_DollarName phase_func) <' instead of src_configure'>)}
                            )
                          ]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4571 4583]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<Id.Lit_Colon ':'>} 
              {
                (braced_var_sub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name ECONF_SOURCE>
                  var_name: ECONF_SOURCE
                  suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{<.>})
                  right: <Id.Right_DollarBrace '}'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-x>} 
                              {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName CONFIG_SHELL)}
                                            )
                                          right: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_EqualTilde
                                              left: 
                                                {
                                                  (DQ 
                                                    (command_sub
                                                      left_token: <Id.Left_DollarParen '$('>
                                                      child: 
                                                        (C {<head>} {<-n1>} 
                                                          {
                                                            (DQ ($ Id.VSub_DollarName ECONF_SOURCE) 
                                                              <'/configure'>
                                                            )
                                                          }
                                                        )
                                                      right: <Id.Eof_RParen _>
                                                    )
                                                  )
                                                }
                                              right: 
                                                {<Id.Lit_Other '^'> (SQ <'#!'>) <Id.Lit_Other '['> 
                                                  <Id.Lit_Other '['> <Id.Lit_Other ':'> <space> <Id.Lit_Other ':'> <Id.Lit_Other ']'> <Id.Lit_Other ']'> <Id.Lit_Other '*'> 
                                                  <'/bin/sh'> <Id.Lit_Other '('> <Id.Lit_Other '['> <Id.Lit_Other '['> <Id.Lit_Other ':'> <space> <Id.Lit_Other ':'> 
                                                  <Id.Lit_Other ']'> <Id.Lit_Other ']'> <Id.Lit_Other '|'> <Id.Lit_Other '$'> <Id.Lit_Other ')'>
                                                }
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<cp>} {<-p>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                                  {
                                    (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> 
                                      (${ Id.VSub_Name pid)
                                    )
                                  }
                                )
                                (C {<die>})
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<sed>} {<-i>} {<-e>} 
                                  {
                                    (DQ <'1s:^#![[:space:]]*/bin/sh:#!'> 
                                      ($ Id.VSub_DollarName CONFIG_SHELL) <':'>
                                    )
                                  } {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> (${ Id.VSub_Name pid))}
                                )
                                (C {<die>} 
                                  {
                                    (DQ <'Substition of shebang in \''> (${ Id.VSub_Name ECONF_SOURCE) 
                                      <'/configure\' failed'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<touch>} {<-r>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                                  {
                                    (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> 
                                      (${ Id.VSub_Name pid)
                                    )
                                  }
                                )
                                (C {<die>})
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<mv>} {<-f>} 
                                  {
                                    (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> 
                                      (${ Id.VSub_Name pid)
                                    )
                                  } {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)}
                                )
                                (C {<die>})
                              ]
                            )
                          ]
                          spids: [4690 4746]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-e>} 
                                      {(DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/gnuconfig/'>} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Pipeline
                              children: [
                                (C {<find>} {(DQ (${ Id.VSub_Name WORKDIR))} {<-type>} {<f>} {(SQ <'('>)} 
                                  {<-name>} {<config.guess>} {<-o>} {<-name>} {<config.sub>} {(SQ <')'>)} {<-print0>}
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<read>} {<-r>} {<-d>} 
                                              {
                                                (single_quoted
                                                  left: <Id.Left_DollarSingleQuote '$\''>
                                                  tokens: [<Id.Char_OneChar '\\0'>]
                                                  right: <Id.Right_SingleQuote '\''>
                                                )
                                              } {<x>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (C {<__vecho>} 
                                          {
                                            (DQ <' * econf: updating '> 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name x>
                                                var_name: x
                                                suffix_op: 
                                                  (suffix_op.PatSub
                                                    pat: 
                                                      {(${ Id.VSub_Name WORKDIR) 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\/'>
                                                          ch: '/'
                                                        )
                                                      }
                                                    replace: (rhs_word.Empty)
                                                    replace_mode: Id.Undefined_Tok
                                                    slash_tok: <Id.VOp2_Slash _>
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <' with '> (${ Id.VSub_Name EPREFIX) <'/usr/share/gnuconfig/'> 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name x>
                                                var_name: x
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_DPound '##'>
                                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            )
                                          }
                                        )
                                        (C {<cp>} {<-f>} 
                                          {(DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/gnuconfig/'> 
                                            (DQ 
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name x>
                                                var_name: x
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_DPound '##'>
                                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            )
                                          } {(DQ (${ Id.VSub_Name x) <.> (${ Id.VSub_Name pid))}
                                        )
                                        (C {<mv>} {<-f>} 
                                          {(DQ (${ Id.VSub_Name x) <.> (${ Id.VSub_Name pid))} {(DQ (${ Id.VSub_Name x))}
                                        )
                                      ]
                                    )
                                  redirects: []
                                )
                              ]
                              negated: F
                              stderr_indices: []
                            )
                          ]
                          spids: [4875 4891]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'conf_args='> 
                        (sh_array_literal left:<Id.Op_LParen _> words:[])
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {<___eapi_econf_passes_--disable-dependency-tracking>})
                                        (C {<___eapi_econf_passes_--disable-silent-rules>})
                                        (C {<___eapi_econf_passes_--docdir_and_--htmldir>})
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'conf_help='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      words: [
                                        {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)}
                                        {<--help>}
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      more_env: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<___eapi_econf_passes_--disable-dependency-tracking>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> 
                                                              <--disable-dependency-tracking> <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'conf_args+='>
                                                      name: conf_args
                                                    )
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [{<--disable-dependency-tracking>}]
                                                      )
                                                    }
                                                  spids: [5109]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [5089 5106]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [5081 5086]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_econf_passes_--disable-silent-rules>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> 
                                                              <--disable-silent-rules> <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'conf_args+='>
                                                      name: conf_args
                                                    )
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [{<--disable-silent-rules>}]
                                                      )
                                                    }
                                                  spids: [5152]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [5132 5149]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [5124 5129]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_econf_passes_--docdir_and_--htmldir>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> <--docdir> 
                                                              <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'conf_args+='>
                                                      name: conf_args
                                                    )
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {<--docdir> <Id.Lit_Equals '='> 
                                                            (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/doc/'> (${ Id.VSub_Name PF)
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5195]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [5175 5192]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> <--htmldir> 
                                                              <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'conf_args+='>
                                                      name: conf_args
                                                    )
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {<--htmldir> <Id.Lit_Equals '='> 
                                                            (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/doc/'> (${ Id.VSub_Name PF) <'/html'>
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5237]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [5217 5234]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [5167 5172]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [5046 5059]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<local>} {<CONF_LIBDIR>} 
                      {<Id.Lit_VarLike 'LIBDIR_VAR='> (DQ <LIBDIR_> (${ Id.VSub_Name ABI))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {(${ Id.VSub_Name ABI)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: 
                                                {
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name LIBDIR_VAR>
                                                    var_name: LIBDIR_VAR
                                                    prefix_op: <Id.VSub_Bang '!'>
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                            )
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CONF_LIBDIR='>
                                      name: CONF_LIBDIR
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name LIBDIR_VAR>
                                        var_name: LIBDIR_VAR
                                        prefix_op: <Id.VSub_Bang '!'>
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  spids: [5313]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [5287 5310]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {(${ Id.VSub_Name CONF_LIBDIR)}
                                            )
                                          redirects: []
                                        )
                                        (command.Pipeline
                                          children: [
                                            (C {<__hasgq>} 
                                              {<--libdir> <Id.Lit_Equals '='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\*'>
                                                  ch: '*'
                                                )
                                              } {(DQ ($ Id.VSub_At '@'))}
                                            )
                                          ]
                                          negated: T
                                          stderr_indices: []
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<export>} 
                              {<Id.Lit_VarLike 'CONF_PREFIX='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<__hasg>} 
                                      {<--exec-prefix> <Id.Lit_Equals '='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\*'>
                                          ch: '*'
                                        )
                                      } {(DQ ($ Id.VSub_At '@'))}
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {(${ Id.VSub_Name CONF_PREFIX)}
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'CONF_PREFIX='>
                                          name: CONF_PREFIX
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (C {<__hasg>} 
                                                {<--prefix> <Id.Lit_Equals '='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\*'>
                                                    ch: '*'
                                                  )
                                                } {(DQ ($ Id.VSub_At '@'))}
                                              )
                                            right: <Id.Eof_RParen _>
                                          )
                                        }
                                      spids: [5382]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (C {<Id.Lit_Colon ':'>} 
                              {
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name CONF_PREFIX>
                                  var_name: CONF_PREFIX
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VTest_ColonEquals _>
                                      arg_word: {(${ Id.VSub_Name EPREFIX) <Id.Lit_Slash '/'> <usr>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CONF_PREFIX='>
                                      name: CONF_PREFIX
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name CONF_PREFIX>
                                        var_name: CONF_PREFIX
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {<Id.Lit_Other '*'> <'='>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  spids: [5409]
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {(${ Id.VSub_Name CONF_PREFIX)}
                                      right: {<'/'> <Id.Lit_Other '*'>}
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'CONF_PREFIX='>
                                          name: CONF_PREFIX
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_PREFIX))}
                                      spids: [5433]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {(${ Id.VSub_Name CONF_LIBDIR)}
                                      right: {<'/'> <Id.Lit_Other '*'>}
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'CONF_LIBDIR='>
                                          name: CONF_LIBDIR
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_LIBDIR))}
                                      spids: [5457]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'conf_args+='>
                                      name: conf_args
                                    )
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {<--libdir> <Id.Lit_Equals '='> 
                                            (DQ 
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (C {<__strip_duplicate_slashes>} 
                                                    {
                                                      (DQ (${ Id.VSub_Name CONF_PREFIX) 
                                                        (${ Id.VSub_Name CONF_LIBDIR)
                                                      )
                                                    }
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [5466]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [5323 5351]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<eval>} {(DQ <'local -a EXTRA_ECONF=('> (${ Id.VSub_Name EXTRA_ECONF) <')'>)})
                    (C {<set>} {<-->} 
                      {<--prefix> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr'>} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name CBUILD>
                          var_name: CBUILD
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_ColonPlus _>
                              arg_word: {<'--build='> (${ Id.VSub_Name CBUILD)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      } {<--host> <Id.Lit_Equals '='> (${ Id.VSub_Name CHOST)} 
                      {
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name CTARGET>
                          var_name: CTARGET
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_ColonPlus _>
                              arg_word: {<'--target='> (${ Id.VSub_Name CTARGET)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      } {<--mandir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/man'>} 
                      {<--infodir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) 
                        <'/usr/share/info'>
                      } {<--datadir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share'>} 
                      {<--sysconfdir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/etc'>} {<--localstatedir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/var/lib'>} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name conf_args>
                            var_name: conf_args
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            right: <Id.Right_DollarBrace '}'>
                          )
                        )
                      } {(DQ ($ Id.VSub_At '@'))} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name EXTRA_ECONF>
                            var_name: EXTRA_ECONF
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            right: <Id.Right_DollarBrace '}'>
                          )
                        )
                      }
                    )
                    (C {<__vecho>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                      {(DQ ($ Id.VSub_At '@'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                                          {(DQ ($ Id.VSub_At '@'))}
                                        )
                                      ]
                                      negated: T
                                      stderr_indices: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-s>} {<config.log>} 
                                              {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<echo>})
                                    (C {<echo>} 
                                      {
                                        (DQ 
                                          <
'!!! Please attach the following file when seeking support:'
                                          >
                                        )
                                      }
                                    )
                                    (C {<echo>} {(DQ <'!!! '> (${ Id.VSub_Name PWD) <'/config.log'>)})
                                  ]
                                  spids: [5676 5687]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (C {<__helpers_die>} {(DQ <'econf failed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [5655 5672]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [4671 4687]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<die>} {(DQ <'configure is not executable'>)})]
                  spids: [5729 5745]
                )
              ]
              else_action: [(C {<die>} {(DQ <'no configure script found'>)})]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: einstall
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<___eapi_has_einstall>})]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<die>} 
                      {
                        (DQ <'\''> (${ Id.VSub_Name FUNCNAME) <'\' has been banned for EAPI \''> 
                          ($ Id.VSub_DollarName EAPI) <'\''>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [5777 5784]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'LOCAL_EXTRA_EINSTALL='> (DQ (${ Id.VSub_Name EXTRA_EINSTALL))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<___eapi_has_prefix_variables>})]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                  spids: [5823 5830]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBDIR_VAR='> name:LIBDIR_VAR)
                  op: assign_op.Equal
                  rhs: {(DQ <LIBDIR_> (${ Id.VSub_Name ABI))}
                  spids: [5844]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name ABI))} {<-a>} {<-n>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name LIBDIR_VAR>
                                    var_name: LIBDIR_VAR
                                    prefix_op: <Id.VSub_Bang '!'>
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'CONF_LIBDIR='>
                              name: CONF_LIBDIR
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name LIBDIR_VAR>
                                  var_name: LIBDIR_VAR
                                  prefix_op: <Id.VSub_Bang '!'>
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                          spids: [5882]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5853 5879]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<unset>} {<LIBDIR_VAR>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name CONF_LIBDIR))} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                                (C {<Id.Lit_LBracket '['>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name CONF_PREFIX>
                                        var_name: CONF_PREFIX
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonPlus _>
                                            arg_word: {<set>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    )
                                  } {<Id.Lit_Equals '='>} {<set>} {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'EI_DESTLIBDIR='>
                              name: EI_DESTLIBDIR
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name D) <'/'> (${ Id.VSub_Name CONF_PREFIX) <'/'> 
                                (${ Id.VSub_Name CONF_LIBDIR)
                              )
                            }
                          spids: [5935]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'EI_DESTLIBDIR='>
                              name: EI_DESTLIBDIR
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<__strip_duplicate_slashes>} 
                                      {(DQ (${ Id.VSub_Name EI_DESTLIBDIR))}
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          spids: [5951]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'LOCAL_EXTRA_EINSTALL='>
                              name: LOCAL_EXTRA_EINSTALL
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'libdir='> (${ Id.VSub_Name EI_DESTLIBDIR) <' '> 
                                (${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)
                              )
                            }
                          spids: [5965]
                        )
                      ]
                      redirects: []
                    )
                    (C {<unset>} {<EI_DESTLIBDIR>})
                  ]
                  spids: [5899 5932]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {<'./'> <Id.Lit_LBracket '['> <mM> <Id.Lit_RBracket ']'> <akefile>} {<-o>} {<-f>} {<'./GNUmakefile'>} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PORTAGE_DEBUG))} 
                                      {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C 
                              {
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name MAKE>
                                  var_name: MAKE
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VTest_ColonHyphen _>
                                      arg_word: {<make>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              } {<-n>} {<Id.Lit_VarLike 'prefix='> (DQ (${ Id.VSub_Name ED) <usr>)} 
                              {<Id.Lit_VarLike 'datadir='> (DQ (${ Id.VSub_Name ED) <'usr/share'>)} {<Id.Lit_VarLike 'infodir='> (DQ (${ Id.VSub_Name ED) <'usr/share/info'>)} 
                              {<Id.Lit_VarLike 'localstatedir='> (DQ (${ Id.VSub_Name ED) <'var/lib'>)} {<Id.Lit_VarLike 'mandir='> (DQ (${ Id.VSub_Name ED) <'usr/share/man'>)} 
                              {<Id.Lit_VarLike 'sysconfdir='> (DQ (${ Id.VSub_Name ED) <etc>)} {(${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ Id.VSub_Name MAKEOPTS)} {<-j1>} {(DQ ($ Id.VSub_At '@'))} 
                              {(${ Id.VSub_Name EXTRA_EMAKE)} {<install>}
                            )
                          ]
                          spids: [6012 6032]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Pipeline
                                  children: [
                                    (C 
                                      {
                                        (braced_var_sub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name MAKE>
                                          var_name: MAKE
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VTest_ColonHyphen _>
                                              arg_word: {<make>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      } {<Id.Lit_VarLike 'prefix='> (DQ (${ Id.VSub_Name ED) <usr>)} 
                                      {<Id.Lit_VarLike 'datadir='> 
                                        (DQ (${ Id.VSub_Name ED) <'usr/share'>)
                                      } {<Id.Lit_VarLike 'infodir='> (DQ (${ Id.VSub_Name ED) <'usr/share/info'>)} 
                                      {<Id.Lit_VarLike 'localstatedir='> 
                                        (DQ (${ Id.VSub_Name ED) <'var/lib'>)
                                      } {<Id.Lit_VarLike 'mandir='> (DQ (${ Id.VSub_Name ED) <'usr/share/man'>)} 
                                      {<Id.Lit_VarLike 'sysconfdir='> (DQ (${ Id.VSub_Name ED) <etc>)} {(${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ Id.VSub_Name MAKEOPTS)} {<-j1>} {(DQ ($ Id.VSub_At '@'))} 
                                      {(${ Id.VSub_Name EXTRA_EMAKE)} {<install>}
                                    )
                                  ]
                                  negated: T
                                  stderr_indices: []
                                )
                              ]
                            )
                          action: [
                            (C {<__helpers_die>} {(DQ <'einstall failed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [6131 6226]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [5987 6009]
                )
              ]
              else_action: [(C {<die>} {(DQ <'no Makefile found'>)})]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi0_pkg_nofetch
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name A)})
                  redirects: []
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (C {<elog>} {(DQ <'The following files cannot be fetched for '> (${ Id.VSub_Name PN) <':'>)})
            (C {<local>} {<x>})
            (command.ForEach
              iter_names: [x]
              iterable: (for_iter.Words words:[{(${ Id.VSub_Name A)}])
              body: (command.DoGroup children:[(C {<elog>} {(DQ <'   '> (${ Id.VSub_Name x))})])
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi0_src_unpack
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name A)})
                  redirects: []
                )
                (C {<unpack>} {(${ Id.VSub_Name A)})
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi0_src_compile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-x>} {<'./configure'>} {<Id.Lit_RBracket ']'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<econf>})]
                  spids: [6362 6374]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<__eapi2_src_compile>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi0_src_test
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'emake_cmd='> 
                (DQ 
                  (braced_var_sub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name MAKE>
                    var_name: MAKE
                    suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<make>})
                    right: <Id.Right_DollarBrace '}'>
                  ) <' '> (${ Id.VSub_Name MAKEOPTS) <' '> (${ Id.VSub_Name EXTRA_EMAKE)
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'internal_opts='>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_default_src_test_disables_parallel_jobs>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'internal_opts+='>
                              name: internal_opts
                            )
                          op: assign_op.PlusEqual
                          rhs: {(DQ <' -j1'>)}
                          spids: [6448]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [6440 6445]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [
                                {($ Id.VSub_DollarName emake_cmd)}
                                {(${ Id.VSub_Name internal_opts)}
                                {<check>}
                                {<-n>}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<__vecho>}
                        {
                          (DQ (${ Id.VSub_Name emake_cmd) <' '> (${ Id.VSub_Name internal_opts) 
                            <' check'>
                          )
                        }
                      ]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      more_env: []
                      do_fork: T
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName emake_cmd)} {(${ Id.VSub_Name internal_opts)} 
                          {<check>}
                        )
                        (C {<die>} {(DQ <'Make check failed. See above for details.'>)})
                      ]
                    )
                  ]
                  spids: [6457 6474]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [
                                {($ Id.VSub_DollarName emake_cmd)}
                                {(${ Id.VSub_Name internal_opts)}
                                {<test>}
                                {<-n>}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<__vecho>}
                        {
                          (DQ (${ Id.VSub_Name emake_cmd) <' '> (${ Id.VSub_Name internal_opts) 
                            <' test'>
                          )
                        }
                      ]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      more_env: []
                      do_fork: T
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName emake_cmd)} {(${ Id.VSub_Name internal_opts)} {<test>})
                        (C {<die>} {(DQ <'Make test failed. See above for details.'>)})
                      ]
                    )
                  ]
                  spids: [6513 6530]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi1_src_compile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<__eapi2_src_configure>}) (C {<__eapi2_src_compile>})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi2_src_prepare
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<Id.Lit_Colon ':'>})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi2_src_configure
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_x
                                  child: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name ECONF_SOURCE>
                                        var_name: ECONF_SOURCE
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonHyphen _>
                                            arg_word: {<.>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <'/configure'>
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<econf>})]
                  spids: [6608 6625]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi2_src_compile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-f>} {<Makefile>} {<Id.Lit_RBracket ']'>})
                                (C {<Id.Lit_LBracket '['>} {<-f>} {<GNUmakefile>} {<Id.Lit_RBracket ']'>})
                                (C {<Id.Lit_LBracket '['>} {<-f>} {<makefile>} {<Id.Lit_RBracket ']'>})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [(C {<emake>}) (C {<die>} {(DQ <'emake failed'>)})]
                    )
                  ]
                  spids: [6643 6674]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi4_src_install
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<Makefile>})
                                  right: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {<GNUmakefile>}
                                        )
                                      right: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<makefile>})
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>})
                  ]
                  spids: [6700 6724]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  words: [{<declare>} {<-p>} {<DOCS>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_AndGreat '&>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} {<d>})
                    (command.ForEach
                      iter_names: [d]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {<README> <Id.Lit_Star '*'>}
                            {<ChangeLog>}
                            {<AUTHORS>}
                            {<NEWS>}
                            {<TODO>}
                            {<CHANGES>}
                            {<THANKS>}
                            {<BUGS>}
                            {<FAQ>}
                            {<CREDITS>}
                            {<CHANGELOG>}
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_s
                                      child: {(DQ (${ Id.VSub_Name d))}
                                    )
                                  redirects: []
                                )
                                (C {<dodoc>} {(DQ (${ Id.VSub_Name d))})
                              ]
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [6743 6758]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: (C {<declare>} {<-p>} {<DOCS>})
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  right: {(DQ <'declare -a '>) <Id.Lit_Other '*'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<dodoc>} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name DOCS>
                            var_name: DOCS
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            right: <Id.Right_DollarBrace '}'>
                          )
                        )
                      }
                    )
                  ]
                  spids: [6828 6851]
                )
              ]
              else_action: [(C {<dodoc>} {(${ Id.VSub_Name DOCS)})]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi6_src_prepare
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            words: [{<declare>} {<-p>} {<PATCHES>}]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            more_env: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name PATCHES>
                                    var_name: PATCHES
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          redirects: []
                        )
                        (C {<eapply>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name PATCHES>
                                var_name: PATCHES
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                right: <Id.Right_DollarBrace '}'>
                              )
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [6888 6913]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(${ Id.VSub_Name PATCHES)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<eapply>} {(${ Id.VSub_Name PATCHES)})]
                  spids: [6943 6956]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<eapply_user>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: __eapi6_src_install
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<Makefile>})
                                  right: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {<GNUmakefile>}
                                        )
                                      right: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<makefile>})
                                    )
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>})
                  ]
                  spids: [6982 7006]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<einstalldocs>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: has_version
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<atom>} {<eroot>} {<Id.Lit_VarLike 'host_root='> <false>} 
              {<Id.Lit_VarLike 'root='> (${ Id.VSub_Name ROOT)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {<--host-root>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_root='> name:host_root)
                          op: assign_op.Equal
                          rhs: {<true>}
                          spids: [7088]
                        )
                      ]
                      redirects: []
                    )
                    (C {<shift>})
                  ]
                  spids: [7071 7085]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'atom='> name:atom)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [7098]
                )
              ]
              redirects: []
            )
            (C {<shift>})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>})
                (C {<die>} 
                  {
                    (DQ 
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name FUNCNAME>
                        var_name: FUNCNAME
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      ) <': unused argument(s): '> ($ Id.VSub_Star '*')
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {(${ Id.VSub_Name host_root)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C 
                                          {
                                            <
___eapi_best_version_and_has_version_support_--host-root
                                            >
                                          }
                                        )
                                      ]
                                      negated: T
                                      stderr_indices: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [7143 7150]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                          spids: [7172]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7132 7140]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_has_prefix_variables>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {(${ Id.VSub_Name host_root)})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name root>
                                        var_name: root
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Percent '%'>
                                            arg_word: {<Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'>
                                    }
                                  spids: [7211]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7200 7208]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name root>
                                    var_name: root
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_Percent '%'>
                                        arg_word: {<Id.Lit_Slash '/'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  ) (${ Id.VSub_Name EPREFIX) <'/'>
                                }
                              spids: [7226]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7180 7185]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name root)}
                      spids: [7244]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName PORTAGE_IPC_DAEMON)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {(DQ ($ Id.VSub_DollarName PORTAGE_BIN_PATH)) <'/ebuild-ipc'>} {<has_version>} 
                      {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                    )
                  ]
                  spids: [7253 7265]
                )
              ]
              else_action: [
                (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'>)} 
                  {<has_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                )
              ]
              redirects: []
            )
            (C {<local>} {<Id.Lit_VarLike 'retval='> ($ Id.VSub_QMark '?')})
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{<0>} {<1>}]
                  action: [
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {(${ Id.VSub_Name retval)}
                    )
                  ]
                  spids: [7333 7336 7346 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [
                    (C {<die>} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name FUNCNAME>
                            var_name: FUNCNAME
                            bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                            right: <Id.Right_DollarBrace '}'>
                          ) <': invalid atom: '> (${ Id.VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7349 7350 7369 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [7376 7389]
                        )
                      ]
                      else_action: [
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name FUNCNAME>
                                var_name: FUNCNAME
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                            )
                          }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7372 7373 7430 -1]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: best_version
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<atom>} {<eroot>} {<Id.Lit_VarLike 'host_root='> <false>} 
              {<Id.Lit_VarLike 'root='> (${ Id.VSub_Name ROOT)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_Number 1)}
                                  right: {<--host-root>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_root='> name:host_root)
                          op: assign_op.Equal
                          rhs: {<true>}
                          spids: [7496]
                        )
                      ]
                      redirects: []
                    )
                    (C {<shift>})
                  ]
                  spids: [7479 7493]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'atom='> name:atom)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [7506]
                )
              ]
              redirects: []
            )
            (C {<shift>})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>})
                (C {<die>} 
                  {
                    (DQ 
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name FUNCNAME>
                        var_name: FUNCNAME
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                        right: <Id.Right_DollarBrace '}'>
                      ) <': unused argument(s): '> ($ Id.VSub_Star '*')
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {(${ Id.VSub_Name host_root)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C 
                                          {
                                            <
___eapi_best_version_and_has_version_support_--host-root
                                            >
                                          }
                                        )
                                      ]
                                      negated: T
                                      stderr_indices: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [7551 7558]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                          spids: [7580]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7540 7548]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_has_prefix_variables>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {(${ Id.VSub_Name host_root)})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name root>
                                        var_name: root
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Percent '%'>
                                            arg_word: {<Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'>
                                    }
                                  spids: [7619]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [7608 7616]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name root>
                                    var_name: root
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_Percent '%'>
                                        arg_word: {<Id.Lit_Slash '/'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  ) (${ Id.VSub_Name EPREFIX) <'/'>
                                }
                              spids: [7634]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7588 7593]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eroot='> name:eroot)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name root)}
                      spids: [7652]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName PORTAGE_IPC_DAEMON)}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {(DQ ($ Id.VSub_DollarName PORTAGE_BIN_PATH)) <'/ebuild-ipc'>} {<best_version>} 
                      {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                    )
                  ]
                  spids: [7661 7673]
                )
              ]
              else_action: [
                (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'>)} 
                  {<best_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                )
              ]
              redirects: []
            )
            (C {<local>} {<Id.Lit_VarLike 'retval='> ($ Id.VSub_QMark '?')})
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{<0>} {<1>}]
                  action: [
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {(${ Id.VSub_Name retval)}
                    )
                  ]
                  spids: [7741 7744 7754 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [
                    (C {<die>} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name FUNCNAME>
                            var_name: FUNCNAME
                            bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                            right: <Id.Right_DollarBrace '}'>
                          ) <': invalid atom: '> (${ Id.VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7757 7758 7777 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [7784 7797]
                        )
                      ]
                      else_action: [
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name FUNCNAME>
                                var_name: FUNCNAME
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                            )
                          }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [7780 7781 7838 -1]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_get_libdir>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: get_libdir
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'libdir_var='> (DQ <LIBDIR_> (${ Id.VSub_Name ABI))})
                    (C {<local>} {<Id.Lit_VarLike 'libdir='> (DQ <lib>)})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(${ Id.VSub_Name ABI)}
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name libdir_var>
                                        var_name: libdir_var
                                        prefix_op: <Id.VSub_Bang '!'>
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                            )
                          redirects: []
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name libdir_var>
                                    var_name: libdir_var
                                    prefix_op: <Id.VSub_Bang '!'>
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              spids: [7902]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (C {<echo>} {(DQ (${ Id.VSub_Name libdir))})
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [7846 7851]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_einstalldocs>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: einstalldocs
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Subshell
                      child: 
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.Simple
                                              words: [{<declare>} {<-p>} {<DOCS>}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_AndGreat '&>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                          ]
                                          negated: T
                                          stderr_indices: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<local>} {<d>})
                                (command.ForEach
                                  iter_names: [d]
                                  iterable: 
                                    (for_iter.Words
                                      words: [
                                        {<README> <Id.Lit_Star '*'>}
                                        {<ChangeLog>}
                                        {<AUTHORS>}
                                        {<NEWS>}
                                        {<TODO>}
                                        {<CHANGES>}
                                        {<THANKS>}
                                        {<BUGS>}
                                        {<FAQ>}
                                        {<CREDITS>}
                                        {<CHANGELOG>}
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.AndOr
                                          ops: [Id.Op_DAmp Id.Op_DAmp]
                                          children: [
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.LogicalAnd
                                                  left: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_f
                                                      child: {(${ Id.VSub_Name d)}
                                                    )
                                                  right: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_s
                                                      child: {(${ Id.VSub_Name d)}
                                                    )
                                                )
                                              redirects: []
                                            )
                                            (C {<docinto>} {<'/'>})
                                            (C {<dodoc>} {(DQ (${ Id.VSub_Name d))})
                                          ]
                                        )
                                      ]
                                    )
                                  redirects: []
                                )
                              ]
                              spids: [7942 7957]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: (C {<declare>} {<-p>} {<DOCS>})
                                                    right: <Id.Eof_RParen _>
                                                  )
                                                }
                                              right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.WordTest
                                          w: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name DOCS>
                                                var_name: DOCS
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      redirects: []
                                    )
                                    (C {<docinto>} {<'/'>})
                                    (C {<dodoc>} {<-r>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name DOCS>
                                            var_name: DOCS
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [8039 8062]
                            )
                          ]
                          else_action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: (bool_expr.WordTest w:{(${ Id.VSub_Name DOCS)})
                                  redirects: []
                                )
                                (C {<docinto>} {<'/'>})
                                (C {<dodoc>} {<-r>} {(${ Id.VSub_Name DOCS)})
                              ]
                            )
                          ]
                          redirects: []
                        )
                      redirects: []
                    )
                    (command.Subshell
                      child: 
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: 
                                                      (command.Simple
                                                        words: [{<declare>} {<-p>} {<HTML_DOCS>}]
                                                        redirects: [
                                                          (redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                        more_env: []
                                                        do_fork: T
                                                      )
                                                    right: <Id.Eof_RParen _>
                                                  )
                                                }
                                              right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>}
                                            )
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.WordTest
                                          w: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name HTML_DOCS>
                                                var_name: HTML_DOCS
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      redirects: []
                                    )
                                    (C {<docinto>} {<html>})
                                    (C {<dodoc>} {<-r>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name HTML_DOCS>
                                            var_name: HTML_DOCS
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [8136 8162]
                            )
                          ]
                          else_action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: (bool_expr.WordTest w:{(${ Id.VSub_Name HTML_DOCS)})
                                  redirects: []
                                )
                                (C {<docinto>} {<html>})
                                (C {<dodoc>} {<-r>} {(${ Id.VSub_Name HTML_DOCS)})
                              ]
                            )
                          ]
                          redirects: []
                        )
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [7924 7929]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<___eapi_has_eapply>}) terminator:<Id.Op_Semi _>)]
            )
          action: [
            (command.ShFunction
              name: eapply
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<failed>} {<Id.Lit_VarLike 'patch_cmd='> <patch>})
                    (C {<local>} {<-x>} {<Id.Lit_VarLike 'LC_COLLATE='> <POSIX>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.Simple
                          words: [{<type>} {<-P>} {<gpatch>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'patch_cmd='>
                                  name: patch_cmd
                                )
                              op: assign_op.Equal
                              rhs: {<gpatch>}
                              spids: [8289]
                            )
                          ]
                          redirects: []
                        )
                      ]
                    )
                    (command.ShFunction
                      name: _eapply_patch
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (C {<local>} {<Id.Lit_VarLike 'f='> (${ Id.VSub_Number 1)})
                            (C {<local>} {<Id.Lit_VarLike 'prefix='> (${ Id.VSub_Number 2)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'started_applying='>
                                      name: started_applying
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [8318]
                                )
                              ]
                              redirects: []
                            )
                            (C {<ebegin>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name prefix>
                                    var_name: prefix
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_ColonHyphen _>
                                        arg_word: {<'Applying '>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  ) 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name f>
                                    var_name: f
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_DPound '##'>
                                        arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                )
                              }
                            )
                            (command.Simple
                              words: [
                                {(${ Id.VSub_Name patch_cmd)}
                                {<-p1>}
                                {<-f>}
                                {<-s>}
                                {<-g0>}
                                {<--no-backup-if-mismatch>}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name patch_options>
                                      var_name: patch_options
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {(DQ (${ Id.VSub_Name f))}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'failed='> name:failed)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_QMark '?')}
                                  spids: [8393]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [(C {<eend>} {(DQ (${ Id.VSub_Name failed))})]
                                              negated: T
                                              stderr_indices: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} 
                                      {
                                        (DQ <'patch -p1 '> 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name patch_options>
                                            var_name: patch_options
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star)
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <' failed with '> (${ Id.VSub_Name f)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [8399 8412]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'patch_options='> 
                        (sh_array_literal left:<Id.Op_LParen _> words:[])
                      } {<Id.Lit_VarLike 'files='> (sh_array_literal left:<Id.Op_LParen _> words:[])}
                    )
                    (C {<local>} {<i>} {<found_doublehyphen>})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {<Id.Lit_Digits 1>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: ($ Id.Lit_ArithVarLike i)
                          right: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_At '@'>
                                var_name: '@'
                                prefix_op: <Id.VSub_Pound '#'>
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Arith_DPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: 
                                                    {
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_At '@'>
                                                        var_name: '@'
                                                        suffix_op: 
                                                          (suffix_op.Slice
                                                            begin: ($ Id.Lit_ArithVarLike i)
                                                            length: {<Id.Lit_Digits 1>}
                                                          )
                                                        right: <Id.Arith_RBrace _>
                                                      )
                                                    }
                                                  right: {<-->}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'patch_options='>
                                              name: patch_options
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_At '@'>
                                                        var_name: '@'
                                                        suffix_op: 
                                                          (suffix_op.Slice
                                                            begin: {<Id.Lit_Digits 1>}
                                                            length: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Minus
                                                                left: ($ Id.Lit_ArithVarLike i)
                                                                right: {<Id.Lit_Digits 1>}
                                                              )
                                                          )
                                                        right: <Id.Arith_RBrace _>
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8514]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'files='>
                                              name: files
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_At '@'>
                                                        var_name: '@'
                                                        suffix_op: 
                                                          (suffix_op.Slice
                                                            begin: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Plus
                                                                left: ($ Id.Lit_ArithVarLike i)
                                                                right: {<Id.Lit_Digits 1>}
                                                              )
                                                          )
                                                        right: <Id.Arith_RBrace _>
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8532]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'found_doublehyphen='>
                                              name: found_doublehyphen
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [8548]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [8492 8511]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {(${ Id.VSub_Name found_doublehyphen)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForExpr
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: ($ Id.Lit_ArithVarLike i)
                                  right: {<Id.Lit_Digits 1>}
                                )
                              cond: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LessEqual
                                  left: ($ Id.Lit_ArithVarLike i)
                                  right: 
                                    {
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_At '@'>
                                        var_name: '@'
                                        prefix_op: <Id.VSub_Pound '#'>
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Arith_DPlus
                                  child: ($ Id.Lit_ArithVarLike i)
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobNEqual
                                                          left: 
                                                            {
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_At '@'>
                                                                var_name: '@'
                                                                suffix_op: 
                                                                  (suffix_op.Slice
                                                                    begin: ($ Id.Lit_ArithVarLike i)
                                                                    length: {<Id.Lit_Digits 1>}
                                                                  )
                                                                right: <Id.Arith_RBrace _>
                                                              )
                                                            }
                                                          right: {<-> <Id.Lit_Other '*'>}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'patch_options='>
                                                      name: patch_options
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_At '@'>
                                                                var_name: '@'
                                                                suffix_op: 
                                                                  (suffix_op.Slice
                                                                    begin: {<Id.Lit_Digits 1>}
                                                                    length: 
                                                                      (arith_expr.Binary
                                                                        op_id: Id.Arith_Minus
                                                                        left: 
                                                                          ($ Id.Lit_ArithVarLike i)
                                                                        right: {<Id.Lit_Digits 1>}
                                                                      )
                                                                  )
                                                                right: <Id.Arith_RBrace _>
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8636]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'files='>
                                                      name: files
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_At '@'>
                                                                var_name: '@'
                                                                suffix_op: 
                                                                  (suffix_op.Slice
                                                                    begin: ($ Id.Lit_ArithVarLike i)
                                                                  )
                                                                right: <Id.Arith_RBrace _>
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8654]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [8613 8633]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                            (command.ForEach
                              iter_names: [i]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name files>
                                          var_name: files
                                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name i)}
                                                          right: {<-> <Id.Lit_Other '*'>}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<die>} 
                                              {
                                                (DQ 
                                                  <
'eapply: all options must be passed before non-options'
                                                  >
                                                )
                                              }
                                            )
                                          ]
                                          spids: [8701 8717]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                          spids: [8566 8579]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name files>
                                                var_name: files
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<die>} {(DQ <'eapply: no files specified'>)})]
                          spids: [8737 8753]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<local>} {<f>})
                    (command.ForEach
                      iter_names: [f]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (DQ 
                                (braced_var_sub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name files>
                                  var_name: files
                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_d
                                                  child: {(${ Id.VSub_Name f)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShFunction
                                      name: _eapply_get_files
                                      body: 
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (C {<local>} {<Id.Lit_VarLike 'LC_ALL='> <POSIX>})
                                            (C {<local>} 
                                              {<Id.Lit_VarLike 'prev_shopt='> 
                                                (command_sub
                                                  left_token: <Id.Left_DollarParen '$('>
                                                  child: (C {<shopt>} {<-p>} {<nullglob>})
                                                  right: <Id.Eof_RParen _>
                                                )
                                              }
                                            )
                                            (C {<shopt>} {<-s>} {<nullglob>})
                                            (C {<local>} {<f>})
                                            (command.ForEach
                                              iter_names: [f]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {(DQ (${ Id.VSub_Number 1)) <'/'> 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.DBracket
                                                                      expr: 
                                                                        (bool_expr.LogicalOr
                                                                          left: 
                                                                            (bool_expr.Binary
                                                                              op_id: 
Id.BoolBinary_GlobDEqual
                                                                              left: 
                                                                                {(${ Id.VSub_Name f)}
                                                                              right: 
                                                                                {<Id.Lit_Other '*'> 
                                                                                  <.diff>
                                                                                }
                                                                            )
                                                                          right: 
                                                                            (bool_expr.Binary
                                                                              op_id: 
Id.BoolBinary_GlobDEqual
                                                                              left: 
                                                                                {(${ Id.VSub_Name f)}
                                                                              right: 
                                                                                {<Id.Lit_Other '*'> 
                                                                                  <.patch>
                                                                                }
                                                                            )
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'files+='>
                                                                      name: files
                                                                    )
                                                                  op: assign_op.PlusEqual
                                                                  rhs: 
                                                                    {
                                                                      (sh_array_literal
                                                                        left: <Id.Op_LParen _>
                                                                        words: [
                                                                          {(DQ (${ Id.VSub_Name f))}
                                                                        ]
                                                                      )
                                                                    }
                                                                  spids: [8892]
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [8862 8889]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (C {(${ Id.VSub_Name prev_shopt)})
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                    )
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'files='> 
                                        (sh_array_literal
                                          left: <Id.Op_LParen _>
                                          words: []
                                        )
                                      }
                                    )
                                    (C {<_eapply_get_files>} {(DQ (${ Id.VSub_Name f))})
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: 
                                                {
                                                  (braced_var_sub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name files>
                                                    var_name: files
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                            )
                                          redirects: []
                                        )
                                        (C {<die>} 
                                          {
                                            (DQ <'No *.{patch,diff} files in directory '> 
                                              (${ Id.VSub_Name f)
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (C {<einfo>} 
                                      {(DQ <'Applying patches from '> (${ Id.VSub_Name f) <' ...'>)}
                                    )
                                    (C {<local>} {<f2>})
                                    (command.ForEach
                                      iter_names: [f2]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {
                                              (DQ 
                                                (braced_var_sub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name files>
                                                  var_name: files
                                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<_eapply_patch>} {(DQ (${ Id.VSub_Name f2))} 
                                              {(SQ <'  '>)}
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_ne
                                                      left: {(${ Id.VSub_Name failed)}
                                                      right: {<0>}
                                                    )
                                                  redirects: []
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Return return>
                                                  arg_word: {(DQ (${ Id.VSub_Name failed))}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [8791 8804]
                                )
                              ]
                              else_action: [
                                (C {<_eapply_patch>} {(DQ (${ Id.VSub_Name f))})
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_ne
                                          left: {(${ Id.VSub_Name failed)}
                                          right: {<0>}
                                        )
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {(DQ (${ Id.VSub_Name failed))}
                                    )
                                  ]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [8241 8246]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_eapply_user>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: eapply_user
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(${ Id.VSub_Name EBUILD_PHASE)}
                              right: {<prepare>}
                            )
                          redirects: []
                        )
                        (C {<die>} 
                          {
                            (DQ <'eapply_user() called during invalid phase: '> 
                              (${ Id.VSub_Name EBUILD_PHASE)
                            )
                          }
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'tagfile='> (${ Id.VSub_Name T) 
                        <'/.portage_user_patches_applied'>
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(${ Id.VSub_Name tagfile)}
                            )
                          redirects: []
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                        )
                      ]
                    )
                    (command.Simple
                      words: []
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ (${ Id.VSub_Name tagfile))}
                        )
                      ]
                      more_env: []
                      do_fork: F
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'basedir='> 
                        (braced_var_sub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name PORTAGE_CONFIGROOT>
                          var_name: PORTAGE_CONFIGROOT
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VOp1_Percent '%'>
                              arg_word: {<Id.Lit_Slash '/'>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        ) <'/etc/portage/patches'>
                      }
                    )
                    (C {<local>} {<applied>} {<d>} {<f>})
                    (C {<local>} {<-A>} {<_eapply_user_patches>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'prev_shopt='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<shopt>} {<-p>} {<nullglob>})
                          right: <Id.Eof_RParen _>
                        )
                      }
                    )
                    (C {<shopt>} {<-s>} {<nullglob>})
                    (command.ForEach
                      iter_names: [d]
                      iterable: 
                        (for_iter.Words
                          words: [
                            (word.BracedTree
                              parts: [
                                (DQ (${ Id.VSub_Name basedir))
                                <'/'>
                                (${ Id.VSub_Name CATEGORY)
                                <'/'>
                                (word_part.BracedTuple
                                  words: [
                                    {(${ Id.VSub_Name P) <-> (${ Id.VSub_Name PR)}
                                    {(${ Id.VSub_Name P)}
                                    {(${ Id.VSub_Name PN)}
                                  ]
                                )
                                (word_part.BracedTuple
                                  words: [
                                    {<Id.Lit_Colon ':'> 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name SLOT>
                                        var_name: SLOT
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Percent '%'>
                                            arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                    {}
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ForEach
                              iter_names: [f]
                              iterable: 
                                (for_iter.Words
                                  words: [{(DQ (${ Id.VSub_Name d)) <'/'> <Id.Lit_Star '*'>}]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.LogicalAnd
                                                          left: 
                                                            (bool_expr.LogicalOr
                                                              left: 
                                                                (bool_expr.Binary
                                                                  op_id: Id.BoolBinary_GlobDEqual
                                                                  left: {(${ Id.VSub_Name f)}
                                                                  right: {<Id.Lit_Other '*'> <.diff>}
                                                                )
                                                              right: 
                                                                (bool_expr.Binary
                                                                  op_id: Id.BoolBinary_GlobDEqual
                                                                  left: {(${ Id.VSub_Name f)}
                                                                  right: {<Id.Lit_Other '*'> <.patch>}
                                                                )
                                                            )
                                                          right: 
                                                            (bool_expr.Unary
                                                              op_id: Id.BoolUnary_z
                                                              child: 
                                                                {
                                                                  (braced_var_sub
                                                                    left: <Id.Left_DollarBrace '${'>
                                                                    token: 
                                                                      <Id.VSub_Name 
_eapply_user_patches
                                                                      >
                                                                    var_name: _eapply_user_patches
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          {
                                                                            (braced_var_sub
                                                                              left: 
                                                                                <
Id.Left_DollarBrace '${'
                                                                                >
                                                                              token: <Id.VSub_Name f>
                                                                              var_name: f
                                                                              suffix_op: 
                                                                                (suffix_op.Unary
                                                                                  op: 
                                                                                    <Id.VOp1_DPound 
'##'
                                                                                    >
                                                                                  arg_word: 
                                                                                    {
                                                                                      <Id.Lit_Other 
'*'
                                                                                      > <Id.Lit_Slash '/'>
                                                                                    }
                                                                                )
                                                                              right: 
                                                                                <
Id.Right_DollarBrace '}'
                                                                                >
                                                                            )
                                                                          }
                                                                      )
                                                                    right: <Id.Right_DollarBrace '}'>
                                                                  )
                                                                }
                                                            )
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      left: 
                                                        <Id.Lit_ArrayLhsOpen '_eapply_user_patches['>
                                                      name: _eapply_user_patches
                                                      index: 
                                                        {
                                                          (braced_var_sub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name f>
                                                            var_name: f
                                                            suffix_op: 
                                                              (suffix_op.Unary
                                                                op: <Id.VOp1_DPound '##'>
                                                                arg_word: 
                                                                  {<Id.Lit_Other '*'> 
                                                                    <Id.Lit_Slash '/'>
                                                                  }
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(${ Id.VSub_Name f)}
                                                  spids: [9393]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [9342 9390]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_gt
                                          left: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name _eapply_user_patches>
                                                var_name: _eapply_user_patches
                                                prefix_op: <Id.VSub_Pound '#'>
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          right: {<0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: (C {<read>} {<-r>} {<-d>} {(SQ )} {<f>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name _eapply_user_patches>
                                                var_name: _eapply_user_patches
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {(${ Id.VSub_Name f)}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          spids: [9462]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Unary
                                                          op_id: Id.BoolUnary_s
                                                          child: {(${ Id.VSub_Name f)}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eapply>} {(DQ (${ Id.VSub_Name f))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'applied='>
                                                      name: applied
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [9498]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [9473 9486]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                )
                              redirects: [
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_ProcSubIn '<('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<printf>} {<-->} {(SQ <'%s\\0'>)} 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name _eapply_user_patches>
                                                      var_name: _eapply_user_patches
                                                      prefix_op: <Id.VSub_Bang '!'>
                                                      bracket_op: 
                                                        (bracket_op.WholeArray
                                                          op_id: Id.Lit_At
                                                        )
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  )
                                                }
                                              )
                                              (command.Simple
                                                words: [{<sort>} {<-z>}]
                                                redirects: []
                                                more_env: [
                                                  (env_pair
                                                    name: LC_ALL
                                                    val: {<C>}
                                                    spids: [9531]
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                            )
                          ]
                          spids: [9423 9442]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {(${ Id.VSub_Name prev_shopt)})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {(${ Id.VSub_Name applied)}
                            )
                          redirects: []
                        )
                        (C {<ewarn>} {(DQ <'User patches applied.'>)})
                      ]
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [9097 9102]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_in_iuse>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: in_iuse
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'use='> (${ Id.VSub_Number 1)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {(DQ (${ Id.VSub_Name use))}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<echo>} {(DQ <'!!! in_iuse() called without a parameter.'>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.Simple
                              words: [{<echo>} {(DQ <'!!! in_iuse <USEFLAG>'>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (C {<die>} {(DQ <'in_iuse() called without a parameter'>)})
                          ]
                          spids: [9598 9613]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'liuse='> 
                        (sh_array_literal
                          left: <Id.Op_LParen _>
                          words: [{(${ Id.VSub_Name IUSE_EFFECTIVE)}]
                        )
                      }
                    )
                    (C {<has>} {(DQ (${ Id.VSub_Name use))} 
                      {
                        (DQ 
                          (braced_var_sub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name liuse>
                            var_name: liuse
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_Pound '#'>
                                arg_word: {<'['> <Id.Lit_Other '+'> <'-]'>}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        )
                      }
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [9574 9579]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_master_repositories>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: master_repositories
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<output>} {<Id.Lit_VarLike 'repository='> ($ Id.VSub_Number 1)} 
                      {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '#')}
                              right: {<0>}
                            )
                          redirects: []
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name FUNCNAME>
                                var_name: FUNCNAME
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <': unused argument(s): '> ($ Id.VSub_Star '*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<master_repositories>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                            )
                          ]
                          spids: [9742 9755]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<master_repositories>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [9783]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [9811]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                          redirects: []
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [9847 9850 9860 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [9863 9864 9883 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name FUNCNAME>
                                            var_name: FUNCNAME
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [9890 9903]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [9886 9887 9944 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [9687 9692]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_repository_path>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: repository_path
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<output>} {<Id.Lit_VarLike 'repository='> ($ Id.VSub_Number 1)} 
                      {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '#')}
                              right: {<0>}
                            )
                          redirects: []
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name FUNCNAME>
                                var_name: FUNCNAME
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <': unused argument(s): '> ($ Id.VSub_Star '*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<repository_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                            )
                          ]
                          spids: [10010 10023]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<get_repo_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [10051]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [10079]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                          redirects: []
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10115 10118 10128 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10131 10132 10151 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name FUNCNAME>
                                            var_name: FUNCNAME
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10158 10171]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10154 10155 10212 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [9955 9960]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_available_eclasses>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: available_eclasses
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<output>} 
                      {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>}
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '#')}
                              right: {<0>}
                            )
                          redirects: []
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name FUNCNAME>
                                var_name: FUNCNAME
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <': unused argument(s): '> ($ Id.VSub_Star '*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<available_eclasses>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                            )
                          ]
                          spids: [10277 10290]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<available_eclasses>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [10318]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [10346]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                          redirects: []
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10382 10385 10395 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10398 10399 10418 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name FUNCNAME>
                                            var_name: FUNCNAME
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10425 10438]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10421 10422 10479 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [10223 10228]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_eclass_path>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: eclass_path
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'eclass='> ($ Id.VSub_Number 1)} {<output>} 
                      {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '#')}
                              right: {<0>}
                            )
                          redirects: []
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name FUNCNAME>
                                var_name: FUNCNAME
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <': unused argument(s): '> ($ Id.VSub_Star '*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<eclass_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name eclass))}
                            )
                          ]
                          spids: [10550 10563]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<eclass_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} 
                                        {(DQ (${ Id.VSub_Name eclass))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [10597]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [10631]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                          redirects: []
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10667 10670 10680 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10683 10684 10703 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name FUNCNAME>
                                            var_name: FUNCNAME
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10710 10723]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10706 10707 10764 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [10490 10495]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_license_path>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: license_path
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'license='> ($ Id.VSub_Number 1)} {<output>} 
                      {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '#')}
                              right: {<0>}
                            )
                          redirects: []
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name FUNCNAME>
                                var_name: FUNCNAME
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                right: <Id.Right_DollarBrace '}'>
                              ) <': unused argument(s): '> ($ Id.VSub_Star '*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<license_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name license))}
                            )
                          ]
                          spids: [10835 10848]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<license_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} 
                                        {(DQ (${ Id.VSub_Name license))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [10882]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'retval='> name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [10916]
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                          redirects: []
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10952 10955 10965 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name FUNCNAME>
                                    var_name: FUNCNAME
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10968 10969 10988 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name FUNCNAME>
                                            var_name: FUNCNAME
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10995 11008]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name FUNCNAME>
                                        var_name: FUNCNAME
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                        right: <Id.Right_DollarBrace '}'>
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [10991 10992 11049 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [10775 10780]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_package_manager_build_user>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: package_manager_build_user
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_USER))})]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [11060 11065]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_package_manager_build_group>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: package_manager_build_group
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_GROUP))})]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [11089 11094]
        )
      ]
      else_action: []
      redirects: []
    )
  ]
)