(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KOALEPHANT_ENVIRONMENT_PREFIX)
          op: Equal
          rhs: {(DQ )}
          spids: [19]
        )
      ]
      spids: [19]
    )
    (FuncDef
      name: k_env_safename
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {(DQ (${ VSub_Name KOALEPHANT_ENVIRONMENT_PREFIX) (${ VSub_Number 1))})
                (C {(tr)} {(-cd)} {(SQ <'[:alnum:]_'>)})
              ]
              negated: F
            )
          ]
          spids: [49]
        )
      spids: [45 48]
    )
    (FuncDef
      name: k_env_set
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:name) op:Equal spids:[100])
                (assign_pair lhs:(LhsName name:value) op:Equal spids:[102])
                (assign_pair lhs:(LhsName name:msg) op:Equal spids:[104])
                (assign_pair lhs:(LhsName name:tmpN) op:Equal spids:[106])
                (assign_pair lhs:(LhsName name:existing) op:Equal spids:[108])
                (assign_pair lhs:(LhsName name:nsName) op:Equal spids:[110])
              ]
              spids: [98]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-lt)} {(2)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(DQ ("Not enough arguments passed to k_env_set: '") ($ VSub_At '$@') ("'"))}
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[138])]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 127]
                )
              ]
              spids: [16777215 147]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(k_env_safename)} {(DQ (${ VSub_Number 1))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [152 160]
                      )
                    }
                  spids: [151]
                )
              ]
              spids: [151]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 2))}
                  spids: [163]
                )
              ]
              spids: [163]
            )
            (C {(k_debug)} {(2)} 
              {
                (DQ ("Setting '") (${ VSub_Name name) ("' environment variable to '") 
                  (${ VSub_Name value) ("'")
                )
              }
            )
            (C {(export)} {(DQ (${ VSub_Name name) ('=') (${ VSub_Name value))})
          ]
          spids: [95]
        )
      spids: [91 94]
    )
    (FuncDef
      name: k_env_unset
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[226])]
              spids: [224]
            )
            (ForEach
              iter_name: name
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(k_debug)} {(2)} 
                      {(DQ ("Unsetting '") (${ VSub_Name name) ("' environment variable"))}
                    )
                    (C {(unset)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(k_env_safename)} {(DQ (${ VSub_Name name))})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [260 268]
                          )
                        )
                      }
                    )
                  ]
                  spids: [241 272]
                )
              spids: [235 239]
            )
          ]
          spids: [221]
        )
      spids: [217 220]
    )
    (FuncDef
      name: k_env_export
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[298])]
              spids: [296]
            )
            (ForEach
              iter_name: name
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} 
                      {
                        (DQ ('export ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (${ VSub_Name name) ('=') 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(eval)} 
                                    {
                                      (DQ ('echo ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                        ('{') (${ VSub_Name name) ('}')
                                      )
                                    }
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [325 337]
                          ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                        )
                      }
                    )
                  ]
                  spids: [313 342]
                )
              spids: [307 311]
            )
          ]
          spids: [293]
        )
      spids: [289 292]
    )
    (FuncDef
      name: k_env_unexport
      body: (BraceGroup children:[(C {(echo)} {(DQ ('unset ') ($ VSub_At '$@'))})] spids:[363])
      spids: [359 362]
    )
    (FuncDef
      name: k_env_import_gecos
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:userName) op:Equal spids:[397])
                (assign_pair lhs:(LhsName name:passwdEntry) op:Equal spids:[399])
                (assign_pair lhs:(LhsName name:gecos) op:Equal spids:[401])
                (assign_pair lhs:(LhsName name:i) op:Equal spids:[403])
                (assign_pair lhs:(LhsName name:name) op:Equal spids:[405])
                (assign_pair lhs:(LhsName name:value) op:Equal spids:[407])
              ]
              spids: [395]
            )
            (C {(k_debug)} {(2)} {(DQ ('Importing Environment Variables from GECOS field'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:userName)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonHyphen
                              arg_word: {(${ VSub_Name USER)}
                            )
                          spids: [427 433]
                        )
                      )
                    }
                  spids: [425]
                )
              ]
              spids: [425]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:passwdEntry)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(getent)} {(passwd)} {(DQ (${ VSub_Name userName))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [438 448]
                      )
                    }
                  spids: [437]
                )
              ]
              spids: [437]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_QMark '$?'))} {(KW_Bang '!') (Lit_Other '=')} 
                          {(DQ (0))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_QMark '$?')}
                    )
                  ]
                  spids: [16777215 470]
                )
              ]
              spids: [16777215 478]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:gecos)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ (${ VSub_Name passwdEntry))})
                                  (C {(cut)} {(-d)} {(DQ (':'))} {(-f)} {(5)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [482 504]
                      )
                    }
                  spids: [481]
                )
              ]
              spids: [481]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[508])]
              spids: [508]
            )
            (ForEach
              iter_name: name
              iter_words: [{(NAME)} {(ROOM)} {(TELEPHONE_WORK)} {(TELEPHONE_HOME)} {(EMAIL)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(k_env_set)} {(DQ (${ VSub_Name name))} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} {(DQ (${ VSub_Name gecos))})
                                      (C {(cut)} {(-d)} {(DQ (','))} {(-f)} {(DQ (${ VSub_Name i))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [541 567]
                          )
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(k_string_contains)} {(DQ (${ VSub_Name name))} 
                                      {(DQ (${ VSub_Name KOALEPHANT_ENV_NS_GECOS))}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(export)} 
                              {(Lit_VarLike 'KOALEPHANT_ENV_NS_GECOS=') 
                                (DQ (${ VSub_Name KOALEPHANT_ENV_NS_GECOS) (' ') (${ VSub_Name name))
                              }
                            )
                          ]
                          spids: [16777215 591]
                        )
                      ]
                      spids: [16777215 608]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:i)
                          op: Equal
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Plus
                                    left: (ArithWord w:{(${ VSub_Name i)})
                                    right: (ArithWord w:{(Lit_Digits 1)})
                                  )
                                spids: [613 622]
                              )
                            }
                          spids: [612]
                        )
                      ]
                      spids: [612]
                    )
                  ]
                  spids: [529 625]
                )
              spids: [517 527]
            )
          ]
          spids: [392]
        )
      spids: [388 391]
    )
    (FuncDef
      name: k_env_export_gecos
      body: 
        (BraceGroup
          children: [(C {(k_env_export)} {(${ VSub_Name KOALEPHANT_ENV_NS_GECOS)})]
          spids: [637]
        )
      spids: [633 636]
    )
    (FuncDef
      name: k_env_unset_gecos
      body: 
        (BraceGroup
          children: [
            (C {(k_env_unset)} {(${ VSub_Name KOALEPHANT_ENV_NS_GECOS)} {(KOALEPHANT_ENV_NS_GECOS)})
          ]
          spids: [656]
        )
      spids: [652 655]
    )
    (FuncDef
      name: k_env_import_apache
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:lines) op:Equal spids:[692])
                (assign_pair lhs:(LhsName name:line) op:Equal spids:[694])
                (assign_pair lhs:(LhsName name:name) op:Equal spids:[696])
                (assign_pair lhs:(LhsName name:value) op:Equal spids:[698])
              ]
              spids: [690]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:IFS)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: (CommandList children:[(C {(printf)} {(SQ <'\\n '>)})])
                              left_token: <Left_CommandSub '$('>
                              spids: [706 712]
                            )
                          )
                        }
                      spids: [704]
                    )
                  ]
                  spids: [702]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:IFS)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name IFS>
                              suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(' ')})
                              spids: [719 723]
                            )
                          )
                        }
                      spids: [717]
                    )
                  ]
                  spids: [717]
                )
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [729]
                )
              ]
              spids: [727]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:setMode)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 2>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(true)})
                          spids: [741 745]
                        )
                      )
                    }
                  spids: [739]
                )
              ]
              spids: [737]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (${ VSub_Name file))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ("Invalid file supplied: '") (${ VSub_Name file) ("'"))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[780])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 767]
                )
              ]
              spids: [16777215 789]
            )
            (C {(k_debug)} {(2)} 
              {
                (DQ ("Importing Environment Variables from Apache Config: '") (${ VSub_Name file) ("'"))
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lines)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(grep)} {(-o)} {(-E)} {(DQ ('SetEnv[[:space:]].*'))} 
                                {(DQ (${ VSub_Name file))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [808 824]
                      )
                    }
                  spids: [807]
                )
              ]
              spids: [807]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(KW_Bang '!') (Lit_Other '=')} {(0)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {($ VSub_QMark '$?')}
                    )
                  ]
                  spids: [16777215 842]
                )
              ]
              spids: [16777215 850]
            )
            (ForEach
              iter_name: line
              iter_words: [{(${ VSub_Name lines)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:name)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ (${ VSub_Name line))})
                                          (C {(cut)} {(-d)} {(DQ (' '))} {(-f)} {(2)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [869 891]
                              )
                            }
                          spids: [868]
                        )
                      ]
                      spids: [868]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:value)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ (${ VSub_Name line))})
                                          (C {(cut)} {(-d)} {(DQ (' '))} {(-f)} {(3-)})
                                          (C {(perl)} {(-e)} 
                                            {(SQ <'s/^"//g; s/(?<!\\\\)"$//g; s/"/\\"/g'>)} {(-p)}
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [895 929]
                              )
                            }
                          spids: [894]
                        )
                      ]
                      spids: [894]
                    )
                    (C {(k_env_set)} {(DQ (${ VSub_Name name))} {(DQ (${ VSub_Name value))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(k_string_contains)} {(DQ (${ VSub_Name name))} 
                                      {(DQ (${ VSub_Name KOALEPHANT_ENV_NS_APACHE))}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(export)} 
                              {(Lit_VarLike 'KOALEPHANT_ENV_NS_APACHE=') 
                                (DQ (${ VSub_Name KOALEPHANT_ENV_NS_APACHE) (' ') (${ VSub_Name name))
                              }
                            )
                          ]
                          spids: [16777215 968]
                        )
                      ]
                      spids: [16777215 985]
                    )
                  ]
                  spids: [865 988]
                )
              spids: [859 863]
            )
          ]
          spids: [687]
        )
      spids: [683 686]
    )
    (FuncDef
      name: k_env_export_apache
      body: 
        (BraceGroup
          children: [
            (C {(k_env_export)} {(${ VSub_Name KOALEPHANT_ENV_NS_APACHE)} {(KOALEPHANT_ENV_NS_APACHE)})
          ]
          spids: [1001]
        )
      spids: [997 1000]
    )
    (FuncDef
      name: k_env_unset_apache
      body: 
        (BraceGroup
          children: [
            (C {(k_env_unset)} {(${ VSub_Name KOALEPHANT_ENV_NS_APACHE)} {(KOALEPHANT_ENV_NS_APACHE)})
          ]
          spids: [1022]
        )
      spids: [1018 1021]
    )
    (FuncDef
      name: k_env_unexport_apache
      body: 
        (BraceGroup
          children: [
            (C {(k_env_unexport)} {(${ VSub_Name KOALEPHANT_ENV_NS_APACHE)} {(KOALEPHANT_ENV_NS_APACHE)})
          ]
          spids: [1043]
        )
      spids: [1039 1042]
    )
    (FuncDef
      name: k_env_import_ldap
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:filter) op:Equal spids:[1078])
                (assign_pair lhs:(LhsName name:i) op:Equal spids:[1080])
                (assign_pair lhs:(LhsName name:line) op:Equal spids:[1082])
                (assign_pair lhs:(LhsName name:name) op:Equal spids:[1084])
                (assign_pair lhs:(LhsName name:origName) op:Equal spids:[1086])
                (assign_pair lhs:(LhsName name:longName) op:Equal spids:[1088])
                (assign_pair lhs:(LhsName name:value) op:Equal spids:[1090])
                (assign_pair lhs:(LhsName name:result) op:Equal spids:[1092])
              ]
              spids: [1076]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:filter)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [1096]
                )
              ]
              spids: [1096]
            )
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name filter))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('No filter supplied'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [1132]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 1123]
                )
              ]
              spids: [16777215 1141]
            )
            (C {(k_debug)} {(2)} 
              {
                (DQ ("Importing Environment Variables from LDAP with Filter: '") (${ VSub_Name filter) 
                  ("'")
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-d)} 
                          {(DQ (${ VSub_Name KOALEPHANT_LIB_PATH) (/ldap-attr-maps))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: i
                      iter_words: [
                        {(DQ (${ VSub_Name KOALEPHANT_LIB_PATH) (/ldap-attr-maps/)) (Lit_Other '*') 
                          (.attrs)
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name i))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (ForEach
                                      iter_name: line
                                      iter_words: [
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(grep)} {(--only-matching)} 
                                                    {
                                                      (SQ 
                                                        <
'^\\(ATTR_[a-zA-Z0-9\\-]\\+\\)=\\([a-zA-Z0-9\\-]\\+\\)$'
                                                        >
                                                      )
                                                    } {(DQ (${ VSub_Name i))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [1225 1239]
                                          )
                                        }
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (DoGroup
                                          children: [(C {(eval)} {(DQ ('local ') (${ VSub_Name line))})]
                                          spids: [1242 1255]
                                        )
                                      spids: [1224 1240]
                                    )
                                  ]
                                  spids: [16777215 1216]
                                )
                              ]
                              spids: [16777215 1258]
                            )
                          ]
                          spids: [1198 1261]
                        )
                      spids: [1187 1196]
                    )
                  ]
                  spids: [16777215 1179]
                )
              ]
              spids: [16777215 1264]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:result)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(ldapsearch)} {(-x)} {(-LLL)} {(-o)} {(ldif-wrap) (Lit_Other '=') (no)} 
                                {(DQ ('(') (${ VSub_Name filter) (')'))} {(DQ ($ VSub_At '$@'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1269 1293]
                      )
                    }
                  spids: [1268]
                )
              ]
              spids: [1268]
            )
            (ForEach
              iter_name: line
              iter_words: [{(${ VSub_Name result)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:name)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ (${ VSub_Name line))})
                                          (C {(grep)} {(--only-matching)} {(DQ ('^[^:]*'))})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1312 1330]
                              )
                            }
                          spids: [1311]
                        )
                      ]
                      spids: [1311]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:origName)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name name))}
                          spids: [1333]
                        )
                      ]
                      spids: [1333]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:longName)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(eval)} {(echo)} 
                                        {
                                          (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                            (ATTR_) (${ VSub_Name name)
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1342 1354]
                              )
                            }
                          spids: [1341]
                        )
                      ]
                      spids: [1341]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ (${ VSub_Name longName))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:name)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name longName))}
                                  spids: [1377]
                                )
                              ]
                              spids: [1377]
                            )
                          ]
                          spids: [16777215 1374]
                        )
                      ]
                      spids: [16777215 1385]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:name)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(k_string_upper)} 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(k_string_split_camelcase)} 
                                                    {(DQ (${ VSub_Name name))} {(DQ (_))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [1393 1405]
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1390 1406]
                              )
                            }
                          spids: [1389]
                        )
                      ]
                      spids: [1389]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:value)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ (${ VSub_Name line))})
                                          (C {(cut)} {(-b)} 
                                            {
                                              (DQ 
                                                (ArithSubPart
                                                  anode: 
                                                    (ArithBinary
                                                      op_id: Arith_Plus
                                                      left: 
                                                        (ArithWord
                                                          w: 
                                                            {
                                                              (BracedVarSub
                                                                token: <VSub_Name origName>
                                                                prefix_op: VSub_Pound
                                                                spids: [1428 1431]
                                                              )
                                                            }
                                                        )
                                                      right: (ArithWord w:{(Lit_Digits 3)})
                                                    )
                                                  spids: [1427 1437]
                                                ) (-)
                                              )
                                            }
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1411 1440]
                              )
                            }
                          spids: [1410]
                        )
                      ]
                      spids: [1410]
                    )
                    (C {(k_env_set)} {(DQ (${ VSub_Name name))} {(DQ (${ VSub_Name value))} {(DQ (LDAP))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(k_string_contains)} {(DQ (${ VSub_Name name))} 
                                      {(DQ (${ VSub_Name KOALEPHANT_ENV_NS_LDAP))}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(export)} 
                              {(Lit_VarLike 'KOALEPHANT_ENV_NS_LDAP=') 
                                (DQ (${ VSub_Name KOALEPHANT_ENV_NS_LDAP) (' ') (${ VSub_Name name))
                              }
                            )
                          ]
                          spids: [16777215 1483]
                        )
                      ]
                      spids: [16777215 1500]
                    )
                  ]
                  spids: [1308 1504]
                )
              spids: [1302 1306]
            )
          ]
          spids: [1073]
        )
      spids: [1069 1072]
    )
    (FuncDef
      name: k_env_export_ldap
      body: 
        (BraceGroup
          children: [(C {(k_env_export)} {(${ VSub_Name KOALEPHANT_ENV_NS_LDAP)})]
          spids: [1516]
        )
      spids: [1512 1515]
    )
    (FuncDef
      name: k_env_unset_ldap
      body: 
        (BraceGroup
          children: [
            (C {(k_env_unset)} {(${ VSub_Name KOALEPHANT_ENV_NS_LDAP)} {(KOALEPHANT_ENV_NS_LDAP)})
          ]
          spids: [1535]
        )
      spids: [1531 1534]
    )
  ]
)