(List (FunctionDef _heimdal_principals [] (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[DQ [ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS kadmin]} {[LIT_CHARS -l]} {[LIT_CHARS dump]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) (FunctionDef _heimdal_realms [] (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[DQ [LIT_CHARS "( kadmin -l dump 2>/dev/null | "][LIT_CHARS " awk '{print "][VarSub 1][LIT_CHARS "}' | awk -F@ '{print "][VarSub 2][LIT_CHARS "}' )"]]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) (FunctionDef _heimdal_encodings [] (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) (AndOr OP_AND_IF (FunctionDef _ktutil [] (List (= scope= flags=0 words=[{[LIT_CHARS cur]}, {[LIT_CHARS prev]}, {[LIT_CHARS words]}, {[LIT_CHARS cword]}, {[LIT_CHARS split]}] bindings=[]) (AndOr OP_OR_IF (Com {[LIT_CHARS _init_completion]} {[LIT_CHARS -s]} ) (Com {[LIT_CHARS return]} ) ) (= scope= flags=0 words=[{[LIT_CHARS command]}, {[LIT_CHARS options]}] bindings=[]) (Case to_match={[VarSub prev]}, pat_word_list=[[{[LIT_CHARS -p]}, {[LIT_CHARS --principal]}], [{[LIT_CHARS -e]}, {[LIT_CHARS --enctype]}], [{[LIT_CHARS -a]}, {[LIT_CHARS --admin-server]}], [{[LIT_CHARS -r]}, {[LIT_CHARS --realm]}], [{[LIT_CHARS -s]}, {[LIT_CHARS -k]}, {[LIT_CHARS --srvtab]}, {[LIT_CHARS --keytab]}]] (List (Com {[LIT_CHARS _heimdal_principals]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS _heimdal_encodings]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS _known_hosts_real]} {[DQ [VarSub cur]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS _heimdal_realms]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS _filedir]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) (AndOr OP_AND_IF (Com {[VarSub split]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (= scope= flags=0 words=[] bindings=[('commands', {[SQ ]})]) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub cword]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (Case to_match={[VarSub words bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]}, pat_word_list=[[{[LIT_CHARS -k]}, {[LIT_CHARS --keytab]}], [{[LIT_CHARS -] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('command', {[VarSub words bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]})]) (Com {[LIT_CHARS break]} ) ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub cur]]} {[LIT_CHARS -] [LIT_OTHER "*"]}}) (List (Case to_match={[VarSub command]}, pat_word_list=[[{[LIT_CHARS add]}], [{[LIT_CHARS change]}], [{[LIT_CHARS get]}], [{[LIT_CHARS list]}], [{[LIT_CHARS remove]}], [{[LIT_CHARS purge]}], [{[LIT_CHARS srv2keytab]}, {[LIT_CHARS key2srvtab]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('options', {[SQ ]})]) ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[DQ [VarSub options]]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) (ElseTrue) (Case to_match={[VarSub command]}, pat_word_list=[[{[LIT_CHARS copy]}], [{[LIT_CHARS get]}], [{[LIT_CHARS rename]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS _filedir]} ) (Com {[LIT_CHARS _heimdal_principals]} ) (Com {[LIT_CHARS _heimdal_principals]} ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[DQ [VarSub commands]]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) ) ) ) (Com {[LIT_CHARS complete]} {[LIT_CHARS -F]} {[LIT_CHARS _ktutil]} {[LIT_CHARS ktutil]} ) ) )