(BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [102] ) ] redirects: [] ) ] spids: [79 99] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_Number 2)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITONBACK='> name:EXITONBACK) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [136] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXT_MENU_BACK='> name:TEXT_MENU_BACK) op: assign_op.Equal rhs: {(DQ <Exit>)} spids: [140] ) ] redirects: [] ) ] spids: [113 133] ) ] else_action: [] redirects: [] ) (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>}) (C {<G_CHECK_ROOT_USER>}) (C {<G_CHECK_ROOTFS_RW>}) (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Config>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HW_ONBOARD_WIFI='> name:HW_ONBOARD_WIFI) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<10p>} {<'/DietPi/dietpi/.hw_model'>}) right: <Id.Eof_RParen _> ) } spids: [190] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_CPU_SCALING_GOV='> name:FP_CPU_SCALING_GOV) op: assign_op.Equal rhs: {(SQ <'/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors'>)} spids: [202] ) ] redirects: [] ) (command.ShFunction name: Load_Installed_Software body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/.installed'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<.>} {<'/DietPi/dietpi/.installed'>})] spids: [228 239] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HW_MSG_NOTSUPPORTED='> name: HW_MSG_NOTSUPPORTED ) op: assign_op.Equal rhs: {(DQ <'Not Supported'>)} spids: [267] ) ] redirects: [] ) (command.ShFunction name: Info_HW_OptionNotSupported body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_QUESTION='> name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <'This option is not available for '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) ) } spids: [280] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<8>} {<65>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Info_Input_Not_Valid_Integer body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<whiptail>} {<--title>} {(DQ <'Invalid Value'>)} {<--msgbox>} { (DQ ($ Id.VSub_DollarName OPTION) <' is an invalid value. No changes have been applied'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<60>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [365] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITONBACK='> name:EXITONBACK) op: assign_op.Equal rhs: {<0>} spids: [369] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXT_MENU_BACK='> name:TEXT_MENU_BACK) op: assign_op.Equal rhs: {(DQ <Back>)} spids: [374] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_BACKTITLE='> name:WHIP_BACKTITLE) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [381] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [387] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_QUESTION='> name:WHIP_QUESTION) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [393] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {<0>} spids: [399] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: {<0>} spids: [403] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_SELECTION_PREVIOUS='> name: WHIP_SELECTION_PREVIOUS ) op: assign_op.Equal rhs: {(SQ )} spids: [408] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_OPTIONS_MAX_DISPLAY='> name: WHIP_OPTIONS_MAX_DISPLAY ) op: assign_op.Equal rhs: {<9>} spids: [418] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REBOOT_REQUIRED='> name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<0>} spids: [423] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MIN_VALUE='> name:MIN_VALUE) op: assign_op.Equal rhs: {<0>} spids: [432] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAX_VALUE='> name:MAX_VALUE) op: assign_op.Equal rhs: {<0>} spids: [436] ) ] redirects: [] ) (command.ShFunction name: Menu_Main body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [452] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION))} {<--cancel-button>} {(DQ <Exit>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<18>} {<50>} {<10>} {(DQ <1>)} {(DQ <'Display Options'>)} {(DQ <2>)} {(DQ <'Audio Options'>)} {(DQ <3>)} {(DQ <'Performance Options'>)} {(DQ <4>)} {(DQ <'Advanced Options'>)} {(DQ <5>)} {(DQ <'Language/Regional Options'>)} {(DQ <6>)} {(DQ <'Security Options'>)} {(DQ <7>)} {(DQ <'Network Options: Adapters'>)} {(DQ <8>)} {(DQ <'Network Options: NAS/Misc'>)} {(DQ <9>)} {(DQ <'AutoStart Options'>)} {(DQ <10>)} {(DQ <Tools>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [458] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [605] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [645] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<0>} spids: [668] ) ] redirects: [] ) (C {<Info_HW_OptionNotSupported>}) ] spids: [650 664] ) ] else_action: [] redirects: [] ) ] spids: [627 641] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<14>} spids: [698] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<0>} spids: [721] ) ] redirects: [] ) (C {<Info_HW_OptionNotSupported>}) ] spids: [703 717] ) ] else_action: [] redirects: [] ) ] spids: [680 694] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [751] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<0>} spids: [774] ) ] redirects: [] ) (C {<Info_HW_OptionNotSupported>}) ] spids: [756 770] ) ] else_action: [] redirects: [] ) ] spids: [733 747] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [804] ) ] redirects: [] ) ] spids: [786 800] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 5>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<7>} spids: [827] ) ] redirects: [] ) ] spids: [809 823] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 6>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<5>} spids: [850] ) ] redirects: [] ) ] spids: [832 846] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 7>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [873] ) ] redirects: [] ) ] spids: [855 869] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 8>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [896] ) ] redirects: [] ) ] spids: [878 892] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 9>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-autostart'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [922] ) ] redirects: [] ) ] spids: [901 915] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<11>} spids: [945] ) ] redirects: [] ) ] spids: [927 941] ) ] else_action: [(C {<Menu_Exit>})] redirects: [] ) ] spids: [609 623] ) ] else_action: [(C {<Menu_Exit>})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_Exit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <' Exit DietPi-Config? '>)} spids: [994] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_QUESTION='> name:WHIP_QUESTION) op: assign_op.Equal rhs: {(SQ <' Exit DietPi-Config? '>)} spids: [1000] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<50>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [1045] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<-1>} spids: [1071] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ps>} {<aux>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/DietPi/dietpi/[d]ietpi-software'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<0>} spids: [1113] ) ] redirects: [] ) ] spids: [1080 1110] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName REBOOT_REQUIRED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'Changes Made - Reboot Now?'>)} spids: [1141] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (SQ < ' A reboot is required to apply your new settings.\\n Would you like to reboot now?' > ) } spids: [1147] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<9>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [1180] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [1184 1198] ) ] else_action: [] redirects: [] ) ] spids: [1125 1138] ) ] else_action: [] redirects: [] ) ] spids: [1054 1068] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName EXITONBACK)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<0>} spids: [1235] ) ] redirects: [] ) ] spids: [1218 1232] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Display_Rotation_Calc_XY_Invert body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'input='> ($ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'framebuffer_x='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_width='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'framebuffer_y='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_height='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName input)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName framebuffer_x)} right: {($ Id.VSub_DollarName framebuffer_y)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'temp='> ($ Id.VSub_DollarName framebuffer_x)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'framebuffer_x='> name: framebuffer_x ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName framebuffer_y)} spids: [1383] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'framebuffer_y='> name: framebuffer_y ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName temp)} spids: [1387] ) ] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_width=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_width='> ($ Id.VSub_DollarName framebuffer_x) ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_height=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_height='> ($ Id.VSub_DollarName framebuffer_y) ) } {<'/DietPi/config.txt'>} ) ] spids: [1359 1373] ) ] else_action: [] redirects: [] ) ] spids: [1341 1355] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName input)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName framebuffer_x)} right: {($ Id.VSub_DollarName framebuffer_y)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'temp='> ($ Id.VSub_DollarName framebuffer_x)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'framebuffer_x='> name: framebuffer_x ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName framebuffer_y)} spids: [1471] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'framebuffer_y='> name: framebuffer_y ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName temp)} spids: [1475] ) ] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_width=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_width='> ($ Id.VSub_DollarName framebuffer_x) ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_height=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_height='> ($ Id.VSub_DollarName framebuffer_y) ) } {<'/DietPi/config.txt'>} ) ] spids: [1447 1461] ) ] else_action: [] redirects: [] ) ] spids: [1429 1443] ) ] else_action: [] redirects: [] ) ] spids: [1260 1274] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_DisplayOptions body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [1536] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 21>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <1>)} {(DQ <'Display Driver'>)}] ) } spids: [1567] ) ] redirects: [] ) ] spids: [1549 1563] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <1>)} {(DQ <'Change Resolution'>)}] ) } spids: [1584] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <2>)} {(DQ <'GPU/RAM Memory Split'>)}] ) } spids: [1596] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'lcdpanel_text='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_LCDPANEL='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <3>)} {(DQ <'LCD Panel addon: '> ($ Id.VSub_DollarName lcdpanel_text))} ] ) } spids: [1637] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <14>)} {(DQ <'LED Control'>)}] ) } spids: [1655] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'overscan_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'disable_overscan=0'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName overscan_enabled)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'overscan_text='> name: overscan_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [1737] ) ] redirects: [] ) ] spids: [1724 1734] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'hdmi_boost_disabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'#config_hdmi_boost='>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'hdmi_boost_text='> (SQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName hdmi_boost_disabled)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'hdmi_boost_text='> name: hdmi_boost_text ) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [1790] ) ] redirects: [] ) ] spids: [1777 1787] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_module_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'start_x=1'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_module_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName rpi_camera_module_enabled)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi_camera_module_text='> name: rpi_camera_module_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [1847] ) ] redirects: [] ) ] spids: [1830 1844] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_led_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'disable_camera_led=0'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_led_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName rpi_camera_led_enabled)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi_camera_led_text='> name: rpi_camera_led_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [1904] ) ] redirects: [] ) ] spids: [1887 1901] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'rotation_hdmi_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^display_rotate='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'rotation_lcd_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^lcd_rotate='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'vc1_key_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^decode_WVC1='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'mpeg2_key_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^decode_MPG2='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'justboom_ir_remote_text='> (SQ <Disabled>)}) (C {<local>} {<Id.Lit_VarLike 'justboom_ir_remote_enabled='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/justboom-ir-mpd.service'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'justboom_ir_remote_text='> name: justboom_ir_remote_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [2061] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'justboom_ir_remote_enabled='> name: justboom_ir_remote_enabled ) op: assign_op.Equal rhs: {<1>} spids: [2067] ) ] redirects: [] ) ] spids: [2046 2057] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <4>)} { (DQ <'Rotation (HDMI) : '> ($ Id.VSub_DollarName rotation_hdmi_current) ) } ] ) } spids: [2076] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <5>)} { (DQ <'Rotation (LCD) : '> ($ Id.VSub_DollarName rotation_lcd_current) ) } ] ) } spids: [2089] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <6>)} { (DQ <'Overscan : '> ($ Id.VSub_DollarName overscan_text) ) } ] ) } spids: [2102] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName overscan_enabled)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'overscan_options='> (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <overscan_left>)} {(SQ <overscan_right>)} {(SQ <overscan_top>)} {(SQ <overscan_bottom>)} ] ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_left='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_left='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_right='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_right='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_top='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_top='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_bottom='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_bottom='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <15>)} { (DQ <'Overscan Compensation : L:'> ($ Id.VSub_DollarName overscan_left) <' R:'> ($ Id.VSub_DollarName overscan_right) <' T:'> ($ Id.VSub_DollarName overscan_top) <' B:'> ($ Id.VSub_DollarName overscan_bottom) ) } ] ) } spids: [2271] ) ] redirects: [] ) ] spids: [2115 2125] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <7>)} { (DQ <'HDMI Boost : '> ($ Id.VSub_DollarName hdmi_boost_text) ) } ] ) } spids: [2295] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <8>)} { (DQ <'RPi Camera : '> ($ Id.VSub_DollarName rpi_camera_module_text) ) } ] ) } spids: [2308] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <9>)} { (DQ <'RPI Camera led : '> ($ Id.VSub_DollarName rpi_camera_led_text) ) } ] ) } spids: [2321] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <11>)} { (DQ <'JustBoom IR remote : '> ($ Id.VSub_DollarName justboom_ir_remote_text) ) } ] ) } spids: [2334] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <12>)} { (DQ <'VC1 Key : '> ($ Id.VSub_DollarName vc1_key_current) ) } ] ) } spids: [2347] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <13>)} { (DQ <'MPEG2 Key : '> ($ Id.VSub_DollarName mpeg2_key_current) ) } ] ) } spids: [2360] ) ] redirects: [] ) ] spids: [1672 1686] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'odroid_remote_text='> (SQ <Disabled>)}) (C {<local>} {<Id.Lit_VarLike 'odroid_remote_enabled='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/odroid-remote.service'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'odroid_remote_text='> name: odroid_remote_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [2437] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'odroid_remote_enabled='> name: odroid_remote_enabled ) op: assign_op.Equal rhs: {<1>} spids: [2443] ) ] redirects: [] ) ] spids: [2422 2433] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <10>)} { (DQ <'Odroid remote : '> ($ Id.VSub_DollarName odroid_remote_text) ) } ] ) } spids: [2452] ) ] redirects: [] ) ] spids: [2382 2404] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Options'>)} spids: [2470] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--default-item>} {(DQ ($ Id.VSub_DollarName WHIP_SELECTION_PREVIOUS))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<18>} {<70>} {<10>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [2476] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2536] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_SELECTION_PREVIOUS='> name: WHIP_SELECTION_PREVIOUS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [2564] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 15>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'DietPi - Overscan Compensation'>)} spids: [2615] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTION='> name: OPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a value (pixel count) for ' > (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <'.:'> <Id.Lit_BadBackslash '\\'> <'n - EG: 16'> ) } {<10>} {<60>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options prefix_op: <Id.VSub_Bang '!'> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) ) } {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [2621] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2671] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <'=/c '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <'='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [2719] ) ] redirects: [] ) ] spids: [2675 2689] ) ] else_action: [ (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [2740] ) ] redirects: [] ) ] spids: [2569 2583] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<2>} spids: [2763] ) ] redirects: [] ) ] spids: [2745 2759] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 11>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <none>)} {(DQ <'Uninstall all panels'>)}] ) } spids: [2839] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <waveshare32>)} {(DQ <'320x240 panel with touch input'>)} ] ) } spids: [2851] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 11>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-cloudshell>)} {(DQ <'320x240 panel'>)} ] ) } spids: [2882] ) ] redirects: [] ) ] spids: [2864 2878] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-lcd35>)} {(DQ <'480x320 panel with touch input'>)} ] ) } spids: [2925] ) ] redirects: [] ) ] spids: [2899 2921] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'DietPi - LCD Panel'>)} spids: [2942] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTION='> name: OPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--default-item>} {(DQ ($ Id.VSub_DollarName lcdpanel_text))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<14>} {<60>} {<5>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [2948] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [3003] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<lcdpanel>} {(DQ ($ Id.VSub_DollarName OPTION))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3034] ) ] redirects: [] ) ] spids: [3007 3021] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [2786 2827] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [3065] ) ] redirects: [] ) ] spids: [2768 2782] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (SQ < 'GPU/RAM Memory splits are pre-configured and applied during DietPi-Software setup. \\n \\nThe split value is optimized based on your software installs, however, feel free to tweak them.' > ) } spids: [3122] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<6>} spids: [3153] ) ] redirects: [] ) ] spids: [3088 3118] ) ] else_action: [ (C {<Info_HW_OptionNotSupported>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [3170] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3070 3084] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 6>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName overscan_enabled)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/disable_overscan=/c\\disable_overscan=1'>)} {<'/DietPi/config.txt'>} ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (C {<sed>} {<-i>} { (DQ <'/'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <'=/c '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name overscan_options> var_name: overscan_options bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <'=0'> ) } {<'/DietPi/config.txt'>} ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3303] ) ] redirects: [] ) ] spids: [3219 3229] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName overscan_enabled)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/disable_overscan=/c\\disable_overscan=0'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3335] ) ] redirects: [] ) ] spids: [3308 3320] ) ] else_action: [] redirects: [] ) ] spids: [3201 3215] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [3360] ) ] redirects: [] ) ] spids: [3179 3193] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 7>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ ($ Id.VSub_DollarName hdmi_boost_disabled) ) } {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName hdmi_boost_text) <' '> <Id.Lit_BadBackslash '\\'> <'n Would you like to disable HDMI Signal Boost?'> ) } spids: [3428] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [3477] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/config_hdmi_boost=/c\\#config_hdmi_boost=4' > ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3510] ) ] redirects: [] ) ] spids: [3481 3495] ) ] else_action: [] redirects: [] ) ] spids: [3409 3424] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ ($ Id.VSub_DollarName hdmi_boost_disabled) ) } {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName hdmi_boost_text) <' '> <Id.Lit_BadBackslash '\\'> <'n Would you like to enable HDMI Signal Boost? '> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> < 'n If you have no display output, or, blinking, selecting Enable may resolve it ' > ) } spids: [3542] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [3595] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/config_hdmi_boost=/c\\config_hdmi_boost=4' > ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3628] ) ] redirects: [] ) ] spids: [3599 3613] ) ] else_action: [] redirects: [] ) ] spids: [3523 3538] ) ] else_action: [] redirects: [] ) ] spids: [3387 3401] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [3657] ) ] redirects: [] ) ] spids: [3365 3379] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 8>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName rpi_camera_module_enabled ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-camera>} {<enable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3725] ) ] redirects: [] ) ] spids: [3702 3714] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-camera>} {<disable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3741] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3684 3698] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [3766] ) ] redirects: [] ) ] spids: [3662 3676] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 9>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName rpi_camera_led_enabled ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/disable_camera_led=/c\\disable_camera_led=0'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3842] ) ] redirects: [] ) ] spids: [3811 3823] ) ] else_action: [ (C {<sed>} {<-i>} {(SQ <'/disable_camera_led=/c\\disable_camera_led=1'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3866] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3793 3807] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [3891] ) ] redirects: [] ) ] spids: [3771 3785] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName odroid_remote_enabled)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Odroid Remote'>)} {<--yesno>} { (DQ < 'This will enable the IR modules, setup Lirc and the Odroid Remote for Odroid C1, C2 and XU4 Cloudshell.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nNB: Other remotes can be configured by running \'irrecord\' and applying the codes to \'/etc/lirc/lircd.conf\'' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDo you wish to continue?'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [3981] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<odroid_remote>} ) ] spids: [3985 3999] ) ] else_action: [] redirects: [] ) ] spids: [3918 3930] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<none>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4031] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [4040] ) ] redirects: [] ) ] spids: [3896 3910] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 11>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName justboom_ir_remote_enabled ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'JustBoom IR Remote'>)} {<--yesno>} { (DQ <'Got a JustBoom IR Remote? Excellent!'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nDietPi will enable the IR modules, setup Lirc and enable support for MPD controls by default:' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDo you wish to continue?'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [4130] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<justboom_ir_remote>} ) ] spids: [4134 4148] ) ] else_action: [] redirects: [] ) ] spids: [4067 4079] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<none>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4180] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [4189] ) ] redirects: [] ) ] spids: [4045 4059] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 12>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'DietPi - VC1 Key'>)} spids: [4212] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter your key for VC1:'> <Id.Lit_BadBackslash '\\'> <'n - EG: 0x00000000'> ) } {<12>} {<60>} {(DQ ($ Id.VSub_DollarName vc1_key_current))} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [4218] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [4255] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'decode_WVC1='>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndecode_WVC1=0x00000000'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/config.txt'>} ) ] more_env: [] do_fork: T ) ] spids: [4277 4305] ) ] else_action: [] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/decode_WVC1=/c'> <Id.Lit_BadBackslash '\\'> <'decode_WVC1='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4342] ) ] redirects: [] ) ] spids: [4259 4273] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [4355] ) ] redirects: [] ) ] spids: [4194 4208] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 13>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'DietPi - MPEG2 Key'>)} spids: [4378] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter your key for MPEG2:'> <Id.Lit_BadBackslash '\\'> <'n - EG: 0x00000000'> ) } {<12>} {<60>} {(DQ ($ Id.VSub_DollarName mpeg2_key_current))} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [4384] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [4421] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'decode_MPG2='>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndecode_MPG2=0x00000000'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/config.txt'>} ) ] more_env: [] do_fork: T ) ] spids: [4443 4471] ) ] else_action: [] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/decode_MPG2=/c'> <Id.Lit_BadBackslash '\\'> <'decode_MPG2='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4508] ) ] redirects: [] ) ] spids: [4425 4439] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4517] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [4526] ) ] redirects: [] ) ] spids: [4360 4374] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0>)} {(DQ <'Disabled (default)'>)}] ) } spids: [4557] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <1>)} {(DQ <'90 degrees'>)}] ) } spids: [4569] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <2>)} {(DQ <'180 degrees'>)}] ) } spids: [4581] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <3>)} {(DQ <'270 degrees'>)}] ) } spids: [4593] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0x10000>)} {(DQ <'Horizontal flip'>)}] ) } spids: [4605] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0x20000>)} {(DQ <'Vertical flip'>)}] ) } spids: [4617] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Rotation (HDMI)'>)} spids: [4630] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <'Please select an option:'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nNB: If you have the RPi touchscreen, please set this to 0 and use LCD rotation option.' > ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName rotation_hdmi_current))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<18>} {<60>} {<6>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [4636] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [4695] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/display_rotate=/c'> <Id.Lit_BadBackslash '\\'> <'display_rotate='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/config.txt'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <3>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Display_Rotation_Calc_XY_Invert>} {<1>})] spids: [4736 4769] ) ] else_action: [(C {<Display_Rotation_Calc_XY_Invert>} {<0>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4798] ) ] redirects: [] ) ] spids: [4699 4713] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4813] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [4822] ) ] redirects: [] ) ] spids: [4531 4545] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 5>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0>)} {(DQ <'Disabled (default)'>)}] ) } spids: [4853] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <2>)} {(DQ <'180 degrees'>)}] ) } spids: [4865] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Rotation (LCD)'>)} spids: [4878] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <'Please select an option:'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nNB: This option is for RPi touchscreen.'> ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName rotation_lcd_current))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<14>} {<60>} {<2>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [4884] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [4943] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/lcd_rotate=/c'> <Id.Lit_BadBackslash '\\'> <'lcd_rotate='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4980] ) ] redirects: [] ) ] spids: [4947 4961] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [4995] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [5004] ) ] redirects: [] ) ] spids: [4827 4841] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 14>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-led_control'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<1>} spids: [5030] ) ] redirects: [] ) ] spids: [5009 5023] ) ] else_action: [] redirects: [] ) ] spids: [2546 2560] ) ] else_action: [] redirects: [] ) (C {<unset>} {<overscan_options>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_DisplayOptions_Driver_Resolution body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [5068] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 21>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (C {<local>} {<Id.Lit_VarLike 'nvidia_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'nvidia_text='> (SQ <'Install GPU driver'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^nvidia-driver'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nvidia_installed='> name: nvidia_installed ) op: assign_op.Equal rhs: {<1>} spids: [5147] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nvidia_text='> name: nvidia_text ) op: assign_op.Equal rhs: {(SQ <'Uninstall GPU driver'>)} spids: [5151] ) ] redirects: [] ) ] spids: [5117 5143] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <Nvidia>)} {(DQ <' : '> ($ Id.VSub_DollarName nvidia_text))} ] ) } spids: [5162] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'radeon_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'intel_installed='> <0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Driver'>)} spids: [5212] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--default-item>} {(DQ ($ Id.VSub_DollarName WHIP_SELECTION_PREVIOUS))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} {<4>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [5218] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [5278] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<2>} spids: [5300] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(SQ <Nvidia>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName nvidia_installed)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<151>}) ] spids: [5326 5338] ) ] else_action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<uninstall>} {<151>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [5366] ) ] redirects: [] ) ] spids: [5305 5322] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(SQ <'Xorg Configuration'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Info: Xorg Configuration'>)} {<--msgbox>} { (DQ < 'NB: This feature will only work if no X server is currently running.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nPlease ensure:'> <Id.Lit_BadBackslash '\\'> <'n - No current X server (desktop) is running'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nIf a desktop is running, please set \'dietpi-autostart\' to \'Console\', reboot system, then rerun this option.' > ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<65>} ) (C {<X>} {<-configure>}) ] spids: [5371 5388] ) ] else_action: [] redirects: [] ) ] spids: [5282 5296] ) ] else_action: [] redirects: [] ) ] spids: [5077 5091] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'framebuffer_x='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_width='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'framebuffer_y='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_height='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'display_output_text='> (DQ ($ Id.VSub_DollarName framebuffer_x) <' X '> ($ Id.VSub_DollarName framebuffer_y) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^dtoverlay=vc4-kms-v3d'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_output_text='> name: display_output_text ) op: assign_op.Equal rhs: {(SQ <'OpenGL 1080p'>)} spids: [5570] ) ] redirects: [] ) ] spids: [5540 5566] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'CONFIG_HDMI_OUTPUT=0'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_output_text='> name: display_output_text ) op: assign_op.Equal rhs: {(DQ <Headless>)} spids: [5617] ) ] redirects: [] ) ] spids: [5585 5613] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [5628] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName display_output_text) ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<19>} {<60>} {<9>} {(SQ <OpenGL>)} {(SQ <'1920 x 1080'>)} {(SQ <1080p>)} {(SQ <'1920 x 1080'>)} {(SQ <720p>)} {(SQ <'1280 x 720'>)} {(SQ <480p>)} {(SQ <'854 x 480'>)} {(SQ <'RPi Touchscreen'>)} {(SQ <'800 x 480'>)} {(SQ <PC1>)} {(SQ <'1024 x 768'>)} {(SQ <PC2>)} {(SQ <'800 x 640'>)} {(SQ <PC3>)} {(SQ <'640 x 480'>)} {(SQ <DietPi-Cloudshell>)} {(SQ <'320 x 240'>)} {(SQ <'sdtv_mode=0'>)} {(SQ <'Composite NTSC'>)} {(SQ <'sdtv_mode=1'>)} {(SQ <'Composite Japanese NTSC'>)} {(SQ <'sdtv_mode=2'>)} {(SQ <'Composite PAL'>)} {(SQ <'sdtv_mode=3'>)} {(SQ <'Composite Brazilian PAL'>)} {(SQ <Headless>)} {(SQ <'Disables HDMI & Composite Output'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [5634] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [5819] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [5841] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<2>} spids: [5850] ) ] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=1'> ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/sdtv_mode=/c\\#sdtv_mode=0'>)} {<'/DietPi/config.txt'>} ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-opengl>} {<disable>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <OpenGL>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-opengl>} {<enable>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1920'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=1080'>)} {<'/DietPi/config.txt'>} ) ] spids: [5901 5918] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName OPTION))} right: {(DQ <sdtv_mode>) <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {($ Id.VSub_DollarName OPTION)}) (C {<sed>} {<-i>} {(DQ <'/sdtv_mode=/c '> ($ Id.VSub_DollarName OPTION))} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=720'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=576'>)} {<'/DietPi/config.txt'>} ) ] spids: [5957 5975] ) ] else_action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{(DQ <DietPi-Cloudshell>)}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=320'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=240'>)} {<'/DietPi/config.txt'>} ) ] spids: [6033 6036 6061 -1] ) (case_arm pat_list: [{<1080p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1920'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=1080'>)} {<'/DietPi/config.txt'>} ) ] spids: [6064 6065 6090 -1] ) (case_arm pat_list: [{<720p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1280'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=720'>)} {<'/DietPi/config.txt'>} ) ] spids: [6093 6094 6119 -1] ) (case_arm pat_list: [{<480p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=854'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=480'>)} {<'/DietPi/config.txt'>} ) ] spids: [6122 6123 6148 -1] ) (case_arm pat_list: [{(DQ <'RPi Touchscreen'>)}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=800'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=480'>)} {<'/DietPi/config.txt'>} ) ] spids: [6151 6154 6179 -1] ) (case_arm pat_list: [{<PC1>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1024'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=768'>)} {<'/DietPi/config.txt'>} ) ] spids: [6182 6183 6208 -1] ) (case_arm pat_list: [{<PC2>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=800'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=640'>)} {<'/DietPi/config.txt'>} ) ] spids: [6211 6212 6237 -1] ) (case_arm pat_list: [{<PC3>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=640'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=480'>)} {<'/DietPi/config.txt'>} ) ] spids: [6240 6241 6266 -1] ) (case_arm pat_list: [{<Headless>}] action: [ (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} { (DQ <' Using the Headless option will: '> <Id.Lit_BadBackslash '\\'> <'n - Disable HDMI output '> <Id.Lit_BadBackslash '\\'> <'n - Lower energy consumption by 0.1+ Watts '> <Id.Lit_BadBackslash '\\'> <'n - Set framebuffer to 16x16xD8 '> <Id.Lit_BadBackslash '\\'> < 'n - Improve RAM performance by 1-5% (VideoCore shares RAM bandwidth) ' > <Id.Lit_BadBackslash '\\'> < 'n - More info here : https://www.raspberrypi.org/forums/viewtopic.php?p=105008#p105008' > ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<75>} ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=0'> ) } {<'/DietPi/dietpi.txt'>} ) ] spids: [6269 6270 6321 -1] ) ] redirects: [] ) ] redirects: [] ) ] spids: [5823 5837] ) ] else_action: [] redirects: [] ) ] spids: [5445 5459] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv m "'>)}) (C {<awk>} {<-F>} {(SQ <'"'>)} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [6398] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName current_resolution) ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<16>} {<60>} {<6>} {(DQ <1080p>)} {(DQ <'1920 x 1080'>)} {(DQ <720p>)} {(DQ <'1280 x 720'>)} {(DQ <480p>)} {(DQ <'720 x 480'>)} {(DQ <'VU7+'>)} {(DQ <'1024 x 600'>)} {(DQ <PC1>)} {(DQ <'1024 x 768'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [6404] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [6499] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [6521] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<2>} spids: [6530] ) ] redirects: [] ) (C {<sed>} {<-i>} {(SQ <'/setenv vout_mode /c\\setenv vout_mode "hdmi"'>)} {<'/DietPi/boot.ini'>} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<1080p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "1080p"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6561 6562 6576 -1] ) (case_arm pat_list: [{<720p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "720p"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6579 6580 6594 -1] ) (case_arm pat_list: [{<480p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "480p"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6597 6598 6612 -1] ) (case_arm pat_list: [{<PC1>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "1024x768"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6615 6616 6630 -1] ) (case_arm pat_list: [{(DQ <'VU7+'>)}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "1024x600"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vout_mode /c\\setenv vout_mode "dvi"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6633 6636 6661 -1] ) ] redirects: [] ) ] spids: [6503 6517] ) ] else_action: [] redirects: [] ) ] spids: [6341 6355] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 11>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv videoconfig "'>)}) (C {<grep>} {<-ci>} {<-m1>} {<1920x1080>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'current_resolution='> name: current_resolution ) op: assign_op.Equal rhs: {(DQ <1080p>)} spids: [6747] ) ] redirects: [] ) ] spids: [6706 6744] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv videoconfig "'>)}) (C {<grep>} {<-ci>} {<-m1>} {<1280x720>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'current_resolution='> name: current_resolution ) op: assign_op.Equal rhs: {(DQ <720p>)} spids: [6794] ) ] redirects: [] ) ] spids: [6753 6791] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv videoconfig "'>)}) (C {<grep>} {<-ci>} {<-m1>} {<720x480>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'current_resolution='> name: current_resolution ) op: assign_op.Equal rhs: {(DQ <480p>)} spids: [6841] ) ] redirects: [] ) ] spids: [6800 6838] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [6851] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName current_resolution) ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<14>} {<60>} {<4>} {(DQ <1080p>)} {(DQ <'1920 x 1080'>)} {(DQ <720p>)} {(DQ <'1280 x 720'>)} {(DQ <480p>)} {(DQ <'720 x 480'>)} {(DQ <'VU7+'>)} {(DQ <'1024 x 600'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [6857] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [6942] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [6964] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<2>} spids: [6973] ) ] redirects: [] ) (C {<sed>} {<-i>} {(SQ <'/setenv vout /c\\setenv vout "hdmi"'>)} {<'/DietPi/boot.ini'>} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<1080p>}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/1920x1080.bin"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [7004 7005 7019 -1] ) (case_arm pat_list: [{<720p>}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/1280x720.bin"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [7022 7023 7037 -1] ) (case_arm pat_list: [{<480p>}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/720x480.bin"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [7040 7041 7055 -1] ) (case_arm pat_list: [{(DQ <'VU7+'>)}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/1024x600.bin"' > ) } {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vout /c\\setenv vout "dvi"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [7058 7061 7086 -1] ) ] redirects: [] ) ] spids: [6946 6960] ) ] else_action: [] redirects: [] ) ] spids: [6677 6691] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv m "'>)}) (C {<awk>} {<-F>} {(SQ <'"'>)} {(SQ <'{print $2}'>)}) (C {<sed>} {(SQ <'s/p/p /'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [7172] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName current_resolution) ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName current_resolution))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<18>} {<60>} {<9>} {(DQ <'2160p 60hz'>)} {(DQ <'4K (Recommended)'>)} {(DQ <'2160p 50hz'>)} {(DQ <4K>)} {(DQ <'2160p 30hz'>)} {(DQ <4K>)} {(DQ <'2160p 25hz'>)} {(DQ <4K>)} {(DQ <'2160p 24hz'>)} {(DQ <4K>)} {(DQ <'1080p 60hz'>)} {(DQ <'1080p (Recommended)'>)} {(DQ <'1080p 50hz'>)} {(DQ <1080p>)} {(DQ <'1080p 24hz'>)} {(DQ <1080p>)} {(DQ <'720p 60hz'>)} {(DQ <'720p (Recommended)'>)} {(DQ <'720p 50hz'>)} {(DQ <720p>)} {(DQ <'480p 60hz'>)} {(DQ <480p>)} {(DQ <'1024x600p 60hz'>)} {(DQ <'VU7+'>)} {(DQ <'1024x768p 60hz'>)} {(DQ <'4:3'>)} {(DQ <'800x600p 60hz'>)} {(DQ <'4:3'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [7178] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [7369] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName current_resolution))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [7413] ) ] redirects: [] ) ] spids: [7391 7409] ) ] else_action: [] redirects: [] ) (C {<sed>} {<-i>} {(SQ <'/setenv vout "dvi"/c\\# setenv vout "dvi"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vout "vga"/c\\# setenv vout "vga"'>)} {<'/DietPi/boot.ini'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'1024x600p 60hz'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/setenv vout "dvi"/c\\setenv vout "dvi"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [7453 7470] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName OPTION))}) (C {<tr>} {<-d>} {(SQ <'[:blank:]'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [7498] ) ] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/setenv m /c'> <Id.Lit_BadBackslash '\\'> <'setenv m '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName OPTION) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<2>} spids: [7542] ) ] redirects: [] ) ] spids: [7373 7387] ) ] else_action: [] redirects: [] ) ] spids: [7102 7116] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 40>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/uEnv.txt'>}) (C {<grep>} {<-m1>} {(SQ <'optargs=disp.screen0_output_mode='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [7606] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName current_resolution) ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName current_resolution))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<18>} {<55>} {<9>} {(DQ <720p50>)} {(DQ )} {(DQ <720p60>)} {(DQ <720p>)} {(DQ <1080i50>)} {(DQ )} {(DQ <1080i60>)} {(DQ <1080i>)} {(DQ <1080p24>)} {(DQ )} {(DQ <1080p50>)} {(DQ )} {(DQ <1080p60>)} {(DQ <1080p>)} {(DQ <2160p24>)} {(DQ )} {(DQ <2160p25>)} {(DQ )} {(DQ <2160p30>)} {(DQ <4K>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [7612] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [7757] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName current_resolution))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/^optargs=disp.screen0_output_mode=/c'> <Id.Lit_BadBackslash '\\'> <'optargs=disp.screen0_output_mode='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/uEnv.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [7815] ) ] redirects: [] ) ] spids: [7779 7797] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<2>} spids: [7828] ) ] redirects: [] ) ] spids: [7761 7775] ) ] else_action: [] redirects: [] ) ] spids: [7555 7569] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_AdvancedOptions body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [7862] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (C {<local>} {<Id.Lit_VarLike 'swap_size='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONF_SWAPSIZE='>)} {<'/etc/dphys-swapfile'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'swap_text='> (DQ ($ Id.VSub_DollarName swap_size) <' MB'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName swap_size)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'swap_text='> name:swap_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [7929] ) ] redirects: [] ) ] spids: [7912 7926] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <'Swapfile size'>)} {(DQ <': '> ($ Id.VSub_DollarName swap_text))}] ) } spids: [7938] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'ntpd_mode_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NTP_MODE='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'ntpd_mode_text='> (DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ntpd_mode_current)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ntpd_mode_text='> name: ntpd_mode_text ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [8004] ) ] redirects: [] ) ] spids: [7987 8001] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ntpd_mode_current)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ntpd_mode_text='> name: ntpd_mode_text ) op: assign_op.Equal rhs: {(DQ <'Boot Only'>)} spids: [8027] ) ] redirects: [] ) ] spids: [8010 8024] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ntpd_mode_current)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ntpd_mode_text='> name: ntpd_mode_text ) op: assign_op.Equal rhs: {(DQ <'Boot + Daily'>)} spids: [8050] ) ] redirects: [] ) ] spids: [8033 8047] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ntpd_mode_current)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ntpd_mode_text='> name: ntpd_mode_text ) op: assign_op.Equal rhs: {(DQ <'Boot + Hourly'>)} spids: [8073] ) ] redirects: [] ) ] spids: [8056 8070] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ntpd_mode_current)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ntpd_mode_text='> name: ntpd_mode_text ) op: assign_op.Equal rhs: {(DQ <'Daemon + Drift'>)} spids: [8096] ) ] redirects: [] ) ] spids: [8079 8093] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Time sync mode'>)} {(DQ <': '> ($ Id.VSub_DollarName ntpd_mode_text))} ] ) } spids: [8105] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'serialconsole_state='> name: serialconsole_state ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SERIAL_CONSOLE_ENABLE='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [8119] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'serialconsole_text='> name: serialconsole_text ) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [8145] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName serialconsole_state)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'serialconsole_text='> name: serialconsole_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8168] ) ] redirects: [] ) ] spids: [8151 8165] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <'Update firmware'>)} {(DQ )}] ) } spids: [8178] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'bluetooth_state_text='> (SQ <Enabled>)}) (C {<local>} {<Id.Lit_VarLike 'bluetooth_state='> <1>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/modprobe.d/disable_bt.conf'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'bluetooth_state='> name: bluetooth_state ) op: assign_op.Equal rhs: {<0>} spids: [8218] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'bluetooth_state_text='> name: bluetooth_state_text ) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [8222] ) ] redirects: [] ) ] spids: [8204 8215] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Bluetooth>)} {(DQ <': '> ($ Id.VSub_DollarName bluetooth_state_text))} ] ) } spids: [8252] ) ] redirects: [] ) ] spids: [8235 8249] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Serial console'>)} {(DQ <': '> ($ Id.VSub_DollarName serialconsole_text))} ] ) } spids: [8290] ) ] redirects: [] ) ] spids: [8273 8287] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'rpi_i2c_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'dtparam=i2c_arm=on'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_i2c_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName rpi_i2c_enabled)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi_i2c_text='> name: rpi_i2c_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8376] ) ] redirects: [] ) ] spids: [8359 8373] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'rpi_i2cbaudrate_hz='> (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'i2c_arm_baudrate='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1000>} ) ) <' kHz'> ) } ) (C {<local>} {<Id.Lit_VarLike 'usb_max_current_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'max_usb_current=1'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_usbmaxcurrent_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName usb_max_current_enabled))} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi_usbmaxcurrent_text='> name: rpi_usbmaxcurrent_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8474] ) ] redirects: [] ) ] spids: [8456 8471] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'rpi3_usb_boot_bit_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<vcgencmd>} {<otp_dump>}) (C {<grep>} {<-m1>} {(SQ <'17:'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <3020000a>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi3_usb_boot_bit_enabled_text='> (SQ <Disabled>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName rpi3_usb_boot_bit_enabled)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi3_usb_boot_bit_enabled_text='> name: rpi3_usb_boot_bit_enabled_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8556] ) ] redirects: [] ) ] spids: [8542 8552] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'USB boot support'>)} { (DQ <': '> ($ Id.VSub_DollarName rpi3_usb_boot_bit_enabled_text) ) } ] ) } spids: [8567] ) ] redirects: [] ) ] spids: [8484 8498] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Max USB current'>)} {(DQ <': '> ($ Id.VSub_DollarName rpi_usbmaxcurrent_text))} ] ) } spids: [8585] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'I2c state'>)} {(DQ <': '> ($ Id.VSub_DollarName rpi_i2c_text))} ] ) } spids: [8598] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'I2c frequency'>)} {(DQ <': '> ($ Id.VSub_DollarName rpi_i2cbaudrate_hz))} ] ) } spids: [8611] ) ] redirects: [] ) ] spids: [8311 8325] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Advanced Options'>)} spids: [8630] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<16>} {<60>} {<8>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [8636] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [8685] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'Swapfile size'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MIN_VALUE='> name: MIN_VALUE ) op: assign_op.Equal rhs: {<0>} spids: [8735] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAX_VALUE='> name: MAX_VALUE ) op: assign_op.Equal rhs: {<2000>} spids: [8739] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'This will set the size of your swap file in MB:' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nSwapfile has a swapiness setting of 1. Swapfile is used only to prevent out of memory errors.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - Recommended value = 1 (auto)'> <Id.Lit_BadBackslash '\\'> <'n - 0 = Disable swapfile'> <Id.Lit_BadBackslash '\\'> <'n - 1 = Auto size swapfile (2GB - RAM = size)'> <Id.Lit_BadBackslash '\\'> <'n - 2 - '> ($ Id.VSub_DollarName MAX_VALUE) <' = Manual size'> ) } {<16>} {<75>} {(DQ ($ Id.VSub_DollarName swap_size))} {<--title>} {(DQ <'SwapFile Size (MB)'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [8743] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [8794] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MIN_VALUE)} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MAX_VALUE)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName OPTION)} right: { ($ Id.VSub_DollarName swap_size) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C { < '/DietPi/dietpi/func/dietpi-set_dphys-swapfile' > } {($ Id.VSub_DollarName OPTION)} ) ] spids: [8871 8885] ) ] else_action: [] redirects: [] ) ] spids: [8816 8863] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] redirects: [] ) ] spids: [8798 8812] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [8919] ) ] redirects: [] ) ] spids: [8714 8731] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'Time sync mode'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Time Sync (NTP)'>)} {<--menu>} { (DQ < 'Here you can adjust the frequency of NTP time syncs.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - Modes 1-3:'> <Id.Lit_BadBackslash '\\'> < 'nDietPi will launch NTPD as a program, rather than a daemon. Once the time has been updated on your system, NTPD will exit to reduce resource usage.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - Mode 4:'> <Id.Lit_BadBackslash '\\'> < 'nsystemd-timesyncd will run as a background daemon/service. Differences in time will be gradually adjusted over time, rather than instantly.' > ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--default-item>} {(DQ ($ Id.VSub_DollarName ntpd_mode_current))} {<23>} {<70>} {<5>} {(DQ <0>)} {(DQ <Disabled>)} {(DQ <1>)} {(DQ <'Boot Only'>)} {(DQ <2>)} {(DQ <'Boot + Daily (Recommended)'>)} {(DQ <3>)} {(DQ <'Boot + Hourly'>)} {(DQ <4>)} {(DQ <'Daemon + Drift'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [8945] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9053] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<ntpd-mode>} {($ Id.VSub_DollarName OPTION)} ) ] spids: [9057 9071] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [9091] ) ] redirects: [] ) ] spids: [8924 8941] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'Update firmware'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ < 'Would you like to update the firmware/kernel for ' > ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <'?'> <Id.Lit_BadBackslash '\\'> <'n - This will run G_RPI_UPDATE'> ) } spids: [9139] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9188] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_RPI_UPDATE>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [9213] ) ] redirects: [] ) ] spids: [9192 9206] ) ] else_action: [] redirects: [] ) ] spids: [9121 9135] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 40>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ < 'Would you like to update the firmware/kernel for ' > ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <'?'> <Id.Lit_BadBackslash '\\'> < 'n - This will run longsleep\'s update scripts to update the U-Boot and kernel.' > ) } spids: [9244] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9293] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/usr/local/sbin/pine64_update_uboot.sh'>}) (C {<'/usr/local/sbin/pine64_update_kernel.sh'>}) ] spids: [9297 9311] ) ] else_action: [] redirects: [] ) ] spids: [9226 9240] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ <'Would you like to update the firmware/kernel for '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <'?'> <Id.Lit_BadBackslash '\\'> <'n - This will run G_AGDUG'> <Id.Lit_BadBackslash '\\'> < 'n - Most (but not all) devices allow APT based firmware updates' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nNB: If requested to overwrite the current kernel, press TAB and then ENTER (to confirm).' > ) } spids: [9334] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9389] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGUP>}) (C {<G_AGDUG>})] spids: [9393 9407] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [9430] ) ] redirects: [] ) ] spids: [9096 9113] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'Max USB current'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName usb_max_current_enabled)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName rpi_usbmaxcurrent_text) <' (1.2AMP) '> <Id.Lit_BadBackslash '\\'> <'n Would you like to disable this setting ? '> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> <'n Once Disabled: '> <Id.Lit_BadBackslash '\\'> <'n - Max USB current will be limited to 0.6AMP.'> <Id.Lit_BadBackslash '\\'> <'n - Shared by all USB ports.'> ) } spids: [9477] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9534] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/max_usb_current=/c\\max_usb_current=0'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [9566] ) ] redirects: [] ) ] spids: [9538 9552] ) ] else_action: [] redirects: [] ) ] spids: [9460 9474] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName usb_max_current_enabled)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName rpi_usbmaxcurrent_text) <' (0.6AMP) '> <Id.Lit_BadBackslash '\\'> <'n Would you like to enable this setting ? '> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> <'n Once Enabled: '> <Id.Lit_BadBackslash '\\'> <'n - Max USB current will be set to 1.2AMP.'> <Id.Lit_BadBackslash '\\'> <'n - Shared by all USB ports.'> ) } spids: [9594] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9651] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/max_usb_current=/c\\max_usb_current=1'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [9683] ) ] redirects: [] ) ] spids: [9655 9669] ) ] else_action: [] redirects: [] ) ] spids: [9577 9591] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [9698] ) ] redirects: [] ) ] spids: [9435 9452] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'I2c state'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName rpi_i2c_enabled)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {<enable>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [9748] ) ] redirects: [] ) ] spids: [9724 9738] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {<disable>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [9762] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [9774] ) ] redirects: [] ) ] spids: [9703 9720] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'I2c frequency'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi_i2cbaudrate_hz='> name: rpi_i2cbaudrate_hz ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName rpi_i2cbaudrate_hz))} ) (C {<tr>} {<-d>} {(SQ <' kHz'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [9804] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter the required i2c baudrate frequency (kHz).' > ) } {<8>} {<60>} {(DQ ($ Id.VSub_DollarName rpi_i2cbaudrate_hz))} {<--title>} {(DQ <'i2c baudrate frequency (kHz)'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [9826] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [9861] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {(DQ ($ Id.VSub_DollarName OPTION))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [9918] ) ] redirects: [] ) ] spids: [9886 9906] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] redirects: [] ) ] spids: [9865 9879] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [9940] ) ] redirects: [] ) ] spids: [9779 9796] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'Serial console'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName serialconsole_state)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<serialconsole>} {<enable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [9991] ) ] redirects: [] ) ] spids: [9966 9980] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<serialconsole>} {<disable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [10007] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [10020] ) ] redirects: [] ) ] spids: [9945 9962] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Bluetooth>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName bluetooth_state)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<bluetooth>} {<disable>} ) ] spids: [10046 10056] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<bluetooth>} {<enable>} ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [10084] ) ] redirects: [] ) ] spids: [10025 10042] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'USB boot support'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName rpi3_usb_boot_bit_enabled) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (SQ < 'The following will enable the RPi 3 to boot from USB mass storage devices. A hardware bit "17:3020000a", specific to the device is set to enable the feature.\\n\\nNB:\\n - Not all USB mass storage devices are supported\\n - The HW bit which enables this setting is non-reversible\\n\\nDo you wish to enable USB mass storage boot support?' > ) } spids: [10126] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [10171] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi3_usb_boot>} {<enable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [10200] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (SQ < 'A reboot is required to apply this setting.\\n\\nPlease reboot this system once, the HW bit which allows USB boot support will then be set. After which, USB mass storage devices can be used for booting.\\n\\nWould you like to reboot the system now?' > ) } spids: [10209] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<75>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [10242] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [10246 10260] ) ] else_action: [] redirects: [] ) ] spids: [10175 10189] ) ] else_action: [] redirects: [] ) ] spids: [10110 10122] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<3>} spids: [10284] ) ] redirects: [] ) ] spids: [10089 10106] ) ] else_action: [] redirects: [] ) ] spids: [8696 8710] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_PerformanceOptions body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [10312] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'current_cpu_governor='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_GOVERNOR='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'frequency_min_cpu_governor='> <1>}) (C {<local>} {<Id.Lit_VarLike 'fp_frequency_min_cpu_governor='> (SQ <'/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName fp_frequency_min_cpu_governor))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'frequency_min_cpu_governor='> name: frequency_min_cpu_governor ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} { (DQ ($ Id.VSub_DollarName fp_frequency_min_cpu_governor) ) } ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [10377] ) ] redirects: [] ) ] spids: [10360 10373] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'frequency_max_cpu_governor='> <2>}) (C {<local>} {<Id.Lit_VarLike 'fp_frequency_max_cpu_governor='> (SQ <'/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName fp_frequency_max_cpu_governor))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'frequency_max_cpu_governor='> name: frequency_max_cpu_governor ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} { (DQ ($ Id.VSub_DollarName fp_frequency_max_cpu_governor) ) } ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [10432] ) ] redirects: [] ) ] spids: [10415 10428] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'arm_temp='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'arm_temp_f='> (SQ <Unknown>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName arm_temp)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arm_temp_f='> name:arm_temp_f) op: assign_op.Equal rhs: { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName arm_temp)} right: {<Id.Lit_Digits 9>} ) right: {<Id.Lit_Digits 5>} ) right: {<Id.Lit_Digits 32>} ) ) <'\'f'> ) } spids: [10496] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arm_temp+='> name:arm_temp) op: assign_op.PlusEqual rhs: {(DQ <'\'c'>)} spids: [10524] ) ] redirects: [] ) ] spids: [10472 10492] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'memory_total='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/proc/meminfo'>}) (C {<grep>} {<-m1>} {(SQ <'MemTotal:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1000>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'memory_free='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/proc/meminfo'>}) (C {<grep>} {<-m1>} {(SQ <'MemFree:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1000>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'memory_usage='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName memory_total)} right: {($ Id.VSub_DollarName memory_free)} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Overclocking>)} {(DQ <'Set Profile'>)}] ) } spids: [10660] ) ] redirects: [] ) ] spids: [10643 10657] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Change CPU Governor'>)} {(DQ <': '> ($ Id.VSub_DollarName current_cpu_governor))} ] ) } spids: [10680] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName current_cpu_governor))} {<Id.Lit_Equals '='>} {(DQ <ondemand>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName current_cpu_governor))} {<Id.Lit_Equals '='>} {(DQ <conservative>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName current_cpu_governor))} {<Id.Lit_Equals '='>} {(DQ <interactive>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_cpu_throttle_up='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_USAGE_THROTTLE_UP='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'CPU Throttle Up'>)} {(DQ <': '> ($ Id.VSub_DollarName current_cpu_throttle_up) <'%'>)} ] ) } spids: [10781] ) ] redirects: [] ) ] spids: [10698 10749] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName current_cpu_governor))} {<Id.Lit_Equals '='>} {<ondemand>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_cpu_sample_rate='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_ONDEMAND_SAMPLE_RATE='>)} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1000>} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Ondemand Sample Rate'>)} {(DQ <': '> ($ Id.VSub_DollarName current_cpu_sample_rate) <' ms'>)} ] ) } spids: [10864] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'current_cpu_down_factor='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'current_cpu_down_factor_ms='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName current_cpu_down_factor)} right: {($ Id.VSub_DollarName current_cpu_sample_rate)} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Ondemand Down Factor'>)} { (DQ <': '> ($ Id.VSub_DollarName current_cpu_down_factor) <' ('> ($ Id.VSub_DollarName current_cpu_down_factor_ms) <' ms)'> ) } ] ) } spids: [10918] ) ] redirects: [] ) ] spids: [10805 10820] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_max_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_MAX_FREQ='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_max_text='> (DQ ($ Id.VSub_DollarName user_frequency_max_current) <' MHz'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName user_frequency_max_current)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'user_frequency_max_text='> name: user_frequency_max_text ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [10996] ) ] redirects: [] ) ] spids: [10981 10993] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'CPU Max Freq Limit'>)} {(DQ <': '> ($ Id.VSub_DollarName user_frequency_max_text))} ] ) } spids: [11006] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_min_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_MIN_FREQ='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_min_text='> (DQ ($ Id.VSub_DollarName user_frequency_min_current) <' MHz'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName user_frequency_min_current)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'user_frequency_min_text='> name: user_frequency_min_text ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [11076] ) ] redirects: [] ) ] spids: [11061 11073] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'CPU Min Freq Limit'>)} {(DQ <': '> ($ Id.VSub_DollarName user_frequency_min_text))} ] ) } spids: [11086] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_arm_temp_limit='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <temp_limit>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'current_initial_turbo='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <initial_turbo>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'text_current_initial_turbo='> (DQ ($ Id.VSub_DollarName current_initial_turbo) <' seconds'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName current_initial_turbo)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'text_current_initial_turbo='> name: text_current_initial_turbo ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [11205] ) ] redirects: [] ) ] spids: [11188 11202] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'ARM Initial Turbo'>)} {(DQ <': '> ($ Id.VSub_DollarName text_current_initial_turbo))} ] ) } spids: [11214] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'ARM Temp Limit '>)} {(DQ <': '> ($ Id.VSub_DollarName current_arm_temp_limit) <' \'c'>)} ] ) } spids: [11227] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'rpi_freq_min_enabled='> <1>}) (C {<local>} {<Id.Lit_VarLike 'rpi_freq_min_text='> (DQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'#arm_freq_min='>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi_freq_min_enabled='> name: rpi_freq_min_enabled ) op: assign_op.Equal rhs: {<0>} spids: [11293] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rpi_freq_min_text='> name: rpi_freq_min_text ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [11297] ) ] redirects: [] ) ] spids: [11260 11290] ) ] else_action: [] redirects: [] ) ] spids: [11104 11118] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Performance Options'>)} spids: [11320] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n ARM Temp: '> ($ Id.VSub_DollarName arm_temp) <' : '> ($ Id.VSub_DollarName arm_temp_f) <Id.Lit_BadBackslash '\\'> <'n RAM: '> ($ Id.VSub_DollarName memory_total) <' MB | Used: '> ($ Id.VSub_DollarName memory_usage) <' MB | Free: '> ($ Id.VSub_DollarName memory_free) <' MB'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<18>} {<60>} {<8>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [11326] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [11396] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{(DQ <'Ondemand Down Factor'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MIN_VALUE='> name: MIN_VALUE ) op: assign_op.Equal rhs: {<1>} spids: [11447] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAX_VALUE='> name: MAX_VALUE ) op: assign_op.Equal rhs: {<200>} spids: [11451] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'After Ondemand throttles up, how long before the next sample to check if CPU clocks can be reduced.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'n - This value * \'Ondemand Sample Rate\' = total miliseconds' > <Id.Lit_BadBackslash '\\'> < 'n - Lower values may help reduce power consumption, however, a 500-1000ms value is recommended to prevent excessive sampling.' > <Id.Lit_BadBackslash '\\'> <'n - Valid range: '> ($ Id.VSub_DollarName MIN_VALUE) <' - '> ($ Id.VSub_DollarName MAX_VALUE) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nIf unsure, set any value, \'Ondemand Down Factor\' option on the next screen will list the calculated miliseconds.' > ) } {<17>} {<70>} {(DQ ($ Id.VSub_DollarName current_cpu_down_factor))} {<--title>} {(DQ ($ Id.VSub_DollarName OPTION))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [11455] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [11505] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MAX_VALUE)} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MIN_VALUE)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [11527 11569] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] redirects: [] ) ] spids: [11509 11523] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [11615] ) ] redirects: [] ) ] spids: [11439 11443 11619 -1] ) (case_arm pat_list: [{(DQ <'Ondemand Sample Rate'>) <Id.Lit_Star '*'>}] action: [ (C {<local>} {<Id.Lit_VarLike 'index='> <0>}) (C {<local>} {<Id.Lit_VarLike 'input_fp='> (sh_array_literal left: <Id.Op_LParen _> words: [ { (SQ < '/sys/devices/system/cpu/cpufreq/ondemand/sampling_rate_min' > ) } { (SQ < '/sys/devices/system/cpu/cpufreq/ondemand/min_sampling_rate' > ) } { (SQ < '/sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min' > ) } { (SQ < '/sys/devices/system/cpu/cpu0/cpufreq/ondemand/min_sampling_rate' > ) } ] ) } ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name input_fp> var_name: input_fp prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name input_fp> var_name: input_fp bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'index='> name: index ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName i)} spids: [11718] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [11696 11714] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MIN_VALUE='> name: MIN_VALUE ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name input_fp> var_name: input_fp bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName index)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [11734] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAX_VALUE='> name: MAX_VALUE ) op: assign_op.Equal rhs: {<300>} spids: [11758] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Sample rate in miliseconds, for Ondemand to check if it needs to increase CPU clocks.' > <Id.Lit_BadBackslash '\\'> <'nA lower value will make the system more responsive.'> <Id.Lit_BadBackslash '\\'> <'n - valid range: '> ($ Id.VSub_DollarName MIN_VALUE) <' - '> ($ Id.VSub_DollarName MAX_VALUE) ) } {<10>} {<70>} {(DQ ($ Id.VSub_DollarName current_cpu_sample_rate))} {<--title>} {(DQ ($ Id.VSub_DollarName OPTION) <' (ms)'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [11762] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [11805] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MAX_VALUE)} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MIN_VALUE)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_ONDEMAND_SAMPLE_RATE=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_ONDEMAND_SAMPLE_RATE='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 1000>} ) ) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [11827 11869] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] redirects: [] ) ] spids: [11809 11823] ) ] else_action: [] redirects: [] ) (C {<unset>} {<input_fp>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [11928] ) ] redirects: [] ) ] spids: [11623 11627 11932 -1] ) (case_arm pat_list: [{(DQ <'Lower Idle Frequencies'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (DQ < 'Toggle the use of lower idle frequencies for CPU, CORE and RAM.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nAs the lower frequencies are active only when the device is idle, enabling this feature allows for potential power saving without impacting performance.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent Setting: '> ($ Id.VSub_DollarName rpi_freq_min_text) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nEnable: (Allows for potential power saving)'> <Id.Lit_BadBackslash '\\'> <'nSets arm_freq_min=100, core_freq_min=75 and sdram_freq_min=200.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDisable: (Default)'> <Id.Lit_BadBackslash '\\'> < 'nSets arm_freq_min=700, core_freq_min=250 and sdram_freq_min=400.' > ) } spids: [11944] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Enable>)} {(DQ <'Lowers the idle frequencies for CPU, CORE, RAM.'>)} ] ) } spids: [11978] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Disable>)} {(DQ <'Returns the idle frequencies to defaults.'>)} ] ) } spids: [11990] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<22>} {<75>} {<2>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [12003] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [12057] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/arm_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'arm_freq_min=100'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/core_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'core_freq_min=75'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/sdram_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'sdram_freq_min=200'> ) } {<'/DietPi/config.txt'>} ) ] spids: [12090 12107] ) ] else_action: [ (C {<sed>} {<-i>} { (DQ <'/arm_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'#arm_freq_min=700'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/core_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'#core_freq_min=250'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/sdram_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'#sdram_freq_min=400'> ) } {<'/DietPi/config.txt'>} ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [12199] ) ] redirects: [] ) ] spids: [12072 12086] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [12212] ) ] redirects: [] ) ] spids: [11936 11940 12216 -1] ) (case_arm pat_list: [{(DQ <'CPU Max Freq Limit'>) <Id.Lit_Star '*'>}] action: [ (C {<'/DietPi/dietpi/dietpi-cpuinfo'>} {<2>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<'/tmp/dietpi-available_cpu_freqs'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Not Available'>)} {<--msgbox>} { (DQ < 'Your processor / kernel, does not support this feature.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(Info): Scaling_available_frequencies does not exist.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<65>} ) ] spids: [12234 12247] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_list='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (C {<local>} {<Id.Lit_VarLike 'max_clock='> <0>}) (C {<local>} {<Id.Lit_VarLike 'available_frequency_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.Simple words: [{<readarray>} {<available_frequency_array>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/tmp/dietpi-available_cpu_freqs'>} ) ] more_env: [] do_fork: T ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_frequency_array> var_name: available_frequency_array prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_list+='> name: whiptail_menu_list ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_frequency_array > var_name: available_frequency_array bracket_op: (bracket_op.ArrayIndex expr: { ($ Id.VSub_DollarName i) } ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1000>} ) ) ) } {(DQ <MHz>)} ] ) } spids: [12345] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_frequency_array > var_name: available_frequency_array bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) } right: {($ Id.VSub_DollarName max_clock)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'max_clock='> name: max_clock ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_frequency_array > var_name: available_frequency_array bracket_op: (bracket_op.ArrayIndex expr: { ($ Id.VSub_DollarName i) } ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [12394] ) ] redirects: [] ) ] spids: [12371 12390] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_list+='> name: whiptail_menu_list ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Disabled>)} {(DQ <'Returns clocks to default'>)} ] ) } spids: [12425] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTION='> name: OPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ < 'Limit the maximum frequency that your processor can reach.' > <Id.Lit_BadBackslash '\\'> <'nThis can be useful for lowering temperature and saving power.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent setting: '> ($ Id.VSub_DollarName user_frequency_max_text) ) } {<--cancel-button>} {(DQ <Back>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<--default-item>} { (DQ ($ Id.VSub_DollarName user_frequency_max_current ) ) } {<18>} {<65>} {<7>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_list> var_name: whiptail_menu_list bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [12442] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [12509] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Disabled>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MAX_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MAX_FREQ='> ($ Id.VSub_DollarName max_clock) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12535 12552] ) ] else_action: [] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MAX_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MAX_FREQ='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12513 12527] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_list>}) (C {<unset>} {<available_frequency_array>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [12623] ) ] redirects: [] ) ] spids: [12220 12224 12628 -1] ) (case_arm pat_list: [{(DQ <'CPU Min Freq Limit'>) <Id.Lit_Star '*'>}] action: [ (C {<'/DietPi/dietpi/dietpi-cpuinfo'>} {<2>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<'/tmp/dietpi-available_cpu_freqs'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Not Available'>)} {<--msgbox>} { (DQ < 'Your processor / kernel, does not support this feature.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(Info): Scaling_available_frequencies does not exist.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<65>} ) ] spids: [12646 12659] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_list='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (C {<local>} {<Id.Lit_VarLike 'min_clock='> <0>}) (C {<local>} {<Id.Lit_VarLike 'available_frequency_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.Simple words: [{<readarray>} {<available_frequency_array>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/tmp/dietpi-available_cpu_freqs'>} ) ] more_env: [] do_fork: T ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_frequency_array> var_name: available_frequency_array prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_list+='> name: whiptail_menu_list ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_frequency_array > var_name: available_frequency_array bracket_op: (bracket_op.ArrayIndex expr: { ($ Id.VSub_DollarName i) } ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1000>} ) ) ) } {(DQ <MHz>)} ] ) } spids: [12757] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'min_clock='> name: min_clock ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_frequency_array> var_name: available_frequency_array bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [12788] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_list+='> name: whiptail_menu_list ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Disabled>)} {(DQ <'Returns clocks to default'>)} ] ) } spids: [12811] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTION='> name: OPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ < 'Limit the minimum frequency that your processor can reach.' > <Id.Lit_BadBackslash '\\'> < 'nThis can be useful for some timing critical stuff (eg. 1-wire below 480 Mhz won\'t work).' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent setting: '> ($ Id.VSub_DollarName user_frequency_min_text) ) } {<--cancel-button>} {(DQ <Back>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<--default-item>} { (DQ ($ Id.VSub_DollarName user_frequency_min_current ) ) } {<18>} {<65>} {<7>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_list> var_name: whiptail_menu_list bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [12828] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [12895] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Disabled>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MIN_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MIN_FREQ='> ($ Id.VSub_DollarName min_clock) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12921 12938] ) ] else_action: [] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MIN_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MIN_FREQ='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12899 12913] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_list>}) (C {<unset>} {<available_frequency_array>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [13009] ) ] redirects: [] ) ] spids: [12632 12636 13014 -1] ) (case_arm pat_list: [{(DQ <Overclocking>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [13026] ) ] redirects: [] ) ] spids: [13018 13022 13030 -1] ) (case_arm pat_list: [{(DQ <'Change CPU Governor'>) <Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName FP_CPU_SCALING_GOV))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Not Available'>)} {<--msgbox>} { (DQ < 'Your processor, or kernel, does not support this feature.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(Info): scaling_available_governors does not exist.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<65>} ) ] spids: [13046 13061] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'Description='> (DQ <'Change CPU Governor:'>)} ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { (DQ ($ Id.VSub_DollarName FP_CPU_SCALING_GOV ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <ondemand>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <ondemand>)} { (DQ <'Scales CPU frequency between '> ($ Id.VSub_DollarName frequency_min_cpu_governor ) <' MHz and '> ($ Id.VSub_DollarName frequency_max_cpu_governor) <' MHz.'> ) } ] ) } spids: [13155] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'Description+='> name: Description ) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nOndemand | Dynamic CPU frequency based on usage (recommended).' > ) } spids: [13171] ) ] redirects: [] ) ] spids: [13119 13151] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { (DQ ($ Id.VSub_DollarName FP_CPU_SCALING_GOV ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <interactive>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <interactive>)} { (DQ <'Scales CPU frequency between '> ($ Id.VSub_DollarName frequency_min_cpu_governor ) <' MHz and '> ($ Id.VSub_DollarName frequency_max_cpu_governor) <' MHz.'> ) } ] ) } spids: [13219] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'Description+='> name: Description ) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nInteractive | Dynamic CPU frequency based on usage.' > ) } spids: [13235] ) ] redirects: [] ) ] spids: [13183 13215] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { (DQ ($ Id.VSub_DollarName FP_CPU_SCALING_GOV ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <conservative>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <conservative>)} { (DQ <'Scales CPU frequency between '> ($ Id.VSub_DollarName frequency_min_cpu_governor ) <' MHz and '> ($ Id.VSub_DollarName frequency_max_cpu_governor) <' MHz.'> ) } ] ) } spids: [13283] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'Description+='> name: Description ) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nConservative | Same as ondemand. Bias towards powersaving, slower scaling. ' > ) } spids: [13299] ) ] redirects: [] ) ] spids: [13247 13279] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { (DQ ($ Id.VSub_DollarName FP_CPU_SCALING_GOV ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <powersave>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <powersave>)} { (DQ <'Limits CPU frequency to '> ($ Id.VSub_DollarName frequency_min_cpu_governor ) <' MHz.'> ) } ] ) } spids: [13347] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'Description+='> name: Description ) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nPowersave | Static. Reduces energy consumption, heat, performance.' > ) } spids: [13361] ) ] redirects: [] ) ] spids: [13311 13343] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} { (DQ ($ Id.VSub_DollarName FP_CPU_SCALING_GOV ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <performance>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <performance>)} { (DQ <'Forces CPU frequency to '> ($ Id.VSub_DollarName frequency_max_cpu_governor ) <' MHz.'> ) } ] ) } spids: [13409] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'Description+='> name: Description ) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nPerformance | Static. Increases energy consumption, heat, performance.' > ) } spids: [13423] ) ] redirects: [] ) ] spids: [13373 13405] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTION='> name: OPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ ($ Id.VSub_DollarName Description))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<--default-item>} {(DQ ($ Id.VSub_DollarName current_cpu_governor))} {<18>} {<80>} {<5>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [13435] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [13495] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_GOVERNOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_GOVERNOR='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [13510 13524] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [13558] ) ] redirects: [] ) ] spids: [13034 13038 13563 -1] ) (case_arm pat_list: [{(DQ <'CPU Throttle Up'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MIN_VALUE='> name: MIN_VALUE ) op: assign_op.Equal rhs: {<30>} spids: [13574] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAX_VALUE='> name: MAX_VALUE ) op: assign_op.Equal rhs: {<95>} spids: [13578] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'When the CPU usage (%) is greater than this value, the CPU frequency will increase from ' > ($ Id.VSub_DollarName frequency_min_cpu_governor) <' MHz to '> ($ Id.VSub_DollarName frequency_max_cpu_governor) <' MHz.'> <Id.Lit_BadBackslash '\\'> <'n - Valid range '> ($ Id.VSub_DollarName MIN_VALUE) <' - '> ($ Id.VSub_DollarName MAX_VALUE) <Id.Lit_BadBackslash '\\'> <'n - Recommended settings: Desktop = 50%, Server = 85%'> ) } {<10>} {<70>} {(DQ ($ Id.VSub_DollarName current_cpu_throttle_up))} {<--title>} {(DQ <'CPU Throttle Up %'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [13582] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [13628] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MAX_VALUE)} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MIN_VALUE)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_USAGE_THROTTLE_UP=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_USAGE_THROTTLE_UP='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [13650 13692] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] redirects: [] ) ] spids: [13632 13646] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [13738] ) ] redirects: [] ) ] spids: [13566 13570 13742 -1] ) (case_arm pat_list: [{(DQ <'ARM Initial Turbo'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MIN_VALUE='> name: MIN_VALUE ) op: assign_op.Equal rhs: {<0>} spids: [13754] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAX_VALUE='> name: MAX_VALUE ) op: assign_op.Equal rhs: {<60>} spids: [13758] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Activates turbo mode during boot ('> ($ Id.VSub_DollarName frequency_max_cpu_governor) <' MHz), for the duration of value in seconds. '> <Id.Lit_BadBackslash '\\'> <'n - Recommended value is 20 '> <Id.Lit_BadBackslash '\\'> <'n - Valid range '> ($ Id.VSub_DollarName MIN_VALUE) <' (disabled) - '> ($ Id.VSub_DollarName MAX_VALUE) ) } {<12>} {<60>} {(DQ ($ Id.VSub_DollarName current_initial_turbo))} {<--title>} {(DQ <'ARM Initial Turbo Duration'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [13762] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [13806] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MAX_VALUE)} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MIN_VALUE)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/initial_turbo=/c'> <Id.Lit_BadBackslash '\\'> <'initial_turbo='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [13887] ) ] redirects: [] ) ] spids: [13828 13870] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] redirects: [] ) ] spids: [13810 13824] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [13912] ) ] redirects: [] ) ] spids: [13746 13750 13916 -1] ) (case_arm pat_list: [{(DQ <'ARM Temp Limit'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MIN_VALUE='> name: MIN_VALUE ) op: assign_op.Equal rhs: {<45>} spids: [13928] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MAX_VALUE='> name: MAX_VALUE ) op: assign_op.Equal rhs: {<85>} spids: [13932] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'When the ARM temperature (\'c) reaches this value, the ARM will underclock to reduce heat. ' > <Id.Lit_BadBackslash '\\'> <'n - Recommended value is 65 '> <Id.Lit_BadBackslash '\\'> <'n - Valid range '> ($ Id.VSub_DollarName MIN_VALUE) <' - '> ($ Id.VSub_DollarName MAX_VALUE) ) } {<11>} {<60>} {(DQ ($ Id.VSub_DollarName current_arm_temp_limit))} {<--title>} {(DQ <'ARM Temprature Limit'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [13936] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [13978] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MAX_VALUE)} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName OPTION)} right: {($ Id.VSub_DollarName MIN_VALUE)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 65>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} { (DQ <'Warning: '> ($ Id.VSub_DollarName OPTION) <' \'c'> ) } {<--msgbox>} { (DQ < 'Higher operating temperatures will reduce the life of your ARM SoC. Heat also dissipates through the PCB into other components, decreasing the lifespan of the whole device. Use at your own risk.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nDietPi recommends 65\'c as a safe value (75\'c for RPi 3).' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nMore info: https://github.com/Fourdee/DietPi/issues/356' > ) } {<14>} {<70>} ) ] spids: [14046 14060] ) ] else_action: [] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/temp_limit=/c'> <Id.Lit_BadBackslash '\\'> <'temp_limit='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [14112] ) ] redirects: [] ) ] spids: [14000 14042] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] redirects: [] ) ] spids: [13982 13996] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<4>} spids: [14137] ) ] redirects: [] ) ] spids: [13920 13924 14141 -1] ) ] redirects: [] ) ] spids: [11411 11425] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_Password body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'PasswordRecieved='> <0>}) (C {<local>} {<Id.Lit_VarLike 'passw1='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--passwordbox>} {(DQ <'Please Enter Your New Password'>)} {<8>} {<60>} {<--title>} {(DQ <'Change PW'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [14208] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike PasswordRecieved) ) redirects: [] ) ] spids: [14212 14226] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'passw2='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--passwordbox>} {(DQ <'Please Confirm Your New Password'>)} {<8>} {<60>} {<--title>} {(DQ <'Confirm PW'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [14279] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike PasswordRecieved) ) redirects: [] ) ] spids: [14283 14297] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName passw1))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName passw2))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Error - Password Mismatch'>)} spids: [14339] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} { (DQ < ' The Passwords you have entered do not match, therefor, no changes have been applied. Please try again' > ) } {<8>} {<60>} ) ] spids: [14317 14335] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName PasswordRecieved)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName passw1) <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName passw1) ) } ) (C {<passwd>} {<-q>} {<root>}) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Password Applied'>)} spids: [14407] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} {(DQ <' Your new password has successfully been applied.'>)} {<8>} {<60>} ) ] spids: [14369 14383] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Password Aborted'>)} spids: [14441] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} {(DQ <' Password change has been aborted. No changes have been applied'>)} {<8>} {<60>} ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_Hostname body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'hostname_existing='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/etc/hostname'>}) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Hostname'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName hostname_existing))} {<--title>} {(DQ <'Change Hostname'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [14496] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [14537] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName hostname_existing))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/change_hostname'>} {(DQ ($ Id.VSub_DollarName OPTION))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [14583] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Hostname Change Completed'>)} spids: [14587] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} { (DQ <'Your Hostname has been changed: '> <Id.Lit_BadBackslash '\\'> <'n - From '> ($ Id.VSub_DollarName hostname_existing) <' '> <Id.Lit_BadBackslash '\\'> <'n - To '> ($ Id.VSub_DollarName OPTION) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nA reboot now is highly recommended for hostname change, and, before continuing with any further changes.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to reboot now?'> ) } {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<75>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [14640] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [14644 14658] ) ] else_action: [] redirects: [] ) ] spids: [14541 14572] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Hostname Change Aborted'>)} spids: [14678] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} {(DQ <'Hostname change has been aborted. No changes have been applied.'>)} {<8>} {<60>} ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_SecurityOptions body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [14722] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Security Options'>)} spids: [14727] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <' Lock down your DietPi Install'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} {<2>} {(DQ <1>)} {(DQ <'Change Root Password'>)} {(DQ <2>)} {(DQ <'Change Hostname'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [14733] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [14799] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Change_Password>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<5>} spids: [14840] ) ] redirects: [] ) ] spids: [14820 14834] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName OPTION)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Change_Hostname>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<5>} spids: [14864] ) ] redirects: [] ) ] spids: [14844 14858] ) ] else_action: [] redirects: [] ) ] spids: [14803 14817] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_GpumemoryOptions body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [14889] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'gpu_mem_current='> <0>}) (C {<local>} {<Id.Lit_VarLike 'ram_mem_current='> <0>}) (C {<local>} {<Id.Lit_VarLike 'ram_mem_total='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'gpu_mem_current='> name: gpu_mem_current ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'gpu_mem_256='>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [14934] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_current='> name: ram_mem_current ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 256>} right: ($ Id.Lit_ArithVarLike gpu_mem_current) ) ) } spids: [14956] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_total='> name: ram_mem_total ) op: assign_op.Equal rhs: {<256>} spids: [14965] ) ] redirects: [] ) ] spids: [14917 14931] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'gpu_mem_current='> name: gpu_mem_current ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'gpu_mem_512='>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [14986] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_current='> name: ram_mem_current ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 512>} right: ($ Id.Lit_ArithVarLike gpu_mem_current) ) ) } spids: [15008] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_total='> name: ram_mem_total ) op: assign_op.Equal rhs: {<512>} spids: [15017] ) ] redirects: [] ) ] spids: [14969 14983] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'gpu_mem_current='> name: gpu_mem_current ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'gpu_mem_1024='>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [15051] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_current='> name: ram_mem_current ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 1024>} right: ($ Id.Lit_ArithVarLike gpu_mem_current) ) ) } spids: [15073] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_total='> name: ram_mem_total ) op: assign_op.Equal rhs: {<1024>} spids: [15082] ) ] redirects: [] ) ] spids: [15021 15048] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_current='> name: ram_mem_current ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<free>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'Mem:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [15103] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'gpu_mem_current='> name: gpu_mem_current ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 1024>} right: ($ Id.Lit_ArithVarLike ram_mem_current) ) ) } spids: [15129] ) ] redirects: [] ) ] spids: [15086 15100] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ram_mem_current='> name: ram_mem_current ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<free>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'Mem:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [15155] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'gpu_mem_current='> name: gpu_mem_current ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 2048>} right: ($ Id.Lit_ArithVarLike ram_mem_current) ) ) } spids: [15181] ) ] redirects: [] ) ] spids: [15138 15152] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - GPU/RAM Split'>)} spids: [15194] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<-a>} {<Id.Lit_VarLike 'option_name='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Server>)} {(DQ <Desktop>)} {(DQ <Kodi>)} {(DQ <Gaming>)}] ) } ) (C {<local>} {<-i>} {<Id.Lit_VarLike 'available_gpu_values='> (sh_array_literal left: <Id.Op_LParen _> words: [{<16>} {<64>} {<128>} {<128>}] ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {<-e>} {(DQ <'As above, array is defaulted to RPi1 - 256mb'>)} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] spids: [15287 15301] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'available_gpu_values['> name: available_gpu_values index: {<Id.Lit_Digits 2>} ) op: assign_op.Equal rhs: {<128>} spids: [15334] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'available_gpu_values['> name: available_gpu_values index: {<Id.Lit_Digits 3>} ) op: assign_op.Equal rhs: {<192>} spids: [15342] ) ] redirects: [] ) ] spids: [15317 15331] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'available_gpu_values['> name: available_gpu_values index: {<Id.Lit_Digits 1>} ) op: assign_op.Equal rhs: {<128>} spids: [15380] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'available_gpu_values['> name: available_gpu_values index: {<Id.Lit_Digits 2>} ) op: assign_op.Equal rhs: {<192>} spids: [15388] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'available_gpu_values['> name: available_gpu_values index: {<Id.Lit_Digits 3>} ) op: assign_op.Equal rhs: {<256>} spids: [15396] ) ] redirects: [] ) ] spids: [15350 15377] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'option_output_text='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name option_name> var_name: option_name prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'option_output_text+='> name: option_output_text ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name option_name> var_name: option_name bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) ) } { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_gpu_values> var_name: available_gpu_values bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <' MB GPU | '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike ram_mem_total) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_gpu_values> var_name: available_gpu_values bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) } ) ) <' MB RAM'> ) } ] ) } spids: [15447] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName gpu_mem_current) <' MB GPU | '> ($ Id.VSub_DollarName ram_mem_current) <' MB RAM'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<75>} {<4>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name option_output_text> var_name: option_output_text bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [15488] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [15550] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name option_name> var_name: option_name prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name option_name> var_name: option_name bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'temp_index='> ($ Id.VSub_DollarName i) } ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [15604 15626] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<gpumemsplit>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name available_gpu_values> var_name: available_gpu_values bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName temp_index)} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [15663] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<6>} spids: [15671] ) ] redirects: [] ) ] spids: [15554 15568] ) ] else_action: [] redirects: [] ) (C {<unset>} {<option_output_text>}) (C {<unset>} {<option_name>}) (C {<unset>} {<available_gpu_values>}) ] spids: [15205 15219] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'display_output_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^setenv hdmioutput "1"'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'display_vpu_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^setenv vpu "1"'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'display_output_text='> (DQ <Enabled>)}) (C {<local>} {<Id.Lit_VarLike 'display_vpu_text='> (DQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName display_output_enabled)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_output_text='> name: display_output_text ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [15803] ) ] redirects: [] ) ] spids: [15786 15800] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName display_vpu_enabled)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_vpu_text='> name: display_vpu_text ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [15829] ) ] redirects: [] ) ] spids: [15812 15826] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current : HDMI: '> ($ Id.VSub_DollarName display_output_text) <' | VPU: '> ($ Id.VSub_DollarName display_vpu_text) <' '> <Id.Lit_BadBackslash '\\'> <'n Memory : '> ($ Id.VSub_DollarName gpu_mem_current) <' MB GPU | '> ($ Id.VSub_DollarName ram_mem_current) <' MB RAM '> <Id.Lit_BadBackslash '\\'> < 'n NB: GPU/RAM figures require a reboot after a change is made.' > ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<15>} {<70>} {<3>} {(DQ <Headless>)} {(DQ <'HDMI: Disabled | VPU: Disabled'>)} {(DQ <Server>)} {(DQ <'HDMI: Enabled | VPU: Disabled'>)} {(DQ <Desktop>)} {(DQ <'HDMI: Enabled | VPU: Enabled'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [15839] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<Headless>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv hdmioutput /c\\setenv hdmioutput "0"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vpu /c\\setenv vpu "0"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [15966] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<6>} spids: [15974] ) ] redirects: [] ) ] spids: [15940 15941 15978 -1] ) (case_arm pat_list: [{<Server>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv hdmioutput /c\\setenv hdmioutput "1"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vpu /c\\setenv vpu "0"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [16007] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<6>} spids: [16015] ) ] redirects: [] ) ] spids: [15981 15982 16019 -1] ) (case_arm pat_list: [{<Desktop>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv hdmioutput /c\\setenv hdmioutput "1"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vpu /c\\setenv vpu "1"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [16048] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<6>} spids: [16056] ) ] redirects: [] ) ] spids: [16022 16023 16060 -1] ) ] redirects: [] ) ] spids: [15703 15717] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'display_output_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^setenv nographics "0"'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'display_output_text='> (DQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName display_output_enabled)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_output_text='> name: display_output_text ) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [16141] ) ] redirects: [] ) ] spids: [16124 16138] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current : HDMI: '> ($ Id.VSub_DollarName display_output_text) <' | VPU: '> ($ Id.VSub_DollarName display_output_text) <' '> <Id.Lit_BadBackslash '\\'> <'n Memory : '> ($ Id.VSub_DollarName gpu_mem_current) <' MB GPU | '> ($ Id.VSub_DollarName ram_mem_current) <' MB RAM '> <Id.Lit_BadBackslash '\\'> < 'n NB: GPU/RAM figures require a reboot after a change is made.' > ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} {<2>} {(DQ <Headless>)} {(DQ <'HDMI: Disabled | VPU: Disabled | +300MB RAM'>)} {(DQ <Default>)} {(DQ <'HDMI: Enabled | VPU: Enabled | -300MB RAM'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [16151] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<Headless>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv nographics /c\\setenv nographics "1"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [16257] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<6>} spids: [16265] ) ] redirects: [] ) ] spids: [16242 16243 16269 -1] ) (case_arm pat_list: [{<Default>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv nographics /c\\setenv nographics "0"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [16287] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<6>} spids: [16295] ) ] redirects: [] ) ] spids: [16272 16273 16299 -1] ) ] redirects: [] ) ] spids: [16071 16085] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_LanguageOptions body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [16330] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Language and Regional Options'>)} spids: [16335] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} {<3>} {(DQ <Locale>)} {(DQ <'Change Language and Regional Settings'>)} {(DQ <Timezone>)} {(DQ <'Change Timezone Location Setting'>)} {(DQ <Keyboard>)} {(DQ <'Change Keyboard Layout Setting'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [16341] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<Locale>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [16431] ) ] redirects: [] ) (C {<dpkg-reconfigure>} {<locales>}) (C {<local>} {<Id.Lit_VarLike 'locale_new='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^LANG='>)} {<'/etc/default/locale'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName locale_new))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'locale_new='> name: locale_new ) op: assign_op.Equal rhs: {(SQ <en_GB.UTF-8>)} spids: [16488] ) ] redirects: [] ) ] spids: [16471 16484] ) ] else_action: [] redirects: [] ) (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<locale>} {(DQ ($ Id.VSub_DollarName locale_new))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<7>} spids: [16517] ) ] redirects: [] ) ] spids: [16426 16427 16522 -1] ) (case_arm pat_list: [{<Timezone>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [16531] ) ] redirects: [] ) (C {<dpkg-reconfigure>} {<tzdata>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<7>} spids: [16545] ) ] redirects: [] ) ] spids: [16526 16527 16550 -1] ) (case_arm pat_list: [{<Keyboard>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [16559] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ <'DietPi keyboard-configuration'>)} {<--msgbox>} { (DQ < 'NB: A keyboard must be physically plugged into the system, before its configuration can be changed.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nIf a keyboard is plugged in, please ignore this message. If not, plug one in ;)' > ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<65>} ) (C {<dpkg-reconfigure>} {<keyboard-configuration>}) (C {<invoke-rc.d>} {<keyboard-setup>} {<start>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<7>} spids: [16614] ) ] redirects: [] ) ] spids: [16554 16555 16619 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_IP_STATIC='> name:ETH_IP_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16631] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_GATEWAY_STATIC='> name:ETH_GATEWAY_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16637] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MASK_STATIC='> name:ETH_MASK_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16643] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_DNS_STATIC='> name:ETH_DNS_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16649] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_INDEX='> name:ETH_INDEX) op: assign_op.Equal rhs: {<0>} spids: [16656] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_DISABLED='> name:ETH_DISABLED) op: assign_op.Equal rhs: {<0>} spids: [16660] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_HARDWARE='> name:ETH_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [16664] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_CONNECTED='> name:ETH_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [16668] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_IP='> name:ETH_IP) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16672] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_GATEWAY='> name:ETH_GATEWAY) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16678] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MASK='> name:ETH_MASK) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16684] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_DNS='> name:ETH_DNS) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16690] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MODE='> name:ETH_MODE) op: assign_op.Equal rhs: {<1>} spids: [16696] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MODE_TARGET='> name:ETH_MODE_TARGET) op: assign_op.Equal rhs: {<0>} spids: [16703] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_IP_STATIC='> name:WIFI_IP_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16708] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_GATEWAY_STATIC='> name: WIFI_GATEWAY_STATIC ) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16714] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MASK_STATIC='> name:WIFI_MASK_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16720] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_DNS_STATIC='> name:WIFI_DNS_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16726] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_INDEX='> name:WIFI_INDEX) op: assign_op.Equal rhs: {<0>} spids: [16733] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_DISABLED='> name:WIFI_DISABLED) op: assign_op.Equal rhs: {<0>} spids: [16737] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_HARDWARE='> name:WIFI_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [16741] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_CONNECTED='> name:WIFI_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [16745] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_IP='> name:WIFI_IP) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16749] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_GATEWAY='> name:WIFI_GATEWAY) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16755] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MASK='> name:WIFI_MASK) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16761] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_DNS='> name:WIFI_DNS) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16767] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MODE='> name:WIFI_MODE) op: assign_op.Equal rhs: {<1>} spids: [16773] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MODE_TARGET='> name:WIFI_MODE_TARGET) op: assign_op.Equal rhs: {<0>} spids: [16780] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_SSID='> name:WIFI_SSID) op: assign_op.Equal rhs: {(DQ <WifiSSID>)} spids: [16784] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_KEY='> name:WIFI_KEY) op: assign_op.Equal rhs: {(DQ <WifiKey>)} spids: [16790] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_BITRATE='> name:WIFI_BITRATE) op: assign_op.Equal rhs: {<0>} spids: [16796] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_SIGNALSTRENGTH='> name: WIFI_SIGNALSTRENGTH ) op: assign_op.Equal rhs: {<0>} spids: [16800] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_HOTSPOT='> name:WIFI_HOTSPOT) op: assign_op.Equal rhs: {<0>} spids: [16804] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_COUNTRYCODE='> name:WIFI_COUNTRYCODE) op: assign_op.Equal rhs: {(DQ <Unknown>)} spids: [16808] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_AUTO_RECONNECT_ACTIVE='> name: WIFI_AUTO_RECONNECT_ACTIVE ) op: assign_op.Equal rhs: {<0>} spids: [16814] ) ] redirects: [] ) (command.ShFunction name: Network_ETH_CopyCurrentToStatic body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_CONNECTED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_IP_STATIC='> name: ETH_IP_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_IP)} spids: [16847] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_GATEWAY_STATIC='> name: ETH_GATEWAY_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_GATEWAY)} spids: [16851] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_MASK_STATIC='> name: ETH_MASK_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_MASK)} spids: [16855] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_DNS_STATIC='> name: ETH_DNS_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_DNS)} spids: [16859] ) ] redirects: [] ) ] spids: [16830 16844] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Network_WIFI_CopyCurrentToStatic body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_CONNECTED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_IP_STATIC='> name: WIFI_IP_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_IP)} spids: [16898] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_GATEWAY_STATIC='> name: WIFI_GATEWAY_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_GATEWAY)} spids: [16902] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_MASK_STATIC='> name: WIFI_MASK_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_MASK)} spids: [16906] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_DNS_STATIC='> name: WIFI_DNS_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_DNS)} spids: [16910] ) ] redirects: [] ) ] spids: [16881 16895] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Network_Restart body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<'/DietPi/dietpi/dietpi-services'>} {<stop>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<enable>})] spids: [16946 16960] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<disable>}) ] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Dropping connections, please wait...'>)}) (command.Simple words: [{<ifdown>} {<eth> ($ Id.VSub_DollarName ETH_INDEX)}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<ifdown>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<killall>} {<dhclient>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Restarting networking services, please wait...'>)}) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<restart>} {<networking>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<ifup>} {<eth> ($ Id.VSub_DollarName ETH_INDEX)})] spids: [17079 17093] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<ifup>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)}) (C {<systemctl>} {<restart>} {<wifi_disable_powersave>}) ] spids: [17108 17122] ) ] else_action: [] redirects: [] ) (C {<'/DietPi/dietpi/dietpi-services'>} {<start>}) (C {<Network_GetData>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Network_ApplyChanges body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<sed>} {<-i>} { (DQ <'/allow-hotplug eth/c'> <Id.Lit_BadBackslash '\\'> <'#allow-hotplug eth'> ($ Id.VSub_DollarName ETH_INDEX) ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ <'/allow-hotplug wlan/c'> <Id.Lit_BadBackslash '\\'> <'#allow-hotplug wlan'> ($ Id.VSub_DollarName WIFI_INDEX) ) } {<'/etc/network/interfaces'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/allow-hotplug eth/c'> <Id.Lit_BadBackslash '\\'> <'allow-hotplug eth'> ($ Id.VSub_DollarName ETH_INDEX) ) } {<'/etc/network/interfaces'>} ) ] spids: [17215 17229] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/allow-hotplug wlan/c'> <Id.Lit_BadBackslash '\\'> <'allow-hotplug wlan'> ($ Id.VSub_DollarName WIFI_INDEX) ) } {<'/etc/network/interfaces'>} ) ] spids: [17252 17266] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_MODE_TARGET)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface eth/c'> <Id.Lit_BadBackslash '\\'> <'iface eth'> ($ Id.VSub_DollarName ETH_INDEX) <' inet static'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17297 17311] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_MODE_TARGET)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface eth/c'> <Id.Lit_BadBackslash '\\'> <'iface eth'> ($ Id.VSub_DollarName ETH_INDEX) <' inet dhcp'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17335 17349] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MODE='> name:ETH_MODE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_MODE_TARGET)} spids: [17380] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_MODE_TARGET)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface wlan/c'> <Id.Lit_BadBackslash '\\'> <'iface wlan'> ($ Id.VSub_DollarName WIFI_INDEX) <' inet static'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17389 17403] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_MODE_TARGET)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface wlan/c'> <Id.Lit_BadBackslash '\\'> <'iface wlan'> ($ Id.VSub_DollarName WIFI_INDEX) <' inet dhcp'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17427 17441] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MODE='> name:WIFI_MODE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_MODE_TARGET)} spids: [17473] ) ] redirects: [] ) (C {<sed>} {<-i>} {(SQ <'s/^dns-nameservers/#dns-nameservers/g'>)} {<'/etc/network/interfaces'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_MODE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/^#dns-nameservers/dns-nameservers/g'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17501 17528] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName WIFI_DISABLED)} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_MODE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/^#dns-nameservers/dns-nameservers/g'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17582 17607] ) ] else_action: [] redirects: [] ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/address.*/address '> ($ Id.VSub_DollarName ETH_IP_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/gateway.*/gateway '> ($ Id.VSub_DollarName ETH_GATEWAY_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/netmask.*/netmask '> ($ Id.VSub_DollarName ETH_MASK_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/dns-nameservers.*/dns-nameservers '> ($ Id.VSub_DollarName ETH_DNS_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_HOTSPOT)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/address.*/address '> ($ Id.VSub_DollarName WIFI_IP_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/gateway.*/gateway '> ($ Id.VSub_DollarName WIFI_GATEWAY_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/netmask.*/netmask '> ($ Id.VSub_DollarName WIFI_MASK_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'s/dns-nameservers.*/dns-nameservers '> ($ Id.VSub_DollarName WIFI_DNS_STATIC) <'/'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17846 17860] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_HOTSPOT)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/^AUTO_SETUP_NET_WIFI_SSID=/c'> <Id.Lit_BadBackslash '\\'> <'AUTO_SETUP_NET_WIFI_SSID='> ($ Id.VSub_DollarName WIFI_SSID) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^AUTO_SETUP_NET_WIFI_KEY=/c'> <Id.Lit_BadBackslash '\\'> <'AUTO_SETUP_NET_WIFI_KEY='> ($ Id.VSub_DollarName WIFI_KEY) ) } {<'/DietPi/dietpi.txt'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName WIFI_KEY))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/AUTO_SETUP_NET_WIFI_KEYMGR=/c\\AUTO_SETUP_NET_WIFI_KEYMGR=NONE' > ) } {<'/DietPi/dietpi.txt'>} ) ] spids: [18104 18117] ) ] else_action: [ (C {<sed>} {<-i>} { (SQ <'/AUTO_SETUP_NET_WIFI_KEYMGR=/c\\AUTO_SETUP_NET_WIFI_KEYMGR=WPA-PSK'> ) } {<'/DietPi/dietpi.txt'>} ) ] redirects: [] ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wificreds>} {<set>}) ] spids: [18049 18063] ) ] else_action: [] redirects: [] ) (C {<Network_Restart>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_StaticIp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Ip Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName ETH_IP_STATIC))} {<--title>} {(DQ <'Set Static Ip Address'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [18222] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [18257] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_IP_STATIC='> name: ETH_IP_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [18278] ) ] redirects: [] ) ] spids: [18261 18275] ) ] else_action: [] redirects: [] ) ] spids: [18205 18219] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Ip Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName WIFI_IP_STATIC))} {<--title>} {(DQ <'Set Static Ip Address'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [18306] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [18341] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_IP_STATIC='> name: WIFI_IP_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [18362] ) ] redirects: [] ) ] spids: [18345 18359] ) ] else_action: [] redirects: [] ) ] spids: [18289 18303] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_StaticGateway body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Gateway Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName ETH_GATEWAY_STATIC))} {<--title>} {(DQ <'Set Static Gateway Address'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [18403] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [18438] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_GATEWAY_STATIC='> name: ETH_GATEWAY_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [18459] ) ] redirects: [] ) ] spids: [18442 18456] ) ] else_action: [] redirects: [] ) ] spids: [18386 18400] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Gateway Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName WIFI_GATEWAY_STATIC))} {<--title>} {(DQ <'Set Static Gateway Address'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [18487] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [18522] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_GATEWAY_STATIC='> name: WIFI_GATEWAY_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [18543] ) ] redirects: [] ) ] spids: [18526 18540] ) ] else_action: [] redirects: [] ) ] spids: [18470 18484] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_StaticMask body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Mask Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName ETH_MASK_STATIC))} {<--title>} {(DQ <'Set Static Mask Address'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [18584] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [18619] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_MASK_STATIC='> name: ETH_MASK_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [18640] ) ] redirects: [] ) ] spids: [18623 18637] ) ] else_action: [] redirects: [] ) ] spids: [18567 18581] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Mask Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName WIFI_MASK_STATIC))} {<--title>} {(DQ <'Set Static Mask Address'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [18668] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [18703] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_MASK_STATIC='> name: WIFI_MASK_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [18724] ) ] redirects: [] ) ] spids: [18707 18721] ) ] else_action: [] redirects: [] ) ] spids: [18651 18665] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_StaticDns body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'current_value='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'current_value='> name: current_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_DNS_STATIC)} spids: [18782] ) ] redirects: [] ) ] spids: [18765 18779] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'current_value='> name: current_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_DNS_STATIC)} spids: [18807] ) ] redirects: [] ) ] spids: [18790 18804] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'return_value='> ($ Id.VSub_DollarName current_value)}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Custom>)} {(DQ <'Manually enter your DNS server'>)} {(DQ <'8.8.8.8 8.8.4.4'>)} {(DQ <': Google'>)} {(DQ <'208.67.222.222 208.67.220.220'>)} {(DQ <': OpenDNS'>)} {(DQ <'209.244.0.3 209.244.0.4'>)} {(DQ <': Level3'>)} {(DQ <'216.146.35.35 216.146.36.36'>)} {(DQ <': Dyn'>)} {(DQ <'37.235.1.174 37.235.1.177'>)} {(DQ <': FreeDNS'>)} {(DQ <'64.6.64.6 64.6.65.6'>)} {(DQ <': Verisign'>)} {(DQ <'84.200.69.80 84.200.70.40'>)} {(DQ <': DNS Watch'>)} ] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Choose DNS server'>)} {<--menu>} { (DQ <'Please select a DNS server, or choose custom for manual entry.'> ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName current_value))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<70>} {<8>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [18908] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [18968] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_DollarName OPTION)} arms: [ (case_arm pat_list: [{<Custom>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Enter Your DNS Server Address'> <Id.Lit_BadBackslash '\\'> <'n - 2 maximum, seperated by a space.'> <Id.Lit_BadBackslash '\\'> <'n - eg: 8.8.8.8 8.8.4.4'> ) } {<10>} {<60>} {(DQ ($ Id.VSub_DollarName current_value))} {<--title>} {(DQ <'Set Static DNS Address'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [19000] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [19039] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'return_value='> name: return_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [19060] ) ] redirects: [] ) ] spids: [19043 19057] ) ] else_action: [] redirects: [] ) ] spids: [18996 18997 19067 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'return_value='> name: return_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [19074] ) ] redirects: [] ) ] spids: [19070 19071 19078 -1] ) ] redirects: [] ) ] spids: [18972 18986] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_DNS_STATIC='> name: ETH_DNS_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName return_value)} spids: [19123] ) ] redirects: [] ) ] spids: [19106 19120] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number 1)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_DNS_STATIC='> name: WIFI_DNS_STATIC ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName return_value)} spids: [19148] ) ] redirects: [] ) ] spids: [19131 19145] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_WifiSsid body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter the SSID name to connect to.'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName WIFI_SSID))} {<--title>} {(DQ <'Set Your SSID'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [19166] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [19201] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_SSID='> name:WIFI_SSID) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [19222] ) ] redirects: [] ) ] spids: [19205 19219] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_WifiKey body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter the Access Key (WPA/WEP).'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName WIFI_KEY))} {<--title>} {(DQ <'Set Your Access Key'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [19239] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [19274] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_KEY='> name:WIFI_KEY) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [19295] ) ] redirects: [] ) ] spids: [19278 19292] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Change_WifiCountryCode body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'wifi_country_code_target='> ($ Id.VSub_DollarName WIFI_COUNTRYCODE)} ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <GB>)} {(DQ <'Europe / Great Britain'>)}] ) } spids: [19327] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <US>)} {(DQ <'United States'>)}] ) } spids: [19339] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <JP>)} {(DQ <Japan>)}])} spids: [19351] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <CN>)} {(DQ <China>)}])} spids: [19363] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Manual>)} {(DQ <'Enter a custom country code'>)}] ) } spids: [19375] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'description_text='> (DQ < 'Choose a country, to enable WiFi channels and power ratings allowed in your country.' > ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Change WiFi country code'>)} spids: [19397] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ ($ Id.VSub_DollarName description_text))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<--default-item>} {(DQ ($ Id.VSub_DollarName WIFI_COUNTRYCODE))} {<15>} {<60>} {<5>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [19404] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [19464] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<Manual>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a 2 character country code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2' > ) } {<8>} {<60>} {(DQ ($ Id.VSub_DollarName WIFI_COUNTRYCODE))} {<--title>} {(DQ <'WiFi Country Code'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [19510] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [19545] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wifi_country_code_target='> name: wifi_country_code_target ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [19566] ) ] redirects: [] ) ] spids: [19549 19563] ) ] else_action: [] redirects: [] ) ] spids: [19506 19507 19573 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wifi_country_code_target='> name: wifi_country_code_target ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [19580] ) ] redirects: [] ) ] spids: [19576 19577 19584 -1] ) ] redirects: [] ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wificountrycode>} {(DQ ($ Id.VSub_DollarName wifi_country_code_target))} ) (C {<Network_Restart>}) (C {<iw>} {<reg>} {<set>} {($ Id.VSub_DollarName wifi_country_code_target)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_COUNTRYCODE='> name: WIFI_COUNTRYCODE ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iw>} {<reg>} {<get>}) (C {<grep>} {<-m1>} {(SQ <country>)}) (C {<awk>} {(SQ <'{print $2}'>)}) (C {<tr>} {<-d>} {(SQ <':'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [19635] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName WIFI_COUNTRYCODE))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName wifi_country_code_target))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Error: Country Code'>)} {<--msgbox>} { (DQ <'Country code ('> ($ Id.VSub_DollarName wifi_country_code_target) < ') could not been applied. Please check the country code and try again.' > ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<8>} {<55>} ) ] spids: [19673 19691] ) ] else_action: [] redirects: [] ) ] spids: [19479 19493] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Scan_Wifi body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<ifup>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)}) (C {<clear>}) (C {<echo>} {<-e>} {(DQ <'Scanning SSIDS, please wait....'>)}) (C {<echo>} {<-e>} {(DQ <------------------------------->)}) (command.Pipeline children: [ (C {<iwlist>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)} {<scan>}) (C {<grep>} {<ESSID> <Id.Lit_Colon ':'>}) (command.Simple words: [{<sed>} {(SQ <'s/[ \\t]*ESSID:"\\(.*\\)"/\\1/'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/dietpi-config_temp'>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Simple words: [{<readarray>} {<wifi_ssid_array>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/tmp/dietpi-config_temp'>} ) ] more_env: [] do_fork: T ) (C {<local>} {<Id.Lit_VarLike 'wifi_ssid_list='> (sh_array_literal left:<Id.Op_LParen _> words:[])} ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name wifi_ssid_array> var_name: wifi_ssid_array prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wifi_ssid_list+='> name: wifi_ssid_list ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName i))} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name wifi_ssid_array> var_name: wifi_ssid_array bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) ) } ] ) } spids: [19858] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi-Config - Wifi SSID Scan'>)} spids: [19879] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select a Wifi SSID'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<60>} {<6>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name wifi_ssid_list> var_name: wifi_ssid_list bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [19885] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [19940] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_SSID='> name:WIFI_SSID) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name wifi_ssid_array> var_name: wifi_ssid_array bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName OPTION)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [19961] ) ] redirects: [] ) (C {<Change_WifiKey>}) (C {<Wifi_Reconnect>}) ] spids: [19944 19958] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<rm>} {<'/tmp/dietpi-config_temp'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (C {<unset>} {<wifi_ssid_array>}) (C {<unset>} {<wifi_ssid_list>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Wifi_Reconnect body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_QUESTION='> name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <'SSID: '> ($ Id.VSub_DollarName WIFI_SSID) <' '> <Id.Lit_BadBackslash '\\'> <'nKEY: '> ($ Id.VSub_DollarName WIFI_KEY) <' '> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nConnect now? '> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(NOTICE) All WiFi connections will be dropped!'> ) } spids: [20019] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [20078] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<clear>}) (C {<echo>} {<-e>} {(DQ <'Connecting to '> ($ Id.VSub_DollarName WIFI_SSID) <' , please wait'>)} ) (C {<Network_ApplyChanges>}) ] spids: [20082 20096] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Ethernet_Reconnect body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_QUESTION='> name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <'Do you wish to apply settings and reconnect network now? '> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(NOTICE) All Ethernet connections will be dropped!'> ) } spids: [20133] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [20182] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<clear>}) (C {<echo>} {<-e>} {(DQ <'Reconnecting Ethernet , please wait'>)}) (C {<Network_ApplyChanges>}) ] spids: [20186 20200] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INTERNET_ONLINE='> name:INTERNET_ONLINE) op: assign_op.Equal rhs: {<0>} spids: [20230] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INTERNET_URL='> name:INTERNET_URL) op: assign_op.Equal rhs: {(SQ <'http://mirrordirector.raspbian.org'>)} spids: [20237] ) ] redirects: [] ) (command.ShFunction name: Network_CheckInternetConnection body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INTERNET_ONLINE='> name: INTERNET_ONLINE ) op: assign_op.Equal rhs: {<0>} spids: [20251] ) ] redirects: [] ) (C {<wget>} {<--spider>} {<--timeout> <Id.Lit_Equals '='> <10>} {<--tries> <Id.Lit_Equals '='> <2>} {(DQ ($ Id.VSub_DollarName INTERNET_URL))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INTERNET_ONLINE='> name: INTERNET_ONLINE ) op: assign_op.Equal rhs: {<2>} spids: [20297] ) ] redirects: [] ) ] spids: [20280 20294] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INTERNET_ONLINE='> name: INTERNET_ONLINE ) op: assign_op.Equal rhs: {<1>} spids: [20307] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Network_GetData body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<'/DietPi/dietpi/func/obtain_network_details'>}) (C {<cp>} {<'/etc/network/interfaces'>} {<'/tmp/net_interfaces'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_IP_STATIC='> name:ETH_IP_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20352] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_GATEWAY_STATIC='> name: ETH_GATEWAY_STATIC ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20386] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_MASK_STATIC='> name: ETH_MASK_STATIC ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20420] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_DNS_STATIC='> name:ETH_DNS_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3,$4}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20454] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_INDEX='> name:ETH_INDEX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.network'>}) right: <Id.Eof_RParen _> ) } spids: [20489] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_DISABLED='> name:ETH_DISABLED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <'#allow-hotplug eth'> ($ Id.VSub_DollarName ETH_INDEX))} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20501] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_HARDWARE='> name:ETH_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [20522] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_CONNECTED='> name:ETH_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [20526] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_IP='> name:ETH_IP) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20530] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_GATEWAY='> name:ETH_GATEWAY) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20536] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MASK='> name:ETH_MASK) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20542] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_DNS='> name:ETH_DNS) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20548] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MODE='> name:ETH_MODE) op: assign_op.Equal rhs: {<1>} spids: [20554] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_MODE_TARGET='> name: ETH_MODE_TARGET ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_MODE)} spids: [20558] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_IP_STATIC='> name:WIFI_IP_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20563] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_GATEWAY_STATIC='> name: WIFI_GATEWAY_STATIC ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20597] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_MASK_STATIC='> name: WIFI_MASK_STATIC ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20631] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_DNS_STATIC='> name: WIFI_DNS_STATIC ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3,$4}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20665] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_INDEX='> name:WIFI_INDEX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.network'>}) right: <Id.Eof_RParen _> ) } spids: [20700] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_DISABLED='> name:WIFI_DISABLED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <'#allow-hotplug wlan'> ($ Id.VSub_DollarName WIFI_INDEX))} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20712] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_HARDWARE='> name:WIFI_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [20733] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_CONNECTED='> name:WIFI_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [20737] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_IP='> name:WIFI_IP) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20741] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_GATEWAY='> name:WIFI_GATEWAY) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20747] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MASK='> name:WIFI_MASK) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20753] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_DNS='> name:WIFI_DNS) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20759] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MODE='> name:WIFI_MODE) op: assign_op.Equal rhs: {<1>} spids: [20765] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_MODE_TARGET='> name: WIFI_MODE_TARGET ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_MODE)} spids: [20769] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_SSID='> name:WIFI_SSID) op: assign_op.Equal rhs: {(SQ <MySuperDooperWiFi>)} spids: [20773] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_KEY='> name:WIFI_KEY) op: assign_op.Equal rhs: {(SQ <0123456789>)} spids: [20779] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_BITRATE='> name:WIFI_BITRATE) op: assign_op.Equal rhs: {<0>} spids: [20789] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_SIGNALSTRENGTH='> name: WIFI_SIGNALSTRENGTH ) op: assign_op.Equal rhs: {<0>} spids: [20793] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_HOTSPOT='> name:WIFI_HOTSPOT) op: assign_op.Equal rhs: {<0>} spids: [20801] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/usr/sbin/hostapd'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_HOTSPOT='> name: WIFI_HOTSPOT ) op: assign_op.Equal rhs: {<1>} spids: [20819] ) ] redirects: [] ) ] spids: [20805 20816] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_COUNTRYCODE='> name: WIFI_COUNTRYCODE ) op: assign_op.Equal rhs: {(SQ <GB>)} spids: [20848] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<which>} {<iw>}) right: <Id.Eof_RParen _> ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_COUNTRYCODE='> name: WIFI_COUNTRYCODE ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iw>} {<reg>} {<get>}) (C {<grep>} {<-m1>} {(SQ <country>)}) (C {<awk>} {(SQ <'{print $2}'>)}) (C {<tr>} {<-d>} {(SQ <':'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20875] ) ] redirects: [] ) ] spids: [20854 20871] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {<'/sys/class/net/eth'> ($ Id.VSub_DollarName ETH_INDEX)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_HARDWARE='> name: ETH_HARDWARE ) op: assign_op.Equal rhs: {<1>} spids: [20947] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_MODE='> name:ETH_MODE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'iface eth'> ($ Id.VSub_DollarName ETH_INDEX) <' inet dhcp'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20956] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_MODE_TARGET='> name: ETH_MODE_TARGET ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ETH_MODE)} spids: [20978] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_CONNECTED='> name: ETH_CONNECTED ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <eth> ($ Id.VSub_DollarName ETH_INDEX))} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [20987] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_CONNECTED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETH_IP='> name:ETH_IP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<eth> ($ Id.VSub_DollarName ETH_INDEX)}) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) (C {<sed>} {(SQ <'s/addr://g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21044] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_GATEWAY='> name: ETH_GATEWAY ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-m1>} {(SQ <default>)}) (C {<awk>} {(SQ <'{ print $3 }'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21079] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_MASK='> name: ETH_MASK ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<eth> ($ Id.VSub_DollarName ETH_INDEX)}) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) (C {<sed>} {(SQ <'s/Mask://g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21105] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_DNS='> name: ETH_DNS ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <nameserver>)} {<'/etc/resolv.conf'>} ) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21140] ) ] redirects: [] ) ] spids: [21013 21040] ) ] else_action: [] redirects: [] ) ] spids: [20927 20939] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {<'/sys/class/net/wlan'> ($ Id.VSub_DollarName WIFI_INDEX)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_HARDWARE='> name: WIFI_HARDWARE ) op: assign_op.Equal rhs: {<1>} spids: [21191] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_MODE='> name:WIFI_MODE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'iface wlan'> ($ Id.VSub_DollarName WIFI_INDEX) <' inet dhcp'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21200] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_MODE_TARGET='> name: WIFI_MODE_TARGET ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WIFI_MODE)} spids: [21222] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_CONNECTED='> name: WIFI_CONNECTED ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <wlan> ($ Id.VSub_DollarName WIFI_INDEX))} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21231] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_SSID='> name:WIFI_SSID) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_SSID='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [21257] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WIFI_KEY='> name:WIFI_KEY) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_KEY='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [21281] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_DISABLED)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_CONNECTED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_IP='> name: WIFI_IP ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)} ) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) (C {<sed>} {(SQ <'s/addr://g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21341] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_GATEWAY='> name: WIFI_GATEWAY ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-m1>} {(SQ <default>)}) (C {<awk>} {(SQ <'{ print $3 }'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21376] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_MASK='> name: WIFI_MASK ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)} ) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) (C {<sed>} {(SQ <'s/Mask://g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21402] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_DNS='> name: WIFI_DNS ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/resolv.conf'>}) (C {<grep>} {<-m1>} {<nameserver>}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21437] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_BITRATE='> name: WIFI_BITRATE ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iwconfig>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)} ) (C {<grep>} {<-m1>} {(SQ <'Bit Rate'>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) (C {<sed>} {(SQ <'s/Rate[:=]//g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21466] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_SIGNALSTRENGTH='> name: WIFI_SIGNALSTRENGTH ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iwconfig>} {<wlan> ($ Id.VSub_DollarName WIFI_INDEX)} ) (C {<grep>} {<-m1>} {(SQ <'Signal level='>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) (C {<sed>} {(SQ <'s/level=//g'>)}) (C {<cut>} {<-f1>} {<-d>} {(DQ <'/'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [21501] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName WIFI_SIGNALSTRENGTH)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName WIFI_SIGNALSTRENGTH)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_SIGNALSTRENGTH='> name: WIFI_SIGNALSTRENGTH ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName WIFI_SIGNALSTRENGTH) <' dBm'>)} spids: [21591] ) ] redirects: [] ) ] spids: [21553 21587] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_SIGNALSTRENGTH='> name: WIFI_SIGNALSTRENGTH ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName WIFI_SIGNALSTRENGTH) <' %'>)} spids: [21603] ) ] redirects: [] ) ] redirects: [] ) ] spids: [21310 21337] ) ] else_action: [] redirects: [] ) ] spids: [21171 21183] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<rm>} {<'/tmp/net_interfaces'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_NetworkAdapters body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [21652] ) ] redirects: [] ) (C {<Network_GetData>}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (C {<local>} {<Id.Lit_VarLike 'eth_disabled_text='> (SQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_DISABLED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eth_disabled_text='> name: eth_disabled_text ) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [21702] ) ] redirects: [] ) ] spids: [21685 21699] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'wlan_disabled_text='> (SQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_DISABLED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wlan_disabled_text='> name: wlan_disabled_text ) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [21737] ) ] redirects: [] ) ] spids: [21720 21734] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'eth_hardware_text='> (SQ <Available>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName ETH_HARDWARE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eth_hardware_text='> name: eth_hardware_text ) op: assign_op.Equal rhs: {(SQ <'Not Found'>)} spids: [21774] ) ] redirects: [] ) ] spids: [21759 21771] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'wlan_hardware_text='> (SQ <Available>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName WIFI_HARDWARE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wlan_hardware_text='> name: wlan_hardware_text ) op: assign_op.Equal rhs: {(SQ <'Not Found'>)} spids: [21807] ) ] redirects: [] ) ] spids: [21792 21804] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'eth_connected_text='> (SQ <Disconnected>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_CONNECTED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eth_connected_text='> name: eth_connected_text ) op: assign_op.Equal rhs: {(SQ <Connected>)} spids: [21846] ) ] redirects: [] ) ] spids: [21829 21843] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'wlan_connected_text='> (SQ <Disconnected>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_CONNECTED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wlan_connected_text='> name: wlan_connected_text ) op: assign_op.Equal rhs: {(SQ <Connected>)} spids: [21881] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_HOTSPOT)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wlan_connected_text='> name: wlan_connected_text ) op: assign_op.Equal rhs: {(DQ <'Wifi Hotspot Mode'>)} spids: [21904] ) ] redirects: [] ) ] spids: [21887 21901] ) ] else_action: [] redirects: [] ) ] spids: [21864 21878] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'Internet_connected_text='> (SQ <'Please run Internet Test'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName INTERNET_ONLINE)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'Internet_connected_text='> name: Internet_connected_text ) op: assign_op.Equal rhs: {(SQ <Online>)} spids: [21946] ) ] redirects: [] ) ] spids: [21929 21943] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName INTERNET_ONLINE)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'Internet_connected_text='> name: Internet_connected_text ) op: assign_op.Equal rhs: {(SQ <'Offline / Failed'>)} spids: [21969] ) ] redirects: [] ) ] spids: [21952 21966] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INTERNET_ONLINE='> name: INTERNET_ONLINE ) op: assign_op.Equal rhs: {<0>} spids: [21983] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'ipv6_enabled='> <1>}) (C {<local>} {<Id.Lit_VarLike 'ipv6_status_text='> (SQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<'/proc/sys/net/ipv6'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ipv6_enabled='> name: ipv6_enabled ) op: assign_op.Equal rhs: {<0>} spids: [22022] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ipv6_status_text='> name: ipv6_status_text ) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [22026] ) ] redirects: [] ) ] spids: [22006 22019] ) ] else_action: [] redirects: [] ) (C {<Load_Proxy_Vars>}) (C {<local>} {<Id.Lit_VarLike 'proxy_state_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName PROXY_ENABLED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'proxy_state_text='> name: proxy_state_text ) op: assign_op.Equal rhs: { (DQ <'Enabled | '> ($ Id.VSub_DollarName PROXY_ADDRESS) <':'> ($ Id.VSub_DollarName PROXY_PORT) ) } spids: [22069] ) ] redirects: [] ) ] spids: [22052 22066] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_ENABLED='> name:PROXY_ENABLED) op: assign_op.Equal rhs: {<-1>} spids: [22085] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Ethernet>)} {(DQ <'Change Wired Network Settings'>)}] ) } spids: [22090] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <WiFi>)} {(DQ <'Change Wireless Network Settings'>)}] ) } spids: [22102] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'onboard_wifi_enabled='> <1>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName HW_ONBOARD_WIFI)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'onboard_wifi_enabled='> name: onboard_wifi_enabled ) op: assign_op.Equal rhs: {<0>} spids: [22162] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Onboard WiFi'>)} {(DQ <'Disabled | select to toggle'>)} ] ) } spids: [22166] ) ] redirects: [] ) ] spids: [22147 22158] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Onboard WiFi'>)} {(DQ <'Enabled | select to toggle'>)} ] ) } spids: [22183] ) ] redirects: [] ) ] redirects: [] ) ] spids: [22129 22143] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <IPv6>)} {(DQ <'Toggle IPv6 Support'>)}] ) } spids: [22204] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Test>)} {(DQ <'Run the Internet Connection Test'>)}] ) } spids: [22216] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Proxy>)} {(DQ <'Configure proxy settings'>)}] ) } spids: [22228] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Network Options: Adapters'>)} spids: [22241] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' '> <Id.Lit_BadBackslash '\\'> <'n Ethernet : '> ($ Id.VSub_DollarName eth_hardware_text) <' | '> ($ Id.VSub_DollarName eth_disabled_text) <' | '> ($ Id.VSub_DollarName eth_connected_text) <' '> <Id.Lit_BadBackslash '\\'> <'n Wifi : '> ($ Id.VSub_DollarName wlan_hardware_text) <' | '> ($ Id.VSub_DollarName wlan_disabled_text) <' | '> ($ Id.VSub_DollarName wlan_connected_text) <Id.Lit_BadBackslash '\\'> <'n IPv6 : '> ($ Id.VSub_DollarName ipv6_status_text) <Id.Lit_BadBackslash '\\'> <'n Internet : '> ($ Id.VSub_DollarName Internet_connected_text) <Id.Lit_BadBackslash '\\'> <'n Proxy : '> ($ Id.VSub_DollarName proxy_state_text) ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<19>} {<65>} {<6>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [22247] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [22325] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{(DQ <'Onboard WiFi'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName onboard_wifi_enabled)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<onboard_disable>} ) ] spids: [22371 22381] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<onboard_enable>} ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [22409] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ <'Reboot required'>)} {<--msgbox>} {(DQ <'NB: A reboot is required for the changes to take effect.'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<8>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [22444] ) ] redirects: [] ) ] spids: [22364 22367 22449 -1] ) (case_arm pat_list: [{<IPv6>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName ipv6_enabled)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Disable IPv6?'>)} {<--yesno>} { (DQ < 'IPv6 is currently enabled. Would you like to disable it?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'n - A system restart is required for settings to take effect.' > <Id.Lit_BadBackslash '\\'> <'n - Disabling IPv6 may break certain programs that rely on it.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<11>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [22521] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike G_HW_ARCH) right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: < Id.Left_DollarParen '$(' > child: (C {<grep>} {<-ci>} {<-m1>} {(SQ <'ipv6.disable=1'>)} {<'/etc/default/grub'>} ) right: <Id.Eof_RParen _> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < 's/GRUB_CMDLINE_LINUX_DEFAULT=\\"/GRUB_CMDLINE_LINUX_DEFAULT=\\"ipv6.disable=1 /g' > ) } {<'/etc/default/grub'>} ) (C {<update-grub>}) ] spids: [22566 22590] ) ] else_action: [] redirects: [] ) ] spids: [22544 22558] ) ] else_action: [ (command.Simple words: [{<echo>} {(SQ <'blacklist ipv6'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { < '/etc/modprobe.d/99-dietpi-blacklist-ipv6.conf' > } ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.Simple words: [{<echo>} {(SQ <'Acquire::ForceIPv4 "true";'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv4' > ) } {<'/etc/wgetrc'>} ) (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv4' > ) } {<'/etc/wgetrc'>} ) (command.Simple words: [{<echo>} {(SQ <'prefer-family = IPv4'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wgetrc'>} ) ] more_env: [] do_fork: T ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [22718] ) ] redirects: [] ) ] spids: [22526 22540] ) ] else_action: [] redirects: [] ) ] spids: [22462 22472] ) ] else_action: [ (C {<whiptail>} {<--title>} {(DQ <'Enable IPv6?'>)} {<--yesno>} { (DQ <'IPv6 is currently disabled. Would you like to enable it?'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - NB: A system restart is required for settings to take effect.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [22778] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike G_HW_ARCH) right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/ipv6.disable=1 //g'>)} {<'/etc/default/grub'>} ) (C {<update-grub>}) ] spids: [22801 22815] ) ] else_action: [ (command.Simple words: [ {<rm>} {<'/etc/modprobe.d/99-dietpi-blacklist-ipv6.conf'>} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.Simple words: [{<rm>} {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv6' > ) } {<'/etc/wgetrc'>} ) (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv6' > ) } {<'/etc/wgetrc'>} ) (command.Simple words: [{<echo>} {(SQ <'prefer-family = IPv6'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wgetrc'>} ) ] more_env: [] do_fork: T ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [22931] ) ] redirects: [] ) ] spids: [22783 22797] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [22948] ) ] redirects: [] ) ] spids: [22453 22454 22953 -1] ) (case_arm pat_list: [{<Ethernet>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName ETH_HARDWARE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <' Error: No Ethernet Hardware was found.'>)} spids: [22982] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (SQ < ' No Ethernet Hardware was found. You are most likely running a Pi Model A.' > ) } spids: [22988] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [23024] ) ] redirects: [] ) ] spids: [22966 22978] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName ETH_DISABLED)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Ethernet is Disabled'>)} {<--yesno>} { (DQ < 'Ethernet must be enabled before settings can be changed.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to enable Ethernet now?'> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) Connections may drop!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [23092] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_DISABLED='> name: ETH_DISABLED ) op: assign_op.Equal rhs: {<0>} spids: [23119] ) ] redirects: [] ) (C {<Network_ApplyChanges>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [23126] ) ] redirects: [] ) ] spids: [23101 23115] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [23139] ) ] redirects: [] ) ] redirects: [] ) ] spids: [23033 23043] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [23152] ) ] redirects: [] ) ] redirects: [] ) ] spids: [22957 22958 23161 -1] ) (case_arm pat_list: [{<WiFi>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName WIFI_DISABLED)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'WiFi is Disabled'>)} {<--yesno>} { (DQ <'WiFi must be enabled before settings can be changed.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to enable WiFi now? '> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) Connections may drop!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [23233] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_DISABLED='> name: WIFI_DISABLED ) op: assign_op.Equal rhs: {<0>} spids: [23256] ) ] redirects: [] ) (C {<Network_ApplyChanges>}) ] spids: [23238 23252] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [23272] ) ] redirects: [] ) ] spids: [23174 23184] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName WIFI_HARDWARE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <' Error: No Wifi Hardware was found. '>)} spids: [23297] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} { (DQ <'No supported Wifi Hardware was found.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to disable WiFi? '> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) Connections may drop!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [23348] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_DISABLED='> name: WIFI_DISABLED ) op: assign_op.Equal rhs: {<1>} spids: [23371] ) ] redirects: [] ) (C {<Network_ApplyChanges>}) ] spids: [23353 23367] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [23387] ) ] redirects: [] ) ] spids: [23281 23293] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [23396] ) ] redirects: [] ) ] redirects: [] ) ] spids: [23165 23166 23405 -1] ) (case_arm pat_list: [{<Test>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Press enter a URL address to test (eg: http://google.com)' > ) } {<8>} {<60>} {(DQ ($ Id.VSub_DollarName INTERNET_URL))} {<--title>} {(DQ <'Internet Connection Test'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [23418] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [23453] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INTERNET_URL='> name: INTERNET_URL ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [23475] ) ] redirects: [] ) (C {<Network_CheckInternetConnection>}) ] spids: [23457 23471] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [23491] ) ] redirects: [] ) ] spids: [23409 23410 23496 -1] ) (case_arm pat_list: [{<Proxy>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<17>} spids: [23505] ) ] redirects: [] ) ] spids: [23500 23501 23510 -1] ) ] redirects: [] ) ] spids: [22336 22350] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName EXITONBACK)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [23552] ) ] redirects: [] ) (C {<Menu_Exit>}) ] spids: [23530 23544] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_NetworkAdapters_Ethernet body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23583] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'mode_current='> (SQ <DHCP>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_MODE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mode_current='> name: mode_current ) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [23617] ) ] redirects: [] ) ] spids: [23600 23614] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'mode_target='> (SQ <DHCP>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_MODE_TARGET)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mode_target='> name: mode_target ) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [23656] ) ] redirects: [] ) ] spids: [23639 23653] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'whip_options_total='> <0>}) (C {<local>} {<Id.Lit_VarLike 'description_text='> (SQ )}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Ethernet Network Options'>)} spids: [23687] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <'Change Mode'>)} {(DQ ($ Id.VSub_DollarName mode_target))}] ) } spids: [23694] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName ETH_MODE_TARGET)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Copy>)} {(DQ <'Copy Current address to Static'>)}] ) } spids: [23734] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Ip'>)} {(DQ ($ Id.VSub_DollarName ETH_IP_STATIC))} ] ) } spids: [23753] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Mask'>)} {(DQ ($ Id.VSub_DollarName ETH_MASK_STATIC))} ] ) } spids: [23772] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Gateway'>)} {(DQ ($ Id.VSub_DollarName ETH_GATEWAY_STATIC))} ] ) } spids: [23791] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static DNS'>)} {(DQ ($ Id.VSub_DollarName ETH_DNS_STATIC))} ] ) } spids: [23810] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) ] spids: [23717 23731] ) ] else_action: [] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Disable>)} {(DQ <'Disable Ethernet adapter'>)}] ) } spids: [23832] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Apply>)} {(DQ <'Save Changes (Restart Networking)'>)}] ) } spids: [23851] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'description_text='> name: description_text ) op: assign_op.Equal rhs: { (DQ <' Current Details: '> <Id.Lit_BadBackslash '\\'> <'n - Mode = '> ($ Id.VSub_DollarName mode_current) <' '> <Id.Lit_BadBackslash '\\'> <'n - Ip = '> ($ Id.VSub_DollarName ETH_IP) <' '> <Id.Lit_BadBackslash '\\'> <'n - Mask = '> ($ Id.VSub_DollarName ETH_MASK) <Id.Lit_BadBackslash '\\'> <'n - Gateway = '> ($ Id.VSub_DollarName ETH_GATEWAY) <Id.Lit_BadBackslash '\\'> <'n - DNS = '> ($ Id.VSub_DollarName ETH_DNS) ) } spids: [23871] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName whip_options_total)} right: {($ Id.VSub_DollarName WHIP_OPTIONS_MAX_DISPLAY)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whip_options_total='> name: whip_options_total ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WHIP_OPTIONS_MAX_DISPLAY)} spids: [23912] ) ] redirects: [] ) ] spids: [23895 23909] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'description_line_count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {<Id.Lit_Digits 7>} right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName description_text))}) (C {<wc>} {<-l>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ ($ Id.VSub_DollarName description_text))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<--default-item>} {(DQ ($ Id.VSub_DollarName WHIP_SELECTION_PREVIOUS))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName description_line_count)} right: {($ Id.VSub_DollarName whip_options_total)} ) ) } {<65>} {($ Id.VSub_DollarName whip_options_total)} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [23953] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [24033] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_SELECTION_PREVIOUS='> name: WHIP_SELECTION_PREVIOUS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [24055] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{(DQ <'Change Mode'>)}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike ETH_MODE_TARGET) ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName ETH_MODE_TARGET)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_MODE_TARGET='> name: ETH_MODE_TARGET ) op: assign_op.Equal rhs: {<0>} spids: [24099] ) ] redirects: [] ) ] spids: [24082 24096] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24110] ) ] redirects: [] ) ] spids: [24069 24072 24114 -1] ) (case_arm pat_list: [{<Disable>}] action: [ (C {<whiptail>} {<--title>} {(DQ <'Ethernet is Enabled'>)} {<--yesno>} { (DQ <'Would you like to disable the Ethernet adapter?'> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) All Ethernet connections will be dropped.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [24162] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ETH_DISABLED='> name: ETH_DISABLED ) op: assign_op.Equal rhs: {<1>} spids: [24187] ) ] redirects: [] ) (C {<Network_ApplyChanges>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [24194] ) ] redirects: [] ) ] spids: [24170 24184] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24205] ) ] redirects: [] ) ] redirects: [] ) ] spids: [24117 24118 24212 -1] ) (case_arm pat_list: [{<Apply>}] action: [ (C {<Ethernet_Reconnect>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24227] ) ] redirects: [] ) ] spids: [24215 24216 24231 -1] ) (case_arm pat_list: [{<Copy>}] action: [ (C {<Network_ETH_CopyCurrentToStatic>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24245] ) ] redirects: [] ) ] spids: [24234 24235 24249 -1] ) (case_arm pat_list: [{(DQ <'Static Ip'>)}] action: [ (C {<Change_StaticIp>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24267] ) ] redirects: [] ) ] spids: [24252 24255 24271 -1] ) (case_arm pat_list: [{(DQ <'Static Gateway'>)}] action: [ (C {<Change_StaticGateway>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24289] ) ] redirects: [] ) ] spids: [24274 24277 24293 -1] ) (case_arm pat_list: [{(DQ <'Static Mask'>)}] action: [ (C {<Change_StaticMask>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24311] ) ] redirects: [] ) ] spids: [24296 24299 24315 -1] ) (case_arm pat_list: [{(DQ <'Static DNS'>)}] action: [ (C {<Change_StaticDns>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<9>} spids: [24333] ) ] redirects: [] ) ] spids: [24318 24321 24337 -1] ) ] redirects: [] ) ] spids: [24037 24051] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOTSPOT_SSID='> name:HOTSPOT_SSID) op: assign_op.Equal rhs: {(DQ )} spids: [24352] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOTSPOT_CHANNEL='> name:HOTSPOT_CHANNEL) op: assign_op.Equal rhs: {(DQ )} spids: [24357] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOTSPOT_KEY='> name:HOTSPOT_KEY) op: assign_op.Equal rhs: {(DQ )} spids: [24362] ) ] redirects: [] ) (command.ShFunction name: WiFi_Monitor_Disable body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/dietpi-wifi-monitor.service'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<systemctl>} {<stop>} {<dietpi-wifi-monitor.service>}) (C {<rm>} {<'/etc/systemd/system/dietpi-wifi-monitor.service'>}) (C {<rm>} {<'/var/lib/dietpi/dietpi-wifi-monitor.sh'>}) (C {<systemctl>} {<daemon-reload>}) ] spids: [24375 24386] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: WiFi_Monitor_Enable body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 24513 stdin_parts: [ <'#!/bin/bash\n'> <'{\n'> <'URL_PING='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName WIFI_GATEWAY) <Id.Right_DoubleQuote '"'> <'\n'> <'ADAPTER='> <Id.Right_DoubleQuote '"'> <wlan> ($ Id.VSub_DollarName WIFI_INDEX) <Id.Right_DoubleQuote '"'> <'\n'> <'TICKRATE=10\n'> <'while true\n'> <'do\n'> <'G_DIETPI-NOTIFY 2 '> <Id.Right_DoubleQuote '"'> <'Checking connnection for: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'ping -I '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'ADAPTER -c 1 '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'URL_PING\n'> <'if (( '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'? != 0 )); then\n'> <'\n'> <'G_DIETPI-NOTIFY 2 '> <Id.Right_DoubleQuote '"'> <'Detected connection loss: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'ADAPTER. Reconnecting'> <Id.Right_DoubleQuote '"'> <'\n'> <'ifdown '> <Id.Right_DoubleQuote '"'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'sleep 1\n'> <'ifup '> <Id.Right_DoubleQuote '"'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'G_DIETPI-NOTIFY 0 \'Completed\'\n'> <'\n'> <'else\n'> <'\n'> <'G_DIETPI-NOTIFY 0 '> <Id.Right_DoubleQuote '"'> <'Connection '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'\n'> <'fi\n'> <'\n'> <'sleep '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'TICKRATE\n'> <'\n'> <'done\n'> <'\n'> <'exit 0\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/lib/dietpi/dietpi-wifi-monitor.sh'>} ) ] more_env: [] do_fork: T ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<'/var/lib/dietpi/dietpi-wifi-monitor.sh'>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 24544 stdin_parts: [ <'[Unit]\n'> < 'Description=Monitors loss of WiFi connection and automatically reconnects\n' > <'After=network.target network-online.target\n'> <'[Service]\n'> <'Type=simple\n'> <'ExecStart=/bin/bash -c /var/lib/dietpi/dietpi-wifi-monitor.sh\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/dietpi-wifi-monitor.service'>} ) ] more_env: [] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<enable>} {<dietpi-wifi-monitor.service>}) (C {<systemctl>} {<start>} {<dietpi-wifi-monitor.service>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_NetworkAdapters_Wifi body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [24581] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'whip_options_total='> <0>}) (C {<local>} {<Id.Lit_VarLike 'description_text='> (SQ )}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_HOTSPOT)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - WiFi Hotspot'>)} spids: [24629] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName HOTSPOT_SSID))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HOTSPOT_SSID='> name: HOTSPOT_SSID ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/hostapd/hostapd.conf'>}) (C {<grep>} {<-m1>} {(SQ <'^ssid='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [24659] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HOTSPOT_CHANNEL='> name: HOTSPOT_CHANNEL ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/hostapd/hostapd.conf'>}) (C {<grep>} {<-m1>} {(SQ <'^channel='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [24685] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HOTSPOT_KEY='> name: HOTSPOT_KEY ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/hostapd/hostapd.conf'>}) (C {<grep>} {<-m1>} {(SQ <'^wpa_passphrase='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [24711] ) ] redirects: [] ) ] spids: [24640 24656] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'hotspot_active_state='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<systemctl>} {<is-active>} {<hostapd>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <active>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'hotspot_status_text='> (SQ <Online>)}) (C {<local>} {<Id.Lit_VarLike 'hotspot_active_state_text='> (SQ <': Enabled, select to turn off hotspot'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName hotspot_active_state)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'hotspot_active_state_text='> name: hotspot_active_state_text ) op: assign_op.Equal rhs: {(SQ <': Disabled, select to turn on hotspot'>)} spids: [24802] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'hotspot_status_text='> name: hotspot_status_text ) op: assign_op.Equal rhs: {(SQ <Offline>)} spids: [24808] ) ] redirects: [] ) ] spids: [24786 24798] ) ] else_action: [] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <SSID>)} {(DQ <'Change the wireless hotspot name'>)}] ) } spids: [24819] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Channel>)} {(DQ <'Change the wireless channel'>)}] ) } spids: [24838] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Key>)} {(DQ <'Change the access key required to connect'>)} ] ) } spids: [24857] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <State>)} {(DQ <': '> ($ Id.VSub_DollarName hotspot_active_state_text))} ] ) } spids: [24876] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'description_text='> name: description_text ) op: assign_op.Equal rhs: { (DQ <'SSID : '> ($ Id.VSub_DollarName HOTSPOT_SSID) <Id.Lit_BadBackslash '\\'> <'nChannel : '> ($ Id.VSub_DollarName HOTSPOT_CHANNEL) <Id.Lit_BadBackslash '\\'> <'nKey : '> ($ Id.VSub_DollarName HOTSPOT_KEY) <Id.Lit_BadBackslash '\\'> <'nStatus : '> ($ Id.VSub_DollarName hotspot_status_text) ) } spids: [24897] ) ] redirects: [] ) ] spids: [24611 24625] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Wireless Network Options'>)} spids: [24922] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'mode_current='> (SQ <DHCP>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_MODE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mode_current='> name: mode_current ) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [24959] ) ] redirects: [] ) ] spids: [24941 24955] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'mode_target='> (SQ <DHCP>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_MODE_TARGET)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mode_target='> name: mode_target ) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [25000] ) ] redirects: [] ) ] spids: [24982 24996] ) ] else_action: [] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Scan>)} {(DQ <'Scan and Connect'>)}] ) } spids: [25011] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Manual>)} {(DQ <'Manually Set Wireless Details'>)}] ) } spids: [25030] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: {($ Id.VSub_DollarName WIFI_CONNECTED)} right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<systemctl>} {<is-active>} {<dietpi-wifi-monitor.service>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^active'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'wifi_auto_reconnect_text='> (SQ <Disabled>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_AUTO_RECONNECT_ACTIVE='> name: WIFI_AUTO_RECONNECT_ACTIVE ) op: assign_op.Equal rhs: {<0>} spids: [25095] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<systemctl>} {<is-active>} {<dietpi-wifi-monitor.service>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^active'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_AUTO_RECONNECT_ACTIVE='> name: WIFI_AUTO_RECONNECT_ACTIVE ) op: assign_op.Equal rhs: {<1>} spids: [25131] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wifi_auto_reconnect_text='> name: wifi_auto_reconnect_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [25135] ) ] redirects: [] ) ] spids: [25099 25127] ) ] else_action: [] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Auto Reconnect'>)} { (DQ <': '> ($ Id.VSub_DollarName wifi_auto_reconnect_text)) } ] ) } spids: [25146] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) ] spids: [25050 25083] ) ] else_action: [] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Change Mode'>)} {(DQ <': '> ($ Id.VSub_DollarName mode_target))} ] ) } spids: [25171] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_MODE_TARGET)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Copy>)} {(DQ <'Copy Current address to Static'>)}] ) } spids: [25214] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Ip'>)} {(DQ <': '> ($ Id.VSub_DollarName WIFI_IP_STATIC))} ] ) } spids: [25233] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Mask'>)} {(DQ <': '> ($ Id.VSub_DollarName WIFI_MASK_STATIC))} ] ) } spids: [25253] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Gateway'>)} {(DQ <': '> ($ Id.VSub_DollarName WIFI_GATEWAY_STATIC))} ] ) } spids: [25273] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static DNS'>)} {(DQ <': '> ($ Id.VSub_DollarName WIFI_DNS_STATIC))} ] ) } spids: [25293] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) ] spids: [25196 25210] ) ] else_action: [] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Disable>)} {(DQ <'Disable WiFi adapter'>)}] ) } spids: [25318] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'description_text='> name: description_text ) op: assign_op.Equal rhs: { (DQ <' Current Details: '> <Id.Lit_BadBackslash '\\'> <'n - SSID = '> ($ Id.VSub_DollarName WIFI_SSID) <' | '> ($ Id.VSub_DollarName WIFI_BITRATE) <' Mbit | Strength: '> ($ Id.VSub_DollarName WIFI_SIGNALSTRENGTH) <Id.Lit_BadBackslash '\\'> <'n - KEY = '> ($ Id.VSub_DollarName WIFI_KEY) <' '> <Id.Lit_BadBackslash '\\'> <'n - Mode = '> ($ Id.VSub_DollarName mode_current) <' '> <Id.Lit_BadBackslash '\\'> <'n - Ip = '> ($ Id.VSub_DollarName WIFI_IP) <Id.Lit_BadBackslash '\\'> <'n - Mask = '> ($ Id.VSub_DollarName WIFI_MASK) <Id.Lit_BadBackslash '\\'> <'n - DNS = '> ($ Id.VSub_DollarName WIFI_DNS) ) } spids: [25338] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName WIFI_COUNTRYCODE))} {<Id.Lit_Equals '='>} {(DQ <00>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Country>)} { (DQ <'Not set, please configure ('> ($ Id.VSub_DollarName WIFI_COUNTRYCODE) <')'> ) } ] ) } spids: [25397] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) ] spids: [25377 25394] ) ] else_action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Country>)} {(DQ <': '> ($ Id.VSub_DollarName WIFI_COUNTRYCODE))} ] ) } spids: [25421] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Apply>)} {(DQ <'Save Changes (Restart Networking)'>)}] ) } spids: [25445] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike whip_options_total) ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName whip_options_total)} right: {($ Id.VSub_DollarName WHIP_OPTIONS_MAX_DISPLAY)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whip_options_total='> name: whip_options_total ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WHIP_OPTIONS_MAX_DISPLAY)} spids: [25482] ) ] redirects: [] ) ] spids: [25465 25479] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'description_line_count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {<Id.Lit_Digits 7>} right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName description_text))}) (C {<wc>} {<-l>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ ($ Id.VSub_DollarName description_text))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<--default-item>} {(DQ ($ Id.VSub_DollarName WHIP_SELECTION_PREVIOUS))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName description_line_count)} right: {($ Id.VSub_DollarName whip_options_total)} ) ) } {<65>} {($ Id.VSub_DollarName whip_options_total)} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [25523] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [25603] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_SELECTION_PREVIOUS='> name: WHIP_SELECTION_PREVIOUS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [25625] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{(SQ <'Auto Reconnect'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName WIFI_AUTO_RECONNECT_ACTIVE ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<WiFi_Monitor_Enable>})] spids: [25646 25658] ) ] else_action: [(C {<WiFi_Monitor_Disable>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [25682] ) ] redirects: [] ) ] spids: [25639 25642 25687 -1] ) (case_arm pat_list: [{<Key>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a key/password for the WiFi hotspot' > <Id.Lit_BadBackslash '\\'> <'n - NB: Minimum of 8 characters'> ) } {<9>} {<70>} {(DQ ($ Id.VSub_DollarName HOTSPOT_KEY))} {<--title>} {(DQ <'Change Hotspot Access Key'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [25694] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [25731] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HOTSPOT_KEY='> name: HOTSPOT_KEY ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [25752] ) ] redirects: [] ) ] spids: [25735 25749] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [25763] ) ] redirects: [] ) ] spids: [25690 25691 25767 -1] ) (case_arm pat_list: [{<SSID>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Please enter a SSID for the WiFi hotspot'>)} {<8>} {<65>} {(DQ ($ Id.VSub_DollarName HOTSPOT_SSID))} {<--title>} {(DQ <'Change Hotspot SSID'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [25774] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [25809] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HOTSPOT_SSID='> name: HOTSPOT_SSID ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [25830] ) ] redirects: [] ) ] spids: [25813 25827] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [25842] ) ] redirects: [] ) ] spids: [25770 25771 25846 -1] ) (case_arm pat_list: [{<Channel>}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (C {<local>} {<Id.Lit_VarLike 'channel_mhz='> <2412>}) (C {<local>} {<Id.Lit_VarLike 'channel_min='> <1>}) (C {<local>} {<Id.Lit_VarLike 'channel_max='> <13>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {($ Id.VSub_DollarName channel_min)} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: ($ Id.Lit_ArithVarLike i) right: {($ Id.VSub_DollarName channel_max)} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName i) <' '>)} {(DQ ($ Id.VSub_DollarName channel_mhz) <' MHz'>)} ] ) } spids: [25904] ) ] redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike channel_mhz) right: {<Id.Lit_Digits 5>} ) redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Change Hotspot Channel'>)} {<--menu>} {(DQ <'Please select a WiFi channel for the hotspot.'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<60>} {<7>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [25933] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [25987] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HOTSPOT_CHANNEL='> name: HOTSPOT_CHANNEL ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [26015] ) ] redirects: [] ) ] spids: [25998 26012] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26027] ) ] redirects: [] ) ] spids: [25849 25850 26031 -1] ) (case_arm pat_list: [{<Country>}] action: [ (C {<Change_WifiCountryCode>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26045] ) ] redirects: [] ) ] spids: [26034 26035 26049 -1] ) (case_arm pat_list: [{<Disable>}] action: [ (C {<whiptail>} {<--title>} {(DQ <'WiFi is Enabled'>)} {<--yesno>} { (DQ <'Would you like to disable the WiFi adapter?'> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) All WiFi connections will be dropped.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [26097] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_DISABLED='> name: WIFI_DISABLED ) op: assign_op.Equal rhs: {<1>} spids: [26123] ) ] redirects: [] ) (C {<WiFi_Monitor_Disable>}) (C {<Network_ApplyChanges>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<8>} spids: [26134] ) ] redirects: [] ) ] spids: [26105 26119] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26145] ) ] redirects: [] ) ] redirects: [] ) ] spids: [26052 26053 26152 -1] ) (case_arm pat_list: [{<Scan>}] action: [ (C {<Scan_Wifi>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26166] ) ] redirects: [] ) ] spids: [26155 26156 26170 -1] ) (case_arm pat_list: [{<Manual>}] action: [ (C {<Change_WifiSsid>}) (C {<Change_WifiKey>}) (C {<Wifi_Reconnect>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26190] ) ] redirects: [] ) ] spids: [26173 26174 26194 -1] ) (case_arm pat_list: [{(DQ <'Change Mode'>)}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike WIFI_MODE_TARGET) ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName WIFI_MODE_TARGET)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WIFI_MODE_TARGET='> name: WIFI_MODE_TARGET ) op: assign_op.Equal rhs: {<0>} spids: [26227] ) ] redirects: [] ) ] spids: [26210 26224] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26238] ) ] redirects: [] ) ] spids: [26197 26200 26242 -1] ) (case_arm pat_list: [{<Apply>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WIFI_HOTSPOT)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/SOFTWARE_WIFI_HOTSPOT_SSID=/c'> <Id.Lit_BadBackslash '\\'> <'SOFTWARE_WIFI_HOTSPOT_SSID='> ($ Id.VSub_DollarName HOTSPOT_SSID) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/SOFTWARE_WIFI_HOTSPOT_CHANNEL=/c'> <Id.Lit_BadBackslash '\\'> <'SOFTWARE_WIFI_HOTSPOT_CHANNEL='> ($ Id.VSub_DollarName HOTSPOT_CHANNEL) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/SOFTWARE_WIFI_HOTSPOT_KEY=/c'> <Id.Lit_BadBackslash '\\'> <'SOFTWARE_WIFI_HOTSPOT_KEY='> ($ Id.VSub_DollarName HOTSPOT_KEY) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/ssid=/c'> <Id.Lit_BadBackslash '\\'> <'ssid='> ($ Id.VSub_DollarName HOTSPOT_SSID) ) } {<'/etc/hostapd/hostapd.conf'>} ) (C {<sed>} {<-i>} { (DQ <'/channel=/c'> <Id.Lit_BadBackslash '\\'> <'channel='> ($ Id.VSub_DollarName HOTSPOT_CHANNEL) ) } {<'/etc/hostapd/hostapd.conf'>} ) (C {<sed>} {<-i>} { (DQ <'/wpa_passphrase=/c'> <Id.Lit_BadBackslash '\\'> <'wpa_passphrase='> ($ Id.VSub_DollarName HOTSPOT_KEY) ) } {<'/etc/hostapd/hostapd.conf'>} ) (C {<Network_ApplyChanges>}) ] spids: [26249 26263] ) ] else_action: [(C {<Wifi_Reconnect>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26382] ) ] redirects: [] ) ] spids: [26245 26246 26386 -1] ) (case_arm pat_list: [{<Copy>}] action: [ (C {<Network_WIFI_CopyCurrentToStatic>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26400] ) ] redirects: [] ) ] spids: [26389 26390 26404 -1] ) (case_arm pat_list: [{(DQ <'Static Ip'>)}] action: [ (C {<Change_StaticIp>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26422] ) ] redirects: [] ) ] spids: [26407 26410 26426 -1] ) (case_arm pat_list: [{(DQ <'Static Gateway'>)}] action: [ (C {<Change_StaticGateway>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26444] ) ] redirects: [] ) ] spids: [26429 26432 26448 -1] ) (case_arm pat_list: [{(DQ <'Static Mask'>)}] action: [ (C {<Change_StaticMask>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26466] ) ] redirects: [] ) ] spids: [26451 26454 26470 -1] ) (case_arm pat_list: [{(DQ <'Static DNS'>)}] action: [ (C {<Change_StaticDns>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26488] ) ] redirects: [] ) ] spids: [26473 26476 26492 -1] ) (case_arm pat_list: [{<State>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName hotspot_active_state)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<systemctl>} {<stop>} {<hostapd>})] spids: [26500 26510] ) ] else_action: [(C {<systemctl>} {<start>} {<hostapd>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<10>} spids: [26542] ) ] redirects: [] ) ] spids: [26495 26496 26547 -1] ) ] redirects: [] ) ] spids: [25607 25621] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_Tools body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [26572] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Tools'>)} spids: [26577] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<70>} {<2>} {(DQ <Benchmarks>)} {(DQ <'Filesystem and RAM benchmarks.'>)} {(DQ <'Stress Test'>)} {(DQ <'CPU Burn and system stability tests (CPU/IO/RAM)'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [26583] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [26648] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<Benchmarks>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<12>} spids: [26685] ) ] redirects: [] ) ] spids: [26680 26681 26690 -1] ) (case_arm pat_list: [{(SQ <'Stress Test'>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<15>} spids: [26701] ) ] redirects: [] ) ] spids: [26694 26697 26706 -1] ) ] redirects: [] ) ] spids: [26652 26666] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPUBENCH_TIME='> name:CPUBENCH_TIME) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26726] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPUBENCH_INT_MAX='> name:CPUBENCH_INT_MAX) op: assign_op.Equal rhs: {<1000000>} spids: [26732] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SD_WRITE='> name:SD_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26736] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SD_READ='> name:SD_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26742] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USB_WRITE='> name:USB_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26748] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USB_READ='> name:USB_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26754] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RAM_WRITE='> name:RAM_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26760] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RAM_READ='> name:RAM_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26766] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CUSTOM_WRITE='> name:CUSTOM_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26772] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CUSTOM_READ='> name:CUSTOM_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26778] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_CUSTOM_MOUNT='> name:FP_CUSTOM_MOUNT) op: assign_op.Equal rhs: {(SQ )} spids: [26784] ) ] redirects: [] ) (command.ShFunction name: Run_FilesystemBenchmark body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'device_index='> ($ Id.VSub_Number 1)}) (C {<local>} {<Id.Lit_VarLike 'benchmark_temp_file='> (DQ )}) (C {<local>} {<Id.Lit_VarLike 'read_speed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'write_speed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'run_benchmark='> <1>}) (C {<local>} {<Id.Lit_VarLike 'benchmark_filesize='> <0>}) (C {<local>} {<Id.Lit_VarLike 'benchmark_filesystem_freespace='> <0>}) (C {<local>} {<Id.Lit_VarLike 'benchmark_filesystem_offset='> <10>}) (C {<local>} {<Id.Lit_VarLike 'text_info_test_name='> (DQ )}) (C {<local>} {<Id.Lit_VarLike 'min_benchmark_size='> <10>}) (C {<clear>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'text_info_test_name='> name: text_info_test_name ) op: assign_op.Equal rhs: {(SQ <RootFS>)} spids: [26886] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_temp_file='> name: benchmark_temp_file ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName HOME) <'/benchmark.file'>)} spids: [26892] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_filesystem_freespace='> name: benchmark_filesystem_freespace ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<4p>} {<'/DietPi/dietpi/.hw_model'>} ) right: <Id.Eof_RParen _> ) ) } ) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName benchmark_filesystem_offset)} ) ) } spids: [26899] ) ] redirects: [] ) ] spids: [26868 26882] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'text_info_test_name='> name: text_info_test_name ) op: assign_op.Equal rhs: {(SQ <'USB harddrive'>)} spids: [26961] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_temp_file='> name: benchmark_temp_file ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-P>}) (C {<grep>} {<-m1>} {(SQ <'^/dev/sda1'>)}) (C {<awk>} {(SQ <'{print $6}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) <'/benchmark.file'> ) } spids: [26967] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_filesystem_freespace='> name: benchmark_filesystem_freespace ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'^/dev/sda1'>)}) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName benchmark_filesystem_offset)} ) ) } spids: [26996] ) ] redirects: [] ) ] spids: [26943 26957] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'text_info_test_name='> name: text_info_test_name ) op: assign_op.Equal rhs: {(SQ <RAM>)} spids: [27050] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_temp_file='> name: benchmark_temp_file ) op: assign_op.Equal rhs: {(SQ <'/tmp/benchmark.file'>)} spids: [27056] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_filesystem_freespace='> name: benchmark_filesystem_freespace ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'/tmp'>)}) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName benchmark_filesystem_offset)} ) ) } spids: [27062] ) ] redirects: [] ) ] spids: [27032 27046] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'text_info_test_name='> name: text_info_test_name ) op: assign_op.Equal rhs: {(SQ <Custom>)} spids: [27116] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_temp_file='> name: benchmark_temp_file ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName FP_CUSTOM_MOUNT) <'/benchmark.file'>)} spids: [27122] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_filesystem_freespace='> name: benchmark_filesystem_freespace ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} { (DQ ($ Id.VSub_DollarName FP_CUSTOM_MOUNT) <Id.Lit_Dollar '$'> ) } ) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName benchmark_filesystem_offset)} ) ) } spids: [27129] ) ] redirects: [] ) ] spids: [27098 27112] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName benchmark_filesystem_freespace)} right: {($ Id.VSub_DollarName min_benchmark_size)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'run_benchmark='> name: run_benchmark ) op: assign_op.Equal rhs: {<0>} spids: [27192] ) ] redirects: [] ) (C {<echo>} {<-e>} { (DQ <'(EE): Insufficient space to run '> ($ Id.VSub_DollarName text_info_test_name) <' filesystem benchmark.'> <Id.Lit_BadBackslash '\\'> <'n - Available space: '> ($ Id.VSub_DollarName benchmark_filesystem_freespace) <' MB'> <Id.Lit_BadBackslash '\\'> <'n - Space required: '> ($ Id.VSub_DollarName min_benchmark_size) <' MB'> ) } ) (C {<echo>} {<-e>} {(DQ )}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) ] spids: [27174 27188] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'benchmark_filesize='> name: benchmark_filesize ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a filesize test value (MB). A value of 100 is recommended.' > <Id.Lit_BadBackslash '\\'> <'n- Minimum value: '> ($ Id.VSub_DollarName min_benchmark_size) <Id.Lit_BadBackslash '\\'> <'n- Maximum possible value: '> ($ Id.VSub_DollarName benchmark_filesystem_freespace) ) } {<10>} {<70>} {(DQ <100>)} {<--title>} {(DQ <'Benchmark File Size (MB)'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [27241] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [27282] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName benchmark_filesize)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName benchmark_filesize)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: { ($ Id.VSub_DollarName benchmark_filesystem_freespace ) } right: {($ Id.VSub_DollarName benchmark_filesize)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'run_benchmark='> name: run_benchmark ) op: assign_op.Equal rhs: {<0>} spids: [27367] ) ] redirects: [] ) (C {<echo>} {<-e>} { (DQ <'(EE): Insufficient space to run '> ($ Id.VSub_DollarName text_info_test_name) <' filesystem benchmark.'> <Id.Lit_BadBackslash '\\'> <'n - Requested benchmark size: '> ($ Id.VSub_DollarName benchmark_filesize) <' MB'> <Id.Lit_BadBackslash '\\'> <'n - Available space for benchmark: '> ($ Id.VSub_DollarName benchmark_filesystem_freespace) <' MB'> ) } ) (C {<echo>} {<-e>} {(DQ )}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) ] spids: [27349 27363] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName benchmark_filesize)} right: {($ Id.VSub_DollarName min_benchmark_size)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'run_benchmark='> name: run_benchmark ) op: assign_op.Equal rhs: {<0>} spids: [27430] ) ] redirects: [] ) (C {<echo>} {<-e>} { (DQ <'(EE): Your requested benchmark size of '> ($ Id.VSub_DollarName benchmark_filesize) <' MB is too small.'> ) } ) (C {<echo>} {<-e>} {(DQ )}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) ] spids: [27412 27426] ) ] else_action: [] redirects: [] ) ] spids: [27308 27341] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'run_benchmark='> name: run_benchmark ) op: assign_op.Equal rhs: {<0>} spids: [27475] ) ] redirects: [] ) ] redirects: [] ) ] spids: [27286 27300] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'run_benchmark='> name: run_benchmark ) op: assign_op.Equal rhs: {<0>} spids: [27492] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName run_benchmark)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Performing '> ($ Id.VSub_DollarName text_info_test_name) <' benchmark, please wait...'> ) } ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Testing Seq Write Speed ('> ($ Id.VSub_DollarName benchmark_filesize) <' MB)'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'write_speed='> name: write_speed ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName benchmark_filesize ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> <'/dev/zero'>} {<Id.Lit_VarLike 'of='> ($ Id.VSub_DollarName benchmark_temp_file) } {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $8, $9}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [27569] ) ] redirects: [] ) ] spids: [27551 27565] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'write_speed='> name: write_speed ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName benchmark_filesize ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> <'/dev/zero'>} {<Id.Lit_VarLike 'of='> ($ Id.VSub_DollarName benchmark_temp_file) } {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $10, $11}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [27641] ) ] redirects: [] ) ] spids: [27623 27637] ) ] else_action: [] redirects: [] ) (C {<sync>}) (command.Simple words: [{<echo>} {<3>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/proc/sys/vm/drop_caches'>} ) ] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Testing Seq Read Speed ('> ($ Id.VSub_DollarName benchmark_filesize) <' MB)'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'read_speed='> name: read_speed ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName benchmark_filesize ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName benchmark_temp_file) } {<Id.Lit_VarLike 'of='> <'/dev/zero'>} {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $8, $9}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [27745] ) ] redirects: [] ) ] spids: [27727 27741] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'read_speed='> name: read_speed ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName benchmark_filesize ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName benchmark_temp_file) } {<Id.Lit_VarLike 'of='> <'/dev/zero'>} {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $10, $11}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [27817] ) ] redirects: [] ) ] spids: [27799 27813] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SD_WRITE='> name: SD_WRITE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName write_speed)} spids: [27897] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SD_READ='> name: SD_READ ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName read_speed)} spids: [27901] ) ] redirects: [] ) ] spids: [27879 27893] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'USB_WRITE='> name: USB_WRITE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName write_speed)} spids: [27924] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'USB_READ='> name: USB_READ ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName read_speed)} spids: [27928] ) ] redirects: [] ) ] spids: [27906 27920] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'RAM_WRITE='> name: RAM_WRITE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName write_speed)} spids: [27951] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'RAM_READ='> name: RAM_READ ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName read_speed)} spids: [27955] ) ] redirects: [] ) ] spids: [27933 27947] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName device_index)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUSTOM_WRITE='> name: CUSTOM_WRITE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName write_speed)} spids: [27978] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CUSTOM_READ='> name: CUSTOM_READ ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName read_speed)} spids: [27982] ) ] redirects: [] ) ] spids: [27960 27974] ) ] else_action: [] redirects: [] ) ] spids: [27509 27523] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<rm>} {(DQ ($ Id.VSub_DollarName benchmark_temp_file))}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Run_CPUBenchmark body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<'/DietPi/dietpi/dietpi-services'>} {<stop>}) (C {<G_DIETPI-NOTIFY>} {<0>} { (DQ <'Running DietPi-CPU Benchmark with max value of 1000000 over '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<nproc>} {<--all>}) right: <Id.Eof_RParen _> ) <' cores, please wait...'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 28213 stdin_parts: [ <'#!/bin/bash\n'> <'target_max_int='> ($ Id.VSub_DollarName CPUBENCH_INT_MAX) <'\n'> <'cores='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'(nproc --all)\n'> <'int_split='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'(('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'target_max_int / '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'cores ))\n'> <'aStart_Int=()\n'> <'aEnd_Int=()\n'> <'\n'> <'#Split the max int target based on total cores\n'> <'for (( i=0; i<'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'cores; i++ ))\n'> <'do\n'> <'\n'> <' aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'i]='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'(( ('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'i + 1) * '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'int_split ))\n'> <' aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'i]='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'(( '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'i]} - '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'int_split ))\n'> <'\n'> <' echo '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'i]} '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'i]}\n'> <'\n'> <'done\n'> <'\n'> <'\n'> <'Run_Bench()\n'> <'{\n'> <'\n'> <' while (( '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'1]} < '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'{aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'1]} ))\n'> <' do\n'> <'\n'> <' ((aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'1]++))\n'> <'\n'> <' done\n'> <'\n'> <'}\n'> <'\n'> <'#Launch benchmark threads\n'> <'for (( i=0; i<'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'cores; i++ ))\n'> <'do\n'> <'\n'> <' Run_Bench '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'i &\n'> <'\n'> <'done\n'> <'\n'> <'#Wait for jobs to finish\n'> <'for job in '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ch: '`' ) <'jobs -p'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ch: '`' ) <'\n'> <'do\n'> <' echo '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'job\n'> <' wait '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'job\n'> <'done\n'> <'\n'> <'#delete[]\n'> <'unset aStart_Int\n'> <'unset aEnd_Int\n'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/dietpi-bench'>} ) ] more_env: [] do_fork: T ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<'/tmp/dietpi-bench'>}) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.TimeBlock pipeline:(C {<-p>} {<'/tmp/dietpi-bench'>})) terminator: <Id.Op_Semi _> ) ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/tmp/dietpi-bench_result'>} ) ] right: <Id.Lit_RBrace '}'> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPUBENCH_TIME='> name:CPUBENCH_TIME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <real>)} {<'/tmp/dietpi-bench_result'>}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [28241] ) ] redirects: [] ) (C {<'/DietPi/dietpi/dietpi-services'>} {<start>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_FilesystemBenchmark body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<11>} spids: [28287] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Benchmarks'>)} spids: [28292] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <'CPU : Total time '> ($ Id.VSub_DollarName CPUBENCH_INT_MAX) <' int = '> ($ Id.VSub_DollarName CPUBENCH_TIME) <' seconds'> <Id.Lit_BadBackslash '\\'> <n> <'RAM : Write = '> ($ Id.VSub_DollarName RAM_WRITE) <' | Read = '> ($ Id.VSub_DollarName RAM_READ) <Id.Lit_BadBackslash '\\'> <n> <'RootFS : Write = '> ($ Id.VSub_DollarName SD_WRITE) <' | Read = '> ($ Id.VSub_DollarName SD_READ) <' '> <Id.Lit_BadBackslash '\\'> <n> <'USB Drive : Write = '> ($ Id.VSub_DollarName USB_WRITE) <' | Read = '> ($ Id.VSub_DollarName USB_READ) <Id.Lit_BadBackslash '\\'> <n> <'Custom : Write = '> ($ Id.VSub_DollarName CUSTOM_WRITE) <' | Read = '> ($ Id.VSub_DollarName CUSTOM_READ) ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<19>} {<70>} {<7>} {(DQ )} { (DQ < '─── Performance ─────────────────────────────' > ) } {(DQ <CPU>)} {(DQ <'Benchmark CPU performance.'>)} {(DQ <RAM>)} {(DQ <'Benchmark RAM performance.'>)} {(DQ )} { (DQ < '─── Filesystem ──────────────────────────────' > ) } {(DQ <RootFS>)} {(DQ <'Benchmark SD/EMMC IO performance.'>)} {(DQ <'USB Drive'>)} {(DQ <'Benchmark USB drive IO performance.'>)} {(DQ <Custom>)} {(DQ <'Benchmark from a selection of mounted devices.'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [28298] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{(DQ <CPU>)}] action: [ (C {<Run_CPUBenchmark>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<12>} spids: [28472] ) ] redirects: [] ) ] spids: [28457 28460 28477 -1] ) (case_arm pat_list: [{(DQ <RootFS>)}] action: [ (C {<Run_FilesystemBenchmark>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<12>} spids: [28498] ) ] redirects: [] ) ] spids: [28481 28484 28503 -1] ) (case_arm pat_list: [{(DQ <'USB Drive'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-P>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^/dev/sda1'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Run_FilesystemBenchmark>} {<1>})] spids: [28518 28544] ) ] else_action: [ (C {<whiptail>} {<--title>} {(DQ <'No USB Drive was found'>)} {<--msgbox>} { (DQ <'No USB Drive was found, /dev/sda1 is not available.'> <Id.Lit_BadBackslash '\\'> <'nThe test has been aborted.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<60>} ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<12>} spids: [28598] ) ] redirects: [] ) ] spids: [28507 28510 28603 -1] ) (case_arm pat_list: [{(DQ <Custom>)}] action: [ (C {<'/DietPi/dietpi/dietpi-drive_manager'>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FP_CUSTOM_MOUNT='> name: FP_CUSTOM_MOUNT ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/tmp/dietpi-drive_manager_selmnt'>}) right: <Id.Eof_RParen _> ) ) } spids: [28619] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName FP_CUSTOM_MOUNT))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Run_FilesystemBenchmark>} {<3>})] spids: [28630 28643] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<12>} spids: [28661] ) ] redirects: [] ) ] spids: [28607 28610 28666 -1] ) (case_arm pat_list: [{(DQ <RAM>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>}) (C {<grep>} {(SQ <'[[:space:]]/tmp'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^tmpfs[[:space:]]'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Run_FilesystemBenchmark>} {<2>})] spids: [28681 28713] ) ] else_action: [ (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} { (DQ <'Unable to run RAM benchmark, as /tmp is not mounted as tmpfs.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nThis mount is disabled automatically on <=512MB devices to prevent out of memory errors, please see here for more info:' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - https://github.com/Fourdee/DietPi/issues/1027'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<70>} ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<12>} spids: [28769] ) ] redirects: [] ) ] spids: [28670 28673 28774 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Reset_Overclocking body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\#over_voltage=0'>)} {<'/DietPi/config.txt'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=1200'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=400'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=450'>)} {<'/DietPi/config.txt'>}) ] spids: [28804 28818] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=900'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=250'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=450'>)} {<'/DietPi/config.txt'>}) ] spids: [28856 28870] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=700'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=250'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=400'>)} {<'/DietPi/config.txt'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi/.hw_model'>}) (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'rpi zero'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=1000'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=400'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=450'>)} {<'/DietPi/config.txt'>} ) ] spids: [28964 29002] ) ] else_action: [] redirects: [] ) ] spids: [28908 28922] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [29048] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Warning_Overclocking body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Warning! Continue with overclocking?'>)} spids: [29063] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_QUESTION='> name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'Your selected overclocking choice may void the warranty on this device. Do you wish to continue?\\n\\nUse of this tool is at your own risk. DietPi will not be held responsable for any damages due to overclocking.\\n\\nAlthough DietPi overclocks are tested for stability, results are not guaranteed and may differ from device.' > ) } spids: [29069] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_Overclock body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [29130] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'over_voltage_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'over_voltage='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#over_voltage='>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'arm_freq_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'arm_freq='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#arm_freq='>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'core_freq_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'core_freq='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#core_freq='>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'sdram_freq_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'sdram_freq='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#sdram_freq='>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Overclocking'>)} spids: [29244] ) ] redirects: [] ) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName G_HW_MODEL))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi/.hw_model'>}) (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'rpi zero'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName arm_freq_value) <' MHz ARM | '> ($ Id.VSub_DollarName core_freq_value) <' MHz core | '> ($ Id.VSub_DollarName sdram_freq_value) <' MHz SDRAM | '> ($ Id.VSub_DollarName over_voltage_value) <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<75>} {<4>} {(DQ <none>)} { (DQ < ' 1000 MHz ARM | 400 MHz core | 450 MHz SDRAM | 0 overvolt' > ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [29310] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [29399] ) ] redirects: [] ) ] spids: [29387 29388 29404 -1] ) ] redirects: [] ) ] spids: [29268 29306] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName arm_freq_value) <' MHz ARM | '> ($ Id.VSub_DollarName core_freq_value) <' MHz core | '> ($ Id.VSub_DollarName sdram_freq_value) <' MHz SDRAM | '> ($ Id.VSub_DollarName over_voltage_value) <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} {<4>} {(DQ <none>)} { (DQ < ' 700 MHz ARM | 250 MHz core | 400 MHz SDRAM | 0 overvolt' > ) } {(DQ <safe>)} { (DQ < ' 900 MHz ARM | 250 MHz core | 400 MHz SDRAM | 2 overvolt' > ) } {(DQ <high>)} { (DQ < ' 900 MHz ARM | 500 MHz core | 400 MHz SDRAM | 4 overvolt' > ) } {(DQ <extreme>)} { (DQ < '1025 MHz ARM | 500 MHz core | 400 MHz SDRAM | 6 overvolt' > ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [29429] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [29548] ) ] redirects: [] ) ] spids: [29536 29537 29553 -1] ) (case_arm pat_list: [{<safe>}] action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=2'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=900'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [29590] ) ] redirects: [] ) ] spids: [29556 29557 29595 -1] ) (case_arm pat_list: [{<high>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [29605] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=4'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=900'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [29609 29623] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [29670] ) ] redirects: [] ) ] spids: [29598 29599 29675 -1] ) (case_arm pat_list: [{<extreme>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [29685] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=6'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1025'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [29689 29703] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [29750] ) ] redirects: [] ) ] spids: [29678 29679 29755 -1] ) ] redirects: [] ) ] spids: [29411 29425] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName arm_freq_value) <' MHz ARM | '> ($ Id.VSub_DollarName core_freq_value) <' MHz core | '> ($ Id.VSub_DollarName sdram_freq_value) <' MHz SDRAM | '> ($ Id.VSub_DollarName over_voltage_value) <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<75>} {<4>} {(DQ <none>)} { (DQ < ' 900 MHz ARM | 250 MHz core | 450 MHz SDRAM | 0 overvolt' > ) } {(DQ <low>)} { (DQ < '1000 MHz ARM | 250 MHz core | 450 MHz SDRAM | 3 overvolt' > ) } {(DQ <med>)} { (DQ < '1000 MHz ARM | 500 MHz core | 450 MHz SDRAM | 5 overvolt' > ) } {(DQ <extreme>)} { (DQ < '1050 MHz ARM | 500 MHz core | 450 MHz SDRAM | 6 overvolt' > ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [29784] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [29903] ) ] redirects: [] ) ] spids: [29891 29892 29908 -1] ) (case_arm pat_list: [{<low>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [29918] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=3'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1000'>)} {<'/DietPi/config.txt'>} ) ] spids: [29922 29936] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [29972] ) ] redirects: [] ) ] spids: [29911 29912 29977 -1] ) (case_arm pat_list: [{<med>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [29987] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=5'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1000'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [29991 30005] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [30052] ) ] redirects: [] ) ] spids: [29980 29981 30057 -1] ) (case_arm pat_list: [{<extreme>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [30067] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=6'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1050'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [30071 30085] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [30132] ) ] redirects: [] ) ] spids: [30060 30061 30137 -1] ) ] redirects: [] ) ] spids: [29766 29780] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <' Hardware : '> ($ Id.VSub_DollarName G_HW_MODEL_DESCRIPTION) <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName arm_freq_value) <' MHz ARM | '> ($ Id.VSub_DollarName core_freq_value) <' MHz core | '> ($ Id.VSub_DollarName sdram_freq_value) <' MHz SDRAM | '> ($ Id.VSub_DollarName over_voltage_value) <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<75>} {<4>} {(DQ <none>)} { (DQ < '1200 MHz ARM | 400 MHz core | 450 MHz SDRAM | 0 overvolt' > ) } {(DQ <low>)} { (DQ < '1300 MHz ARM | 400 MHz core | 450 MHz SDRAM | 3 overvolt' > ) } {(DQ <med>)} { (DQ < '1325 MHz ARM | 400 MHz core | 450 MHz SDRAM | 4 overvolt' > ) } {(DQ <high>)} { (DQ < '1350 MHz ARM | 400 MHz core | 450 MHz SDRAM | 5 overvolt' > ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [30166] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [30287] ) ] redirects: [] ) ] spids: [30274 30275 30292 -1] ) (case_arm pat_list: [{<low>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [30304] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1300'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=3'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=400'>)} {<'/DietPi/config.txt'>} ) ] spids: [30308 30322] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [30369] ) ] redirects: [] ) ] spids: [30296 30297 30374 -1] ) (case_arm pat_list: [{<med>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [30386] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1325'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=4'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=400'>)} {<'/DietPi/config.txt'>} ) ] spids: [30390 30404] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [30451] ) ] redirects: [] ) ] spids: [30378 30379 30456 -1] ) (case_arm pat_list: [{<high>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [30468] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=5'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1350'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=400'>)} {<'/DietPi/config.txt'>} ) ] spids: [30472 30486] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<13>} spids: [30533] ) ] redirects: [] ) ] spids: [30460 30461 30538 -1] ) ] redirects: [] ) ] spids: [30148 30162] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_AudioOptions body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [30564] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'soundcard_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SOUNDCARD='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _> words:[]) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Soundcard>)} {(DQ <': '> ($ Id.VSub_DollarName soundcard_current))} ] ) } spids: [30602] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^alsa-utils'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-JustBoom>)} {(DQ <': Launches EQ and MPD audio options menu'>)} ] ) } spids: [30646] ) ] redirects: [] ) ] spids: [30616 30642] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_cpu_governor='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_GOVERNOR='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'hdmi_output='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'CONFIG_HDMI_OUTPUT='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'psu_noise_reduction_enabled='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName current_cpu_governor))} {<Id.Lit_Equals '='>} {(DQ <powersave>)} {<Id.Lit_RBracket ']'>} ) (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName hdmi_output)} ) redirects: [] ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'PSU noise reduction'>)} {(DQ <': Enabled | Select now to disable'>)} ] ) } spids: [30779] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'psu_noise_reduction_enabled='> name: psu_noise_reduction_enabled ) op: assign_op.Equal rhs: {<1>} spids: [30791] ) ] redirects: [] ) ] spids: [30747 30775] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'PSU noise reduction'>)} {(DQ <': Disabled | Select now to enable'>)} ] ) } spids: [30800] ) ] redirects: [] ) ] redirects: [] ) ] spids: [30667 30681] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Audio Options'>)} spids: [30821] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<12>} {<75>} {<4>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [30827] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [30876] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <'PSU noise reduction'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName psu_noise_reduction_enabled ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'PSU noise reduction'>)} {<--msgbox>} { (DQ < 'This mode attempts to reduce power consumption on your SBC. In turn, this may reduce PSU inflicted noise, that may degrade audio output quality.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nThe following has now been set:'> <Id.Lit_BadBackslash '\\'> <'n - CPU gov = Powersave'> <Id.Lit_BadBackslash '\\'> <'n - HDMI output = Disabled'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<70>} ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_GOVERNOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_GOVERNOR=powersave'> ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=0'> ) } {<'/DietPi/dietpi.txt'>} ) ] spids: [30926 30938] ) ] else_action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_GOVERNOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_GOVERNOR=ondemand'> ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=1'> ) } {<'/DietPi/dietpi.txt'>} ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<14>} spids: [31050] ) ] redirects: [] ) ] spids: [30905 30922] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Soundcard>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'DietPi - Soundcards'>)} spids: [31076] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <none>)} {(DQ <'Disables HDMI + 3.5mm Analogue'>)} ] ) } spids: [31117] ) ] redirects: [] ) ] spids: [31099 31113] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 32>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 51>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 61>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 62>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <default>)} {(DQ <'3.5mm Analogue'>)}] ) } spids: [31176] ) ] redirects: [] ) ] spids: [31134 31172] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 21>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <default>)} {(DQ <'HW:0,0'>)}] ) } spids: [31211] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^alsa-utils'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<soundcard>} {<default>} ) ] spids: [31228 31256] ) ] else_action: [] redirects: [] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 10>} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/proc/asound/card'> ($ Id.VSub_DollarName i) <'/id'> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike j) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike j) right: {<Id.Lit_Digits 10>} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike j) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/proc/asound/card'> ($ Id.VSub_DollarName i) <'/pcm'> (${ Id.VSub_Name j) <'p/info'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} { <Id.Lit_VarLike 'card_index=' > (command_sub left_token: <Id.Left_DollarParen '$(' > child: (command.Pipeline children: [ (C {<cat>} { < '/proc/asound/card' > ($ Id.VSub_DollarName i) <'/pcm'> (${ Id.VSub_Name j) <'p/info'> } ) (C {<grep>} {<-m1>} {(SQ <'^card:'>)} ) (C {<awk>} { (SQ <'{print $2}'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} { <Id.Lit_VarLike 'device_index=' > (command_sub left_token: <Id.Left_DollarParen '$(' > child: (command.Pipeline children: [ (C {<cat>} { < '/proc/asound/card' > ($ Id.VSub_DollarName i) <'/pcm'> (${ Id.VSub_Name j) <'p/info'> } ) (C {<grep>} {<-m1>} {(SQ <'^device:'>)} ) (C {<awk>} { (SQ <'{print $2}'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'card_name='> (command_sub left_token: <Id.Left_DollarParen '$(' > child: (C {<cat>} {<'/proc/asound/card'> ($ Id.VSub_DollarName i ) <'/id'> } ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'card_name+=' > name: card_name ) op: assign_op.PlusEqual rhs: { (command_sub left_token: < Id.Left_DollarParen '$(' > child: (command.Pipeline children: [ (C {<cat>} { < '/proc/asound/card' > ($ Id.VSub_DollarName i) <'/pcm'> (${ Id.VSub_Name j) <'p/info'> } ) (C {<grep>} {<-m1>} {(SQ <'^name:'>)} ) (C {<sed>} { (SQ < 's/name://g' > ) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [31436] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+=' > name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ <'hw:'> ($ Id.VSub_DollarName card_index ) <','> ($ Id.VSub_DollarName device_index) ) } { (DQ ($ Id.VSub_DollarName card_name ) ) } ] ) } spids: [31469] ) ] redirects: [] ) ] spids: [31335 31352] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [31295 31308] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [31193 31207] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <default>)} {(DQ <HDMI>)}] ) } spids: [31507] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835>)} {(DQ <'Onboard: HDMI (if plugged in, else 3.5mm)'>)} ] ) } spids: [31546] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835-3.5mm>)} {(DQ <'Onboard: 3.5mm forced output'>)} ] ) } spids: [31558] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835-ultrahq>)} { (DQ < 'Onboard HQ: HDMI (if plugged in, else 3.5mm)' > ) } ] ) } spids: [31570] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835-ultrahq-3.5mm>)} {(DQ <'Onboard HQ: 3.5mm forced output'>)} ] ) } spids: [31582] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-boss-dac-pcm512x-audio>)} {(DQ <'Allo Boss DAC'>)} ] ) } spids: [31594] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-boss-dac-pcm512x-audio>)} {(DQ <'Allo Mini Boss DAC'>)} ] ) } spids: [31606] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <allo-digione>)} {(DQ <'Allo DigiOne'>)}] ) } spids: [31618] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-piano-dac-pcm512x-audio>)} {(DQ <'Allo Piano DAC'>)} ] ) } spids: [31630] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-piano-dac-pcm512x-audio>)} {(DQ <'Allo Piano DAC'>)} ] ) } spids: [31642] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <dionaudio-loco>)} {(DQ <'Dion Audio LOCO'>)} ] ) } spids: [31654] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <dionaudio-loco-v2>)} {(DQ <'Dion Audio LOCO V2'>)} ] ) } spids: [31666] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <googlevoicehat-soundcard>)} {(DQ <'Google AIY voice kit'>)} ] ) } spids: [31678] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-amp>)} {(DQ <'HifiBerry AMP / AMP+'>)} ] ) } spids: [31690] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-dac>)} {(DQ <'HifiBerry DAC / MiniAMP'>)} ] ) } spids: [31702] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-dacplus>)} {(DQ <'HifiBerry DAC+ / DAC+ Pro'>)} ] ) } spids: [31714] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-digi>)} {(DQ <'HifiBerry DIGI / DIGI+'>)} ] ) } spids: [31726] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-digi-pro>)} {(DQ <'HifiBerry DIGI Pro'>)} ] ) } spids: [31738] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <i-sabre-k2m>)} {(DQ <'AudioPhonics I-Sabre ES9028 Q2M'>)} ] ) } spids: [31750] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <iqaudio-dacplus>)} { (DQ < 'Pi-DAC+, Pi-DACZero, Pi-DAC Pro, Pi-DigiAMP+' > ) } ] ) } spids: [31762] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <iqaudio-digi-wm8804-audio>)} {(DQ <'Pi-DIGI+'>)} ] ) } spids: [31774] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'iqaudio-dacplus,auto_mute_amp'>)} {(DQ <'Pi-DigiAMP+'>)} ] ) } spids: [31786] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'iqaudio-dacplus,unmute_amp'>)} {(DQ <'Pi-DigiAMP+'>)} ] ) } spids: [31798] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <justboom-dac>)} { (DQ < 'JustBoom: DAC HAT, Amp HAT, DAC Zero and Amp Zero' > ) } ] ) } spids: [31810] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <justboom-digi>)} {(DQ <'JustBoom: Digi HAT and Digi Zero'>)} ] ) } spids: [31822] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-dac>)} {(DQ <'Soekris DAM1021 (pcm1794a)'>)} ] ) } spids: [31834] ) ] redirects: [] ) ] spids: [31528 31542] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-hifishield-plus>)} {(DQ <'Odroid HiFi Shield 1/Plus'>)} ] ) } spids: [31877] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-hifishield-2>)} {(DQ <'Odroid HiFi Shield 2'>)} ] ) } spids: [31889] ) ] redirects: [] ) ] spids: [31851 31873] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 32>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <h2-hdmi>)} {(DQ <HDMI>)}] ) } spids: [31924] ) ] redirects: [] ) ] spids: [31906 31920] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 43>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <rock64-analogue>)} {(DQ <3.5MM>)}] ) } spids: [31959] ) ] redirects: [] ) ] spids: [31941 31955] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 61>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 62>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <s5pxx18-hdmi>)} {(DQ <HDMI>)}] ) } spids: [32002] ) ] redirects: [] ) ] spids: [31976 31998] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_CPUID)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <H3-analogue>)} {(DQ <'3.5mm analogue'>)}] ) } spids: [32037] ) ] redirects: [] ) ] spids: [32019 32033] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 70>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <snd-soc-allo-piano-dac>)} {(DQ <'Allo Piano DAC'>)} ] ) } spids: [32086] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <snd-soc-allo-piano-dac-plus>)} {(DQ <'Allo Piano DAC 2.1'>)} ] ) } spids: [32098] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-cheapo-analogue>)} {(DQ <'Allo Cheapo (3.5mm / RCA output)'>)} ] ) } spids: [32110] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-cheapo-optical>)} {(DQ <'Allo Cheapo (Optical output)'>)} ] ) } spids: [32122] ) ] redirects: [] ) ] spids: [32068 32082] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 52>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <asus-tb-analogue>)} {(DQ <'3.5mm analogue'>)} ] ) } spids: [32157] ) ] redirects: [] ) ] spids: [32139 32153] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <usb-dac>)} {(DQ <'USB Audio DAC (any)'>)}] ) } spids: [32178] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <'Current : '> ($ Id.VSub_DollarName soundcard_current) ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName soundcard_current))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<18>} {<90>} {<10>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [32191] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [32246] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<soundcard>} {(DQ ($ Id.VSub_DollarName OPTION))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [32283] ) ] redirects: [] ) ] spids: [32256 32270] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<14>} spids: [32296] ) ] redirects: [] ) ] spids: [31055 31072] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <DietPi-JustBoom>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/misc/dietpi-justboom'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<14>} spids: [32330] ) ] redirects: [] ) ] spids: [32301 32318] ) ] else_action: [] redirects: [] ) ] spids: [30887 30901] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STRESS_TEST_MODE='> name:STRESS_TEST_MODE) op: assign_op.Equal rhs: {<0>} spids: [32351] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_DURATION='> name: STRESS_TEST_DURATION ) op: assign_op.Equal rhs: {<60>} spids: [32358] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_RESULTS_TEMP_MIN='> name: STRESS_TEST_RESULTS_TEMP_MIN ) op: assign_op.Equal rhs: {<0>} spids: [32362] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_RESULTS_TEMP_MAX='> name: STRESS_TEST_RESULTS_TEMP_MAX ) op: assign_op.Equal rhs: {<0>} spids: [32366] ) ] redirects: [] ) (command.ShFunction name: Menu_StressTest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<11>} spids: [32378] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'stress_test_mode_text='> (SQ <'CPU Burn: (CPU only)'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName STRESS_TEST_MODE)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'stress_test_mode_text='> name: stress_test_mode_text ) op: assign_op.Equal rhs: {(SQ <'CPU & RAM: (CPU, RAM)'>)} spids: [32409] ) ] redirects: [] ) ] spids: [32391 32405] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName STRESS_TEST_MODE)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'stress_test_mode_text='> name: stress_test_mode_text ) op: assign_op.Equal rhs: {(SQ <'Full: (CPU, DISK, RAM)'>)} spids: [32434] ) ] redirects: [] ) ] spids: [32416 32430] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Stress Test'>)} spids: [32445] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<11>} {<60>} {<3>} {(DQ <Mode>)} {(DQ ($ Id.VSub_DollarName stress_test_mode_text))} {(DQ <Duration>)} { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName STRESS_TEST_DURATION)} right: {<Id.Lit_Digits 60>} ) ) <' Minutes'> ) } {(DQ <Start>)} {(DQ <'Launch the stress test'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [32451] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [32536] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Duration>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select a duration for the test'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--default-item>} {(DQ ($ Id.VSub_DollarName STRESS_TEST_DURATION))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<60>} {<5>} {(DQ <60>)} {(DQ <'1 Minute'>)} {(DQ <300>)} {(DQ <'5 Minutes'>)} {(DQ <1800>)} {(DQ <'30 Minutes'>)} {(DQ <3600>)} {(DQ <'1 Hour'>)} {(DQ <21600>)} {(DQ <'6 Hours'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [32579] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [32680] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_DURATION='> name: STRESS_TEST_DURATION ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [32702] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<15>} spids: [32706] ) ] redirects: [] ) ] spids: [32684 32698] ) ] else_action: [] redirects: [] ) ] spids: [32558 32575] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Mode>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ <'Please select a stress test type'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--default-item>} {(DQ ($ Id.VSub_DollarName STRESS_TEST_MODE))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<60>} {<3>} {(DQ <0>)} {(DQ <'CPU Burn: (CPU only)'>)} {(DQ <1>)} {(DQ <'CPU & RAM: (CPU, RAM)'>)} {(DQ <2>)} {(DQ <'Full: (CPU, DISK, RAM)'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [32736] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [32817] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_MODE='> name: STRESS_TEST_MODE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [32839] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<15>} spids: [32843] ) ] redirects: [] ) ] spids: [32821 32835] ) ] else_action: [] redirects: [] ) ] spids: [32715 32732] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OPTION))} {<Id.Lit_Equals '='>} {(DQ <Start>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AG_CHECK_INSTALL_PREREQ>} {<stress>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [32878 32892] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<3>} {<Stress_Test>} { (DQ <'Running stress test for '> ($ Id.VSub_DollarName STRESS_TEST_DURATION) <' seconds'> ) } ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'To terminate, type: killall -w stress'>)}) (C {<local>} {<Id.Lit_VarLike 'start_time='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'start_time_epoch='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'cores='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<nproc>} {<--all>}) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'memory_per_thread='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<free>} {<-m>}) (C {<awk>} {(SQ <'/^Mem:/{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName cores)} right: {<Id.Lit_Digits 2>} ) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'fp_log='> (DQ ($ Id.VSub_DollarName HOME) <'/dietpi-config_stress.log'>) } ) (command.Simple words: [{<rm>} {(DQ ($ Id.VSub_DollarName fp_log))}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName STRESS_TEST_MODE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stress>} {<-c>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName cores)} right: {<Id.Lit_Digits 2>} ) ) } {<-t>} {(DQ ($ Id.VSub_DollarName STRESS_TEST_DURATION)) <s>} ) terminator: <Id.Op_Amp _> ) ] spids: [33018 33032] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName STRESS_TEST_MODE)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stress>} {<-c>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName cores)} right: {<Id.Lit_Digits 2>} ) ) } {<-i>} {($ Id.VSub_DollarName cores)} {<-m>} {($ Id.VSub_DollarName cores)} {<--vm-bytes>} {(DQ ($ Id.VSub_DollarName memory_per_thread)) <M>} {<-t>} {(DQ ($ Id.VSub_DollarName STRESS_TEST_DURATION)) <s>} ) terminator: <Id.Op_Amp _> ) ] spids: [33062 33076] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName STRESS_TEST_MODE)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stress>} {<-c>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName cores)} right: {<Id.Lit_Digits 2>} ) ) } {<-i>} {($ Id.VSub_DollarName cores)} {<-m>} {($ Id.VSub_DollarName cores)} {<--vm-bytes>} {(DQ ($ Id.VSub_DollarName memory_per_thread)) <M>} {<-d>} {<2>} {<-t>} {(DQ ($ Id.VSub_DollarName STRESS_TEST_DURATION)) <s>} ) terminator: <Id.Op_Amp _> ) ] spids: [33121 33135] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_RESULTS_TEMP_MIN='> name: STRESS_TEST_RESULTS_TEMP_MIN ) op: assign_op.Equal rhs: {<1000>} spids: [33192] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_RESULTS_TEMP_MAX='> name: STRESS_TEST_RESULTS_TEMP_MAX ) op: assign_op.Equal rhs: {<0>} spids: [33196] ) ] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'cpu_supports_temp='> <0>}) (C {<local>} {<Id.Lit_VarLike 'cpu_temp='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName cpu_temp)} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cpu_supports_temp='> name: cpu_supports_temp ) op: assign_op.Equal rhs: {<1>} spids: [33243] ) ] redirects: [] ) ] spids: [33219 33239] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'remaning_time='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ps>} {<aux>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'[s]tress'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cpu_temp='> name: cpu_temp ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) right: <Id.Eof_RParen _> ) } spids: [33296] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'remaning_time='> name: remaning_time ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName STRESS_TEST_DURATION)} right: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName start_time_epoch)} right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s> } ) right: <Id.Eof_RParen _> ) } ) ) ) } spids: [33302] ) ] redirects: [] ) (C {<echo>} {<-e>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) right: <Id.Eof_RParen _> ) <' | '> ($ Id.VSub_DollarName cpu_temp) <'\'c | '> ($ Id.VSub_DollarName remaning_time) <' seconds remaining'> ) } ) (command.Simple words: [ {<echo>} {<-e>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) right: <Id.Eof_RParen _> ) <' | '> ($ Id.VSub_DollarName cpu_temp) <'\'c'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName fp_log))} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName cpu_supports_temp)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName cpu_temp)} right: { ($ Id.VSub_DollarName STRESS_TEST_RESULTS_TEMP_MAX ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_RESULTS_TEMP_MAX=' > name: STRESS_TEST_RESULTS_TEMP_MAX ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName cpu_temp)} spids: [33399] ) ] redirects: [] ) ] spids: [33381 33395] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName cpu_temp)} right: { ($ Id.VSub_DollarName STRESS_TEST_RESULTS_TEMP_MIN ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'STRESS_TEST_RESULTS_TEMP_MIN=' > name: STRESS_TEST_RESULTS_TEMP_MIN ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName cpu_temp)} spids: [33426] ) ] redirects: [] ) ] spids: [33408 33422] ) ] else_action: [] redirects: [] ) ] spids: [33367 33377] ) ] else_action: [] redirects: [] ) (C {<sleep>} {<1>}) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike time_since_start) ) redirects: [] ) ] ) redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'end_time='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'end_time_epoch='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'duration_seconds='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName end_time_epoch)} right: {($ Id.VSub_DollarName start_time_epoch)} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'output_string='> (DQ <' - Start Time: '> ($ Id.VSub_DollarName start_time) <'\n'> <' - End Time : '> ($ Id.VSub_DollarName end_time) <'\n'> <' - Duration : '> ($ Id.VSub_DollarName duration_seconds) <' seconds\n'> <' - Min Temp : '> ($ Id.VSub_DollarName STRESS_TEST_RESULTS_TEMP_MIN) <' \'c\n'> <' - Max Temp : '> ($ Id.VSub_DollarName STRESS_TEST_RESULTS_TEMP_MAX) <' \'c\n'> <' - log : '> ($ Id.VSub_DollarName fp_log) ) } ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Stress Test Completed'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ ($ Id.VSub_DollarName output_string))}) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--msgbox>} {(DQ <'Stress test results:'> <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName output_string))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<14>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<15>} spids: [33565] ) ] redirects: [] ) ] spids: [32852 32869] ) ] else_action: [] redirects: [] ) ] spids: [32540 32554] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_Network_Nas_Misc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [33593] ) ] redirects: [] ) (C {<Load_Installed_Software>}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_menutext='> (DQ <'Install now to access Windows shares and NAS devices'>) } ) (C {<local>} {<Id.Lit_VarLike 'sambaclient_mounted_size='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_mounted_used='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_mounted_free='> (DQ <unknown>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> var_name: aSOFTWARE_INSTALL_STATE bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {<0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sambaclient_installed='> name: sambaclient_installed ) op: assign_op.Equal rhs: {<1>} spids: [33681] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sambaclient_status='> name: sambaclient_status ) op: assign_op.Equal rhs: {(DQ <'Unable to connect and/or incorrect details'>)} spids: [33685] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sambaclient_menutext='> name: sambaclient_menutext ) op: assign_op.Equal rhs: {(DQ <'Input/Modify Details'>)} spids: [33691] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/mnt/samba'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sambaclient_mounted_size='> name: sambaclient_mounted_size ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/samba'>)}) (C {<awk>} {(SQ <'{print $(NF-4)}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [33740] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sambaclient_mounted_used='> name: sambaclient_mounted_used ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/samba'>)}) (C {<awk>} {(SQ <'{print $(NF-3)}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [33766] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sambaclient_mounted_free='> name: sambaclient_mounted_free ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/samba'>)}) (C {<awk>} {(SQ <'{print $(NF-2)}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [33792] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sambaclient_status='> name: sambaclient_status ) op: assign_op.Equal rhs: { (DQ <'/mnt/samba | Size '> ($ Id.VSub_DollarName sambaclient_mounted_size) <' | Used '> ($ Id.VSub_DollarName sambaclient_mounted_used) <' | Free '> ($ Id.VSub_DollarName sambaclient_mounted_free) ) } spids: [33818] ) ] redirects: [] ) ] spids: [33702 33732] ) ] else_action: [] redirects: [] ) ] spids: [33656 33677] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'curlftpfs_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'curlftpfs_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'curlftpfs_menutext='> (DQ <'Install now to access FTP as filesystem mount'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> var_name: aSOFTWARE_INSTALL_STATE bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {<0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'curlftpfs_installed='> name: curlftpfs_installed ) op: assign_op.Equal rhs: {<1>} spids: [33889] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'curlftpfs_status='> name: curlftpfs_status ) op: assign_op.Equal rhs: {(DQ <'Unable to connect and/or incorrect details'>)} spids: [33893] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'curlftpfs_menutext='> name: curlftpfs_menutext ) op: assign_op.Equal rhs: {(DQ <'Input/Modify Details'>)} spids: [33899] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/mnt/ftp_client'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'curlftpfs_status='> name: curlftpfs_status ) op: assign_op.Equal rhs: {(DQ <'/mnt/ftp_client | Connected'>)} spids: [33948] ) ] redirects: [] ) ] spids: [33910 33940] ) ] else_action: [] redirects: [] ) ] spids: [33864 33885] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'noip_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'noip_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'noip_menutext='> (DQ <'Install No-Ip now'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> var_name: aSOFTWARE_INSTALL_STATE bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 67>}) suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {<0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'noip_installed='> name: noip_installed ) op: assign_op.Equal rhs: {<1>} spids: [34014] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'noip_status='> name: noip_status ) op: assign_op.Equal rhs: {(DQ <'Offline - Please Enter No-Ip Details'>)} spids: [34018] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'noip_menutext='> name: noip_menutext ) op: assign_op.Equal rhs: {(DQ <'Enter/Setup NoIp Details'>)} spids: [34024] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ps>} {<aux>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/usr/local/bin/[n]oip2'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'noip_status='> name: noip_status ) op: assign_op.Equal rhs: {(DQ <'Online / Active'>)} spids: [34069] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'noip_menutext='> name: noip_menutext ) op: assign_op.Equal rhs: {(DQ <'Change NoIp Details'>)} spids: [34075] ) ] redirects: [] ) ] spids: [34035 34065] ) ] else_action: [] redirects: [] ) ] spids: [33989 34010] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'nfsclient_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_menutext='> (DQ <'Install now to access NFS shares'>)} ) (C {<local>} {<Id.Lit_VarLike 'nfsclient_mounted_size='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_mounted_used='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_mounted_free='> (DQ <unknown>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> var_name: aSOFTWARE_INSTALL_STATE bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 110>}) suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {<0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nfsclient_installed='> name: nfsclient_installed ) op: assign_op.Equal rhs: {<1>} spids: [34165] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nfsclient_status='> name: nfsclient_status ) op: assign_op.Equal rhs: {(DQ <'Unable to connect and/or incorrect details'>)} spids: [34169] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nfsclient_menutext='> name: nfsclient_menutext ) op: assign_op.Equal rhs: {(DQ <'Input/Modify Details'>)} spids: [34175] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/mnt/nfs_client'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nfsclient_mounted_size='> name: nfsclient_mounted_size ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/nfs_client'>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [34224] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nfsclient_mounted_used='> name: nfsclient_mounted_used ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/nfs_client'>)}) (C {<awk>} {(SQ <'{ print $3 }'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [34250] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nfsclient_mounted_free='> name: nfsclient_mounted_free ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/nfs_client'>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [34276] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'nfsclient_status='> name: nfsclient_status ) op: assign_op.Equal rhs: { (DQ <'/mnt/nfs_client | Size '> ($ Id.VSub_DollarName nfsclient_mounted_size) <' | Used '> ($ Id.VSub_DollarName nfsclient_mounted_used) <' | Free '> ($ Id.VSub_DollarName nfsclient_mounted_free) ) } spids: [34302] ) ] redirects: [] ) ] spids: [34186 34216] ) ] else_action: [] redirects: [] ) ] spids: [34140 34161] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'apt_mirror_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<sed>} {<-n>} {<1p>} {<'/etc/apt/sources.list'>}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} {(DQ ($ Id.VSub_DollarName apt_mirror_current))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'apt_mirror_current='> name: apt_mirror_current ) op: assign_op.Equal rhs: {(SQ <'Unknown, no string from scrape'>)} spids: [34367] ) ] redirects: [] ) ] spids: [34348 34363] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'ntpd_mirror_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NTP_MIRROR='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} {(DQ ($ Id.VSub_DollarName ntpd_mirror_current))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ntpd_mirror_current='> name: ntpd_mirror_current ) op: assign_op.Equal rhs: {(SQ <'Unknown, no string from scrape'>)} spids: [34425] ) ] redirects: [] ) ] spids: [34406 34421] ) ] else_action: [] redirects: [] ) (C {<local>} {<Id.Lit_VarLike 'boot_wait_for_network='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_BOOT_WAIT_FOR_NETWORK='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'boot_wait_for_network_text='> (SQ <': '>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName boot_wait_for_network)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'boot_wait_for_network_text+='> name: boot_wait_for_network_text ) op: assign_op.PlusEqual rhs: {(SQ <Disabled>)} spids: [34494] ) ] redirects: [] ) ] spids: [34476 34490] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName boot_wait_for_network)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'boot_wait_for_network_text+='> name: boot_wait_for_network_text ) op: assign_op.PlusEqual rhs: {(SQ <'10 Seconds MAX (default)'>)} spids: [34519] ) ] redirects: [] ) ] spids: [34501 34515] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName boot_wait_for_network)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'boot_wait_for_network_text+='> name: boot_wait_for_network_text ) op: assign_op.PlusEqual rhs: {(SQ <'Infinite wait'>)} spids: [34544] ) ] redirects: [] ) ] spids: [34526 34540] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Network Options: NAS/Misc'>)} spids: [34554] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <Id.Lit_BadBackslash '\\'> <'n Samba client : '> ($ Id.VSub_DollarName sambaclient_status) <Id.Lit_BadBackslash '\\'> <'n FTP client : '> ($ Id.VSub_DollarName curlftpfs_status) <Id.Lit_BadBackslash '\\'> <'n NFS client : '> ($ Id.VSub_DollarName nfsclient_status) <Id.Lit_BadBackslash '\\'> <'n NoIp status : '> ($ Id.VSub_DollarName noip_status) <Id.Lit_BadBackslash '\\'> <'n Apt mirror : '> ($ Id.VSub_DollarName apt_mirror_current) <Id.Lit_BadBackslash '\\'> <'n NTPD mirror : '> ($ Id.VSub_DollarName ntpd_mirror_current) ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<21>} {<100>} {<7>} {(DQ <'Samba Client'>)} {(DQ ($ Id.VSub_DollarName sambaclient_menutext))} {(DQ <'FTP Client'>)} {(DQ ($ Id.VSub_DollarName curlftpfs_menutext))} {(DQ <'NFS Client'>)} {(DQ ($ Id.VSub_DollarName nfsclient_menutext))} {(DQ <NoIp>)} {(DQ ($ Id.VSub_DollarName noip_menutext))} {(DQ <'Apt Mirror'>)} {(DQ <'Select a different Apt mirror for sources.list'>)} {(DQ <'NTPD Mirror'>)} {(DQ <'Select a different NTPD mirror'>)} {(DQ <'Boot Net Wait'>)} {(DQ ($ Id.VSub_DollarName boot_wait_for_network_text))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [34560] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [34693] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{(DQ <'Boot Net Wait'>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <0>)} {(SQ <': Disabled'>)}] ) } spids: [34743] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <1>)} { (SQ < ': Wait 10 Seconds MAX for network, before continuing boot (default)' > ) } ] ) } spids: [34755] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <2>)} { (SQ < ': Infinite wait for network, before continuing boot' > ) } ] ) } spids: [34767] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Wait for network during boot'>)} {<--menu>} { (DQ < 'The following options will allow you to delay boot, until a valid network connection is available:' > ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName boot_wait_for_network))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<80>} {<3>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [34780] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [34840] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ < '/^CONFIG_BOOT_WAIT_FOR_NETWORK=/c CONFIG_BOOT_WAIT_FOR_NETWORK=' > ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/dietpi.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [34879] ) ] redirects: [] ) ] spids: [34844 34858] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [34724 34727 34898 -1] ) (case_arm pat_list: [{(DQ <'Apt Mirror'>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Custom>)} {(DQ <'Manually enter Apt mirror'>)}] ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://mirrordirector.raspbian.org/raspbian' > ) } {(DQ <Global>)} ] ) } spids: [34954] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'https://www.mirrorservice.org/sites/archive.raspbian.org/raspbian' > ) } {(DQ <'Global (https)'>)} ] ) } spids: [34966] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian' > ) } {(DQ <UK>)} ] ) } spids: [34978] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'ftp://ftp.fu-berlin.de/linux/raspbian/raspbian' > ) } {(DQ <Germany>)} ] ) } spids: [34990] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://mirror.umd.edu/raspbian/raspbian'>)} {(DQ <US>)} ] ) } spids: [35002] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://mirrors.ustc.edu.cn/raspbian/raspbian' > ) } {(DQ <China>)} ] ) } spids: [35014] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://raspbian.mirror.digitalpacific.com.au/raspbian' > ) } {(DQ <Australia>)} ] ) } spids: [35026] ) ] redirects: [] ) ] spids: [34936 34950] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.debian.org/debian/'>)} {(DQ <Global>)} ] ) } spids: [35047] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.uk.debian.org/debian/'>)} {(DQ <UK>)} ] ) } spids: [35059] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.us.debian.org/debian/'>)} {(DQ <US>)} ] ) } spids: [35071] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.cn.debian.org/debian/'>)} {(DQ <China>)} ] ) } spids: [35083] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.au.debian.org/debian/'>)} {(DQ <Australia>)} ] ) } spids: [35095] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Choose Apt Mirror'>)} {<--menu>} { (DQ < 'Please select a Apt mirror, or choose custom for manual entry.' > ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName apt_mirror_current))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<15>} {<100>} {<7>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [35112] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [35172] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_DollarName OPTION)} arms: [ (case_arm pat_list: [{<Custom>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTION='> name: OPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Enter Your Apt Mirror'> <Id.Lit_BadBackslash '\\'> <'n - eg: http://ftp.debian.org/debian'> ) } {<9>} {<100>} { (DQ ($ Id.VSub_DollarName apt_mirror_current ) ) } {<--title>} {(DQ <'Set Apt Mirror'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [35204] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [35241] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'return_value='> name: return_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [35262] ) ] redirects: [] ) ] spids: [35245 35259] ) ] else_action: [] redirects: [] ) ] spids: [35200 35201 35269 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'return_value='> name: return_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [35276] ) ] redirects: [] ) ] spids: [35272 35273 35280 -1] ) ] redirects: [] ) (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<apt-mirror>} {($ Id.VSub_DollarName OPTION)} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Updating Apt, please wait...'>)}) (C {<G_AGUP>}) (C {<local>} {<Id.Lit_VarLike 'exit_code='> ($ Id.VSub_QMark '?')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName exit_code)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Apt Error:'>)} {<--msgbox>} { (DQ <'Failed to update apt, exit code: '> ($ Id.VSub_DollarName exit_code) <Id.Lit_BadBackslash '\\'> <'nPlease try another Apt mirror.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<8>} {<65>} ) ] spids: [35318 35332] ) ] else_action: [] redirects: [] ) ] spids: [35176 35190] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [35377] ) ] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [34902 34905 35392 -1] ) (case_arm pat_list: [{(DQ <'NTPD Mirror'>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Custom>)} {(DQ <'Manually enter NTPD mirror'>)}] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <debian.pool.ntp.org>)} {(SQ <'Debian Global'>)}] ) } spids: [35428] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <pool.ntp.org>)} {(SQ <Global>)}] ) } spids: [35440] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <europe.pool.ntp.org>)} {(SQ <Europe>)}] ) } spids: [35452] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <north-america.pool.ntp.org>)} {(SQ <'North America'>)} ] ) } spids: [35464] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <south-america.pool.ntp.org>)} {(SQ <'South America'>)} ] ) } spids: [35476] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <africa.pool.ntp.org>)} {(SQ <Africa>)}] ) } spids: [35488] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <asia.pool.ntp.org>)} {(SQ <Asia>)}] ) } spids: [35500] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'whiptail_menu_array+='> name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <oceania.pool.ntp.org>)} {(SQ <Oceania>)}] ) } spids: [35512] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Choose NTPD Mirror'>)} {<--menu>} { (DQ < 'Please select a NTPD mirror, or choose custom for manual entry.' > <Id.Lit_BadBackslash '\\'> <'n - Further information: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'http://www.pool.ntp.org/zone/@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName ntpd_mirror_current))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<100>} {<7>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name whiptail_menu_array> var_name: whiptail_menu_array bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [35525] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [35590] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'return_value='> name: return_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [35612] ) ] redirects: [] ) (command.Case to_match: {($ Id.VSub_DollarName OPTION)} arms: [ (case_arm pat_list: [{<Custom>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OPTION='> name: OPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Enter Your NTPD Mirror'> <Id.Lit_BadBackslash '\\'> <'n - eg: debian.pool.ntp.org'> ) } {<9>} {<100>} { (DQ ($ Id.VSub_DollarName ntpd_mirror_current ) ) } {<--title>} {(DQ <'Set NTPD Mirror'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [35630] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [35667] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'return_value='> name: return_value ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [35689] ) ] redirects: [] ) ] spids: [35671 35685] ) ] else_action: [] redirects: [] ) ] spids: [35625 35626 35698 -1] ) ] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_NTP_MIRROR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_NTP_MIRROR='> ($ Id.VSub_DollarName OPTION) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<ntpd-mode>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NTP_MODE='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [35750] ) ] redirects: [] ) ] spids: [35594 35608] ) ] else_action: [] redirects: [] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [35396 35399 35769 -1] ) (case_arm pat_list: [{(DQ <'NFS Client'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName nfsclient_installed)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Install NFS Client?'>)} {<--yesno>} { (DQ < 'NFS Client is not installed, would you like to install it now?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nThis will allow you access NFS shares.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [35843] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<110>}) ] spids: [35847 35861] ) ] else_action: [] redirects: [] ) ] spids: [35784 35796] ) ] else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_nfsclient'>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [35897] ) ] redirects: [] ) ] spids: [35773 35776 35902 -1] ) (case_arm pat_list: [{<Samba> <Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName sambaclient_installed)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Install Samba Client?'>)} {<--yesno>} { (DQ < 'Samba Client is not installed, would you like to install it now?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nThis will allow you access Windows shared folders, NAS and CIFS capable devices.' > ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [35974] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<1>}) ] spids: [35978 35992] ) ] else_action: [] redirects: [] ) ] spids: [35915 35927] ) ] else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_smbclient'>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [36028] ) ] redirects: [] ) ] spids: [35906 35908 36032 -1] ) (case_arm pat_list: [{<FTP> <Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName curlftpfs_installed)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Install FTP Client?'>)} {<--yesno>} { (DQ < 'FTP Client (curlftpfs) is not installed, would you like to install it now? ' > <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> < 'n - This is required to mount an FTP connection to filesystem' > ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<12>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [36103] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<2>}) ] spids: [36107 36121] ) ] else_action: [] redirects: [] ) ] spids: [36044 36056] ) ] else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_curlftpfs'>})] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [36157] ) ] redirects: [] ) ] spids: [36035 36037 36161 -1] ) (case_arm pat_list: [{<NoIp>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName noip_installed)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'noip_url_address='> (SQ )}) (C {<whiptail>} {<--title>} {(DQ <'Install NoIp Client?'>)} {<--yesno>} { (DQ < 'NoIp Client is not installed, would you like to install it now?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'n- NoIp will allow you to use a fixed web address, regardless of your internet IP' > <Id.Lit_BadBackslash '\\'> <'neg: MySuperDooperWebsite.noip2.biz would point to this device!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CHOICE='> name: CHOICE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [36240] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<67>}) ] spids: [36244 36258] ) ] else_action: [] redirects: [] ) ] spids: [36172 36184] ) ] else_action: [ (C {<clear>}) (C {<service>} {<noip2>} {<stop>}) (C {<noip2>} {<-C>}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) (C {<service>} {<noip2>} {<start>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [36322] ) ] redirects: [] ) ] spids: [36164 36165 36326 -1] ) ] redirects: [] ) ] spids: [34697 34711] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName EXITONBACK)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<16>} spids: [36366] ) ] redirects: [] ) (C {<Menu_Exit>}) ] spids: [36345 36359] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_ENABLED='> name:PROXY_ENABLED) op: assign_op.Equal rhs: {<-1>} spids: [36384] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_ADDRESS='> name:PROXY_ADDRESS) op: assign_op.Equal rhs: {(SQ )} spids: [36388] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_PORT='> name:PROXY_PORT) op: assign_op.Equal rhs: {(SQ )} spids: [36393] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_USERNAME='> name:PROXY_USERNAME) op: assign_op.Equal rhs: {(SQ )} spids: [36398] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_PASSWORD='> name:PROXY_PASSWORD) op: assign_op.Equal rhs: {(SQ )} spids: [36403] ) ] redirects: [] ) (command.ShFunction name: Load_Proxy_Vars body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_ENABLED='> name:PROXY_ENABLED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_ENABLED='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [36420] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_ADDRESS='> name:PROXY_ADDRESS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_ADDRESS='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [36446] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_PORT='> name:PROXY_PORT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_PORT='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [36472] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_USERNAME='> name:PROXY_USERNAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_USERNAME='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [36498] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROXY_PASSWORD='> name:PROXY_PASSWORD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_PASSWORD='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [36524] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Menu_NetworkAdapters_Proxy body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [36566] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName PROXY_ENABLED)} right: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: {<Id.Lit_Digits 1>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Load_Proxy_Vars>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'proxy_state_text='> name: proxy_state_text ) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [36598] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName PROXY_ENABLED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'proxy_state_text='> name: proxy_state_text ) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [36621] ) ] redirects: [] ) ] spids: [36604 36618] ) ] else_action: [] redirects: [] ) ] spids: [36575 36590] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'proxy_state_text_new='> name: proxy_state_text_new ) op: assign_op.Equal rhs: {(SQ <No>)} spids: [36634] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName PROXY_ENABLED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'proxy_state_text_new='> name: proxy_state_text_new ) op: assign_op.Equal rhs: {(SQ <Yes>)} spids: [36657] ) ] redirects: [] ) ] spids: [36640 36654] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Proxy Network Options'>)} spids: [36667] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} { (DQ <Id.Lit_BadBackslash '\\'> <'n Current Details:'> <Id.Lit_BadBackslash '\\'> <'n - Status: '> ($ Id.VSub_DollarName proxy_state_text) <Id.Lit_BadBackslash '\\'> <'n - Address: '> ($ Id.VSub_DollarName PROXY_ADDRESS) <Id.Lit_BadBackslash '\\'> <'n - Port: '> ($ Id.VSub_DollarName PROXY_PORT) <Id.Lit_BadBackslash '\\'> <'n - Username: '> ($ Id.VSub_DollarName PROXY_USERNAME) <Id.Lit_BadBackslash '\\'> <'n - Password: '> ($ Id.VSub_DollarName PROXY_PASSWORD) ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName TEXT_MENU_BACK))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<21>} {<60>} {<6>} {(DQ <Toggle>)} {(DQ <'Use Proxy?: '> ($ Id.VSub_DollarName proxy_state_text_new))} {(DQ <Address>)} {(DQ <'Enter Proxy server IP/URL'>)} {(DQ <Port>)} {(DQ <'Enter Proxy server port'>)} {(DQ <Username>)} {(DQ <'Enter Proxy server username'>)} {(DQ <Password>)} {(DQ <'Enter Proxy server password'>)} {(DQ <Apply>)} {(DQ <'Save Changes'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [36673] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [36796] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName OPTION))} arms: [ (case_arm pat_list: [{<Toggle>}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike PROXY_ENABLED) ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName PROXY_ENABLED)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_ENABLED='> name: PROXY_ENABLED ) op: assign_op.Equal rhs: {<0>} spids: [36854] ) ] redirects: [] ) ] spids: [36837 36851] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<17>} spids: [36866] ) ] redirects: [] ) ] spids: [36826 36827 36870 -1] ) (case_arm pat_list: [{<Address>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy URL or IP address'> <Id.Lit_BadBackslash '\\'> <'n - eg: MyProxy.com'> ) } {<9>} {<65>} {(DQ ($ Id.VSub_DollarName PROXY_ADDRESS))} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [36877] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [36914] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_ADDRESS='> name: PROXY_ADDRESS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [36935] ) ] redirects: [] ) ] spids: [36918 36932] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<17>} spids: [36947] ) ] redirects: [] ) ] spids: [36873 36874 36951 -1] ) (case_arm pat_list: [{<Port>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy port number'> <Id.Lit_BadBackslash '\\'> <'n - eg: 1234'> ) } {<9>} {<65>} {(DQ ($ Id.VSub_DollarName PROXY_PORT))} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [36958] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [36995] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_PORT='> name: PROXY_PORT ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [37016] ) ] redirects: [] ) ] spids: [36999 37013] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<17>} spids: [37028] ) ] redirects: [] ) ] spids: [36954 36955 37032 -1] ) (case_arm pat_list: [{<Username>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy username'> <Id.Lit_BadBackslash '\\'> <'n - eg: JoeBloggs'> <Id.Lit_BadBackslash '\\'> <'n - Leave blank if not required'> ) } {<10>} {<65>} {(DQ ($ Id.VSub_DollarName PROXY_USERNAME))} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [37039] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [37078] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_USERNAME='> name: PROXY_USERNAME ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [37099] ) ] redirects: [] ) ] spids: [37082 37096] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<17>} spids: [37111] ) ] redirects: [] ) ] spids: [37035 37036 37115 -1] ) (case_arm pat_list: [{<Password>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy password'> <Id.Lit_BadBackslash '\\'> <'n - eg: LetMeIn'> <Id.Lit_BadBackslash '\\'> <'n - Leave blank if not required'> ) } {<10>} {<65>} {(DQ ($ Id.VSub_DollarName PROXY_PASSWORD))} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [37122] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [37161] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_PASSWORD='> name: PROXY_PASSWORD ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTION)} spids: [37182] ) ] redirects: [] ) ] spids: [37165 37179] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<17>} spids: [37194] ) ] redirects: [] ) ] spids: [37118 37119 37198 -1] ) (case_arm pat_list: [{<Apply>}] action: [ (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_ENABLED=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_ENABLED='> ($ Id.VSub_DollarName PROXY_ENABLED) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_ADDRESS=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_ADDRESS='> ($ Id.VSub_DollarName PROXY_ADDRESS) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_PORT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_PORT='> ($ Id.VSub_DollarName PROXY_PORT) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_USERNAME=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_USERNAME='> ($ Id.VSub_DollarName PROXY_USERNAME) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_PASSWORD=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_PASSWORD='> ($ Id.VSub_DollarName PROXY_PASSWORD) ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/{http,https,ftp}_proxy=/d'>)} {<'/etc/bash.bashrc'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName PROXY_ENABLED)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName PROXY_USERNAME))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName PROXY_PASSWORD))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 37379 stdin_parts: [ <'export {http,https,ftp}_proxy='> <Id.Right_DoubleQuote '"'> <'http://'> ($ Id.VSub_DollarName PROXY_USERNAME) <':'> ($ Id.VSub_DollarName PROXY_PASSWORD) <'@'> ($ Id.VSub_DollarName PROXY_ADDRESS) <':'> ($ Id.VSub_DollarName PROXY_PORT) <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/bash.bashrc'>} ) ] more_env: [] do_fork: T ) ] spids: [37328 37353] ) ] else_action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 37403 stdin_parts: [ <'export {http,https,ftp}_proxy='> <Id.Right_DoubleQuote '"'> <'http://'> ($ Id.VSub_DollarName PROXY_ADDRESS) <':'> ($ Id.VSub_DollarName PROXY_PORT) <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/bash.bashrc'>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] spids: [37310 37324] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REBOOT_REQUIRED='> name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [37418] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_TITLE='> name: WHIP_TITLE ) op: assign_op.Equal rhs: {(SQ <'Proxy: Reboot required'>)} spids: [37423] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_QUESTION='> name: WHIP_QUESTION ) op: assign_op.Equal rhs: { (SQ < 'Your proxy settings have been saved.\\n\\nNB: You must reboot your system, before the new proxy settings will take effect.\\n\\nReboot system now?' > ) } spids: [37429] ) ] redirects: [] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} {(DQ ($ Id.VSub_DollarName WHIP_QUESTION))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [37474] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [37478 37492] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_ENABLED='> name: PROXY_ENABLED ) op: assign_op.Equal rhs: {<-1>} spids: [37506] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGETMENUID='> name: TARGETMENUID ) op: assign_op.Equal rhs: {<17>} spids: [37515] ) ] redirects: [] ) ] spids: [37201 37202 37519 -1] ) ] redirects: [] ) ] spids: [36800 36814] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_ENABLED='> name: PROXY_ENABLED ) op: assign_op.Equal rhs: {<-1>} spids: [37533] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName G_DIETPI_INSTALL_STAGE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName TARGETMENUID)} right: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: {<Id.Lit_Digits 1>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (C {<clear>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Main>})] spids: [37605 37619] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_DisplayOptions>})] spids: [37625 37639] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_DisplayOptions_Driver_Resolution>})] spids: [37645 37659] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_AdvancedOptions>})] spids: [37665 37679] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_PerformanceOptions>})] spids: [37685 37699] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 5>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_SecurityOptions>})] spids: [37705 37719] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 6>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_GpumemoryOptions>})] spids: [37725 37739] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 7>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_LanguageOptions>})] spids: [37745 37759] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 8>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters>})] spids: [37765 37779] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 9>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters_Ethernet>})] spids: [37785 37799] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters_Wifi>})] spids: [37805 37819] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 11>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Tools>})] spids: [37825 37839] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 12>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_FilesystemBenchmark>})] spids: [37845 37859] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 13>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Overclock>})] spids: [37865 37879] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 14>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_AudioOptions>})] spids: [37885 37899] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 15>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_StressTest>})] spids: [37905 37919] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 16>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Network_Nas_Misc>})] spids: [37925 37939] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName TARGETMENUID)} right: {<Id.Lit_Digits 17>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters_Proxy>})] spids: [37945 37959] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [37557 37571] ) ] else_action: [ (C {<echo>} {<-e>} { (DQ <' >> Filesystem prep has not yet completed: '> <Id.Lit_BadBackslash '\\'> <'n Please wait for the system to reboot '> ) } ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] redirects: [] right: <Id.Lit_RBrace '}'> )