(BraceGroup
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[71])]
      spids: [71]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_EqualTilde
                      left: {($ VSub_Number '$1')}
                      right: 
                        {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') 
                          (Lit_Other '+') (Lit_Other '$')
                        }
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INPUT)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [98]
                )
              ]
              spids: [98]
            )
          ]
          spids: [16777215 95]
        )
      ]
      spids: [16777215 102]
    )
    (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)})
    (C {(G_CHECK_ROOT_USER)})
    (C {(G_CHECK_ROOTFS_RW)})
    (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Cleaner>)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_TEMP)
          op: Equal
          rhs: {(DQ (/tmp/.dietpi-cleaner))}
          spids: [146]
        )
      ]
      spids: [146]
    )
    (FuncDef
      name: Banner_Cleaning
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') (n) (Lit_Other '\\') (n))})
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') 
                  (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                  ) (Lit_Other '\\') ('e[0m') (Lit_Other '\\') (n) (Lit_Other '\\') ('e[1mDietPi-Cleaner') (Lit_Other '\\') 
                  ('e[0m') (Lit_Other '\\') ('n - ') ($ VSub_Name '$INFO_CLEAN_NAME') (Lit_Other '\\') (n) (Lit_Other '\\') 
                  (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                  ) (Lit_Other '\\') ('e[0m')
                )
              }
            )
          ]
          spids: [168]
        )
      spids: [165 168]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_BACKTITLE)
          op: Equal
          rhs: {(SQ <'- DietPi-Cleaner -'>)}
          spids: [232]
        )
      ]
      spids: [232]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_TITLE)
          op: Equal
          rhs: {($ VSub_Name '$WHIP_BACKTITLE')}
          spids: [238]
        )
      ]
      spids: [238]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_QUESTION) op:Equal rhs:{(0)} spids:[242])]
      spids: [242]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[246])]
      spids: [246]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[250])]
      spids: [250]
    )
    (FuncDef
      name: Menu_Exit
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <'Exit DietPi-Cleaner?'>)}
                  spids: [261]
                )
              ]
              spids: [261]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_QUESTION)
                  op: Equal
                  rhs: {(SQ <'Exit DietPi-Cleaner?'>)}
                  spids: [267]
                )
              ]
              spids: [267]
            )
            (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} 
              {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} 
              {(DQ (Back))} {(--defaultno)} {(9)} {(55)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [312]
                )
              ]
              spids: [312]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [318 327]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARGETMENUID)
                          op: Equal
                          rhs: {(-1)}
                          spids: [337]
                        )
                      ]
                      spids: [337]
                    )
                  ]
                  spids: [16777215 330]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGETMENUID)
                      op: Equal
                      rhs: {(0)}
                      spids: [348]
                    )
                  ]
                  spids: [348]
                )
              ]
              spids: [341 352]
            )
          ]
          spids: [258]
        )
      spids: [255 258]
    )
    (FuncDef
      name: Menu_Main
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {($ VSub_Name '$WHIP_BACKTITLE')}
                  spids: [370]
                )
              ]
              spids: [370]
            )
            (C {(Update_Space_Used)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[383])]
              spids: [383]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_QUESTION)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('Free up used space and system resources:') (Lit_Other '\\') 
                        ('n - RootFS usage current = ') ($ VSub_Name '$ROOT_SPACE_USED_CURRENT') (' MB') (Lit_Other '\\') ('n - RootFS space cleared = ') 
                        ($ VSub_Name '$ROOT_SPACE_FREE_DELTA') (' MB')
                      )
                    }
                  spids: [387]
                )
              ]
              spids: [387]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(--menu)}
                                  {(DQ ($ VSub_Name '$WHIP_QUESTION'))}
                                  {(--cancel-button)}
                                  {(DQ (Exit))}
                                  {(15)}
                                  {(75)}
                                  {(5)}
                                  {(DQ (Help))}
                                  {(DQ ('What does DietPi-Cleaner do?'))}
                                  {(DQ (Cleaners))}
                                  {(DQ ('Control which cleaners are enabled.'))}
                                  {(DQ (' - Files'))}
                                  {(DQ ('Set file cleaner options.'))}
                                  {(DQ (Test))}
                                  {
                                    (DQ 
                                      (
'Simulate the cleaning process, without modifying any data.'
                                      )
                                    )
                                  }
                                  {(DQ (Run))}
                                  {(DQ ('Run enabled cleaners.'))}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [403 494]
                      )
                    }
                  spids: [402]
                )
              ]
              spids: [402]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [498]
                )
              ]
              spids: [498]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [504 513]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Help)}]
                          action: [
                            (C {(whiptail)} {(--title)} {(DQ ('DietPi-Cleaner Help'))} {(--msgbox)} 
                              {
                                (DQ 
                                  (
'DietPi-Cleaner is a program that allows you to remove unwanted junk from your DietPi system, freeing up filesystem space in the process.'
                                  ) (Lit_Other '\\') (n) (Lit_Other '\\') 
                                  (
'nSimply enable the cleaners you require, then select Test to see what will happen, without modifying your system.'
                                  ) (Lit_Other '\\') ('nOnce your satisfied with the Test results, select Run to clean your system.') 
                                  (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information:') (Lit_Other '\\') 
                                  ('n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=623#p623')
                                )
                              } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(16)} {(75)}
                            )
                          ]
                          spids: [528 529 569 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ (' - Files'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(2)}
                                  spids: [578]
                                )
                              ]
                              spids: [578]
                            )
                          ]
                          spids: [572 575 582 16777215]
                        )
                        (case_arm
                          pat_list: [{(Cleaners)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [589]
                                )
                              ]
                              spids: [589]
                            )
                          ]
                          spids: [585 586 593 16777215]
                        )
                        (case_arm
                          pat_list: [{(Test)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:DRY_RUN)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [604]
                                )
                              ]
                              spids: [604]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:at_least_one_cleaner_is_enabled)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [614]
                                )
                              ]
                              spids: [612]
                            )
                            (ForExpr
                              init: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:i)
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                              cond: 
                                (ArithBinary
                                  op_id: Arith_Less
                                  left: (ArithVarRef name:i)
                                  right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                                )
                              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: 
                                                        (ArithWord
                                                          w: 
                                                            {
                                                              (BracedVarSub
                                                                token: <VSub_Name aEnabledCleaners>
                                                                bracket_op: 
                                                                  (ArrayIndex
                                                                    expr: 
                                                                      (ArithWord
                                                                        w: {($ VSub_Name '$i')}
                                                                      )
                                                                  )
                                                                spids: [644 649]
                                                              )
                                                            }
                                                        )
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [642 656]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:at_least_one_cleaner_is_enabled)
                                                  op: Equal
                                                  rhs: {(1)}
                                                  spids: [662]
                                                )
                                              ]
                                              spids: [662]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [16777215 659]
                                        )
                                      ]
                                      spids: [16777215 669]
                                    )
                                  ]
                                  spids: [637 672]
                                )
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      ($ VSub_Name '$at_least_one_cleaner_is_enabled')
                                                    }
                                                )
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          spids: [678 687]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(whiptail)} {(--title)} {(DQ ('Run DietPi-Cleaner?'))} 
                                      {(--yesno)} 
                                      {
                                        (DQ 
                                          (
'DietPi-Cleaner will now simulate your enabled cleaners.'
                                          ) (Lit_Other '\\') (n) (Lit_Other '\\') ('n(Notice): No data will be modified.') (Lit_Other '\\') (n) 
                                          (Lit_Other '\\') ('nContinue with test run?')
                                        )
                                      } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--defaultno)} {(12)} {(70)}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:CHOICE)
                                          op: Equal
                                          rhs: {($ VSub_QMark '$?')}
                                          spids: [732]
                                        )
                                      ]
                                      spids: [732]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                      right: (ArithWord w:{(Lit_Digits 0)})
                                                    )
                                                  spids: [738 747]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [(C {(Run_Cleaners)})]
                                          spids: [16777215 750]
                                        )
                                      ]
                                      spids: [16777215 756]
                                    )
                                  ]
                                  spids: [16777215 690]
                                )
                              ]
                              else_action: [
                                (C {(whiptail)} {(--title)} {(DQ ('No cleaner jobs enabled'))} 
                                  {(--msgbox)} 
                                  {
                                    (DQ 
                                      (
'DietPi-Cleaner could not be run as there are no enabled cleaners. Please go to cleaners, then select which you would like to enable.'
                                      )
                                    )
                                  } {(10)} {(70)}
                                )
                              ]
                              spids: [759 781]
                            )
                          ]
                          spids: [596 597 784 16777215]
                        )
                        (case_arm
                          pat_list: [{(Run)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:DRY_RUN)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [795]
                                )
                              ]
                              spids: [795]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:at_least_one_cleaner_is_enabled)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [805]
                                )
                              ]
                              spids: [803]
                            )
                            (ForExpr
                              init: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:i)
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                              cond: 
                                (ArithBinary
                                  op_id: Arith_Less
                                  left: (ArithVarRef name:i)
                                  right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                                )
                              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: 
                                                        (ArithWord
                                                          w: 
                                                            {
                                                              (BracedVarSub
                                                                token: <VSub_Name aEnabledCleaners>
                                                                bracket_op: 
                                                                  (ArrayIndex
                                                                    expr: 
                                                                      (ArithWord
                                                                        w: {($ VSub_Name '$i')}
                                                                      )
                                                                  )
                                                                spids: [835 840]
                                                              )
                                                            }
                                                        )
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [833 847]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:at_least_one_cleaner_is_enabled)
                                                  op: Equal
                                                  rhs: {(1)}
                                                  spids: [853]
                                                )
                                              ]
                                              spids: [853]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [16777215 850]
                                        )
                                      ]
                                      spids: [16777215 860]
                                    )
                                  ]
                                  spids: [828 863]
                                )
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      ($ VSub_Name '$at_least_one_cleaner_is_enabled')
                                                    }
                                                )
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          spids: [869 878]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(whiptail)} {(--title)} {(DQ ('Run DietPi-Cleaner?'))} 
                                      {(--yesno)} 
                                      {
                                        (DQ ('DietPi-Cleaner will now run your enabled cleaners.') 
                                          (Lit_Other '\\') (n) (Lit_Other '\\') 
                                          (
'n(Notice): If you are unsure what this program will do, I would recommend creating a backup with dietpi-backup before proceeding.'
                                          ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nWould you like to continue and start the cleaning process?')
                                        )
                                      } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--defaultno)} {(13)} {(70)}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:CHOICE)
                                          op: Equal
                                          rhs: {($ VSub_QMark '$?')}
                                          spids: [923]
                                        )
                                      ]
                                      spids: [923]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                      right: (ArithWord w:{(Lit_Digits 0)})
                                                    )
                                                  spids: [929 938]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [(C {(Run_Cleaners)})]
                                          spids: [16777215 941]
                                        )
                                      ]
                                      spids: [16777215 947]
                                    )
                                  ]
                                  spids: [16777215 881]
                                )
                              ]
                              else_action: [
                                (C {(whiptail)} {(--title)} {(DQ ('No cleaner jobs enabled'))} 
                                  {(--msgbox)} 
                                  {
                                    (DQ 
                                      (
'DietPi-Cleaner could not be run as there are no enabled cleaners. Please go to cleaners, then select which you would like to enable.'
                                      )
                                    )
                                  } {(10)} {(70)}
                                )
                              ]
                              spids: [950 972]
                            )
                          ]
                          spids: [787 788 975 16777215]
                        )
                      ]
                      spids: [519 525 978]
                    )
                  ]
                  spids: [16777215 516]
                )
              ]
              else_action: [(C {(Menu_Exit)})]
              spids: [981 987]
            )
          ]
          spids: [366]
        )
      spids: [363 366]
    )
    (FuncDef
      name: Menu_Cleaners
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[1010])]
              spids: [1010]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aWhiptailLine)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [1021]
                )
              ]
              spids: [1019]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OnOff_Status)
                  op: Equal
                  rhs: {(DQ (on))}
                  spids: [1028]
                )
              ]
              spids: [1026]
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:OnOff_Status)
                          op: Equal
                          rhs: {(DQ (on))}
                          spids: [1060]
                        )
                      ]
                      spids: [1060]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithWord
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name aEnabledCleaners>
                                                bracket_op: 
                                                  (ArrayIndex
                                                    expr: (ArithWord w:{($ VSub_Name '$i')})
                                                  )
                                                spids: [1070 1075]
                                              )
                                            }
                                        )
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  spids: [1068 1082]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OnOff_Status)
                                  op: Equal
                                  rhs: {(DQ (off))}
                                  spids: [1088]
                                )
                              ]
                              spids: [1088]
                            )
                          ]
                          spids: [16777215 1085]
                        )
                      ]
                      spids: [16777215 1094]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$i')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  spids: [1104 1113]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aWhiptailLine)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(DQ ($ VSub_Name '$i') (' '))}
                                          {
                                            (DQ 
                                              (
'Dev - Uninstalls all dev packages (eg: git, lib123-dev).'
                                              )
                                            )
                                          }
                                          {(DQ ($ VSub_Name '$OnOff_Status'))}
                                        ]
                                      )
                                    }
                                  spids: [1119]
                                )
                              ]
                              spids: [1119]
                            )
                          ]
                          spids: [16777215 1116]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$i')})
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [1138 1147]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aWhiptailLine)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(DQ ($ VSub_Name '$i') (' '))}
                                          {(DQ ('Manpages - Removes offline documentation.'))}
                                          {(DQ ($ VSub_Name '$OnOff_Status'))}
                                        ]
                                      )
                                    }
                                  spids: [1153]
                                )
                              ]
                              spids: [1153]
                            )
                          ]
                          spids: [1136 1150]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$i')})
                                      right: (ArithWord w:{(Lit_Digits 2)})
                                    )
                                  spids: [1172 1181]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aWhiptailLine)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(DQ ($ VSub_Name '$i') (' '))}
                                          {
                                            (DQ 
                                              (
'Files - Scan and remove files matching user include list.'
                                              )
                                            )
                                          }
                                          {(DQ ($ VSub_Name '$OnOff_Status'))}
                                        ]
                                      )
                                    }
                                  spids: [1187]
                                )
                              ]
                              spids: [1187]
                            )
                          ]
                          spids: [1170 1184]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$i')})
                                      right: (ArithWord w:{(Lit_Digits 3)})
                                    )
                                  spids: [1206 1215]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aWhiptailLine)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(DQ ($ VSub_Name '$i') (' '))}
                                          {(DQ ('Logs - Clears the log file directory (/var/log).'))}
                                          {(DQ ($ VSub_Name '$OnOff_Status'))}
                                        ]
                                      )
                                    }
                                  spids: [1221]
                                )
                              ]
                              spids: [1221]
                            )
                          ]
                          spids: [1204 1218]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$i')})
                                      right: (ArithWord w:{(Lit_Digits 4)})
                                    )
                                  spids: [1240 1249]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aWhiptailLine)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(DQ ($ VSub_Name '$i') (' '))}
                                          {
                                            (DQ 
                                              (
'Apt - Clears the apt cache and runs a fresh update.'
                                              )
                                            )
                                          }
                                          {(DQ ($ VSub_Name '$OnOff_Status'))}
                                        ]
                                      )
                                    }
                                  spids: [1255]
                                )
                              ]
                              spids: [1255]
                            )
                          ]
                          spids: [1238 1252]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aWhiptailLine)
                              op: PlusEqual
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {(DQ ('New '))}
                                      {(DQ (Unknown))}
                                      {(DQ ($ VSub_Name '$OnOff_Status'))}
                                    ]
                                  )
                                }
                              spids: [1275]
                            )
                          ]
                          spids: [1275]
                        )
                      ]
                      spids: [1272 1291]
                    )
                  ]
                  spids: [1053 1295]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <'- Options : Cleaner Selection -'>)}
                  spids: [1299]
                )
              ]
              spids: [1299]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_QUESTION)
                  op: Equal
                  rhs: {(SQ <'Please use the spacebar to toggle which cleaners are enabled.'>)}
                  spids: [1305]
                )
              ]
              spids: [1305]
            )
            (SimpleCommand
              words: [
                {(whiptail)}
                {(--title)}
                {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                {(--checklist)}
                {(DQ ($ VSub_Name '$WHIP_QUESTION'))}
                {(--backtitle)}
                {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                {(--separate-output)}
                {(14)}
                {(75)}
                {(5)}
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name aWhiptailLine>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [1340 1345]
                    )
                  )
                }
              ]
              redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(DQ ($ VSub_Name '$FP_TEMP'))})]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1355]
                )
              ]
              spids: [1355]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [1362 1371]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ForExpr
                      init: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                      cond: 
                        (ArithBinary
                          op_id: Arith_Less
                          left: (ArithVarRef name:i)
                          right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                        )
                      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                      body: 
                        (DoGroup
                          children: [
                            (C 
                              {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') 
                                (Lit_Other '=') (0)
                              }
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (Pipeline
                                                                children: [
                                                                  (C {(cat)} 
                                                                    {(DQ ($ VSub_Name '$FP_TEMP'))}
                                                                  )
                                                                  (C {(grep)} {(-ci)} {(-m1)} 
                                                                    {(DQ ($ VSub_Name '$i') (' '))}
                                                                  )
                                                                ]
                                                                negated: F
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub '$('>
                                                        spids: [1412 1431]
                                                      )
                                                    }
                                                )
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          spids: [1410 1438]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C 
                                      {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') 
                                        (Lit_Other ']') (Lit_Other '=') (1)
                                      }
                                    )
                                  ]
                                  spids: [16777215 1441]
                                )
                              ]
                              spids: [16777215 1452]
                            )
                          ]
                          spids: [1397 1456]
                        )
                    )
                  ]
                  spids: [16777215 1374]
                )
              ]
              spids: [16777215 1460]
            )
            (SimpleCommand
              words: [{(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (C {(unset)} {(aWhiptailLine)})
          ]
          spids: [1002]
        )
      spids: [999 1002]
    )
    (FuncDef
      name: Menu_Options_Files
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[1509])]
              spids: [1509]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:option_1_text)
                  op: Equal
                  rhs: {(DQ ('Include mount directory (/mnt/*) during file scan'))}
                  spids: [1516]
                )
              ]
              spids: [1514]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:include_mnt_status)
                  op: Equal
                  rhs: {(DQ (Disabled))}
                  spids: [1524]
                )
              ]
              spids: [1522]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [1532 1541]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:include_mnt_status)
                          op: Equal
                          rhs: {(DQ (Enabled))}
                          spids: [1547]
                        )
                      ]
                      spids: [1547]
                    )
                  ]
                  spids: [16777215 1544]
                )
              ]
              spids: [16777215 1553]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:option_2_text)
                  op: Equal
                  rhs: {(DQ ('Modify filenames/extensions to include during scan.'))}
                  spids: [1559]
                )
              ]
              spids: [1557]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_QUESTION)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('Files: Cleaner options.') (Lit_Other '\\') 
                        ("n(NB) The cleaner named 'Files' must be enabled for this to work.")
                      )
                    }
                  spids: [1566]
                )
              ]
              spids: [1566]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <'- Files: Cleaner options -'>)}
                  spids: [1574]
                )
              ]
              spids: [1574]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(--menu)}
                                  {(DQ ($ VSub_Name '$WHIP_QUESTION'))}
                                  {(--cancel-button)}
                                  {(DQ (Exit))}
                                  {(12)}
                                  {(68)}
                                  {(2)}
                                  {(DQ ($ VSub_Name '$option_1_text'))}
                                  {(DQ (': ') ($ VSub_Name '$include_mnt_status'))}
                                  {(DQ ($ VSub_Name '$option_2_text'))}
                                  {(DQ )}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1582 1643]
                      )
                    }
                  spids: [1581]
                )
              ]
              spids: [1581]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1647]
                )
              ]
              spids: [1647]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [1653 1662]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ ($ VSub_Name '$option_1_text'))}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')})
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          spids: [1685 1694]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:INCLUDE_MNT)
                                          op: Equal
                                          rhs: {(0)}
                                          spids: [1700]
                                        )
                                      ]
                                      spids: [1700]
                                    )
                                  ]
                                  spids: [16777215 1697]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:INCLUDE_MNT)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [1707]
                                    )
                                  ]
                                  spids: [1707]
                                )
                              ]
                              spids: [1704 1711]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(2)}
                                  spids: [1714]
                                )
                              ]
                              spids: [1714]
                            )
                          ]
                          spids: [1677 1680 1718 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ($ VSub_Name '$option_2_text'))}]
                          action: [
                            (C {(nano)} {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(2)}
                                  spids: [1734]
                                )
                              ]
                              spids: [1734]
                            )
                          ]
                          spids: [1721 1724 1738 16777215]
                        )
                      ]
                      spids: [1668 1674 1741]
                    )
                  ]
                  spids: [16777215 1665]
                )
              ]
              spids: [16777215 1744]
            )
          ]
          spids: [1501]
        )
      spids: [1498 1501]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ROOT_SPACE_USED_BEFORE) op:Equal rhs:{(0)} spids:[1768])]
      spids: [1768]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ROOT_SPACE_USED_AFTER) op:Equal rhs:{(0)} spids:[1772])]
      spids: [1772]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOT_SPACE_USED_CURRENT)
          op: Equal
          rhs: {(0)}
          spids: [1776]
        )
      ]
      spids: [1776]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOT_SPACE_FREE_DELTA)
          op: Equal
          rhs: {(DQ ('Cleaner has not been run - 0'))}
          spids: [1780]
        )
      ]
      spids: [1780]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOTFS_DEVICE_PATH)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(sed)} {(-n)} {(4p)} {(/DietPi/dietpi/.hw_model)})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [1787 1795]
              )
            }
          spids: [1786]
        )
      ]
      spids: [1786]
    )
    (FuncDef
      name: Update_Space_Used
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ROOT_SPACE_USED_CURRENT)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(df)} {(--block-size)} {(MB)})
                                  (C {(grep)} {(DQ ($ VSub_Name '$ROOTFS_DEVICE_PATH'))})
                                  (C {(awk)} {(SQ <'{ print $3 }'>)})
                                  (C {(tr)} {(-d)} {(SQ <MB>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1807 1839]
                      )
                    }
                  spids: [1806]
                )
              ]
              spids: [1806]
            )
          ]
          spids: [1802]
        )
      spids: [1799 1802]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:MAX_CLEANERS) op:Equal rhs:{(5)} spids:[1858])]
      spids: [1858]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:aEnabledCleaners)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [1862]
        )
      ]
      spids: [1862]
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (C 
              {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (0)}
            )
          ]
          spids: [1886 1897]
        )
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:INCLUDE_MNT) op:Equal rhs:{(0)} spids:[1901])]
      spids: [1901]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DRY_RUN) op:Equal rhs:{(0)} spids:[1905])]
      spids: [1905]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:INFO_CLEAN_NAME) op:Equal rhs:{(DQ )} spids:[1910])]
      spids: [1910]
    )
    (FuncDef
      name: Run_Cleaners
      body: 
        (BraceGroup
          children: [
            (C {(/DietPi/dietpi/dietpi-services)} {(stop)})
            (C {(Update_Space_Used)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ROOT_SPACE_USED_BEFORE)
                  op: Equal
                  rhs: {($ VSub_Name '$ROOT_SPACE_USED_CURRENT')}
                  spids: [1936]
                )
              ]
              spids: [1936]
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithWord
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name aEnabledCleaners>
                                                bracket_op: 
                                                  (ArrayIndex
                                                    expr: (ArithWord w:{($ VSub_Name '$i')})
                                                  )
                                                spids: [1971 1976]
                                              )
                                            }
                                        )
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [1969 1983]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Run_Cleaner_) (DQ ($ VSub_Name '$i'))})]
                          spids: [16777215 1986]
                        )
                      ]
                      spids: [16777215 1995]
                    )
                  ]
                  spids: [1964 1998]
                )
            )
            (C {(Update_Space_Used)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ROOT_SPACE_USED_AFTER)
                  op: Equal
                  rhs: {($ VSub_Name '$ROOT_SPACE_USED_CURRENT')}
                  spids: [2005]
                )
              ]
              spids: [2005]
            )
            (C {(/DietPi/dietpi/dietpi-services)} {(start)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ROOT_SPACE_FREE_DELTA)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Minus
                            left: (ArithWord w:{($ VSub_Name '$ROOT_SPACE_USED_BEFORE')})
                            right: (ArithWord w:{($ VSub_Name '$ROOT_SPACE_USED_AFTER')})
                          )
                        spids: [2025 2034]
                      )
                    }
                  spids: [2024]
                )
              ]
              spids: [2024]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_QUESTION)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('DietPi-Cleaner has finished cleaning RootFS:') (Lit_Other '\\') ('n - ') 
                        ($ VSub_Name '$ROOT_SPACE_FREE_DELTA') (' MB of space has been cleared.')
                      )
                    }
                  spids: [2038]
                )
              ]
              spids: [2038]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$INPUT')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2050 2059]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(whiptail)} {(--title)} {(DQ ('DietPi-Cleaner completed.'))} {(--msgbox)} 
                      {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(10)} {(70)}
                    )
                  ]
                  spids: [16777215 2062]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$INPUT')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [2086 2095]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(-e)} 
                      {(DQ (Lit_Other '\\') (n) ($ VSub_Name '$WHIP_QUESTION') (Lit_Other '\\') (n))}
                    )
                  ]
                  spids: [2084 2098]
                )
              ]
              spids: [16777215 2114]
            )
          ]
          spids: [1919]
        )
      spids: [1916 1919]
    )
    (FuncDef
      name: Run_Cleaner_0
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INFO_CLEAN_NAME)
                  op: Equal
                  rhs: {(DQ ('Dev packages'))}
                  spids: [2133]
                )
              ]
              spids: [2133]
            )
            (C {(Banner_Cleaning)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:string_package_names)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [2145]
                )
              ]
              spids: [2143]
            )
            (WhileUntil
              keyword: <KW_While while>
              cond: [(C {(read)} {(line)})]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:string_package_names)
                          op: PlusEqual
                          rhs: {(DQ ($ VSub_Name '$line') (' '))}
                          spids: [2164]
                        )
                      ]
                      spids: [2164]
                    )
                  ]
                  spids: [2157 2172]
                )
              redirects: [
                (Redir
                  op: <Redir_Less '<'>
                  fd: 16777215
                  arg_word: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(dpkg)} {(-l)})
                                  (C {(grep)} {(SQ <'\\-dev:'>)})
                                  (C {(awk)} {(SQ <'{ print $2 }'>)})
                                  (C {(cut)} {(-f1)} {(-d) (DQ (':'))})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_ProcSubIn '<('>
                        spids: [2176 2207]
                      )
                    }
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:string_package_names)
                  op: PlusEqual
                  rhs: {(DQ ('build-essential git'))}
                  spids: [2215]
                )
              ]
              spids: [2215]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:Yes_or_Simulate)
                  op: Equal
                  rhs: {(DQ (-y))}
                  spids: [2228]
                )
              ]
              spids: [2226]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [2236 2245]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:Yes_or_Simulate)
                          op: Equal
                          rhs: {(DQ (-s))}
                          spids: [2251]
                        )
                      ]
                      spids: [2251]
                    )
                  ]
                  spids: [16777215 2248]
                )
              ]
              spids: [16777215 2257]
            )
            (C {(apt-get)} {(purge)} {($ VSub_Name '$string_package_names')} 
              {($ VSub_Name '$Yes_or_Simulate')}
            )
            (C {(apt-get)} {(autoremove)} {(--purge)} {($ VSub_Name '$Yes_or_Simulate')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2286 2295]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(DQ ('/BUILDESSENTIAL=/c') (Lit_Other '\\') ('BUILDESSENTIAL=0'))} 
                      {(/DietPi/dietpi/.installed)}
                    )
                    (C {(sed)} {(-i)} {(DQ ('/GITCLIENT=/c') (Lit_Other '\\') ('GITCLIENT=0'))} 
                      {(/DietPi/dietpi/.installed)}
                    )
                  ]
                  spids: [16777215 2298]
                )
              ]
              spids: [16777215 2327]
            )
          ]
          spids: [2129]
        )
      spids: [2126 2129]
    )
    (FuncDef
      name: Run_Cleaner_1
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INFO_CLEAN_NAME)
                  op: Equal
                  rhs: {(DQ ('Man pages and docs'))}
                  spids: [2346]
                )
              ]
              spids: [2346]
            )
            (C {(Banner_Cleaning)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:Yes_or_Simulate)
                  op: Equal
                  rhs: {(DQ (-y))}
                  spids: [2358]
                )
              ]
              spids: [2356]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [2366 2375]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:Yes_or_Simulate)
                          op: Equal
                          rhs: {(DQ (-s))}
                          spids: [2381]
                        )
                      ]
                      spids: [2381]
                    )
                  ]
                  spids: [16777215 2378]
                )
              ]
              spids: [16777215 2387]
            )
            (C {(apt-get)} {(purge)} {(man)} {(manpages)} {($ VSub_Name '$Yes_or_Simulate')})
            (C {(apt-get)} {(autoremove)} {(--purge)} {($ VSub_Name '$Yes_or_Simulate')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2418 2427]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(rm)} {(-R)} {(/usr/share/man)})
                    (C {(rm)} {(-R)} {(/usr/share/doc)})
                    (C {(rm)} {(-R)} {(/usr/share/doc-base)})
                  ]
                  spids: [16777215 2430]
                )
              ]
              spids: [16777215 2454]
            )
          ]
          spids: [2342]
        )
      spids: [2339 2342]
    )
    (FuncDef
      name: Run_Cleaner_2
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INFO_CLEAN_NAME)
                  op: Equal
                  rhs: {(DQ (Files))}
                  spids: [2473]
                )
              ]
              spids: [2473]
            )
            (C {(Banner_Cleaning)})
            (Pipeline
              children: [
                (C {(cat)} {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))})
                (C {(sed)} {(SQ <'/#/d'>)})
                (C {(sed)} {(SQ <'/ /d'>)})
                (SimpleCommand
                  words: [{(sed)} {(SQ <'/^$/d'>)}]
                  redirects: [
                    (Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                    )
                  ]
                )
              ]
              negated: F
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:line_count)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [(C {(cat)} {(DQ ($ VSub_Name '$FP_TEMP'))}) (C {(wc)} {(-l)})]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2532 2544]
                      )
                    }
                  spids: [2531]
                )
              ]
              spids: [2529]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$line_count')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2549 2558]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(-e)} 
                      {
                        (DQ (Lit_Other '\\') 
                          (
'nNo files to find. Have you setup the Files options and added filename entries to match?'
                          ) (Lit_Other '\\') (n)
                        )
                      }
                    )
                  ]
                  spids: [16777215 2561]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aCustomFiles)
                      op: Equal
                      rhs: {(ArrayLiteralPart)}
                      spids: [2588]
                    )
                  ]
                  spids: [2586]
                )
                (SimpleCommand
                  words: [{(readarray)} {(aCustomFiles)}]
                  redirects: [
                    (Redir
                      op: <Redir_Less '<'>
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:find_string)
                      op: Equal
                      rhs: {(DQ )}
                      spids: [2611]
                    )
                  ]
                  spids: [2609]
                )
                (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') ('nSearching for filenames matching:'))})
                (ForExpr
                  init: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:i)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  cond: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:i)
                      right: 
                        (ArithWord
                          w: 
                            {
                              (BracedVarSub
                                token: <VSub_Name aCustomFiles>
                                prefix_op: VSub_Pound
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [2636 2642]
                              )
                            }
                        )
                    )
                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                  body: 
                    (DoGroup
                      children: [
                        (C {(echo)} {(-e)} 
                          {
                            (DQ ('- ') 
                              (BracedVarSub
                                token: <VSub_Name aCustomFiles>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                spids: [2660 2665]
                              )
                            )
                          }
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$i')})
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                      spids: [2672 2681]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:find_string)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ ('-name ') 
                                            (BracedVarSub
                                              token: <VSub_Name aCustomFiles>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{($ VSub_Name '$i')})
                                                )
                                              spids: [2690 2695]
                                            )
                                          )
                                        }
                                      spids: [2687]
                                    )
                                  ]
                                  spids: [2687]
                                )
                              ]
                              spids: [16777215 2684]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:find_string)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (DQ (' -or -name ') 
                                        (BracedVarSub
                                          token: <VSub_Name aCustomFiles>
                                          bracket_op: 
                                            (ArrayIndex
                                              expr: (ArithWord w:{($ VSub_Name '$i')})
                                            )
                                          spids: [2705 2710]
                                        )
                                      )
                                    }
                                  spids: [2702]
                                )
                              ]
                              spids: [2702]
                            )
                          ]
                          spids: [2699 2714]
                        )
                      ]
                      spids: [2651 2718]
                    )
                )
                (C {(echo)} {(-e)} {(DQ ('Please wait....'))})
                (SimpleCommand
                  words: [{(find)} {(/)} {(-type)} {(f)} {($ VSub_Name '$find_string')}]
                  redirects: [
                    (Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                    )
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                              spids: [2760 2769]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [(C {(sed)} {(-i)} {(SQ <'/\\/mnt/d'>)} {(DQ ($ VSub_Name '$FP_TEMP'))})]
                      spids: [16777215 2772]
                    )
                  ]
                  spids: [16777215 2788]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:line_count)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(cat)} {(DQ ($ VSub_Name '$FP_TEMP'))})
                                      (C {(wc)} {(-l)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2793 2805]
                          )
                        }
                      spids: [2792]
                    )
                  ]
                  spids: [2792]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$line_count')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                              spids: [2810 2819]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(echo)} {(-e)} 
                          {
                            (DQ (Lit_Other '\\') ('nNo matching filenames were found.') 
                              (Lit_Other '\\') (n)
                            )
                          }
                        )
                      ]
                      spids: [16777215 2822]
                    )
                  ]
                  else_action: [
                    (C {(echo)} {(-e)} 
                      {
                        (DQ (Lit_Other '\\') ('nFound the following matching files:') (Lit_Other '\\') 
                          (n)
                        )
                      }
                    )
                  ]
                  spids: [2837 2852]
                )
                (WhileUntil
                  keyword: <KW_While while>
                  cond: [(C {(read)} {(line)})]
                  body: 
                    (DoGroup
                      children: [
                        (C {(echo)} {(-e)} {(DQ ('- Filepath: ') ($ VSub_Name '$line'))})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                      spids: [2882 2891]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(echo)} {(-e)} {(DQ (Deleted.) (Lit_Other '\\') (n))})
                                (C {(rm)} {(DQ ($ VSub_Name '$line'))})
                              ]
                              spids: [16777215 2894]
                            )
                          ]
                          spids: [16777215 2915]
                        )
                      ]
                      spids: [2867 2919]
                    )
                  redirects: [
                    (Redir
                      op: <Redir_Less '<'>
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                    )
                  ]
                )
                (C {(unset)} {(aCustomFiles)})
              ]
              spids: [2578 2939]
            )
            (SimpleCommand
              words: [{(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
          ]
          spids: [2469]
        )
      spids: [2466 2469]
    )
    (FuncDef
      name: Run_Cleaner_3
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INFO_CLEAN_NAME)
                  op: Equal
                  rhs: {(DQ ('Log files'))}
                  spids: [2970]
                )
              ]
              spids: [2970]
            )
            (C {(Banner_Cleaning)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2982 2991]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(/DietPi/dietpi/dietpi-logclear)} {(1)})]
                  spids: [16777215 2994]
                )
              ]
              spids: [16777215 3002]
            )
          ]
          spids: [2966]
        )
      spids: [2963 2966]
    )
    (FuncDef
      name: Run_Cleaner_4
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INFO_CLEAN_NAME)
                  op: Equal
                  rhs: {(DQ ('Apt cache and update'))}
                  spids: [3021]
                )
              ]
              spids: [3021]
            )
            (C {(Banner_Cleaning)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [3033 3042]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(apt-get)} {(clean)})
                    (C {(rm)} {(/var/lib/apt/lists/) (Lit_Other '*')} {(-vf)})
                    (C {(G_AGUP)})
                  ]
                  spids: [16777215 3045]
                )
              ]
              spids: [16777215 3066]
            )
          ]
          spids: [3017]
        )
      spids: [3014 3017]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FILEPATH_SETTINGS)
          op: Equal
          rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner))}
          spids: [3090]
        )
      ]
      spids: [3090]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FILEPATH_CUSTOMFILES)
          op: Equal
          rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner_custom_files))}
          spids: [3096]
        )
      ]
      spids: [3096]
    )
    (FuncDef
      name: Read_Settings_File
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FILEPATH_SETTINGS'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:line_count)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(cat)} {(DQ ($ VSub_Name '$FILEPATH_SETTINGS'))})
                                          (C {(wc)} {(-l)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [3134 3146]
                              )
                            }
                          spids: [3133]
                        )
                      ]
                      spids: [3131]
                    )
                    (ForExpr
                      init: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                      cond: 
                        (ArithBinary
                          op_id: Arith_Less
                          left: (ArithVarRef name:i)
                          right: (ArithWord w:{($ VSub_Name '$line_count')})
                        )
                      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                      body: 
                        (DoGroup
                          children: [
                            (C 
                              {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') 
                                (Lit_Other '=') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(sed)} {(-n)} 
                                          {
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$i')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [3186 3195]
                                            ) (p)
                                          } {($ VSub_Name '$FILEPATH_SETTINGS')}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [3181 3199]
                                )
                              }
                            )
                          ]
                          spids: [3173 3202]
                        )
                    )
                  ]
                  spids: [16777215 3123]
                )
              ]
              spids: [16777215 3206]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                          {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op: <Redir_DLess '<<'>
                          fd: 16777215
                          here_begin: {(_EOF_)}
                          here_end_span_id: 3265
                          stdin_parts: [
                            (
'# ------------------------------------------------------------------\n'
                            )
                            (
'# Specify filenames or extentions to match during filescan removals.\n'
                            )
                            ('#\n')
                            ('# One item per line.\n')
                            ('#\n')
                            ('# Examples:\n')
                            ('# *.tmp\n')
                            ('# ThisFileWillBeDeleted.mp3\n')
                            ('# *AnyFilenameContainingThisTextWillBeDeleted*\n')
                            ('#\n')
                            ('# To save and exit:\n')
                            ('# - Press CTRL+X\n')
                            ('# - Press Y\n')
                            ('# - Press Enter\n')
                            (
'# ------------------------------------------------------------------\n'
                            )
                            ('# Uncomment line below to include temp files during scan.\n')
                            ('#*.tmp\n')
                            ('\n')
                            (
'# Uncomment line below to include Windows Thumbnail cache during scan.\n'
                            )
                            ('#Thumbs.db\n')
                          ]
                        )
                        (Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 3229]
                )
              ]
              spids: [16777215 3267]
            )
          ]
          spids: [3106]
        )
      spids: [3103 3106]
    )
    (FuncDef
      name: Write_Settings_File
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(rm)} {($ VSub_Name '$FILEPATH_SETTINGS')}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(-e)}
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name aEnabledCleaners>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                              spids: [3322 3327]
                            )
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$FILEPATH_SETTINGS')}
                        )
                      ]
                    )
                  ]
                  spids: [3314 3335]
                )
            )
          ]
          spids: [3278]
        )
      spids: [3275 3278]
    )
    (C {(Read_Settings_File)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [3368 3377]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (WhileUntil
              keyword: <KW_While while>
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_Great
                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                          right: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)}))
                        )
                      spids: [3390 3400]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(clear)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  spids: [3413 3422]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Main)})]
                          spids: [16777215 3425]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [3433 3442]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Cleaners)})]
                          spids: [3431 3445]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 2)})
                                    )
                                  spids: [3453 3462]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Options_Files)})]
                          spids: [3451 3465]
                        )
                      ]
                      spids: [16777215 3471]
                    )
                  ]
                  spids: [3403 3475]
                )
            )
            (C {(Write_Settings_File)})
          ]
          spids: [16777215 3380]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [3493 3502]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(Run_Cleaners)})]
          spids: [3491 3505]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 2)})
                    )
                  spids: [3523 3532]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (C 
                      {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') 
                        (Lit_Other '=') (1)
                      }
                    )
                  ]
                  spids: [3558 3569]
                )
            )
            (C {(Run_Cleaners)})
          ]
          spids: [3521 3535]
        )
      ]
      spids: [16777215 3577]
    )
    (C {(unset)} {(aEnabledCleaners)})
    (ControlFlow token:<ControlFlow_Exit exit>)
  ]
  spids: [3]
)