(BraceGroup
  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 '$'>
                            }
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [102]
                )
              ]
            )
          ]
          spids: [79 99]
        )
      ]
    )
    (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 '$'>
                            }
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXITONBACK)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [136]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TEXT_MENU_BACK)
                  op: assign_op.Equal
                  rhs: {(DQ <Exit>)}
                  spids: [140]
                )
              ]
            )
          ]
          spids: [113 133]
        )
      ]
    )
    (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 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'>})
              )
            }
          spids: [190]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_CPU_SCALING_GOV)
          op: assign_op.Equal
          rhs: {(SQ <'/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors'>)}
          spids: [202]
        )
      ]
    )
    (command.ShFunction
      name: Load_Installed_Software
      body: 
        (BraceGroup
          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]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HW_MSG_NOTSUPPORTED)
          op: assign_op.Equal
          rhs: {(DQ <'Not Supported'>)}
          spids: [267]
        )
      ]
    )
    (command.ShFunction
      name: Info_HW_OptionNotSupported
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'This option is not available for '> 
                        ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION')
                      )
                    }
                  spids: [280]
                )
              ]
            )
            (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>}
            )
          ]
        )
    )
    (command.ShFunction
      name: Info_Input_Not_Valid_Integer
      body: 
        (BraceGroup
          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>}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [365]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXITONBACK)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [369]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXT_MENU_BACK)
          op: assign_op.Equal
          rhs: {(DQ <Back>)}
          spids: [374]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE)
          op: assign_op.Equal
          rhs: {(SQ <DietPi-Config>)}
          spids: [381]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
          op: assign_op.Equal
          rhs: {(SQ <DietPi-Config>)}
          spids: [387]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
          op: assign_op.Equal
          rhs: {(SQ <DietPi-Config>)}
          spids: [393]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHOICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [399]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OPTION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [403]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [408]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_OPTIONS_MAX_DISPLAY)
          op: assign_op.Equal
          rhs: {<9>}
          spids: [418]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [423]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MIN_VALUE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [432]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_VALUE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [436]
        )
      ]
    )
    (command.ShFunction
      name: Menu_Main
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <DietPi-Config>)}
                  spids: [452]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [458]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [605]
                )
              ]
            )
            (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>}
                                )
                            )
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [645]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [668]
                                        )
                                      ]
                                    )
                                    (C {<Info_HW_OptionNotSupported>})
                                  ]
                                  spids: [650 664]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<14>}
                                  spids: [698]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [721]
                                        )
                                      ]
                                    )
                                    (C {<Info_HW_OptionNotSupported>})
                                  ]
                                  spids: [703 717]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [751]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [774]
                                        )
                                      ]
                                    )
                                    (C {<Info_HW_OptionNotSupported>})
                                  ]
                                  spids: [756 770]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [804]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<7>}
                                  spids: [827]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<5>}
                                  spids: [850]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<8>}
                                  spids: [873]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<16>}
                                  spids: [896]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<'/DietPi/dietpi/dietpi-autostart'>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [922]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<11>}
                                  spids: [945]
                                )
                              ]
                            )
                          ]
                          spids: [927 941]
                        )
                      ]
                      else_action: [(C {<Menu_Exit>})]
                    )
                  ]
                  spids: [609 623]
                )
              ]
              else_action: [(C {<Menu_Exit>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Exit
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <' Exit DietPi-Config? '>)}
                  spids: [994]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: {(SQ <' Exit DietPi-Config? '>)}
                  spids: [1000]
                )
              ]
            )
            (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 name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [1045]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [1071]
                        )
                      ]
                    )
                    (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [1113]
                                )
                              ]
                            )
                          ]
                          spids: [1080 1110]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Changes Made - Reboot Now?'>)}
                                  spids: [1141]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (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 name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [1180]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<reboot>})]
                                  spids: [1184 1198]
                                )
                              ]
                            )
                          ]
                          spids: [1125 1138]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [1235]
                        )
                      ]
                    )
                  ]
                  spids: [1218 1232]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Display_Rotation_Calc_XY_Invert
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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>}
                                        )
                                    )
                                  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')}
                                                )
                                            )
                                          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 name:framebuffer_x)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$framebuffer_y')}
                                          spids: [1383]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:framebuffer_y)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$temp')}
                                          spids: [1387]
                                        )
                                      ]
                                    )
                                    (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]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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')}
                                                )
                                            )
                                          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 name:framebuffer_x)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$framebuffer_y')}
                                          spids: [1471]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:framebuffer_y)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$temp')}
                                          spids: [1475]
                                        )
                                      ]
                                    )
                                    (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]
                                )
                              ]
                            )
                          ]
                          spids: [1429 1443]
                        )
                      ]
                    )
                  ]
                  spids: [1260 1274]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_DisplayOptions
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [1536]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [{(DQ <1>)} {(DQ <'Display Driver'>)}]
                              )
                            }
                          spids: [1567]
                        )
                      ]
                    )
                  ]
                  spids: [1549 1563]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                      op: assign_op.PlusEqual
                      rhs: 
                        {
                          (sh_array_literal
                            left: <Id.Op_LParen _>
                            words: [{(DQ <1>)} {(DQ <'Change Resolution'>)}]
                          )
                        }
                      spids: [1584]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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]
                    )
                  ]
                )
                (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
                        )
                    )
                  }
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [{(DQ <14>)} {(DQ <'LED Control'>)}]
                      )
                    }
                  spids: [1655]
                )
              ]
            )
            (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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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')}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:overscan_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [1737]
                                )
                              ]
                            )
                          ]
                          spids: [1724 1734]
                        )
                      ]
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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')}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:hdmi_boost_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Disabled>)}
                                  spids: [1790]
                                )
                              ]
                            )
                          ]
                          spids: [1777 1787]
                        )
                      ]
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:rpi_camera_module_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [1847]
                                )
                              ]
                            )
                          ]
                          spids: [1830 1844]
                        )
                      ]
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:rpi_camera_led_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [1904]
                                )
                              ]
                            )
                          ]
                          spids: [1887 1901]
                        )
                      ]
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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 name:justboom_ir_remote_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [2061]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:justboom_ir_remote_enabled)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2067]
                                )
                              ]
                            )
                          ]
                          spids: [2046 2057]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: {($ Id.VSub_DollarName '$overscan_enabled')}
                                    )
                                  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
                                    )
                                )
                              }
                            )
                            (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
                                    )
                                )
                              }
                            )
                            (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
                                    )
                                )
                              }
                            )
                            (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
                                    )
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          ]
                          spids: [2115 2125]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [1672 1686]
                )
              ]
            )
            (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>}
                                    )
                                )
                            )
                          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 name:odroid_remote_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [2437]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:odroid_remote_enabled)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2443]
                                )
                              ]
                            )
                          ]
                          spids: [2422 2433]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [2382 2404]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Display Options'>)}
                  spids: [2470]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [2476]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [2536]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [2564]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  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
                                        token: <Id.VSub_Name overscan_options>
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                              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 name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'DietPi - Overscan Compensation'>)}
                                          spids: [2615]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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
                                                            token: <Id.VSub_Name overscan_options>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          ) <'.:'> <Id.Lit_BadBackslash '\\'> <'n - EG: 16'>
                                                        )
                                                      }
                                                      {<10>}
                                                      {<60>}
                                                      {
                                                        (DQ 
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name overscan_options>
                                                            prefix_op: (Id.VSub_Bang)
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                        )
                                                      }
                                                      {<--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>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                              )
                                            }
                                          spids: [2621]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [2671]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<sed>} {<-i>} 
                                              {
                                                (DQ <'/'> 
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name overscan_options>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  ) <'=/c '> 
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name overscan_options>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  ) <'='> ($ Id.VSub_DollarName '$OPTION')
                                                )
                                              } {<'/DietPi/config.txt'>}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [2719]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [2675 2689]
                                        )
                                      ]
                                      else_action: [
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Break break>
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2740]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [2763]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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>}
                                                    )
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'whiptail_menu_array='> 
                                        (sh_array_literal
                                          left: <Id.Op_LParen _>
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name 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]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [2864 2878]
                                        )
                                      ]
                                    )
                                    (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>}
                                                            )
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name 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]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [2899 2921]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'DietPi - LCD Panel'>)}
                                          spids: [2942]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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
                                                            token: <Id.VSub_Name whiptail_menu_array>
                                                            bracket_op: 
                                                              (bracket_op.WholeArray
                                                                op_id: Id.Lit_At
                                                              )
                                                          )
                                                        )
                                                      }
                                                    ]
                                                    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>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                              )
                                            }
                                          spids: [2948]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [3003]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [3034]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [3007 3021]
                                        )
                                      ]
                                    )
                                    (C {<unset>} {<whiptail_menu_array>})
                                  ]
                                  spids: [2786 2827]
                                )
                              ]
                              else_action: [(C {<Info_HW_OptionNotSupported>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [3065]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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>}
                                                    )
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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 name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<6>}
                                          spids: [3153]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3088 3118]
                                )
                              ]
                              else_action: [
                                (C {<Info_HW_OptionNotSupported>})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [3170]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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>}
                                                )
                                            )
                                          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')}
                                                    )
                                                  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
                                                        token: <Id.VSub_Name overscan_options>
                                                        prefix_op: (Id.VSub_Pound)
                                                        bracket_op: 
                                                          (bracket_op.WholeArray
                                                            op_id: Id.Lit_At
                                                          )
                                                      )
                                                    }
                                                )
                                              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
                                                            token: <Id.VSub_Name overscan_options>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          ) <'=/c '> 
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name overscan_options>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          ) <'=0'>
                                                        )
                                                      } {<'/DietPi/config.txt'>}
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [3303]
                                                )
                                              ]
                                            )
                                          ]
                                          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'
                                                              )
                                                            }
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [3335]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [3308 3320]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3201 3215]
                                )
                              ]
                              else_action: [(C {<Info_HW_OptionNotSupported>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [3360]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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>}
                                                )
                                            )
                                          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 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]
                                                )
                                              ]
                                            )
                                            (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 name:CHOICE)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [3477]
                                                )
                                              ]
                                            )
                                            (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>}
                                                                )
                                                            )
                                                          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
                                                              name: REBOOT_REQUIRED
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                          spids: [3510]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [3481 3495]
                                                )
                                              ]
                                            )
                                          ]
                                          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 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]
                                                )
                                              ]
                                            )
                                            (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 name:CHOICE)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [3595]
                                                )
                                              ]
                                            )
                                            (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>}
                                                                )
                                                            )
                                                          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
                                                              name: REBOOT_REQUIRED
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                          spids: [3628]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [3599 3613]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [3523 3538]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3387 3401]
                                )
                              ]
                              else_action: [(C {<Info_HW_OptionNotSupported>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [3657]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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>}
                                                )
                                            )
                                          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'
                                                              )
                                                            }
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [3725]
                                                )
                                              ]
                                            )
                                          ]
                                          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 name:REBOOT_REQUIRED)
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                              spids: [3741]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3684 3698]
                                )
                              ]
                              else_action: [(C {<Info_HW_OptionNotSupported>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [3766]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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>}
                                                )
                                            )
                                          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'
                                                              )
                                                            }
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [3842]
                                                )
                                              ]
                                            )
                                          ]
                                          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 name:REBOOT_REQUIRED)
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                              spids: [3866]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3793 3807]
                                )
                              ]
                              else_action: [(C {<Info_HW_OptionNotSupported>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [3891]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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')}
                                                )
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [3981]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} 
                                              {<remoteir>} {<odroid_remote>}
                                            )
                                          ]
                                          spids: [3985 3999]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3918 3930]
                                )
                              ]
                              else_action: [
                                (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<none>})
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4031]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4040]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  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'
                                                      )
                                                    }
                                                )
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [4130]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} 
                                              {<remoteir>} {<justboom_ir_remote>}
                                            )
                                          ]
                                          spids: [4134 4148]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4067 4079]
                                )
                              ]
                              else_action: [
                                (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<none>})
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4180]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4189]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'DietPi - VC1 Key'>)}
                                  spids: [4212]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [4218]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [4255]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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
                                                                  )
                                                              )
                                                            }
                                                        )
                                                    )
                                                  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'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [4277 4305]
                                        )
                                      ]
                                    )
                                    (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 name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [4342]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4259 4273]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4355]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'DietPi - MPEG2 Key'>)}
                                  spids: [4378]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [4384]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [4421]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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
                                                                  )
                                                              )
                                                            }
                                                        )
                                                    )
                                                  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'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [4443 4471]
                                        )
                                      ]
                                    )
                                    (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 name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [4508]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4425 4439]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4517]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4526]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                                (sh_array_literal
                                  left: <Id.Op_LParen _>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <0>)} {(DQ <'Disabled (default)'>)}]
                                      )
                                    }
                                  spids: [4557]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <1>)} {(DQ <'90 degrees'>)}]
                                      )
                                    }
                                  spids: [4569]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <2>)} {(DQ <'180 degrees'>)}]
                                      )
                                    }
                                  spids: [4581]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <3>)} {(DQ <'270 degrees'>)}]
                                      )
                                    }
                                  spids: [4593]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <0x10000>)} {(DQ <'Horizontal flip'>)}]
                                      )
                                    }
                                  spids: [4605]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <0x20000>)} {(DQ <'Vertical flip'>)}]
                                      )
                                    }
                                  spids: [4617]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'DietPi - Display Rotation (HDMI)'>)}
                                  spids: [4630]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [4636]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [4695]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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>})]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [4798]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4699 4713]
                                )
                              ]
                            )
                            (C {<unset>} {<whiptail_menu_array>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4813]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4822]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                                (sh_array_literal
                                  left: <Id.Op_LParen _>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <0>)} {(DQ <'Disabled (default)'>)}]
                                      )
                                    }
                                  spids: [4853]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(DQ <2>)} {(DQ <'180 degrees'>)}]
                                      )
                                    }
                                  spids: [4865]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'DietPi - Display Rotation (LCD)'>)}
                                  spids: [4878]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [4884]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [4943]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [4980]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4947 4961]
                                )
                              ]
                            )
                            (C {<unset>} {<whiptail_menu_array>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4995]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [5004]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<'/DietPi/dietpi/func/dietpi-led_control'>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [5030]
                                )
                              ]
                            )
                          ]
                          spids: [5009 5023]
                        )
                      ]
                    )
                  ]
                  spids: [2546 2560]
                )
              ]
            )
            (C {<unset>} {<overscan_options>})
          ]
        )
    )
    (command.ShFunction
      name: Menu_DisplayOptions_Driver_Resolution
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5068]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'whiptail_menu_array='> 
                        (sh_array_literal left:<Id.Op_LParen _>)
                      }
                    )
                    (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
                                              )
                                          )
                                        }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:nvidia_installed)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [5147]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:nvidia_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Uninstall GPU driver'>)}
                                  spids: [5151]
                                )
                              ]
                            )
                          ]
                          spids: [5117 5143]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (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 name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi - Display Driver'>)}
                          spids: [5212]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                            token: <Id.VSub_Name whiptail_menu_array>
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        )
                                      }
                                    ]
                                    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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [5218]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [5278]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [5300]
                                )
                              ]
                            )
                            (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'
                                                              )
                                                            }
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<151>})
                                          ]
                                          spids: [5326 5338]
                                        )
                                      ]
                                      else_action: [
                                        (C {<'/DietPi/dietpi/dietpi-software'>} {<uninstall>} {<151>})
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [5366]
                                        )
                                      ]
                                    )
                                  ]
                                  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]
                                )
                              ]
                            )
                          ]
                          spids: [5282 5296]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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
                                              )
                                          )
                                        }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:display_output_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'OpenGL 1080p'>)}
                                  spids: [5570]
                                )
                              ]
                            )
                          ]
                          spids: [5540 5566]
                        )
                      ]
                    )
                    (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:display_output_text)
                                  op: assign_op.Equal
                                  rhs: {(DQ <Headless>)}
                                  spids: [5617]
                                )
                              ]
                            )
                          ]
                          spids: [5585 5613]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi - Resolution'>)}
                          spids: [5628]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [5634]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [5819]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [5841]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [5850]
                                )
                              ]
                            )
                            (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 '*'>}
                                                )
                                            )
                                          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]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [5823 5837]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi - Resolution'>)}
                          spids: [6398]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [6404]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [6499]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [6521]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [6530]
                                )
                              ]
                            )
                            (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]
                                )
                              ]
                            )
                          ]
                          spids: [6503 6517]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:current_resolution)
                                  op: assign_op.Equal
                                  rhs: {(DQ <1080p>)}
                                  spids: [6747]
                                )
                              ]
                            )
                          ]
                          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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:current_resolution)
                                  op: assign_op.Equal
                                  rhs: {(DQ <720p>)}
                                  spids: [6794]
                                )
                              ]
                            )
                          ]
                          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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:current_resolution)
                                  op: assign_op.Equal
                                  rhs: {(DQ <480p>)}
                                  spids: [6841]
                                )
                              ]
                            )
                          ]
                          spids: [6800 6838]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi - Resolution'>)}
                          spids: [6851]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [6857]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [6942]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [6964]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [6973]
                                )
                              ]
                            )
                            (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]
                                )
                              ]
                            )
                          ]
                          spids: [6946 6960]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi - Resolution'>)}
                          spids: [7172]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [7178]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [7369]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  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 name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [7413]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [7391 7409]
                                )
                              ]
                            )
                            (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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [7498]
                                )
                              ]
                            )
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'/setenv m /c'> <Id.Lit_BadBackslash '\\'> <'setenv m '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) ($ Id.VSub_DollarName '$OPTION') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              } {<'/DietPi/boot.ini'>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [7542]
                                )
                              ]
                            )
                          ]
                          spids: [7373 7387]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi - Resolution'>)}
                          spids: [7606]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [7612]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [7757]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  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 name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [7815]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [7779 7797]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [7828]
                                )
                              ]
                            )
                          ]
                          spids: [7761 7775]
                        )
                      ]
                    )
                  ]
                  spids: [7555 7569]
                )
              ]
              else_action: [(C {<Info_HW_OptionNotSupported>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_AdvancedOptions
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7862]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (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
                    )
                )
              }
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:swap_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Disabled>)}
                          spids: [7929]
                        )
                      ]
                    )
                  ]
                  spids: [7912 7926]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ntpd_mode_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Disabled>)}
                          spids: [8004]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ntpd_mode_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'Boot Only'>)}
                          spids: [8027]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ntpd_mode_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'Boot + Daily'>)}
                          spids: [8050]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ntpd_mode_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'Boot + Hourly'>)}
                          spids: [8073]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ntpd_mode_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'Daemon + Drift'>)}
                          spids: [8096]
                        )
                      ]
                    )
                  ]
                  spids: [8079 8093]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [8119]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:serialconsole_text)
                  op: assign_op.Equal
                  rhs: {(SQ <Disabled>)}
                  spids: [8145]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:serialconsole_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [8168]
                        )
                      ]
                    )
                  ]
                  spids: [8151 8165]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [{(DQ <'Update firmware'>)} {(DQ )}]
                      )
                    }
                  spids: [8178]
                )
              ]
            )
            (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 name:bluetooth_state)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [8218]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:bluetooth_state_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Disabled>)}
                          spids: [8222]
                        )
                      ]
                    )
                  ]
                  spids: [8204 8215]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [8235 8249]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [8273 8287]
                )
              ]
            )
            (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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:rpi_i2c_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [8376]
                                )
                              ]
                            )
                          ]
                          spids: [8359 8373]
                        )
                      ]
                    )
                    (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
                                        )
                                    )
                                  }
                                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
                            )
                        )
                      }
                    )
                    (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 name:rpi_usbmaxcurrent_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [8474]
                                )
                              ]
                            )
                          ]
                          spids: [8456 8471]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  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
                                    )
                                )
                              }
                            )
                            (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')}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rpi3_usb_boot_bit_enabled_text)
                                          op: assign_op.Equal
                                          rhs: {(SQ <Enabled>)}
                                          spids: [8556]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [8542 8552]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          ]
                          spids: [8484 8498]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [8311 8325]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Advanced Options'>)}
                  spids: [8630]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [8636]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [8685]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 name:MIN_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [8735]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:MAX_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<2000>}
                                  spids: [8739]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [8743]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [8794]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 '$'>
                                                                }
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_GreatEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MIN_VALUE')}
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_LessEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MAX_VALUE')}
                                                            )
                                                        )
                                                      ]
                                                    )
                                                  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'
                                                                      )
                                                                    }
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C 
                                                      {
                                                        <
'/DietPi/dietpi/func/dietpi-set_dphys-swapfile'
                                                        >
                                                      } {($ Id.VSub_DollarName '$OPTION')}
                                                    )
                                                  ]
                                                  spids: [8871 8885]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [8816 8863]
                                        )
                                      ]
                                      else_action: [(C {<Info_Input_Not_Valid_Integer>})]
                                    )
                                  ]
                                  spids: [8798 8812]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [8919]
                                )
                              ]
                            )
                          ]
                          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 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [8945]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [9053]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<ntpd-mode>} 
                                      {($ Id.VSub_DollarName '$OPTION')}
                                    )
                                  ]
                                  spids: [9057 9071]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [9091]
                                )
                              ]
                            )
                          ]
                          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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [9188]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<G_RPI_UPDATE>})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [9213]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [9192 9206]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [9293]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/usr/local/sbin/pine64_update_uboot.sh'>})
                                            (C {<'/usr/local/sbin/pine64_update_kernel.sh'>})
                                          ]
                                          spids: [9297 9311]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9226 9240]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                                (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 name:CHOICE)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '$?')}
                                      spids: [9389]
                                    )
                                  ]
                                )
                                (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>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [(C {<G_AGUP>}) (C {<G_AGDUG>})]
                                      spids: [9393 9407]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [9430]
                                )
                              ]
                            )
                          ]
                          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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [9534]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [9566]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [9538 9552]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [9651]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [9683]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [9655 9669]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9577 9591]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [9698]
                                )
                              ]
                            )
                          ]
                          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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {<enable>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [9748]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9724 9738]
                                )
                              ]
                              else_action: [
                                (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {<disable>})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [9762]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [9774]
                                )
                              ]
                            )
                          ]
                          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 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
                                          )
                                      )
                                    }
                                  spids: [9804]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [9826]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [9861]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 '$'>
                                                            }
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [9918]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [9886 9906]
                                        )
                                      ]
                                      else_action: [(C {<Info_Input_Not_Valid_Integer>})]
                                    )
                                  ]
                                  spids: [9865 9879]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [9940]
                                )
                              ]
                            )
                          ]
                          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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<serialconsole>} 
                                      {<enable>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [9991]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9966 9980]
                                )
                              ]
                              else_action: [
                                (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<serialconsole>} 
                                  {<disable>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [10007]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [10020]
                                )
                              ]
                            )
                          ]
                          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')}
                                            )
                                          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>}
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [10084]
                                )
                              ]
                            )
                          ]
                          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'
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [10171]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [10200]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name 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]
                                                )
                                              ]
                                            )
                                            (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 name:CHOICE)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [10242]
                                                )
                                              ]
                                            )
                                            (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>}
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [(C {<reboot>})]
                                                  spids: [10246 10260]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [10175 10189]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [10110 10122]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [10284]
                                )
                              ]
                            )
                          ]
                          spids: [10089 10106]
                        )
                      ]
                    )
                  ]
                  spids: [8696 8710]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_PerformanceOptions
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10312]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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 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.Lit_Digits 1000>}
                                  )
                              )
                            }
                          spids: [10377]
                        )
                      ]
                    )
                  ]
                  spids: [10360 10373]
                )
              ]
            )
            (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 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.Lit_Digits 1000>}
                                  )
                              )
                            }
                          spids: [10432]
                        )
                      ]
                    )
                  ]
                  spids: [10415 10428]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'arm_temp='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<G_OBTAIN_CPU_TEMP>})
                )
              }
            )
            (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 '$'>
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arm_temp)
                          op: assign_op.PlusEqual
                          rhs: {(DQ <'\'c'>)}
                          spids: [10524]
                        )
                      ]
                    )
                  ]
                  spids: [10472 10492]
                )
              ]
            )
            (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
                              )
                          )
                        }
                      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
                              )
                          )
                        }
                      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 _>)}
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [{(DQ <Overclocking>)} {(DQ <'Set Profile'>)}]
                              )
                            }
                          spids: [10660]
                        )
                      ]
                    )
                  ]
                  spids: [10643 10657]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [10698 10749]
                )
              ]
            )
            (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
                                      )
                                  )
                                }
                              right: {<Id.Lit_Digits 1000>}
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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 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]
                        )
                      ]
                    )
                  ]
                  spids: [10805 10820]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:user_frequency_max_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Disabled>)}
                          spids: [10996]
                        )
                      ]
                    )
                  ]
                  spids: [10981 10993]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:user_frequency_min_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Disabled>)}
                          spids: [11076]
                        )
                      ]
                    )
                  ]
                  spids: [11061 11073]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:text_current_initial_turbo)
                                  op: assign_op.Equal
                                  rhs: {(DQ <Disabled>)}
                                  spids: [11205]
                                )
                              ]
                            )
                          ]
                          spids: [11188 11202]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:rpi_freq_min_enabled)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [11293]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:rpi_freq_min_text)
                                  op: assign_op.Equal
                                  rhs: {(DQ <Disabled>)}
                                  spids: [11297]
                                )
                              ]
                            )
                          ]
                          spids: [11260 11290]
                        )
                      ]
                    )
                  ]
                  spids: [11104 11118]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Performance Options'>)}
                  spids: [11320]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [11326]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [11396]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 name:MIN_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [11447]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:MAX_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<200>}
                                  spids: [11451]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [11455]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [11505]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 '$'>
                                                                }
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_LessEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MAX_VALUE')}
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_GreatEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MIN_VALUE')}
                                                            )
                                                        )
                                                      ]
                                                    )
                                                  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>})]
                                    )
                                  ]
                                  spids: [11509 11523]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [11615]
                                )
                              ]
                            )
                          ]
                          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
                                        token: <Id.VSub_Name input_fp>
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                              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
                                                            token: <Id.VSub_Name input_fp>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                        )
                                                      } {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:index)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$i')}
                                                  spids: [11718]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [11696 11714]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                            token: <Id.VSub_Name input_fp>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  {($ Id.VSub_DollarName '$index')}
                                                              )
                                                          )
                                                        )
                                                      }
                                                    )
                                                )
                                              }
                                            right: {<Id.Lit_Digits 1000>}
                                          )
                                      )
                                    }
                                  spids: [11734]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:MAX_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<300>}
                                  spids: [11758]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [11762]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [11805]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 '$'>
                                                                }
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_LessEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MAX_VALUE')}
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_GreatEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MIN_VALUE')}
                                                            )
                                                        )
                                                      ]
                                                    )
                                                  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>})]
                                    )
                                  ]
                                  spids: [11809 11823]
                                )
                              ]
                            )
                            (C {<unset>} {<input_fp>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [11928]
                                )
                              ]
                            )
                          ]
                          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 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]
                                )
                              ]
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                                (sh_array_literal
                                  left: <Id.Op_LParen _>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [12003]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [12057]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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'>}
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [12199]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12072 12086]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [12212]
                                )
                              ]
                            )
                          ]
                          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 _>
                                    )
                                  }
                                )
                                (C {<local>} {<Id.Lit_VarLike 'max_clock='> <0>})
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'available_frequency_array='> 
                                    (sh_array_literal
                                      left: <Id.Op_LParen _>
                                    )
                                  }
                                )
                                (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'>}
                                    )
                                  ]
                                  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
                                            token: <Id.VSub_Name available_frequency_array>
                                            prefix_op: (Id.VSub_Pound)
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        }
                                    )
                                  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 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
                                                                      token: 
                                                                        <Id.VSub_Name 
