(CommandList children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <" "> <Lit_EscapedChar "\\t"> <Lit_EscapedChar "\\r">)} spids: [36] ) (assign_pair lhs: (LhsName name:VERSION) op: Equal rhs: {(5.1.2-bashcached)} spids: [43] ) ] spids: [36] ) terminator: <Op_Semi ";"> ) (C {(export)} {(Lit_VarLike "LANG=") (C)}) (C {(trap)} {(SQ <"exit 0">)} {(INT)} {(TERM)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(WordTest w:{(DQ ($ VSub_Name "$SOCAT_VERSION"))})) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:send) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-u)})]) left_token: <Left_CommandSub "$("> spids: [79 83] ) ) } spids: [77] ) ] spids: [77] ) terminator: <Op_Semi ";"> ) (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name "$send"))}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:recv) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-u)})]) left_token: <Left_CommandSub "$("> spids: [100 104] ) ) } spids: [98] ) ] spids: [98] ) terminator: <Op_Semi ";"> ) (Sentence child: (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name "$recv"))}) terminator: <Op_Semi ";"> ) (Sentence child: (While cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_p child:{(DQ ($ VSub_Name "$recv"))}) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Sentence child: (SimpleCommand words: [{(cat)} {(DQ ($ VSub_Name "$recv"))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [140] ) ] ) terminator: <Op_Semi ";"> ) ] spids: [132 144] ) ) terminator: <Op_Amp "&"> ) (Sentence child: (C {(trap)} {(SQ <"rm -f \"$recv\" \"$send\"">)} {(EXIT)}) terminator: <Op_Semi ";"> ) (While cond: [(Sentence child:(C {(read)} {(-ra)} {(cmd)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (Sentence child: (Case to_match: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [171 176] ) } arms: [ (case_arm pat_list: [{(set)} {(add)} {(replace)} {(append)} {(prepend)} {(cas)}] action: [ (Sentence child: (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (AndOr children: [ (SimpleCommand words: [ {(printf)} {(SQ <"recv=%q send=%q cmd=%q\\n">)} {(DQ ($ VSub_Name "$recv"))} {(DQ ($ VSub_Name "$send"))} { (DQ (BracedVarSub token: <VSub_Name cmd> bracket_op: (WholeArray op_id:Arith_Star) spids: [217 222] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))} spids: [225] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [230] ) ] ) (ControlFlow token: <ControlFlow_Break break> ) ] op_id: Op_DAmp ) ] spids: [200 238] ) ) terminator: <Op_Semi ";"> ) (SimpleCommand words: [ {(head)} {(-c)} { (DQ (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 4)})) suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(0)}) spids: [246 253] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$send"))} spids: [256] ) ] ) ] spids: [181 192 260 -1] ) (case_arm pat_list: [{(quit)}] action: [(C {(exit)})] spids: [263 264 267 -1] ) (case_arm pat_list: [{(SQ )}] spids: [-1 271 273 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (Sentence child: (AndOr children: [ (SimpleCommand words: [ {(printf)} {(SQ <"recv=%q send=%q cmd=%q\\n">)} {(DQ ($ VSub_Name "$recv"))} {(DQ ($ VSub_Name "$send"))} { (DQ (BracedVarSub token: <VSub_Name cmd> bracket_op: (WholeArray op_id:Arith_Star) spids: [301 306] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))} spids: [309] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [314] ) ] ) (ControlFlow token: <ControlFlow_Break break> ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] spids: [283 322] ) ) ] spids: [275 276 323 -1] ) ] spids: [169 178 326] ) terminator: <Op_Semi ";"> ) ] spids: [167 329] ) ) ] spids: [-1 74] ) ] else_action: [ (Sentence child: (FuncDef name: help body: (BraceGroup children: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(tail)} {(-n) (Lit_Other "+") (2)}] redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Number "$0"))} spids: [346] ) ] ) (C {(head)} {(-n11)}) (C {(cut)} {(-c3-)}) ] negated: False ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)}) terminator:<Op_Semi ";">) ] spids: [338] ) spids: [334 337] ) terminator: <Op_Semi ";"> ) (FuncDef name: version body: (BraceGroup children: [ (Sentence child: (C {(echo)} {($ VSub_Name "$VERSION")}) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)}) terminator:<Op_Semi ";">) ] spids: [374] ) spids: [370 373] ) (FuncDef name: license body: (BraceGroup children: [ (Sentence child: (C {(curl)} { (SQ < "https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.MIT.md" > ) } ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(echo)}) terminator:<Op_Semi ";">) (Sentence child: (C {(curl)} { (SQ < "https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.%F0%9F%8D%A3.md" > ) } ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)}) terminator:<Op_Semi ";">) ] spids: [391] ) spids: [387 390] ) (ForEach iter_name: v iter_words: [{(DQ ($ VSub_At "$@"))}] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$v")} right: {(--) (Lit_Other "*")} ) ) (C {(eval)} { (DQ (BracedVarSub token: <VSub_Name v> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [446 450] ) ) } ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] spids: [428 454] ) spids: [422 426] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs:(LhsName name:unique) op:Equal rhs:{(1)} spids:[462]) (assign_pair lhs: (LhsName name:before) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(printf)} {(SQ <"%(%s)T">)} {(-1)})]) left_token: <Left_CommandSub "$("> spids: [466 474] ) } spids: [465] ) ] spids: [462] ) (Assignment keyword: Assign_Declare flags: ["'-A'"] pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {(ArrayLiteralPart)} spids: [481] ) (assign_pair lhs: (LhsName name:exptime) op: Equal rhs: {(ArrayLiteralPart)} spids: [485] ) (assign_pair lhs: (LhsName name:casUnique) op: Equal rhs: {(ArrayLiteralPart)} spids: [489] ) (assign_pair lhs: (LhsName name:data) op: Equal rhs: {(ArrayLiteralPart)} spids: [493] ) ] spids: [477] ) (FuncDef name: cache_has body: (BraceGroup children: [ (Sentence child: (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: { (BracedVarSub token: <VSub_Name exptime> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Number "$1")})) spids: [510 515] ) } spids: [509] ) ] spids: [509] ) (DBracket expr: (LogicalAnd left: (WordTest w:{($ VSub_Name "$t")}) right: (LogicalOr left: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name "$t")} right: {(0)} ) right: (BoolBinary op_id: BoolBinary_gt left: {($ VSub_Name "$t")} right: {($ VSub_Name "$time")} ) ) ) ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] spids: [507] ) spids: [503 506] ) (FuncDef name: cache_update body: (BraceGroup children: [ (Sentence child: (C {(data) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") ($ VSub_Number "$2") } ) terminator: <Op_Semi ";"> ) (Sentence child: (AndOr children: [ (DBracket expr:(WordTest w:{($ VSub_Number "$3")})) (AndOr children: [ (C {(casUnique) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") (DQ ($ VSub_Number "$3")) } ) (C {(casUnique) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") (ArithSubPart anode:(UnaryAssign op_id:Node_PostDPlus child:(LhsName name:unique)) spids:[587591]) } ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] spids: [553] ) spids: [549 552] ) (FuncDef name: cache_set body: (BraceGroup children: [ (Sentence child: (C {(flags) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") ($ VSub_Number "$2") } {(exptime) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") (ArithSubPart anode: (TernaryOp cond: (ArithBinary op_id: Arith_DAmp left: (ArithBinary op_id: Arith_Less left: (ArithWord w:{(Lit_Digits 0)}) right: (ArithWord w:{($ VSub_Number "$3")}) ) right: (ArithBinary op_id: Arith_LessEqual left: (ArithWord w:{($ VSub_Number "$3")}) right: (ArithWord w:{(Lit_Digits 2592000)}) ) ) true_expr: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Number "$3")}) right: (ArithVarRef name:time) ) false_expr: (ArithWord w:{($ VSub_Number "$3")}) ) spids: [615 642] ) } ) terminator: <Op_Semi ";"> ) (Sentence child: (C {(cache_update)} {(DQ ($ VSub_Number "$1"))} {(DQ ($ VSub_Number "$4"))} {(DQ ($ VSub_Number "$5"))} ) terminator: <Op_Semi ";"> ) ] spids: [601] ) spids: [597 600] ) (FuncDef name: cache_get body: (BraceGroup children: [ (Sentence child: (AndOr children: [ (C {(cache_has)} {(DQ ($ VSub_Number "$1"))}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:d) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Number "$1")}) ) spids: [679 684] ) ) } spids: [677] ) ] spids: [677] ) (AndOr children: [ (C {(printf)} { (SQ <"VALUE %s %s %s%s"> <Lit_EscapedChar "\\r"> <Lit_EscapedChar "\\n"> ) } {(DQ ($ VSub_Number "$1"))} { (DQ (BracedVarSub token: <VSub_Name flags> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Number "$1")}) ) spids: [704 709] ) ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Name "$d"))}) (C {(base64)} {(-d)}) (C {(wc)} {(-c)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [713 733] ) ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (DBracket expr: (WordTest w:{($ VSub_Number "$2")}) ) (C {(echo)} { (DQ (" ") (BracedVarSub token: <VSub_Name casUnique> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Number "$1")} ) ) spids: [750 755] ) ) } ) ] op_id: Op_DAmp ) ] ) left_token: <Left_CommandSub "$("> spids: [737 757] ) ) } ) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Name "$d"))}) (C {(base64)} {(-d)}) ] negated: False ) (C {(echo)} {(-e)} {(SQ <"\\r">)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] spids: [667] ) spids: [663 666] ) (FuncDef name: cache_delete body: (BraceGroup children: [ (Sentence child: (C {(unset)} {(DQ ("flags[") ($ VSub_Number "$1") ("]"))} {(DQ ("exptime[") ($ VSub_Number "$1") ("]"))} {(DQ ("casUnique[") ($ VSub_Number "$1") ("]"))} {(DQ ("data[") ($ VSub_Number "$1") ("]"))} ) terminator: <Op_Semi ";"> ) ] spids: [795] ) spids: [791 794] ) (FuncDef name: read_data body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:d) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(head)} {(-c)} {(DQ ($ VSub_Number "$1"))} {(DQ ($ VSub_Name "$send"))} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [840 856] ) ) } spids: [838] ) ] spids: [838] ) terminator: <Op_Semi ";"> ) ] spids: [836] ) spids: [832 835] ) (FuncDef name: base64_cat body: (BraceGroup children: [ (Sentence child: (Pipeline children: [ (C {(cat)} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Number "$1"))}) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_ProcSubIn "<("> spids: [871 885] ) } { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Number "$2"))}) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_ProcSubIn "<("> spids: [887 901] ) } ) (C {(base64)}) ] negated: False ) terminator: <Op_Semi ";"> ) ] spids: [867] ) spids: [863 866] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASHCACHED_PIPE) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-u)})]) left_token: <Left_CommandSub "$("> spids: [914 918] ) ) } spids: [912] ) ] spids: [912] ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(export)} {(BASHCACHED_PIPE)}) terminator:<Op_Semi ";">) (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))}) (C {(trap)} {(SQ <"rm -f \"$BASHCACHED_PIPE\"">)} {(EXIT)}) (Sentence child: (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name check> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)}) spids: [949 953] ) } ) right: (ArithWord w:{(Lit_Digits 0)}) ) ) (While cond: [(Sentence child:(C {(echo)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (Sentence child: (C {(sleep)} { (DQ (BracedVarSub token: <VSub_Name check> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)}) spids: [974 978] ) ) } ) terminator: <Op_Semi ";"> ) ] spids: [969 982] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))} spids: [984] ) ] ) ] op_id: Op_DAmp ) terminator: <Op_Amp "&"> ) (Sentence child: (Pipeline children: [ (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (Sentence child: (C {(cat)} {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))}) terminator: <Op_Semi ";"> ) ] spids: [998 1007] ) ) (While cond: [(Sentence child:(C {(read)} {(-r)} {(line)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(SQ )} spids: [1023] ) (assign_pair lhs: (LhsName name:recv) op: Equal rhs: {(SQ )} spids: [1027] ) (assign_pair lhs: (LhsName name:send) op: Equal rhs: {(SQ )} spids: [1031] ) ] spids: [1023] ) terminator: <Op_Semi ";"> ) (Sentence child: (C {(eval)} {(DQ ($ VSub_Name "$line"))}) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Name "$cmd")}])} spids: [1041] ) (assign_pair lhs: (LhsName name:time) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(printf)} {(SQ <"%(%s)T">)} {(-1)})] ) left_token: <Left_CommandSub "$("> spids: [1047 1055] ) } spids: [1046] ) ] spids: [1041] ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:time) right: (ArithVarRef name:before) ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name check> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)}) spids: [1068 1072] ) } ) ) ) (AndOr children: [ (ForEach iter_name: k iter_words: [ { (DQ (BracedVarSub token: <VSub_Name exptime> prefix_op: VSub_Bang bracket_op: (WholeArray op_id:Lit_At) spids: [1086 1092] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (AndOr children: [ (Pipeline children: [(C {(cache_has)} {($ VSub_Name "$k")})] negated: True ) (C {(cache_delete)} {($ VSub_Name "$k")}) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] spids: [1096 1112] ) spids: [1084 1094] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:before) op: Equal rhs: {($ VSub_Name "$time")} spids: [1116] ) ] spids: [1116] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_p child:{($ VSub_Name "$recv")}) ) ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) (Sentence child: (Case to_match: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1137 1142] ) } arms: [ (case_arm pat_list: [{(set)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1152 1157] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [1168 1173] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [1175 1180] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)})) spids: [1182 1187] ) } {(DQ ($ VSub_Name "$d"))} ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1196 1201] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ (STORED) (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1219] ) ] ) ] op_id: Op_DAmp ) ] spids: [1147 1148 1223 -1] ) (case_arm pat_list: [{(add)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1231 1236] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) (AndOr children: [ (Pipeline children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1249 1254] ) } ) ] negated: True ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1260 1265] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1267 1272] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1274 1279] ) } {(DQ ($ VSub_Name "$d"))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1288] ) ] spids: [1288] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1293] ) ] spids: [1293] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1299 1304] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1322] ) ] ) ] op_id: Op_DAmp ) ] spids: [1226 1227 1326 -1] ) (case_arm pat_list: [{(replace)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1334 1339] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1350 1355] ) } ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1361 1366] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1368 1373] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1375 1380] ) } {(DQ ($ VSub_Name "$d"))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1389] ) ] spids: [1389] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1394] ) ] spids: [1394] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1400 1405] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1423] ) ] ) ] op_id: Op_DAmp ) ] spids: [1329 1330 1427 -1] ) (case_arm pat_list: [{(append)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1435 1440] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1451 1456] ) } ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1462 1467] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(base64_cat)} { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [1479 1484] ) } ) ) spids: [1476 1486] ) ) } {(DQ ($ VSub_Name "$d"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [1472 1492] ) ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1497] ) ] spids: [1497] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1502] ) ] spids: [1502] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1508 1513] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1531] ) ] ) ] op_id: Op_DAmp ) ] spids: [1430 1431 1535 -1] ) (case_arm pat_list: [{(prepend)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1543 1548] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1559 1564] ) } ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1570 1575] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(base64_cat)} {(DQ ($ VSub_Name "$d"))} { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [1591 1596] ) } ) ) spids: [1588 1598] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1580 1600] ) ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1605] ) ] spids: [1605] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1610] ) ] spids: [1610] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1616 1621] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1639] ) ] ) ] op_id: Op_DAmp ) ] spids: [1538 1539 1643 -1] ) (case_arm pat_list: [{(cas)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1651 1656] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1671 1676] ) } ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [1681] ) ] spids: [1681] ) ] spids: [-1 1679] ) ] else_action: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: { (BracedVarSub token: <VSub_Name casUnique> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [1692 1697] ) } ) ) spids: [1689 1699] ) } right: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1703 1708] ) } ) ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1716 1721] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1723 1728] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1730 1735] ) } {(DQ ($ VSub_Name "$d"))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1744] ) ] spids: [1744] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(EXISTS)} spids: [1749] ) ] spids: [1749] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] spids: [1685 1753] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 6)}) ) spids: [1758 1763] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1781] ) ] ) ] op_id: Op_DAmp ) ] spids: [1646 1647 1785 -1] ) (case_arm pat_list: [{(get)}] action: [ (Subshell child: (CommandList children: [ (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1804 1810] ) } ) ) update: (UnaryAssign op_id: Node_PostDPlus child: (LhsName name:i) ) body: (DoGroup children: [ (Sentence child: (C {(cache_get)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name "$i")} ) ) spids: [1823 1828] ) } ) terminator: <Op_Semi ";"> ) ] spids: [1819 1831] ) ) (C {(echo)} {(-e)} {(SQ <"END\\r">)}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1842] ) ] spids: [1791 1841] ) ] spids: [1788 1789 1846 -1] ) (case_arm pat_list: [{(gets)}] action: [ (Subshell child: (CommandList children: [ (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1865 1871] ) } ) ) update: (UnaryAssign op_id: Node_PostDPlus child: (LhsName name:i) ) body: (DoGroup children: [ (Sentence child: (C {(cache_get)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name "$i")} ) ) spids: [1884 1889] ) } {(1)} ) terminator: <Op_Semi ";"> ) ] spids: [1880 1894] ) ) (C {(echo)} {(-e)} {(SQ <"END\\r">)}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1905] ) ] spids: [1852 1904] ) ] spids: [1849 1850 1909 -1] ) (case_arm pat_list: [{(delete)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1917 1922] ) } ) (AndOr children: [ (C {(cache_delete)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1928 1933] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(DELETED)} spids: [1938] ) ] spids: [1938] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [1943] ) ] spids: [1943] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1949 1954] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [1972] ) ] ) ] op_id: Op_DAmp ) ] spids: [1912 1913 1976 -1] ) (case_arm pat_list: [{(incr)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1984 1989] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} { (DQ (BracedVarSub token: < VSub_Name data > bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: < VSub_Name cmd > bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [ 2004 2009 ] ) } ) ) spids: [ 2001 2011 ] ) ) } ) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1995 2019] ) } ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 2)} ) ) suffix_op: (StringUnary op_id: VTest_Hyphen arg_word: {(0)} ) spids: [2023 2030] ) } ) ) spids: [1994 2032] ) } spids: [1993] ) ] spids: [1993] ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2039 2044] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {($ VSub_Name "$result")} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2047 2057] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2062] ) ] spids: [2062] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [2068 2073] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [2091] ) ] ) ] op_id: Op_DAmp ) ] spids: [1979 1980 2095 -1] ) (case_arm pat_list: [{(decr)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2103 2108] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} { (DQ (BracedVarSub token: < VSub_Name data > bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: < VSub_Name cmd > bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [ 2123 2128 ] ) } ) ) spids: [ 2120 2130 ] ) ) } ) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2114 2138] ) } ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 2)} ) ) suffix_op: (StringUnary op_id: VTest_Hyphen arg_word: {(0)} ) spids: [2142 2149] ) } ) ) spids: [2113 2151] ) } spids: [2112] ) ] spids: [2112] ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2158 2163] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {($ VSub_Name "$result")} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2166 2176] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2181] ) ] spids: [2181] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [2187 2192] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [2210] ) ] ) ] op_id: Op_DAmp ) ] spids: [2098 2099 2214 -1] ) (case_arm pat_list: [{(touch)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2222 2227] ) } ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2234 2239] ) } { (DQ (BracedVarSub token: <VSub_Name flags> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [2245 2250] ) } ) ) spids: [2242 2252] ) ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [2255 2260] ) } { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [2266 2271] ) } ) ) spids: [2263 2273] ) ) } { (BracedVarSub token: <VSub_Name casUnique> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [2279 2284] ) } ) ) spids: [2276 2286] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(TOUCHED)} spids: [2291] ) ] spids: [2291] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2296] ) ] spids: [2296] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [2302 2307] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name "$result") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [2325] ) ] ) ] op_id: Op_DAmp ) ] spids: [2217 2218 2329 -1] ) (case_arm pat_list: [{(flush_all)}] action: [ (ForEach iter_name: k iter_words: [ { (DQ (BracedVarSub token: <VSub_Name exptime> prefix_op: VSub_Bang bracket_op: (WholeArray op_id:Lit_At) spids: [2342 2348] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (C {(exptime) (Lit_Other "[") ($ VSub_Name "$k") (Lit_Other "]") (Lit_Other "=") (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:time) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) suffix_op: (StringUnary op_id: VTest_Hyphen arg_word: {(0)} ) spids: [2364 2371] ) } ) ) spids: [2359 2373] ) } ) terminator: <Op_Semi ";"> ) ] spids: [2352 2376] ) spids: [2340 2350] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithUnary op_id: Node_UnaryMinus child: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [2381 2387] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ (OK) (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [2405] ) ] ) ] op_id: Op_DAmp ) ] spids: [2332 2333 2409 -1] ) (case_arm pat_list: [{(version)}] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ("VERSION ") ($ VSub_Name "$VERSION") (EscapedLiteralPart token: <Lit_EscapedChar "\\r"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$recv"))} spids: [2424] ) ] ) terminator: <Op_Amp "&"> ) ] spids: [2412 2413 2430 -1] ) ] spids: [1135 1144 2433] ) terminator: <Op_Semi ";"> ) ] spids: [1020 2436] ) ) ] negated: False ) terminator: <Op_Amp "&"> ) (C {(socat)} { (DQ (BracedVarSub token: <VSub_Name protocol> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(tcp)}) spids: [2444 2448] ) ("-listen:") (BracedVarSub token: <VSub_Name port> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(25252)}) spids: [2450 2454] ) (",reuseaddr,fork") ) } {(system) (Lit_Other ":") (DQ ($ VSub_Number "$0"))} ) ] spids: [331 2464] ) ] )