(CommandList
  children: [
    (FuncDef
      name: register_die_hook
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[19])]
              spids: [17]
            )
            (ForEach
              iter_name: x
              iter_words: [{($ VSub_Star '$*')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(has)} {($ VSub_Name '$x')} {($ VSub_Name '$EBUILD_DEATH_HOOKS')})
                        (C {(export)} 
                          {(Lit_VarLike 'EBUILD_DEATH_HOOKS=') 
                            (DQ ($ VSub_Name '$EBUILD_DEATH_HOOKS') (' ') ($ VSub_Name '$x'))
                          }
                        )
                      ]
                    )
                  ]
                  spids: [32 55]
                )
              spids: [27 30]
            )
          ]
          spids: [14]
        )
      spids: [10 13]
    )
    (FuncDef
      name: register_success_hook
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[69])]
              spids: [67]
            )
            (ForEach
              iter_name: x
              iter_words: [{($ VSub_Star '$*')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(has)} {($ VSub_Name '$x')} {($ VSub_Name '$EBUILD_SUCCESS_HOOKS')})
                        (C {(export)} 
                          {(Lit_VarLike 'EBUILD_SUCCESS_HOOKS=') 
                            (DQ ($ VSub_Name '$EBUILD_SUCCESS_HOOKS') (' ') ($ VSub_Name '$x'))
                          }
                        )
                      ]
                    )
                  ]
                  spids: [82 105]
                )
              spids: [77 80]
            )
          ]
          spids: [64]
        )
      spids: [60 63]
    )
    (FuncDef
      name: __strip_duplicate_slashes
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DBracket expr:(BoolUnary op_id:BoolUnary_n child:{($ VSub_Number '$1')}))
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:removed)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [134]
                        )
                      ]
                      spids: [132]
                    )
                    (While
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(${ VSub_Name removed)}
                                  right: {(Lit_Other '*') (//) (Lit_Other '*')}
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:removed)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name removed>
                                        suffix_op: 
                                          (PatSub
                                            pat: 
                                              {(EscapedLiteralPart token:<Lit_EscapedChar '\\/'>) 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar '\\/'>
                                                )
                                              }
                                            replace: {(Lit_Slash /)}
                                            do_all: T
                                            do_prefix: F
                                            do_suffix: F
                                          )
                                        spids: [160 168]
                                      )
                                    }
                                  spids: [159]
                                )
                              ]
                              spids: [159]
                            )
                          ]
                          spids: [156 171]
                        )
                    )
                    (C {(echo)} {(DQ (${ VSub_Name removed))})
                  ]
                  spids: [16777215 129]
                )
              ]
              spids: [16777215 183]
            )
          ]
          spids: [114]
        )
      spids: [110 113]
    )
    (FuncDef
      name: KV_major
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:KV) op:Equal rhs:{($ VSub_At '$@')} spids:[213])]
              spids: [211]
            )
            (C {(echo)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name KV>
                    suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('.*')})
                    spids: [220 224]
                  )
                )
              }
            )
          ]
          spids: [192]
        )
      spids: [188 191]
    )
    (FuncDef
      name: KV_minor
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:KV) op:Equal rhs:{($ VSub_At '$@')} spids:[255])]
              spids: [253]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KV)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name KV>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*.')})
                        spids: [260 264]
                      )
                    }
                  spids: [259]
                )
              ]
              spids: [259]
            )
            (C {(echo)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name KV>
                    suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('.*')})
                    spids: [270 274]
                  )
                )
              }
            )
          ]
          spids: [234]
        )
      spids: [230 233]
    )
    (FuncDef
      name: KV_micro
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:KV) op:Equal rhs:{($ VSub_At '$@')} spids:[305])]
              spids: [303]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KV)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name KV>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*.*.')})
                        spids: [310 314]
                      )
                    }
                  spids: [309]
                )
              ]
              spids: [309]
            )
            (C {(echo)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name KV>
                    suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('[^[:digit:]]*')})
                    spids: [320 324]
                  )
                )
              }
            )
          ]
          spids: [284]
        )
      spids: [280 283]
    )
    (FuncDef
      name: KV_to_int
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')})
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KV_MAJOR)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(KV_major)} {(DQ ($ VSub_Number '$1'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [356 362]
                      )
                    }
                  spids: [355]
                )
              ]
              spids: [353]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KV_MINOR)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(KV_minor)} {(DQ ($ VSub_Number '$1'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [368 374]
                      )
                    }
                  spids: [367]
                )
              ]
              spids: [365]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KV_MICRO)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(KV_micro)} {(DQ ($ VSub_Number '$1'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [380 386]
                      )
                    }
                  spids: [379]
                )
              ]
              spids: [377]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KV_int)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: 
                              (ArithBinary
                                op_id: Arith_Plus
                                left: 
                                  (ArithBinary
                                    op_id: Arith_Star
                                    left: (ArithVarRef name:KV_MAJOR)
                                    right: (ArithWord w:{(Lit_Digits 65536)})
                                  )
                                right: 
                                  (ArithBinary
                                    op_id: Arith_Star
                                    left: (ArithVarRef name:KV_MINOR)
                                    right: (ArithWord w:{(Lit_Digits 256)})
                                  )
                              )
                            right: (ArithVarRef name:KV_MICRO)
                          )
                        spids: [392 413]
                      )
                    }
                  spids: [391]
                )
              ]
              spids: [389]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_ge
                              left: {(${ VSub_Name KV_int)}
                              right: {(131584)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ (${ VSub_Name KV_int))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 441]
                )
              ]
              spids: [16777215 458]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [334]
        )
      spids: [330 333]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_RC_GET_KV_CACHE) op:Equal rhs:{(DQ )} spids:[469])]
      spids: [469]
    )
    (FuncDef
      name: get_KV
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_z child:{(${ VSub_Name _RC_GET_KV_CACHE)})
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_RC_GET_KV_CACHE)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(uname)} {(-r)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [495 499]
                          )
                        }
                      spids: [494]
                    )
                  ]
                  spids: [494]
                )
              ]
            )
            (C {(echo)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(KV_to_int)} {(DQ (${ VSub_Name _RC_GET_KV_CACHE))})]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [505 513]
                )
              }
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [477]
        )
      spids: [473 476]
    )
  ]
)