available_frequency_array
                                                                        >
                                                                      bracket_op: 
                                                                        (bracket_op.ArrayIndex
                                                                          expr: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$i'
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  }
                                                                right: {<Id.Lit_Digits 1000>}
                                                              )
                                                          )
                                                        )
                                                      }
                                                      {(DQ <MHz>)}
                                                    ]
                                                  )
                                                }
                                              spids: [12345]
                                            )
                                          ]
                                        )
                                        (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
                                                                    token: 
                                                                      <Id.VSub_Name 
available_frequency_array
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$i'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                                }
                                                              right: 
                                                                {($ Id.VSub_DollarName '$max_clock')}
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:max_clock)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (word_part.ArithSub
                                                            anode: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Slash
                                                                left: 
                                                                  {
                                                                    (braced_var_sub
                                                                      token: 
                                                                        <Id.VSub_Name 
available_frequency_array
                                                                        >
                                                                      bracket_op: 
                                                                        (bracket_op.ArrayIndex
                                                                          expr: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$i'
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  }
                                                                right: {<Id.Lit_Digits 1000>}
                                                              )
                                                          )
                                                        }
                                                      spids: [12394]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [12371 12390]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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
                                                        token: <Id.VSub_Name whiptail_menu_list>
                                                        bracket_op: 
                                                          (bracket_op.WholeArray
                                                            op_id: Id.Lit_At
                                                          )
                                                      )
                                                    )
                                                  }
                                                ]
                                                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>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        }
                                      spids: [12442]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:CHOICE)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '$?')}
                                      spids: [12509]
                                    )
                                  ]
                                )
                                (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>}
                                                    )
                                                )
                                              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]
                                            )
                                          ]
                                        )
                                        (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]
                                    )
                                  ]
                                )
                                (C {<unset>} {<whiptail_menu_list>})
                                (C {<unset>} {<available_frequency_array>})
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [12623]
                                )
                              ]
                            )
                          ]
                          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 _>
                                    )
                                  }
                                )
                                (C {<local>} {<Id.Lit_VarLike 'min_clock='> <0>})
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'available_frequency_array='> 
                                    (sh_array_literal
                                      left: <Id.Op_LParen _>
                                    )
                                  }
                                )
                                (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'>}
                                    )
                                  ]
                                  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
                                            token: <Id.VSub_Name available_frequency_array>
                                            prefix_op: (Id.VSub_Pound)
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        }
                                    )
                                  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 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
                                                                      token: 
                                                                        <Id.VSub_Name 
