(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: 16777215 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: 16777215 arg_word: {(DQ ($ VSub_Name '$send'))} spids: [256] ) ] ) ] spids: [181 192 260 16777215] ) (case_arm pat_list: [{(quit)}] action: [(C {(exit)})] spids: [263 264 267 16777215] ) (case_arm pat_list: [{(SQ )}] spids: [16777215 271 273 16777215] ) (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: 16777215 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 16777215] ) ] spids: [169 178 326] ) terminator: <Op_Semi ';'> ) ] spids: [167 329] ) ) ] spids: [16777215 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: 16777215 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:[587 591]) } ) ] 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: 16777215 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) (Lit_Other '\\') (r))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1220] ) ] ) ] op_id: Op_DAmp ) ] spids: [1147 1148 1224 16777215] ) (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: [1232 1237] ) } ) (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: [1250 1255] ) } ) ] negated: True ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1261 1266] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1268 1273] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1275 1280] ) } {(DQ ($ VSub_Name '$d'))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1289] ) ] spids: [1289] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1294] ) ] spids: [1294] ) ] 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: [1300 1305] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1324] ) ] ) ] op_id: Op_DAmp ) ] spids: [1227 1228 1328 16777215] ) (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: [1336 1341] ) } ) (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: [1352 1357] ) } ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1363 1368] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1370 1375] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1377 1382] ) } {(DQ ($ VSub_Name '$d'))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1391] ) ] spids: [1391] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1396] ) ] spids: [1396] ) ] 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: [1402 1407] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1426] ) ] ) ] op_id: Op_DAmp ) ] spids: [1331 1332 1430 16777215] ) (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: [1438 1443] ) } ) (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: [1454 1459] ) } ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1465 1470] ) } { (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: [1482 1487] ) } ) ) spids: [1479 1489] ) ) } {(DQ ($ VSub_Name '$d'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1475 1495] ) ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1500] ) ] spids: [1500] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1505] ) ] spids: [1505] ) ] 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: [1511 1516] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1535] ) ] ) ] op_id: Op_DAmp ) ] spids: [1433 1434 1539 16777215] ) (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: [1547 1552] ) } ) (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: [1563 1568] ) } ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1574 1579] ) } { (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: [1595 1600] ) } ) ) spids: [1592 1602] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1584 1604] ) ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1609] ) ] spids: [1609] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1614] ) ] spids: [1614] ) ] 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: [1620 1625] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1644] ) ] ) ] op_id: Op_DAmp ) ] spids: [1542 1543 1648 16777215] ) (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: [1656 1661] ) } ) (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: [1676 1681] ) } ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [1686] ) ] spids: [1686] ) ] spids: [16777215 1684] ) ] 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: [1697 1702] ) } ) ) spids: [1694 1704] ) } right: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1708 1713] ) } ) ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1721 1726] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1728 1733] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1735 1740] ) } {(DQ ($ VSub_Name '$d'))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1749] ) ] spids: [1749] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(EXISTS)} spids: [1754] ) ] spids: [1754] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [1690 1758] ) (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: [1763 1768] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1787] ) ] ) ] op_id: Op_DAmp ) ] spids: [1651 1652 1791 16777215] ) (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: [1810 1816] ) } ) ) 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: [1829 1834] ) } ) terminator: <Op_Semi ';'> ) ] spids: [1825 1837] ) ) (C {(echo)} {(-e)} {(SQ <'END\\r'>)}) ] ) redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1848] ) ] spids: [1797 1847] ) ] spids: [1794 1795 1852 16777215] ) (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: [1871 1877] ) } ) ) 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: [1890 1895] ) } {(1)} ) terminator: <Op_Semi ';'> ) ] spids: [1886 1900] ) ) (C {(echo)} {(-e)} {(SQ <'END\\r'>)}) ] ) redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1911] ) ] spids: [1858 1910] ) ] spids: [1855 1856 1915 16777215] ) (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: [1923 1928] ) } ) (AndOr children: [ (C {(cache_delete)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1934 1939] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(DELETED)} spids: [1944] ) ] spids: [1944] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [1949] ) ] spids: [1949] ) ] 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: [1955 1960] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1979] ) ] ) ] op_id: Op_DAmp ) ] spids: [1918 1919 1983 16777215] ) (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: [1991 1996] ) } ) (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: [ 2011 2016 ] ) } ) ) spids: [ 2008 2018 ] ) ) } ) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2002 2026] ) } ) 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: [2030 2037] ) } ) ) spids: [2001 2039] ) } spids: [2000] ) ] spids: [2000] ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2046 2051] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {($ VSub_Name '$result')} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2054 2064] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2069] ) ] spids: [2069] ) ] 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: [2075 2080] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2099] ) ] ) ] op_id: Op_DAmp ) ] spids: [1986 1987 2103 16777215] ) (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: [2111 2116] ) } ) (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: [ 2131 2136 ] ) } ) ) spids: [ 2128 2138 ] ) ) } ) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2122 2146] ) } ) 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: [2150 2157] ) } ) ) spids: [2121 2159] ) } spids: [2120] ) ] spids: [2120] ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2166 2171] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {($ VSub_Name '$result')} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2174 2184] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2189] ) ] spids: [2189] ) ] 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: [2195 2200] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2219] ) ] ) ] op_id: Op_DAmp ) ] spids: [2106 2107 2223 16777215] ) (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: [2231 2236] ) } ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2243 2248] ) } { (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: [2254 2259] ) } ) ) spids: [2251 2261] ) ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [2264 2269] ) } { (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: [2275 2280] ) } ) ) spids: [2272 2282] ) ) } { (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: [2288 2293] ) } ) ) spids: [2285 2295] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(TOUCHED)} spids: [2300] ) ] spids: [2300] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2305] ) ] spids: [2305] ) ] 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: [2311 2316] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} {(DQ ($ VSub_Name '$result') (Lit_Other '\\') (r))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2335] ) ] ) ] op_id: Op_DAmp ) ] spids: [2226 2227 2339 16777215] ) (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: [2352 2358] ) ) } ] 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: [2374 2381] ) } ) ) spids: [2369 2383] ) } ) terminator: <Op_Semi ';'> ) ] spids: [2362 2386] ) spids: [2350 2360] ) (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: [2391 2397] ) } right: {(noreply)} ) ) (SimpleCommand words: [{(echo)} {(-e)} {(DQ (OK) (Lit_Other '\\') (r))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2416] ) ] ) ] op_id: Op_DAmp ) ] spids: [2342 2343 2420 16777215] ) (case_arm pat_list: [{(version)}] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ('VERSION ') ($ VSub_Name '$VERSION') (Lit_Other '\\') (r) ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2436] ) ] ) terminator: <Op_Amp '&'> ) ] spids: [2423 2424 2442 16777215] ) ] spids: [1135 1144 2445] ) terminator: <Op_Semi ';'> ) ] spids: [1020 2448] ) ) ] negated: False ) terminator: <Op_Amp '&'> ) (C {(socat)} { (DQ (BracedVarSub token: <VSub_Name protocol> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(tcp)}) spids: [2456 2460] ) ('-listen:') (BracedVarSub token: <VSub_Name port> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(25252)}) spids: [2462 2466] ) (',reuseaddr,fork') ) } {(system) (Lit_Other ':') (DQ ($ VSub_Number '$0'))} ) ] spids: [331 2476] ) ] )