available_frequency_array
                                                                        >
                                                                      bracket_op: 
                                                                        (bracket_op.ArrayIndex
                                                                          expr: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$i'
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  }
                                                                right: {<Id.Lit_Digits 1000>}
                                                              )
                                                          )
                                                        )
                                                      }
                                                      {(DQ <MHz>)}
                                                    ]
                                                  )
                                                }
                                              spids: [12757]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:min_clock)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (word_part.ArithSub
                                            anode: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Slash
                                                left: 
                                                  {
                                                    (braced_var_sub
                                                      token: <Id.VSub_Name available_frequency_array>
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: {<Id.Lit_Digits 0>}
                                                        )
                                                    )
                                                  }
                                                right: {<Id.Lit_Digits 1000>}
                                              )
                                          )
                                        }
                                      spids: [12788]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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
                                                        token: <Id.VSub_Name whiptail_menu_list>
                                                        bracket_op: 
                                                          (bracket_op.WholeArray
                                                            op_id: Id.Lit_At
                                                          )
                                                      )
                                                    )
                                                  }
                                                ]
                                                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>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        }
                                      spids: [12828]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:CHOICE)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '$?')}
                                      spids: [12895]
                                    )
                                  ]
                                )
                                (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>}
                                                    )
                                                )
                                              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]
                                            )
                                          ]
                                        )
                                        (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]
                                    )
                                  ]
                                )
                                (C {<unset>} {<whiptail_menu_list>})
                                (C {<unset>} {<available_frequency_array>})
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [13009]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [13026]
                                )
                              ]
                            )
                          ]
                          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 _>
                                    )
                                  }
                                )
                                (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
                                                              )
                                                          )
                                                        }
                                                      right: {<Id.Lit_Digits 1>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name 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]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:Description)
                                              op: assign_op.PlusEqual
                                              rhs: 
                                                {
                                                  (DQ <Id.Lit_BadBackslash '\\'> 
                                                    <
'nOndemand     | Dynamic CPU frequency based on usage (recommended).'
                                                    >
                                                  )
                                                }
                                              spids: [13171]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [13119 13151]
                                    )
                                  ]
                                )
                                (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
                                                              )
                                                          )
                                                        }
                                                      right: {<Id.Lit_Digits 1>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name 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]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:Description)
                                              op: assign_op.PlusEqual
                                              rhs: 
                                                {
                                                  (DQ <Id.Lit_BadBackslash '\\'> 
                                                    <
'nInteractive  | Dynamic CPU frequency based on usage.'
                                                    >
                                                  )
                                                }
                                              spids: [13235]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [13183 13215]
                                    )
                                  ]
                                )
                                (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
                                                              )
                                                          )
                                                        }
                                                      right: {<Id.Lit_Digits 1>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name 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]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:Description)
                                              op: assign_op.PlusEqual
                                              rhs: 
                                                {
                                                  (DQ <Id.Lit_BadBackslash '\\'> 
                                                    <
'nConservative | Same as ondemand. Bias towards powersaving, slower scaling. '
                                                    >
                                                  )
                                                }
                                              spids: [13299]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [13247 13279]
                                    )
                                  ]
                                )
                                (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
                                                              )
                                                          )
                                                        }
                                                      right: {<Id.Lit_Digits 1>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name 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]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:Description)
                                              op: assign_op.PlusEqual
                                              rhs: 
                                                {
                                                  (DQ <Id.Lit_BadBackslash '\\'> 
                                                    <
'nPowersave    | Static. Reduces energy consumption, heat, performance.'
                                                    >
                                                  )
                                                }
                                              spids: [13361]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [13311 13343]
                                    )
                                  ]
                                )
                                (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
                                                              )
                                                          )
                                                        }
                                                      right: {<Id.Lit_Digits 1>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name 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]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:Description)
                                              op: assign_op.PlusEqual
                                              rhs: 
                                                {
                                                  (DQ <Id.Lit_BadBackslash '\\'> 
                                                    <
'nPerformance  | Static. Increases energy consumption, heat, performance.'
                                                    >
                                                  )
                                                }
                                              spids: [13423]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [13373 13405]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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
                                                        token: <Id.VSub_Name whiptail_menu_array>
                                                        bracket_op: 
                                                          (bracket_op.WholeArray
                                                            op_id: Id.Lit_At
                                                          )
                                                      )
                                                    )
                                                  }
                                                ]
                                                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>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        }
                                      spids: [13435]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:CHOICE)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '$?')}
                                      spids: [13495]
                                    )
                                  ]
                                )
                                (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>}
                                                    )
                                                )
                                              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]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [13558]
                                )
                              ]
                            )
                          ]
                          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 name:MIN_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<30>}
                                  spids: [13574]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:MAX_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<95>}
                                  spids: [13578]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [13582]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [13628]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 '$'>
                                                                }
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_LessEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MAX_VALUE')}
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_GreatEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MIN_VALUE')}
                                                            )
                                                        )
                                                      ]
                                                    )
                                                  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>})]
                                    )
                                  ]
                                  spids: [13632 13646]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [13738]
                                )
                              ]
                            )
                          ]
                          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 name:MIN_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [13754]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:MAX_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<60>}
                                  spids: [13758]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [13762]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [13806]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 '$'>
                                                                }
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_LessEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MAX_VALUE')}
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_GreatEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MIN_VALUE')}
                                                            )
                                                        )
                                                      ]
                                                    )
                                                  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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [13887]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13828 13870]
                                        )
                                      ]
                                      else_action: [(C {<Info_Input_Not_Valid_Integer>})]
                                    )
                                  ]
                                  spids: [13810 13824]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [13912]
                                )
                              ]
                            )
                          ]
                          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 name:MIN_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<45>}
                                  spids: [13928]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:MAX_VALUE)
                                  op: assign_op.Equal
                                  rhs: {<85>}
                                  spids: [13932]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [13936]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [13978]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 '$'>
                                                                }
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_LessEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MAX_VALUE')}
                                                            )
                                                        )
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_GreatEqual
                                                              left: {($ Id.VSub_DollarName '$OPTION')}
                                                              right: 
                                                                {($ Id.VSub_DollarName '$MIN_VALUE')}
                                                            )
                                                        )
                                                      ]
                                                    )
                                                  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>}
                                                                )
                                                            )
                                                          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]
                                                )
                                              ]
                                            )
                                            (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 name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [14112]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [14000 14042]
                                        )
                                      ]
                                      else_action: [(C {<Info_Input_Not_Valid_Integer>})]
                                    )
                                  ]
                                  spids: [13982 13996]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [14137]
                                )
                              ]
                            )
                          ]
                          spids: [13920 13924 14141 -1]
                        )
                      ]
                    )
                  ]
                  spids: [11411 11425]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_Password
      body: 
        (BraceGroup
          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>}
                        )
                      ]
                      do_fork: T
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [14208]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike PasswordRecieved>
                        )
                    )
                  ]
                  spids: [14212 14226]
                )
              ]
            )
            (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>}
                        )
                      ]
                      do_fork: T
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [14279]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike PasswordRecieved>
                        )
                    )
                  ]
                  spids: [14283 14297]
                )
              ]
            )
            (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 name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Error - Password Mismatch'>)}
                          spids: [14339]
                        )
                      ]
                    )
                    (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>}
                                )
                            )
                          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
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Password Applied'>)}
                          spids: [14407]
                        )
                      ]
                    )
                    (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 name:WHIP_TITLE)
                      op: assign_op.Equal
                      rhs: {(SQ <'Password Aborted'>)}
                      spids: [14441]
                    )
                  ]
                )
                (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                  {(DQ <' Password change has been aborted. No changes have been applied'>)} {<8>} {<60>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_Hostname
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'hostname_existing='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<cat>} {<'/etc/hostname'>})
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [14496]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [14537]
                )
              ]
            )
            (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>}
                                    )
                                )
                                (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 name:REBOOT_REQUIRED)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [14583]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Hostname Change Completed'>)}
                          spids: [14587]
                        )
                      ]
                    )
                    (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 name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [14640]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<reboot>})]
                          spids: [14644 14658]
                        )
                      ]
                    )
                  ]
                  spids: [14541 14572]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                      op: assign_op.Equal
                      rhs: {(SQ <'Hostname Change Aborted'>)}
                      spids: [14678]
                    )
                  ]
                )
                (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                  {(DQ <'Hostname change has been aborted. No changes have been applied.'>)} {<8>} {<60>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_SecurityOptions
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14722]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Security Options'>)}
                  spids: [14727]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [14733]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [14799]
                )
              ]
            )
            (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>}
                                )
                            )
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<Change_Password>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<5>}
                                  spids: [14840]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<Change_Hostname>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<5>}
                                  spids: [14864]
                                )
                              ]
                            )
                          ]
                          spids: [14844 14858]
                        )
                      ]
                    )
                  ]
                  spids: [14803 14817]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_GpumemoryOptions
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14889]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [14934]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ram_mem_total)
                          op: assign_op.Equal
                          rhs: {<256>}
                          spids: [14965]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [14986]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ram_mem_total)
                          op: assign_op.Equal
                          rhs: {<512>}
                          spids: [15017]
                        )
                      ]
                    )
                  ]
                  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>}
                                    )
                                )
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 3>}
                                    )
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [15051]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ram_mem_total)
                          op: assign_op.Equal
                          rhs: {<1024>}
                          spids: [15082]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [15103]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [15155]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [15138 15152]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - GPU/RAM Split'>)}
                  spids: [15194]
                )
              ]
            )
            (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>}
                                )
                            )
                          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>}
                                        )
                                    )
                                  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'>}
                                )
                              ]
                              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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: available_gpu_values
                                      index: {<Id.Lit_Digits 2>}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<128>}
                                  spids: [15334]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: available_gpu_values
                                      index: {<Id.Lit_Digits 3>}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<192>}
                                  spids: [15342]
                                )
                              ]
                            )
                          ]
                          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>}
                                            )
                                        )
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 3>}
                                            )
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: available_gpu_values
                                      index: {<Id.Lit_Digits 1>}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<128>}
                                  spids: [15380]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: available_gpu_values
                                      index: {<Id.Lit_Digits 2>}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<192>}
                                  spids: [15388]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: available_gpu_values
                                      index: {<Id.Lit_Digits 3>}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<256>}
                                  spids: [15396]
                                )
                              ]
                            )
                          ]
                          spids: [15350 15377]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'option_output_text='> (sh_array_literal left:<Id.Op_LParen _>)}
                    )
                    (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
                                token: <Id.VSub_Name option_name>
                                prefix_op: (Id.VSub_Pound)
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              )
                            }
                        )
                      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 name:option_output_text)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: <Id.VSub_Name option_name>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName '$i')}
                                                  )
                                              )
                                            )
                                          }
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: <Id.VSub_Name available_gpu_values>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName '$i')}
                                                  )
                                              ) <' 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
                                                          token: <Id.VSub_Name available_gpu_values>
                                                          bracket_op: 
                                                            (bracket_op.ArrayIndex
                                                              expr: {($ Id.VSub_DollarName '$i')}
                                                            )
                                                        )
                                                      }
                                                  )
                                              ) <' MB RAM'>
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [15447]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                            token: <Id.VSub_Name option_output_text>
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        )
                                      }
                                    ]
                                    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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [15488]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [15550]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  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
                                        token: <Id.VSub_Name option_name>
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                              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
                                                            token: <Id.VSub_Name option_name>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                        )
                                                      } {<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]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<gpumemsplit>} 
                              {
                                (braced_var_sub
                                  token: <Id.VSub_Name available_gpu_values>
                                  bracket_op: 
                                    (bracket_op.ArrayIndex
                                      expr: {($ Id.VSub_DollarName '$temp_index')}
                                    )
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [15663]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<6>}
                                  spids: [15671]
                                )
                              ]
                            )
                          ]
                          spids: [15554 15568]
                        )
                      ]
                    )
                    (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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:display_output_text)
                                  op: assign_op.Equal
                                  rhs: {(DQ <Disabled>)}
                                  spids: [15803]
                                )
                              ]
                            )
                          ]
                          spids: [15786 15800]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:display_vpu_text)
                                  op: assign_op.Equal
                                  rhs: {(DQ <Disabled>)}
                                  spids: [15829]
                                )
                              ]
                            )
                          ]
                          spids: [15812 15826]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [15839]
                        )
                      ]
                    )
                    (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 name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [15966]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<6>}
                                  spids: [15974]
                                )
                              ]
                            )
                          ]
                          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 name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16007]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<6>}
                                  spids: [16015]
                                )
                              ]
                            )
                          ]
                          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 name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16048]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<6>}
                                  spids: [16056]
                                )
                              ]
                            )
                          ]
                          spids: [16022 16023 16060 -1]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:display_output_text)
                                  op: assign_op.Equal
                                  rhs: {(DQ <Disabled>)}
                                  spids: [16141]
                                )
                              ]
                            )
                          ]
                          spids: [16124 16138]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [16151]
                        )
                      ]
                    )
                    (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 name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16257]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<6>}
                                  spids: [16265]
                                )
                              ]
                            )
                          ]
                          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 name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16287]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<6>}
                                  spids: [16295]
                                )
                              ]
                            )
                          ]
                          spids: [16272 16273 16299 -1]
                        )
                      ]
                    )
                  ]
                  spids: [16071 16085]
                )
              ]
              else_action: [(C {<Info_HW_OptionNotSupported>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_LanguageOptions
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [16330]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Language and Regional Options'>)}
                  spids: [16335]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [16341]
                )
              ]
            )
            (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 name:REBOOT_REQUIRED)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16431]
                        )
                      ]
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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 name:locale_new)
                                  op: assign_op.Equal
                                  rhs: {(SQ <en_GB.UTF-8>)}
                                  spids: [16488]
                                )
                              ]
                            )
                          ]
                          spids: [16471 16484]
                        )
                      ]
                    )
                    (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<locale>} 
                      {(DQ ($ Id.VSub_DollarName '$locale_new'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<7>}
                          spids: [16517]
                        )
                      ]
                    )
                  ]
                  spids: [16426 16427 16522 -1]
                )
                (case_arm
                  pat_list: [{<Timezone>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16531]
                        )
                      ]
                    )
                    (C {<dpkg-reconfigure>} {<tzdata>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<7>}
                          spids: [16545]
                        )
                      ]
                    )
                  ]
                  spids: [16526 16527 16550 -1]
                )
                (case_arm
                  pat_list: [{<Keyboard>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16559]
                        )
                      ]
                    )
                    (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 name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<7>}
                          spids: [16614]
                        )
                      ]
                    )
                  ]
                  spids: [16554 16555 16619 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_IP_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16631]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_GATEWAY_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16637]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_MASK_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16643]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_DNS_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16649]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_INDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16656]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_DISABLED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16660]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_HARDWARE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16664]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_CONNECTED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16668]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_IP)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16672]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_GATEWAY)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16678]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_MASK)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16684]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_DNS)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16690]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_MODE)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [16696]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16703]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_IP_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16708]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16714]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_MASK_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16720]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_DNS_STATIC)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16726]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_INDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16733]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_DISABLED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16737]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_HARDWARE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16741]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_CONNECTED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16745]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_IP)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16749]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16755]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_MASK)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16761]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_DNS)
          op: assign_op.Equal
          rhs: {(DQ <0.0.0.0>)}
          spids: [16767]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_MODE)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [16773]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16780]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_SSID)
          op: assign_op.Equal
          rhs: {(DQ <WifiSSID>)}
          spids: [16784]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_KEY)
          op: assign_op.Equal
          rhs: {(DQ <WifiKey>)}
          spids: [16790]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_BITRATE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16796]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16800]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_HOTSPOT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16804]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_COUNTRYCODE)
          op: assign_op.Equal
          rhs: {(DQ <Unknown>)}
          spids: [16808]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFI_AUTO_RECONNECT_ACTIVE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [16814]
        )
      ]
    )
    (command.ShFunction
      name: Network_ETH_CopyCurrentToStatic
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ETH_IP_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$ETH_IP')}
                          spids: [16847]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ETH_GATEWAY_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$ETH_GATEWAY')}
                          spids: [16851]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ETH_MASK_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$ETH_MASK')}
                          spids: [16855]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ETH_DNS_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$ETH_DNS')}
                          spids: [16859]
                        )
                      ]
                    )
                  ]
                  spids: [16830 16844]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Network_WIFI_CopyCurrentToStatic
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_IP_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WIFI_IP')}
                          spids: [16898]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WIFI_GATEWAY')}
                          spids: [16902]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_MASK_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WIFI_MASK')}
                          spids: [16906]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_DNS_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WIFI_DNS')}
                          spids: [16910]
                        )
                      ]
                    )
                  ]
                  spids: [16881 16895]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Network_Restart
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          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>})
              ]
            )
            (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'>}
                )
              ]
              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'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<killall>} {<dhclient>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<ifup>} {<eth> ($ Id.VSub_DollarName '$ETH_INDEX')})]
                  spids: [17079 17093]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<ifup>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')})
                    (C {<systemctl>} {<restart>} {<wifi_disable_powersave>})
                  ]
                  spids: [17108 17122]
                )
              ]
            )
            (C {<'/DietPi/dietpi/dietpi-services'>} {<start>})
            (C {<Network_GetData>})
          ]
        )
    )
    (command.ShFunction
      name: Network_ApplyChanges
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          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]
                )
              ]
            )
            (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>}
                                )
                            )
                          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]
                )
              ]
            )
            (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>}
                                )
                            )
                          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>}
                                )
                            )
                          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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_MODE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$ETH_MODE_TARGET')}
                  spids: [17380]
                )
              ]
            )
            (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>}
                                )
                            )
                          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>}
                                )
                            )
                          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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_MODE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$WIFI_MODE_TARGET')}
                  spids: [17473]
                )
              ]
            )
            (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>}
                                    )
                                )
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName '$ETH_MODE')}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                )
                              ]
                            )
                          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
                              )
                          ) <'s/^#dns-nameservers/dns-nameservers/g'>
                        )
                      } {<'/etc/network/interfaces'>}
                    )
                  ]
                  spids: [17501 17528]
                )
              ]
            )
            (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')}
                                    )
                                )
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName '$WIFI_MODE')}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                )
                              ]
                            )
                          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
                              )
                          ) <'s/^#dns-nameservers/dns-nameservers/g'>
                        )
                      } {<'/etc/network/interfaces'>}
                    )
                  ]
                  spids: [17582 17607]
                )
              ]
            )
            (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
                      )
                  ) <'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
                      )
                  ) <'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
                      )
                  ) <'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
                      )
                  ) <'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>}
                                )
                            )
                          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
                              )
                          ) <'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
                              )
                          ) <'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
                              )
                          ) <'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
                              )
                          ) <'s/dns-nameservers.*/dns-nameservers '> ($ Id.VSub_DollarName '$WIFI_DNS_STATIC') <'/'>
                        )
                      } {<'/etc/network/interfaces'>}
                    )
                  ]
                  spids: [17846 17860]
                )
              ]
            )
            (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>}
                                )
                            )
                          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'>}
                        )
                      ]
                    )
                    (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wificreds>} {<set>})
                  ]
                  spids: [18049 18063]
                )
              ]
            )
            (C {<Network_Restart>})
          ]
        )
    )
    (command.ShFunction
      name: Change_StaticIp
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [18222]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [18257]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ETH_IP_STATIC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [18278]
                                )
                              ]
                            )
                          ]
                          spids: [18261 18275]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [18306]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [18341]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WIFI_IP_STATIC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [18362]
                                )
                              ]
                            )
                          ]
                          spids: [18345 18359]
                        )
                      ]
                    )
                  ]
                  spids: [18289 18303]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_StaticGateway
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [18403]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [18438]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ETH_GATEWAY_STATIC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [18459]
                                )
                              ]
                            )
                          ]
                          spids: [18442 18456]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [18487]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [18522]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY_STATIC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [18543]
                                )
                              ]
                            )
                          ]
                          spids: [18526 18540]
                        )
                      ]
                    )
                  ]
                  spids: [18470 18484]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_StaticMask
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [18584]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [18619]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ETH_MASK_STATIC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [18640]
                                )
                              ]
                            )
                          ]
                          spids: [18623 18637]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [18668]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [18703]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WIFI_MASK_STATIC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [18724]
                                )
                              ]
                            )
                          ]
                          spids: [18707 18721]
                        )
                      ]
                    )
                  ]
                  spids: [18651 18665]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_StaticDns
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:current_value)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$ETH_DNS_STATIC')}
                          spids: [18782]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:current_value)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WIFI_DNS_STATIC')}
                          spids: [18807]
                        )
                      ]
                    )
                  ]
                  spids: [18790 18804]
                )
              ]
            )
            (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 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [18908]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [18968]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [19000]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [19039]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:return_value)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [19060]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [19043 19057]
                                )
                              ]
                            )
                          ]
                          spids: [18996 18997 19067 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:return_value)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [19074]
                                )
                              ]
                            )
                          ]
                          spids: [19070 19071 19078 -1]
                        )
                      ]
                    )
                  ]
                  spids: [18972 18986]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ETH_DNS_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$return_value')}
                          spids: [19123]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_DNS_STATIC)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$return_value')}
                          spids: [19148]
                        )
                      ]
                    )
                  ]
                  spids: [19131 19145]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_WifiSsid
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [19166]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [19201]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_SSID)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [19222]
                        )
                      ]
                    )
                  ]
                  spids: [19205 19219]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_WifiKey
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [19239]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [19274]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_KEY)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [19295]
                        )
                      ]
                    )
                  ]
                  spids: [19278 19292]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Change_WifiCountryCode
      body: 
        (BraceGroup
          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 _>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [{(DQ <US>)} {(DQ <'United States'>)}]
                      )
                    }
                  spids: [19339]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <JP>)} {(DQ <Japan>)}])}
                  spids: [19351]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <CN>)} {(DQ <China>)}])}
                  spids: [19363]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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 name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'Change WiFi country code'>)}
                  spids: [19397]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [19404]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [19464]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [19510]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [19545]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:wifi_country_code_target)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [19566]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [19549 19563]
                                )
                              ]
                            )
                          ]
                          spids: [19506 19507 19573 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:wifi_country_code_target)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                  spids: [19580]
                                )
                              ]
                            )
                          ]
                          spids: [19576 19577 19584 -1]
                        )
                      ]
                    )
                    (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 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
                                  )
                              )
                            }
                          spids: [19635]
                        )
                      ]
                    )
                    (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]
                        )
                      ]
                    )
                  ]
                  spids: [19479 19493]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Scan_Wifi
      body: 
        (BraceGroup
          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'>}
                    )
                  ]
                  do_fork: T
                )
              ]
              negated: F
            )
            (command.Simple
              words: [{<readarray>} {<wifi_ssid_array>}]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {<'/tmp/dietpi-config_temp'>}
                )
              ]
              do_fork: T
            )
            (C {<local>} {<Id.Lit_VarLike 'wifi_ssid_list='> (sh_array_literal left:<Id.Op_LParen _>)})
            (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
                        token: <Id.VSub_Name wifi_ssid_array>
                        prefix_op: (Id.VSub_Pound)
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      )
                    }
                )
              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 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
                                        token: <Id.VSub_Name wifi_ssid_array>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName '$i')}
                                          )
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [19858]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi-Config - Wifi SSID Scan'>)}
                  spids: [19879]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name wifi_ssid_list>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [19885]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [19940]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_SSID)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name wifi_ssid_array>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$OPTION')}
                                  )
                              )
                            }
                          spids: [19961]
                        )
                      ]
                    )
                    (C {<Change_WifiKey>})
                    (C {<Wifi_Reconnect>})
                  ]
                  spids: [19944 19958]
                )
              ]
            )
            (command.Simple
              words: [{<rm>} {<'/tmp/dietpi-config_temp'>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (C {<unset>} {<wifi_ssid_array>})
            (C {<unset>} {<wifi_ssid_list>})
          ]
        )
    )
    (command.ShFunction
      name: Wifi_Reconnect
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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 name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [20078]
                )
              ]
            )
            (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>}
                                )
                            )
                          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]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Ethernet_Reconnect
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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 name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [20182]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<clear>})
                    (C {<echo>} {<-e>} {(DQ <'Reconnecting Ethernet , please wait'>)})
                    (C {<Network_ApplyChanges>})
                  ]
                  spids: [20186 20200]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [20230]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INTERNET_URL)
          op: assign_op.Equal
          rhs: {(SQ <'http://mirrordirector.raspbian.org'>)}
          spids: [20237]
        )
      ]
    )
    (command.ShFunction
      name: Network_CheckInternetConnection
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20251]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE)
                          op: assign_op.Equal
                          rhs: {<2>}
                          spids: [20297]
                        )
                      ]
                    )
                  ]
                  spids: [20280 20294]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE)
                      op: assign_op.Equal
                      rhs: {<1>}
                      spids: [20307]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Network_GetData
      body: 
        (BraceGroup
          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 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
                          )
                      )
                    }
                  spids: [20352]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20386]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20420]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20454]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_INDEX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.network'>})
                      )
                    }
                  spids: [20489]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20501]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_HARDWARE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20522]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_CONNECTED)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20526]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_IP)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20530]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_GATEWAY)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20536]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_MASK)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20542]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_DNS)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20548]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_MODE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [20554]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$ETH_MODE')}
                  spids: [20558]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20563]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20597]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20631]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20665]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_INDEX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.network'>})
                      )
                    }
                  spids: [20700]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [20712]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_HARDWARE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20733]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_CONNECTED)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20737]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_IP)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20741]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20747]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_MASK)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20753]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_DNS)
                  op: assign_op.Equal
                  rhs: {(SQ <0.0.0.0>)}
                  spids: [20759]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_MODE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [20765]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$WIFI_MODE')}
                  spids: [20769]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_SSID)
                  op: assign_op.Equal
                  rhs: {(SQ <MySuperDooperWiFi>)}
                  spids: [20773]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_KEY)
                  op: assign_op.Equal
                  rhs: {(SQ <0123456789>)}
                  spids: [20779]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_BITRATE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20789]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20793]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_HOTSPOT)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [20801]
                )
              ]
            )
            (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 name:WIFI_HOTSPOT)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [20819]
                        )
                      ]
                    )
                  ]
                  spids: [20805 20816]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WIFI_COUNTRYCODE)
                  op: assign_op.Equal
                  rhs: {(SQ <GB>)}
                  spids: [20848]
                )
              ]
            )
            (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>})
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [20875]
                        )
                      ]
                    )
                  ]
                  spids: [20854 20871]
                )
              ]
            )
            (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 name:ETH_HARDWARE)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [20947]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [20956]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$ETH_MODE')}
                          spids: [20978]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [20987]
                        )
                      ]
                    )
                    (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>}
                                            )
                                        )
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$ETH_CONNECTED')}
                                              right: {<Id.Lit_Digits 1>}
                                            )
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21044]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21079]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21105]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21140]
                                )
                              ]
                            )
                          ]
                          spids: [21013 21040]
                        )
                      ]
                    )
                  ]
                  spids: [20927 20939]
                )
              ]
            )
            (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 name:WIFI_HARDWARE)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [21191]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [21200]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WIFI_MODE')}
                          spids: [21222]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                  )
                              )
                            }
                          spids: [21231]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                    )
                                )
                              )
                            }
                          spids: [21257]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                    )
                                )
                              )
                            }
                          spids: [21281]
                        )
                      ]
                    )
                    (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>}
                                            )
                                        )
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$WIFI_CONNECTED')}
                                              right: {<Id.Lit_Digits 1>}
                                            )
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21341]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21376]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21402]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21437]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21466]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [21501]
                                )
                              ]
                            )
                            (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 '$'>
                                                        }
                                                    )
                                                )
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_Less
                                                      left: 
                                                        {
                                                          ($ Id.VSub_DollarName 
'$WIFI_SIGNALSTRENGTH'
                                                          )
                                                        }
                                                      right: {<Id.Lit_Digits 0>}
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$WIFI_SIGNALSTRENGTH') 
                                                <' dBm'>
                                              )
                                            }
                                          spids: [21591]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [21553 21587]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$WIFI_SIGNALSTRENGTH') <' %'>)}
                                      spids: [21603]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [21310 21337]
                        )
                      ]
                    )
                  ]
                  spids: [21171 21183]
                )
              ]
            )
            (command.Simple
              words: [{<rm>} {<'/tmp/net_interfaces'>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_NetworkAdapters
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [21652]
                )
              ]
            )
            (C {<Network_GetData>})
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:eth_disabled_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Disabled>)}
                          spids: [21702]
                        )
                      ]
                    )
                  ]
                  spids: [21685 21699]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:wlan_disabled_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Disabled>)}
                          spids: [21737]
                        )
                      ]
                    )
                  ]
                  spids: [21720 21734]
                )
              ]
            )
            (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')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:eth_hardware_text)
                          op: assign_op.Equal
                          rhs: {(SQ <'Not Found'>)}
                          spids: [21774]
                        )
                      ]
                    )
                  ]
                  spids: [21759 21771]
                )
              ]
            )
            (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')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:wlan_hardware_text)
                          op: assign_op.Equal
                          rhs: {(SQ <'Not Found'>)}
                          spids: [21807]
                        )
                      ]
                    )
                  ]
                  spids: [21792 21804]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:eth_connected_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Connected>)}
                          spids: [21846]
                        )
                      ]
                    )
                  ]
                  spids: [21829 21843]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:wlan_connected_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Connected>)}
                          spids: [21881]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:wlan_connected_text)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'Wifi Hotspot Mode'>)}
                                  spids: [21904]
                                )
                              ]
                            )
                          ]
                          spids: [21887 21901]
                        )
                      ]
                    )
                  ]
                  spids: [21864 21878]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:Internet_connected_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Online>)}
                          spids: [21946]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:Internet_connected_text)
                          op: assign_op.Equal
                          rhs: {(SQ <'Offline / Failed'>)}
                          spids: [21969]
                        )
                      ]
                    )
                  ]
                  spids: [21952 21966]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [21983]
                )
              ]
            )
            (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 name:ipv6_enabled)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [22022]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ipv6_status_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Disabled>)}
                          spids: [22026]
                        )
                      ]
                    )
                  ]
                  spids: [22006 22019]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:proxy_state_text)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'Enabled | '> ($ Id.VSub_DollarName '$PROXY_ADDRESS') <':'> 
                                ($ Id.VSub_DollarName '$PROXY_PORT')
                              )
                            }
                          spids: [22069]
                        )
                      ]
                    )
                  ]
                  spids: [22052 22066]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROXY_ENABLED)
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [22085]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 name:onboard_wifi_enabled)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [22162]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          ]
                          spids: [22147 22158]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [22129 22143]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Network Options: Adapters'>)}
                  spids: [22241]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [22247]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [22325]
                )
              ]
            )
            (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>}
                                )
                            )
                          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')}
                                            )
                                          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>}
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [22409]
                                )
                              ]
                            )
                            (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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<8>}
                                  spids: [22444]
                                )
                              ]
                            )
                          ]
                          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')}
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [22521]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  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>}
                                                                )
                                                            )
                                                          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'>}
                                                                                  )
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  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]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  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'
                                                          >
                                                        }
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                            (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'>}
                                                )
                                              ]
                                              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'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [22718]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22526 22540]
                                        )
                                      ]
                                    )
                                  ]
                                  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 name:CHOICE)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '$?')}
                                      spids: [22778]
                                    )
                                  ]
                                )
                                (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>}
                                                    )
                                                )
                                              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>}
                                                            )
                                                        )
                                                      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'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                        )
                                        (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'>}
                                            )
                                          ]
                                          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'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                              spids: [22931]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [22783 22797]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<8>}
                                  spids: [22948]
                                )
                              ]
                            )
                          ]
                          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')}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(SQ <' Error: No Ethernet Hardware was found.'>)}
                                          spids: [22982]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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 name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<8>}
                                          spids: [23024]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [22966 22978]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: {($ Id.VSub_DollarName '$ETH_DISABLED')}
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [23092]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:ETH_DISABLED)
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                  spids: [23119]
                                                )
                                              ]
                                            )
                                            (C {<Network_ApplyChanges>})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                                  op: assign_op.Equal
                                                  rhs: {<9>}
                                                  spids: [23126]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23101 23115]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                              op: assign_op.Equal
                                              rhs: {<8>}
                                              spids: [23139]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23033 23043]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                      op: assign_op.Equal
                                      rhs: {<9>}
                                      spids: [23152]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          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')}
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [23233]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:WIFI_DISABLED)
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                  spids: [23256]
                                                )
                                              ]
                                            )
                                            (C {<Network_ApplyChanges>})
                                          ]
                                          spids: [23238 23252]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<8>}
                                          spids: [23272]
                                        )
                                      ]
                                    )
                                  ]
                                  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')}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(SQ <' Error: No Wifi Hardware was found. '>)}
                                          spids: [23297]
                                        )
                                      ]
                                    )
                                    (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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [23348]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:WIFI_DISABLED)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [23371]
                                                )
                                              ]
                                            )
                                            (C {<Network_ApplyChanges>})
                                          ]
                                          spids: [23353 23367]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<8>}
                                          spids: [23387]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23281 23293]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                      op: assign_op.Equal
                                      rhs: {<10>}
                                      spids: [23396]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [23165 23166 23405 -1]
                        )
                        (case_arm
                          pat_list: [{<Test>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [23418]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [23453]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INTERNET_URL)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [23475]
                                        )
                                      ]
                                    )
                                    (C {<Network_CheckInternetConnection>})
                                  ]
                                  spids: [23457 23471]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<8>}
                                  spids: [23491]
                                )
                              ]
                            )
                          ]
                          spids: [23409 23410 23496 -1]
                        )
                        (case_arm
                          pat_list: [{<Proxy>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<17>}
                                  spids: [23505]
                                )
                              ]
                            )
                          ]
                          spids: [23500 23501 23510 -1]
                        )
                      ]
                    )
                  ]
                  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>}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                              op: assign_op.Equal
                              rhs: {<8>}
                              spids: [23552]
                            )
                          ]
                        )
                        (C {<Menu_Exit>})
                      ]
                      spids: [23530 23544]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_NetworkAdapters_Ethernet
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [23583]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:mode_current)
                          op: assign_op.Equal
                          rhs: {(SQ <STATIC>)}
                          spids: [23617]
                        )
                      ]
                    )
                  ]
                  spids: [23600 23614]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:mode_target)
                          op: assign_op.Equal
                          rhs: {(SQ <STATIC>)}
                          spids: [23656]
                        )
                      ]
                    )
                  ]
                  spids: [23639 23653]
                )
              ]
            )
            (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 _>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Ethernet Network Options'>)}
                  spids: [23687]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.DParen
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: <Id.Lit_ArithVarLike whip_options_total>
                )
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                  ]
                  spids: [23717 23731]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.DParen
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: <Id.Lit_ArithVarLike whip_options_total>
                )
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.DParen
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: <Id.Lit_ArithVarLike whip_options_total>
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:whip_options_total)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WHIP_OPTIONS_MAX_DISPLAY')}
                          spids: [23912]
                        )
                      ]
                    )
                  ]
                  spids: [23895 23909]
                )
              ]
            )
            (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
                              )
                          )
                        }
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [23953]
                )
              ]
            )
            (C {<unset>} {<whiptail_menu_array>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [24033]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [24055]
                        )
                      ]
                    )
                    (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>
                                )
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [24099]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24082 24096]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<9>}
                                  spids: [24110]
                                )
                              ]
                            )
                          ]
                          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 name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [24162]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:ETH_DISABLED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [24187]
                                        )
                                      ]
                                    )
                                    (C {<Network_ApplyChanges>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<8>}
                                          spids: [24194]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24170 24184]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                      op: assign_op.Equal
                                      rhs: {<9>}
                                      spids: [24205]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [24117 24118 24212 -1]
                        )
                        (case_arm
                          pat_list: [{<Apply>}]
                          action: [
                            (C {<Ethernet_Reconnect>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<9>}
                                  spids: [24227]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<9>}
                                  spids: [24245]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<9>}
                                  spids: [24267]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<9>}
                                  spids: [24289]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<9>}
                                  spids: [24311]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<9>}
                                  spids: [24333]
                                )
                              ]
                            )
                          ]
                          spids: [24318 24321 24337 -1]
                        )
                      ]
                    )
                  ]
                  spids: [24037 24051]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HOTSPOT_SSID)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [24352]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HOTSPOT_CHANNEL)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [24357]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HOTSPOT_KEY)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [24362]
        )
      ]
    )
    (command.ShFunction
      name: WiFi_Monitor_Disable
      body: 
        (BraceGroup
          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]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: WiFi_Monitor_Enable
      body: 
        (BraceGroup
          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 '\\$'>
                        )
                        <ADAPTER>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'ping -I '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'ADAPTER -c 1 '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'URL_PING\n'>
                        <'if (( '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'? != 0 )); then\n'>
                        <'\n'>
                        <'G_DIETPI-NOTIFY 2 '>
                        <Id.Right_DoubleQuote '"'>
                        <'Detected connection loss: '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'ADAPTER. Reconnecting'>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'ifdown '>
                        <Id.Right_DoubleQuote '"'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <ADAPTER>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'sleep 1\n'>
                        <'ifup '>
                        <Id.Right_DoubleQuote '"'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <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 '\\$'>
                        )
                        <ADAPTER>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'\n'>
                        <'fi\n'>
                        <'\n'>
                        <'sleep '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'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'>}
                )
              ]
              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'>}
                )
              ]
              do_fork: T
            )
            (C {<systemctl>} {<daemon-reload>})
            (C {<systemctl>} {<enable>} {<dietpi-wifi-monitor.service>})
            (C {<systemctl>} {<start>} {<dietpi-wifi-monitor.service>})
          ]
        )
    )
    (command.ShFunction
      name: Menu_NetworkAdapters_Wifi
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [24581]
                )
              ]
            )
            (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 _>)}
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi - WiFi Hotspot'>)}
                          spids: [24629]
                        )
                      ]
                    )
                    (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 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
                                          )
                                      )
                                    }
                                  spids: [24659]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [24685]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [24711]
                                )
                              ]
                            )
                          ]
                          spids: [24640 24656]
                        )
                      ]
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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')}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:hotspot_active_state_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <': Disabled, select to turn on hotspot'>)}
                                  spids: [24802]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:hotspot_status_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Offline>)}
                                  spids: [24808]
                                )
                              ]
                            )
                          ]
                          spids: [24786 24798]
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [24611 24625]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                      op: assign_op.Equal
                      rhs: {(SQ <'DietPi - Wireless Network Options'>)}
                      spids: [24922]
                    )
                  ]
                )
                (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>}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:mode_current)
                              op: assign_op.Equal
                              rhs: {(SQ <STATIC>)}
                              spids: [24959]
                            )
                          ]
                        )
                      ]
                      spids: [24941 24955]
                    )
                  ]
                )
                (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>}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:mode_target)
                              op: assign_op.Equal
                              rhs: {(SQ <STATIC>)}
                              spids: [25000]
                            )
                          ]
                        )
                      ]
                      spids: [24982 24996]
                    )
                  ]
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.DParen
                  child: 
                    (arith_expr.UnaryAssign
                      op_id: Id.Node_PostDPlus
                      child: <Id.Lit_ArithVarLike whip_options_total>
                    )
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.DParen
                  child: 
                    (arith_expr.UnaryAssign
                      op_id: Id.Node_PostDPlus
                      child: <Id.Lit_ArithVarLike whip_options_total>
                    )
                )
                (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
                                              )
                                          )
                                        }
                                    )
                                )
                              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 name:WIFI_AUTO_RECONNECT_ACTIVE)
                              op: assign_op.Equal
                              rhs: {<0>}
                              spids: [25095]
                            )
                          ]
                        )
                        (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
                                                  )
                                              )
                                            }
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:WIFI_AUTO_RECONNECT_ACTIVE)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [25131]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:wifi_auto_reconnect_text)
                                      op: assign_op.Equal
                                      rhs: {(SQ <Enabled>)}
                                      spids: [25135]
                                    )
                                  ]
                                )
                              ]
                              spids: [25099 25127]
                            )
                          ]
                        )
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike whip_options_total>
                            )
                        )
                      ]
                      spids: [25050 25083]
                    )
                  ]
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.DParen
                  child: 
                    (arith_expr.UnaryAssign
                      op_id: Id.Node_PostDPlus
                      child: <Id.Lit_ArithVarLike whip_options_total>
                    )
                )
                (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>}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike whip_options_total>
                            )
                        )
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike whip_options_total>
                            )
                        )
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike whip_options_total>
                            )
                        )
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike whip_options_total>
                            )
                        )
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike whip_options_total>
                            )
                        )
                      ]
                      spids: [25196 25210]
                    )
                  ]
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.DParen
                  child: 
                    (arith_expr.UnaryAssign
                      op_id: Id.Node_PostDPlus
                      child: <Id.Lit_ArithVarLike whip_options_total>
                    )
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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]
                    )
                  ]
                )
              ]
            )
            (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 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]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike whip_options_total>
                        )
                    )
                  ]
                  spids: [25377 25394]
                )
              ]
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.DParen
                  child: 
                    (arith_expr.UnaryAssign
                      op_id: Id.Node_PostDPlus
                      child: <Id.Lit_ArithVarLike whip_options_total>
                    )
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.DParen
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: <Id.Lit_ArithVarLike whip_options_total>
                )
            )
            (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')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:whip_options_total)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$WHIP_OPTIONS_MAX_DISPLAY')}
                          spids: [25482]
                        )
                      ]
                    )
                  ]
                  spids: [25465 25479]
                )
              ]
            )
            (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
                              )
                          )
                        }
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [25523]
                )
              ]
            )
            (C {<unset>} {<whiptail_menu_array>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [25603]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [25625]
                        )
                      ]
                    )
                    (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'
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<WiFi_Monitor_Enable>})]
                                  spids: [25646 25658]
                                )
                              ]
                              else_action: [(C {<WiFi_Monitor_Disable>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [25682]
                                )
                              ]
                            )
                          ]
                          spids: [25639 25642 25687 -1]
                        )
                        (case_arm
                          pat_list: [{<Key>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [25694]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [25731]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:HOTSPOT_KEY)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [25752]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25735 25749]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [25763]
                                )
                              ]
                            )
                          ]
                          spids: [25690 25691 25767 -1]
                        )
                        (case_arm
                          pat_list: [{<SSID>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [25774]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [25809]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:HOTSPOT_SSID)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [25830]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25813 25827]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [25842]
                                )
                              ]
                            )
                          ]
                          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 _>
                                )
                              }
                            )
                            (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 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]
                                        )
                                      ]
                                    )
                                    (command.DParen
                                      child: 
                                        (arith_expr.BinaryAssign
                                          op_id: Id.Arith_PlusEqual
                                          left: <Id.Lit_ArithVarLike channel_mhz>
                                          right: {<Id.Lit_Digits 5>}
                                        )
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [25933]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [25987]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:HOTSPOT_CHANNEL)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [26015]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25998 26012]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26027]
                                )
                              ]
                            )
                          ]
                          spids: [25849 25850 26031 -1]
                        )
                        (case_arm
                          pat_list: [{<Country>}]
                          action: [
                            (C {<Change_WifiCountryCode>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26045]
                                )
                              ]
                            )
                          ]
                          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 name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [26097]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WIFI_DISABLED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [26123]
                                        )
                                      ]
                                    )
                                    (C {<WiFi_Monitor_Disable>})
                                    (C {<Network_ApplyChanges>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<8>}
                                          spids: [26134]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [26105 26119]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                      op: assign_op.Equal
                                      rhs: {<10>}
                                      spids: [26145]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [26052 26053 26152 -1]
                        )
                        (case_arm
                          pat_list: [{<Scan>}]
                          action: [
                            (C {<Scan_Wifi>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26166]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26190]
                                )
                              ]
                            )
                          ]
                          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>
                                )
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [26227]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [26210 26224]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26238]
                                )
                              ]
                            )
                          ]
                          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>}
                                                )
                                            )
                                          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>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26382]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26400]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26422]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26444]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26466]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26488]
                                )
                              ]
                            )
                          ]
                          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')}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<systemctl>} {<stop>} {<hostapd>})]
                                  spids: [26500 26510]
                                )
                              ]
                              else_action: [(C {<systemctl>} {<start>} {<hostapd>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [26542]
                                )
                              ]
                            )
                          ]
                          spids: [26495 26496 26547 -1]
                        )
                      ]
                    )
                  ]
                  spids: [25607 25621]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Tools
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [26572]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Tools'>)}
                  spids: [26577]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [26583]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [26648]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<12>}
                                  spids: [26685]
                                )
                              ]
                            )
                          ]
                          spids: [26680 26681 26690 -1]
                        )
                        (case_arm
                          pat_list: [{(SQ <'Stress Test'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<15>}
                                  spids: [26701]
                                )
                              ]
                            )
                          ]
                          spids: [26694 26697 26706 -1]
                        )
                      ]
                    )
                  ]
                  spids: [26652 26666]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPUBENCH_TIME)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26726]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPUBENCH_INT_MAX)
          op: assign_op.Equal
          rhs: {<1000000>}
          spids: [26732]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SD_WRITE)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26736]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SD_READ)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26742]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USB_WRITE)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26748]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USB_READ)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26754]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RAM_WRITE)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26760]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RAM_READ)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26766]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CUSTOM_WRITE)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26772]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CUSTOM_READ)
          op: assign_op.Equal
          rhs: {(SQ <'Not Tested'>)}
          spids: [26778]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_CUSTOM_MOUNT)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [26784]
        )
      ]
    )
    (command.ShFunction
      name: Run_FilesystemBenchmark
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:text_info_test_name)
                          op: assign_op.Equal
                          rhs: {(SQ <RootFS>)}
                          spids: [26886]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:benchmark_temp_file)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$HOME') <'/benchmark.file'>)}
                          spids: [26892]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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'>}
                                                          )
                                                      )
                                                    )
                                                  }
                                                )
                                                (C {<awk>} {(SQ <'{print $4}'>)})
                                              ]
                                              negated: F
                                            )
                                        )
                                      }
                                    right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')}
                                  )
                              )
                            }
                          spids: [26899]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:text_info_test_name)
                          op: assign_op.Equal
                          rhs: {(SQ <'USB harddrive'>)}
                          spids: [26961]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                    )
                                ) <'/benchmark.file'>
                              )
                            }
                          spids: [26967]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                            )
                                        )
                                      }
                                    right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')}
                                  )
                              )
                            }
                          spids: [26996]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:text_info_test_name)
                          op: assign_op.Equal
                          rhs: {(SQ <RAM>)}
                          spids: [27050]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:benchmark_temp_file)
                          op: assign_op.Equal
                          rhs: {(SQ <'/tmp/benchmark.file'>)}
                          spids: [27056]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                            )
                                        )
                                      }
                                    right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')}
                                  )
                              )
                            }
                          spids: [27062]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:text_info_test_name)
                          op: assign_op.Equal
                          rhs: {(SQ <Custom>)}
                          spids: [27116]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:benchmark_temp_file)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$FP_CUSTOM_MOUNT') <'/benchmark.file'>)}
                          spids: [27122]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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
                                            )
                                        )
                                      }
                                    right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')}
                                  )
                              )
                            }
                          spids: [27129]
                        )
                      ]
                    )
                  ]
                  spids: [27098 27112]
                )
              ]
            )
            (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')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:run_benchmark)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [27192]
                        )
                      ]
                    )
                    (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 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>}
                                  )
                                ]
                                do_fork: T
                              )
                          )
                        }
                      spids: [27241]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:CHOICE)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '$?')}
                      spids: [27282]
                    )
                  ]
                )
                (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>}
                                    )
                                )
                              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 '$'>
                                                    }
                                                )
                                            )
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Great
                                                  left: {($ Id.VSub_DollarName '$benchmark_filesize')}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                            )
                                          ]
                                        )
                                      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')
                                                        }
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:run_benchmark)
                                              op: assign_op.Equal
                                              rhs: {<0>}
                                              spids: [27367]
                                            )
                                          ]
                                        )
                                        (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')
                                                        }
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:run_benchmark)
                                              op: assign_op.Equal
                                              rhs: {<0>}
                                              spids: [27430]
                                            )
                                          ]
                                        )
                                        (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]
                                    )
                                  ]
                                )
                              ]
                              spids: [27308 27341]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:run_benchmark)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [27475]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                      spids: [27286 27300]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:run_benchmark)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [27492]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (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>}
                                )
                            )
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                              (C {<grep>} {(SQ <MB>)})
                                              (C {<awk>} {(SQ <'{print $8, $9}'>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [27569]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                              (C {<grep>} {(SQ <MB>)})
                                              (C {<awk>} {(SQ <'{print $10, $11}'>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [27641]
                                )
                              ]
                            )
                          ]
                          spids: [27623 27637]
                        )
                      ]
                    )
                    (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'>}
                        )
                      ]
                      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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                              (C {<grep>} {(SQ <MB>)})
                                              (C {<awk>} {(SQ <'{print $8, $9}'>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [27745]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                              (C {<grep>} {(SQ <MB>)})
                                              (C {<awk>} {(SQ <'{print $10, $11}'>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [27817]
                                )
                              ]
                            )
                          ]
                          spids: [27799 27813]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:SD_WRITE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$write_speed')}
                                  spids: [27897]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:SD_READ)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$read_speed')}
                                  spids: [27901]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:USB_WRITE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$write_speed')}
                                  spids: [27924]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:USB_READ)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$read_speed')}
                                  spids: [27928]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:RAM_WRITE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$write_speed')}
                                  spids: [27951]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:RAM_READ)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$read_speed')}
                                  spids: [27955]
                                )
                              ]
                            )
                          ]
                          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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CUSTOM_WRITE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$write_speed')}
                                  spids: [27978]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CUSTOM_READ)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$read_speed')}
                                  spids: [27982]
                                )
                              ]
                            )
                          ]
                          spids: [27960 27974]
                        )
                      ]
                    )
                  ]
                  spids: [27509 27523]
                )
              ]
            )
            (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'>}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: Run_CPUBenchmark
      body: 
        (BraceGroup
          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>})
                  ) <' 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 '\\$'>
                        )
                        <'(nproc --all)\n'>
                        <'int_split='>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'(('>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'target_max_int / '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'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 '\\$'>
                        )
                        <'cores; i++ ))\n'>
                        <'do\n'>
                        <'\n'>
                        <'    aEnd_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'i]='>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'(( ('>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'i + 1) * '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'int_split ))\n'>
                        <'    aStart_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'i]='>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'(( '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'{aEnd_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'i]} - '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'int_split ))\n'>
                        <'\n'>
                        <'    echo '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'{aStart_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'i]} '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'{aEnd_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'i]}\n'>
                        <'\n'>
                        <'done\n'>
                        <'\n'>
                        <'\n'>
                        <'Run_Bench()\n'>
                        <'{\n'>
                        <'\n'>
                        <'    while (( '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'{aStart_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'1]} < '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'{aEnd_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'1]} ))\n'>
                        <'    do\n'>
                        <'\n'>
                        <'        ((aStart_Int['>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'1]++))\n'>
                        <'\n'>
                        <'    done\n'>
                        <'\n'>
                        <'}\n'>
                        <'\n'>
                        <'#Launch benchmark threads\n'>
                        <'for (( i=0; i<'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'cores; i++ ))\n'>
                        <'do\n'>
                        <'\n'>
                        <'    Run_Bench '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'i &\n'>
                        <'\n'>
                        <'done\n'>
                        <'\n'>
                        <'#Wait for jobs to finish\n'>
                        <'for job in '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                        )
                        <'jobs -p'>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                        )
                        <'\n'>
                        <'do\n'>
                        <'    echo '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'job\n'>
                        <'    wait '>
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                        <'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'>}
                )
              ]
              do_fork: T
            )
            (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<'/tmp/dietpi-bench'>})
            (BraceGroup
              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'>}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [28241]
                )
              ]
            )
            (C {<'/DietPi/dietpi/dietpi-services'>} {<start>})
          ]
        )
    )
    (command.ShFunction
      name: Menu_FilesystemBenchmark
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [28287]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Benchmarks'>)}
                  spids: [28292]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [28298]
                )
              ]
            )
            (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 name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<12>}
                          spids: [28472]
                        )
                      ]
                    )
                  ]
                  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 name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<12>}
                          spids: [28498]
                        )
                      ]
                    )
                  ]
                  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
                                              )
                                          )
                                        }
                                    )
                                  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>}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<12>}
                          spids: [28598]
                        )
                      ]
                    )
                  ]
                  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 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'>})
                                )
                              )
                            }
                          spids: [28619]
                        )
                      ]
                    )
                    (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]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<12>}
                          spids: [28661]
                        )
                      ]
                    )
                  ]
                  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
                                              )
                                          )
                                        }
                                    )
                                  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>}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<12>}
                          spids: [28769]
                        )
                      ]
                    )
                  ]
                  spids: [28670 28673 28774 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Reset_Overclocking
      body: 
        (BraceGroup
          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>}
                                )
                            )
                          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>}
                                )
                            )
                          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>}
                                )
                            )
                          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
                                              )
                                          )
                                        }
                                    )
                                  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]
                        )
                      ]
                    )
                  ]
                  spids: [28908 28922]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [29048]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Warning_Overclocking
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'Warning! Continue with overclocking?'>)}
                  spids: [29063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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.ShFunction
      name: Menu_Overclock
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [29130]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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
                    )
                )
              }
            )
            (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
                    )
                )
              }
            )
            (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
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Overclocking'>)}
                  spids: [29244]
                )
              ]
            )
            (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
                                      )
                                  )
                                }
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [29310]
                        )
                      ]
                    )
                    (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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [29399]
                                )
                              ]
                            )
                          ]
                          spids: [29387 29388 29404 -1]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [29429]
                        )
                      ]
                    )
                    (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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [29548]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [29590]
                                )
                              ]
                            )
                          ]
                          spids: [29556 29557 29595 -1]
                        )
                        (case_arm
                          pat_list: [{<high>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [29605]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [29670]
                                )
                              ]
                            )
                          ]
                          spids: [29598 29599 29675 -1]
                        )
                        (case_arm
                          pat_list: [{<extreme>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [29685]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [29750]
                                )
                              ]
                            )
                          ]
                          spids: [29678 29679 29755 -1]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [29784]
                        )
                      ]
                    )
                    (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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [29903]
                                )
                              ]
                            )
                          ]
                          spids: [29891 29892 29908 -1]
                        )
                        (case_arm
                          pat_list: [{<low>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [29918]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [29972]
                                )
                              ]
                            )
                          ]
                          spids: [29911 29912 29977 -1]
                        )
                        (case_arm
                          pat_list: [{<med>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [29987]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [30052]
                                )
                              ]
                            )
                          ]
                          spids: [29980 29981 30057 -1]
                        )
                        (case_arm
                          pat_list: [{<extreme>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [30067]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [30132]
                                )
                              ]
                            )
                          ]
                          spids: [30060 30061 30137 -1]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [30166]
                        )
                      ]
                    )
                    (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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [30287]
                                )
                              ]
                            )
                          ]
                          spids: [30274 30275 30292 -1]
                        )
                        (case_arm
                          pat_list: [{<low>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [30304]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [30369]
                                )
                              ]
                            )
                          ]
                          spids: [30296 30297 30374 -1]
                        )
                        (case_arm
                          pat_list: [{<med>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [30386]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [30451]
                                )
                              ]
                            )
                          ]
                          spids: [30378 30379 30456 -1]
                        )
                        (case_arm
                          pat_list: [{<high>}]
                          action: [
                            (C {<Warning_Overclocking>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [30468]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [30533]
                                )
                              ]
                            )
                          ]
                          spids: [30460 30461 30538 -1]
                        )
                      ]
                    )
                  ]
                  spids: [30148 30162]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_AudioOptions
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [30564]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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]
                )
              ]
            )
            (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
                                      )
                                  )
                                }
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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]
                        )
                      ]
                    )
                  ]
                  spids: [30616 30642]
                )
              ]
            )
            (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>}
                                )
                            )
                          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
                            )
                        )
                      }
                    )
                    (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
                            )
                        )
                      }
                    )
                    (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')}
                                            )
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:psu_noise_reduction_enabled)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [30791]
                                )
                              ]
                            )
                          ]
                          spids: [30747 30775]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name 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]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [30667 30681]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Audio Options'>)}
                  spids: [30821]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                                    token: <Id.VSub_Name whiptail_menu_array>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [30827]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [30876]
                )
              ]
            )
            (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>}
                                )
                            )
                          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'
                                                      )
                                                    }
                                                )
                                            )
                                          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'>}
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<14>}
                                  spids: [31050]
                                )
                              ]
                            )
                          ]
                          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 name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'DietPi - Soundcards'>)}
                                  spids: [31076]
                                )
                              ]
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'whiptail_menu_array='> 
                                (sh_array_literal
                                  left: <Id.Op_LParen _>
                                )
                              }
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                    )
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (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
                                                                  )
                                                              )
                                                            }
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} 
                                              {<soundcard>} {<default>}
                                            )
                                          ]
                                          spids: [31228 31256]
                                        )
                                      ]
                                    )
                                    (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
                                                                            )
                                                                        )
                                                                      }
                                                                    )
                                                                    (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
                                                                            )
                                                                        )
                                                                      }
                                                                    )
                                                                    (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'>
                                                                              }
                                                                            )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.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
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [31436]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              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]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [31335 31352]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  ]
                                                  spids: [31295 31308]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [31193 31207]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (sh_array_literal
                                            left: <Id.Op_LParen _>
                                            words: [{(DQ <default>)} {(DQ <HDMI>)}]
                                          )
                                        }
                                      spids: [31507]
                                    )
                                  ]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                    )
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [{(DQ <h2-hdmi>)} {(DQ <HDMI>)}]
                                              )
                                            }
                                          spids: [31924]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                    )
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [{(DQ <s5pxx18-hdmi>)} {(DQ <HDMI>)}]
                                              )
                                            }
                                          spids: [32002]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32139 32153]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [32191]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [32246]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 name:REBOOT_REQUIRED)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [32283]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32256 32270]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<14>}
                                  spids: [32296]
                                )
                              ]
                            )
                          ]
                          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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<14>}
                                  spids: [32330]
                                )
                              ]
                            )
                          ]
                          spids: [32301 32318]
                        )
                      ]
                    )
                  ]
                  spids: [30887 30901]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STRESS_TEST_MODE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [32351]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STRESS_TEST_DURATION)
          op: assign_op.Equal
          rhs: {<60>}
          spids: [32358]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MIN)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [32362]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MAX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [32366]
        )
      ]
    )
    (command.ShFunction
      name: Menu_StressTest
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [32378]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:stress_test_mode_text)
                          op: assign_op.Equal
                          rhs: {(SQ <'CPU & RAM: (CPU, RAM)'>)}
                          spids: [32409]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:stress_test_mode_text)
                          op: assign_op.Equal
                          rhs: {(SQ <'Full: (CPU, DISK, RAM)'>)}
                          spids: [32434]
                        )
                      ]
                    )
                  ]
                  spids: [32416 32430]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Stress Test'>)}
                  spids: [32445]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [32451]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [32536]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [32579]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [32680]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:STRESS_TEST_DURATION)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [32702]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<15>}
                                          spids: [32706]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32684 32698]
                                )
                              ]
                            )
                          ]
                          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 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [32736]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [32817]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:STRESS_TEST_MODE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [32839]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<15>}
                                          spids: [32843]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32821 32835]
                                )
                              ]
                            )
                          ]
                          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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [32878 32892]
                                )
                              ]
                            )
                            (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>})
                                )
                              }
                            )
                            (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>})
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'cores='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<nproc>} {<--all>})
                                )
                              }
                            )
                            (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
                                              )
                                          )
                                        }
                                      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'>}
                                )
                              ]
                              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>}
                                                )
                                            )
                                          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>}
                                                )
                                            )
                                          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>}
                                                )
                                            )
                                          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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MIN)
                                  op: assign_op.Equal
                                  rhs: {<1000>}
                                  spids: [33192]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MAX)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [33196]
                                )
                              ]
                            )
                            (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>})
                                )
                              }
                            )
                            (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 '$'>
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:cpu_supports_temp)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [33243]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [33219 33239]
                                )
                              ]
                            )
                            (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:cpu_temp)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: (C {<G_OBTAIN_CPU_TEMP>})
                                              )
                                            }
                                          spids: [33296]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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>
                                                                  }
                                                                )
                                                            )
                                                          }
                                                      )
                                                  )
                                              )
                                            }
                                          spids: [33302]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {<-e>} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: (C {<date>})
                                          ) <' | '> ($ 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>})
                                            ) <' | '> ($ 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'))}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        {($ Id.VSub_DollarName '$cpu_supports_temp')}
                                                    )
                                                  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'
                                                                      )
                                                                    }
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: STRESS_TEST_RESULTS_TEMP_MAX
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$cpu_temp')}
                                                          spids: [33399]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [33381 33395]
                                                )
                                              ]
                                            )
                                            (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'
                                                                      )
                                                                    }
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: STRESS_TEST_RESULTS_TEMP_MIN
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$cpu_temp')}
                                                          spids: [33426]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [33408 33422]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [33367 33377]
                                        )
                                      ]
                                    )
                                    (C {<sleep>} {<1>})
                                    (command.DParen
                                      child: 
                                        (arith_expr.UnaryAssign
                                          op_id: Id.Node_PostDPlus
                                          child: <Id.Lit_ArithVarLike time_since_start>
                                        )
                                    )
                                  ]
                                )
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'end_time='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<date>})
                                )
                              }
                            )
                            (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>})
                                )
                              }
                            )
                            (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 name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<15>}
                                  spids: [33565]
                                )
                              ]
                            )
                          ]
                          spids: [32852 32869]
                        )
                      ]
                    )
                  ]
                  spids: [32540 32554]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Network_Nas_Misc
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [33593]
                )
              ]
            )
            (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
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                                        suffix_op: 
                                          (suffix_op.Unary
                                            tok: <Id.VTest_ColonEquals ':='>
                                            arg_word: {<0>}
                                          )
                                      )
                                    }
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:sambaclient_installed)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [33681]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:sambaclient_status)
                          op: assign_op.Equal
                          rhs: {(DQ <'Unable to connect and/or incorrect details'>)}
                          spids: [33685]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:sambaclient_menutext)
                          op: assign_op.Equal
                          rhs: {(DQ <'Input/Modify Details'>)}
                          spids: [33691]
                        )
                      ]
                    )
                    (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [33740]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [33766]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [33792]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          ]
                          spids: [33702 33732]
                        )
                      ]
                    )
                  ]
                  spids: [33656 33677]
                )
              ]
            )
            (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
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                        suffix_op: 
                                          (suffix_op.Unary
                                            tok: <Id.VTest_ColonEquals ':='>
                                            arg_word: {<0>}
                                          )
                                      )
                                    }
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:curlftpfs_installed)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [33889]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:curlftpfs_status)
                          op: assign_op.Equal
                          rhs: {(DQ <'Unable to connect and/or incorrect details'>)}
                          spids: [33893]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:curlftpfs_menutext)
                          op: assign_op.Equal
                          rhs: {(DQ <'Input/Modify Details'>)}
                          spids: [33899]
                        )
                      ]
                    )
                    (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:curlftpfs_status)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'/mnt/ftp_client | Connected'>)}
                                  spids: [33948]
                                )
                              ]
                            )
                          ]
                          spids: [33910 33940]
                        )
                      ]
                    )
                  ]
                  spids: [33864 33885]
                )
              ]
            )
            (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
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 67>})
                                        suffix_op: 
                                          (suffix_op.Unary
                                            tok: <Id.VTest_ColonEquals ':='>
                                            arg_word: {<0>}
                                          )
                                      )
                                    }
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:noip_installed)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [34014]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:noip_status)
                          op: assign_op.Equal
                          rhs: {(DQ <'Offline - Please Enter No-Ip Details'>)}
                          spids: [34018]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:noip_menutext)
                          op: assign_op.Equal
                          rhs: {(DQ <'Enter/Setup NoIp Details'>)}
                          spids: [34024]
                        )
                      ]
                    )
                    (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:noip_status)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'Online / Active'>)}
                                  spids: [34069]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:noip_menutext)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'Change NoIp Details'>)}
                                  spids: [34075]
                                )
                              ]
                            )
                          ]
                          spids: [34035 34065]
                        )
                      ]
                    )
                  ]
                  spids: [33989 34010]
                )
              ]
            )
            (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
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 110>})
                                        suffix_op: 
                                          (suffix_op.Unary
                                            tok: <Id.VTest_ColonEquals ':='>
                                            arg_word: {<0>}
                                          )
                                      )
                                    }
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:nfsclient_installed)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [34165]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:nfsclient_status)
                          op: assign_op.Equal
                          rhs: {(DQ <'Unable to connect and/or incorrect details'>)}
                          spids: [34169]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:nfsclient_menutext)
                          op: assign_op.Equal
                          rhs: {(DQ <'Input/Modify Details'>)}
                          spids: [34175]
                        )
                      ]
                    )
                    (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
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [34224]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [34250]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                          )
                                      )
                                    }
                                  spids: [34276]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                          ]
                          spids: [34186 34216]
                        )
                      ]
                    )
                  ]
                  spids: [34140 34161]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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 name:apt_mirror_current)
                          op: assign_op.Equal
                          rhs: {(SQ <'Unknown, no string from scrape'>)}
                          spids: [34367]
                        )
                      ]
                    )
                  ]
                  spids: [34348 34363]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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 name:ntpd_mirror_current)
                          op: assign_op.Equal
                          rhs: {(SQ <'Unknown, no string from scrape'>)}
                          spids: [34425]
                        )
                      ]
                    )
                  ]
                  spids: [34406 34421]
                )
              ]
            )
            (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
                    )
                )
              }
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:boot_wait_for_network_text)
                          op: assign_op.PlusEqual
                          rhs: {(SQ <Disabled>)}
                          spids: [34494]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:boot_wait_for_network_text)
                          op: assign_op.PlusEqual
                          rhs: {(SQ <'10 Seconds MAX (default)'>)}
                          spids: [34519]
                        )
                      ]
                    )
                  ]
                  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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:boot_wait_for_network_text)
                          op: assign_op.PlusEqual
                          rhs: {(SQ <'Infinite wait'>)}
                          spids: [34544]
                        )
                      ]
                    )
                  ]
                  spids: [34526 34540]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Network Options: NAS/Misc'>)}
                  spids: [34554]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [34560]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [34693]
                )
              ]
            )
            (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>}
                                )
                            )
                          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 _>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_menu_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [{(SQ <0>)} {(SQ <': Disabled'>)}]
                                      )
                                    }
                                  spids: [34743]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [34780]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [34840]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<16>}
                                          spids: [34879]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [34844 34858]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [34936 34950]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [35112]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [35172]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          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 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>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                      )
                                                    }
                                                  spids: [35204]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [35241]
                                                )
                                              ]
                                            )
                                            (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>}
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:return_value)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                                          spids: [35262]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [35245 35259]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [35200 35201 35269 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:return_value)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$OPTION')}
                                                  spids: [35276]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [35272 35273 35280 -1]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  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]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35176 35190]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<16>}
                                  spids: [35377]
                                )
                              ]
                            )
                            (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 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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 '\\"'>
                                                  ) <'http://www.pool.ntp.org/zone/@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                )
                                              }
                                              {<--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
                                                    token: <Id.VSub_Name whiptail_menu_array>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [35525]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [35590]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:return_value)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [35612]
                                        )
                                      ]
                                    )
                                    (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 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>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                      )
                                                    }
                                                  spids: [35630]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [35667]
                                                )
                                              ]
                                            )
                                            (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>}
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:return_value)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                                          spids: [35689]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [35671 35685]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [35625 35626 35698 -1]
                                        )
                                      ]
                                    )
                                    (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
                                            )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                          op: assign_op.Equal
                                          rhs: {<16>}
                                          spids: [35750]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35594 35608]
                                )
                              ]
                            )
                            (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')}
                                                )
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [35843]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<110>})
                                          ]
                                          spids: [35847 35861]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35784 35796]
                                )
                              ]
                              else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_nfsclient'>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<16>}
                                  spids: [35897]
                                )
                              ]
                            )
                          ]
                          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')}
                                                )
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [35974]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<1>})
                                          ]
                                          spids: [35978 35992]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [35915 35927]
                                )
                              ]
                              else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_smbclient'>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<16>}
                                  spids: [36028]
                                )
                              ]
                            )
                          ]
                          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')}
                                                )
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [36103]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<2>})
                                          ]
                                          spids: [36107 36121]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [36044 36056]
                                )
                              ]
                              else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_curlftpfs'>})]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<16>}
                                  spids: [36157]
                                )
                              ]
                            )
                          ]
                          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')}
                                                )
                                            )
                                          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 name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [36240]
                                        )
                                      ]
                                    )
                                    (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>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<67>})
                                          ]
                                          spids: [36244 36258]
                                        )
                                      ]
                                    )
                                  ]
                                  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>})
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<16>}
                                  spids: [36322]
                                )
                              ]
                            )
                          ]
                          spids: [36164 36165 36326 -1]
                        )
                      ]
                    )
                  ]
                  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>}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                              op: assign_op.Equal
                              rhs: {<16>}
                              spids: [36366]
                            )
                          ]
                        )
                        (C {<Menu_Exit>})
                      ]
                      spids: [36345 36359]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROXY_ENABLED)
          op: assign_op.Equal
          rhs: {<-1>}
          spids: [36384]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROXY_ADDRESS)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [36388]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROXY_PORT)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [36393]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROXY_USERNAME)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [36398]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROXY_PASSWORD)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [36403]
        )
      ]
    )
    (command.ShFunction
      name: Load_Proxy_Vars
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [36420]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [36446]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [36472]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [36498]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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
                          )
                      )
                    }
                  spids: [36524]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_NetworkAdapters_Proxy
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [36566]
                )
              ]
            )
            (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>}
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Load_Proxy_Vars>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:proxy_state_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Disabled>)}
                          spids: [36598]
                        )
                      ]
                    )
                    (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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:proxy_state_text)
                                  op: assign_op.Equal
                                  rhs: {(SQ <Enabled>)}
                                  spids: [36621]
                                )
                              ]
                            )
                          ]
                          spids: [36604 36618]
                        )
                      ]
                    )
                  ]
                  spids: [36575 36590]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:proxy_state_text_new)
                  op: assign_op.Equal
                  rhs: {(SQ <No>)}
                  spids: [36634]
                )
              ]
            )
            (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>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:proxy_state_text_new)
                          op: assign_op.Equal
                          rhs: {(SQ <Yes>)}
                          spids: [36657]
                        )
                      ]
                    )
                  ]
                  spids: [36640 36654]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Proxy Network Options'>)}
                  spids: [36667]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [36673]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [36796]
                )
              ]
            )
            (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>}
                                )
                            )
                          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>
                                )
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:PROXY_ENABLED)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [36854]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [36837 36851]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<17>}
                                  spids: [36866]
                                )
                              ]
                            )
                          ]
                          spids: [36826 36827 36870 -1]
                        )
                        (case_arm
                          pat_list: [{<Address>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [36877]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [36914]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:PROXY_ADDRESS)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [36935]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [36918 36932]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<17>}
                                  spids: [36947]
                                )
                              ]
                            )
                          ]
                          spids: [36873 36874 36951 -1]
                        )
                        (case_arm
                          pat_list: [{<Port>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [36958]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [36995]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:PROXY_PORT)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [37016]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [36999 37013]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<17>}
                                  spids: [37028]
                                )
                              ]
                            )
                          ]
                          spids: [36954 36955 37032 -1]
                        )
                        (case_arm
                          pat_list: [{<Username>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [37039]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [37078]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:PROXY_USERNAME)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [37099]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37082 37096]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<17>}
                                  spids: [37111]
                                )
                              ]
                            )
                          ]
                          spids: [37035 37036 37115 -1]
                        )
                        (case_arm
                          pat_list: [{<Password>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [37122]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [37161]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:PROXY_PASSWORD)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [37182]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37165 37179]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<17>}
                                  spids: [37194]
                                )
                              ]
                            )
                          ]
                          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>}
                                                )
                                            )
                                          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'>}
                                                )
                                              ]
                                              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'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37310 37324]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [37418]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Proxy: Reboot required'>)}
                                  spids: [37423]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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]
                                )
                              ]
                            )
                            (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 name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [37474]
                                )
                              ]
                            )
                            (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>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [(C {<reboot>})]
                                  spids: [37478 37492]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:PROXY_ENABLED)
                                  op: assign_op.Equal
                                  rhs: {<-1>}
                                  spids: [37506]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<17>}
                                  spids: [37515]
                                )
                              ]
                            )
                          ]
                          spids: [37201 37202 37519 -1]
                        )
                      ]
                    )
                  ]
                  spids: [36800 36814]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:PROXY_ENABLED)
                      op: assign_op.Equal
                      rhs: {<-1>}
                      spids: [37533]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (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>}
                        )
                    )
                  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>}
                                )
                            )
                        )
                      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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  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>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_NetworkAdapters_Proxy>})]
                          spids: [37945 37959]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          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 '>
            )
          }
        )
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
  ]
)