(BraceGroup
  children: [
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:INPUT) op:assign_op.Equal rhs:{<0>} spids:[75])]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: {($ Id.VSub_Number '$1')}
                          right: 
                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                              <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                            }
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INPUT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [102]
                )
              ]
            )
          ]
          spids: [79 99]
        )
      ]
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Cloudshell>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DIETPI_CLOUDSHELL_VERSION)
          op: assign_op.Equal
          rhs: {<9>}
          spids: [139]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_TEMP)
          op: assign_op.Equal
          rhs: {(DQ <'/tmp/dietpi-cloudshell'>)}
          spids: [148]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROGRAM_NAME)
          op: assign_op.Equal
          rhs: {(DQ <DietPi-Cloudshell>)}
          spids: [155]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_ACTIVE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [162]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [166]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_TIME_HOUR_START)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [170]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_TIME_HOUR_END)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [174]
        )
      ]
    )
    (command.ShFunction
      name: RUN_BLANK_SCREEN_AT_SPECIFIC_TIME
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'current_hour='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <-H>})
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: {($ Id.VSub_DollarName '$BLANK_SCREEN_ACTIVE')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            {($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START')}
                                          right: {($ Id.VSub_DollarName '$current_hour')}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<clear>})
                            (C {<echo>} {<-e>} 
                              {
                                (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                  <'nScreen will be powered down in under 1 minute'> <Id.Lit_BadBackslash '\\'> <n>
                                )
                              }
                            )
                            (command.Simple
                              words: [{<setterm>} {<--blank>} {<1>} {<--powersave>} {<on>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/tty1'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_ACTIVE)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [275]
                                )
                              ]
                            )
                          ]
                          spids: [223 237]
                        )
                      ]
                    )
                  ]
                  spids: [207 219]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END')}
                                  right: {($ Id.VSub_DollarName '$current_hour')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<setterm>} {<--blank>} {<poke>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/tty1'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<setterm>} {<--reset>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/tty1'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<setterm>} {<--blank>} {<0>} {<--powersave>} {<off>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/tty1'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_ACTIVE)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [339]
                        )
                      ]
                    )
                  ]
                  spids: [287 301]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: BC_ADD_LEADING_ZERO
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'return_value='> ($ Id.VSub_Number '$1')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name return_value>
                                    suffix_op: 
                                      (suffix_op.Slice
                                        begin: {<Id.Lit_Digits 0>}
                                        length: {<Id.Lit_Digits 1>}
                                      )
                                  )
                                )
                              } {<Id.Lit_Equals '='>} {(DQ <.>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:return_value)
                          op: assign_op.Equal
                          rhs: {(DQ <0> ($ Id.VSub_DollarName '$return_value'))}
                          spids: [408]
                        )
                      ]
                    )
                  ]
                  spids: [382 405]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name return_value>
                                    suffix_op: 
                                      (suffix_op.Slice
                                        begin: {<Id.Lit_Digits 0>}
                                        length: {<Id.Lit_Digits 2>}
                                      )
                                  )
                                )
                              } {<Id.Lit_Equals '='>} {(DQ <-.>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:return_value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$return_value'))})
                                      (C {<sed>} {(SQ <'s/^-./-0./'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [446]
                        )
                      ]
                    )
                  ]
                  spids: [420 443]
                )
              ]
            )
            (C {<echo>} {(DQ ($ Id.VSub_DollarName '$return_value'))})
          ]
        )
    )
    (command.ShFunction
      name: BYTE_PRINT_CONVERSION
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'return_value='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'decimal_count='> <1>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_Number '$1')}
                                  right: {<Id.Lit_Digits 1048576>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:return_value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<echo>} 
                                          {
                                            (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') 
                                              <'; '> ($ Id.VSub_Number '$1') <' / 1024'>
                                            )
                                          }
                                        )
                                        (C {<bc>} {<-l>})
                                      ]
                                      negated: F
                                    )
                                ) <' KB'>
                              )
                            }
                          spids: [536]
                        )
                      ]
                    )
                  ]
                  spids: [515 529]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_Number '$1')}
                                  right: {<Id.Lit_Digits 1073741824>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:return_value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<echo>} 
                                          {
                                            (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') 
                                              <'; '> ($ Id.VSub_Number '$1') <' / 1024 / 1024'>
                                            )
                                          }
                                        )
                                        (C {<bc>} {<-l>})
                                      ]
                                      negated: F
                                    )
                                ) <' MB'>
                              )
                            }
                          spids: [586]
                        )
                      ]
                    )
                  ]
                  spids: [565 579]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:return_value)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {<echo>} 
                                      {
                                        (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> 
                                          ($ Id.VSub_Number '$1') <' / 1024 / 1024 / 1024'>
                                        )
                                      }
                                    )
                                    (C {<bc>} {<-l>})
                                  ]
                                  negated: F
                                )
                            ) <' GB'>
                          )
                        }
                      spids: [622]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:return_value)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<BC_ADD_LEADING_ZERO>} {(DQ ($ Id.VSub_DollarName '$return_value'))})
                      )
                    }
                  spids: [655]
                )
              ]
            )
            (C {<echo>} {(DQ ($ Id.VSub_DollarName '$return_value'))})
          ]
        )
    )
    (command.ShFunction
      name: BIT_PRINT_CONVERSION
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'return_value='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'decimal_count='> <1>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_Number '$1')}
                                  right: {<Id.Lit_Digits 1000000>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:return_value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<echo>} 
                                          {
                                            (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') 
                                              <'; '> ($ Id.VSub_Number '$1') <' * 8 / 1000'>
                                            )
                                          }
                                        )
                                        (C {<bc>} {<-l>})
                                      ]
                                      negated: F
                                    )
                                ) <' Kbit'>
                              )
                            }
                          spids: [740]
                        )
                      ]
                    )
                  ]
                  spids: [719 733]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_Number '$1')}
                                  right: {<Id.Lit_Digits 1000000000>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:return_value)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<echo>} 
                                          {
                                            (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') 
                                              <'; '> ($ Id.VSub_Number '$1') <'  * 8 / 1000 / 1000'>
                                            )
                                          }
                                        )
                                        (C {<bc>} {<-l>})
                                      ]
                                      negated: F
                                    )
                                ) <' Mbit'>
                              )
                            }
                          spids: [789]
                        )
                      ]
                    )
                  ]
                  spids: [768 782]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:return_value)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {<echo>} 
                                      {
                                        (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> 
                                          ($ Id.VSub_Number '$1') <' * 8 / 1000 / 1000 / 1000'>
                                        )
                                      }
                                    )
                                    (C {<bc>} {<-l>})
                                  ]
                                  negated: F
                                )
                            ) <' Gbit'>
                          )
                        }
                      spids: [824]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:return_value)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<BC_ADD_LEADING_ZERO>} {(DQ ($ Id.VSub_DollarName '$return_value'))})
                      )
                    }
                  spids: [856]
                )
              ]
            )
            (C {<echo>} {(DQ ($ Id.VSub_DollarName '$return_value'))})
          ]
        )
    )
    (command.ShFunction
      name: Enable_Term_Options
      body: 
        (BraceGroup
          children: [
            (C {<setfont>} {<'/usr/share/consolefonts/Uni3-TerminusBold32x16'>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: (C {<tput>} {<lines>})
                                      )
                                    }
                                  right: {<Id.Lit_Digits 10>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<setfont>} {<'/usr/share/consolefonts/Uni3-TerminusBold24x12.psf'>})]
                  spids: [904 922]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:C_RESET)
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[0m'>)}
          spids: [952]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:C_REVERSE)
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[7m'>)}
          spids: [959]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:C_BOLD)
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[1m'>)}
          spids: [971]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aCOLOUR)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[39m'>)}
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[31m'>)}
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[32m'>)}
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[33m'>)}
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[34m'>)}
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[35m'>)}
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[36m'>)}
                  {(DQ <Id.Lit_BadBackslash '\\'> <'e[93m'>)}
                ]
              )
            }
          spids: [1015]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USER_COLOUR_INDEX)
          op: assign_op.Equal
          rhs: {<3>}
          spids: [1075]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1080]
        )
      ]
    )
    (command.ShFunction
      name: Percent_To_Graph
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'input_value='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [(C {<echo>} {($ Id.VSub_Number '$1')}) (C {<cut>} {<-d.>} {<-f1>})]
                      negated: F
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 100>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:input_value)
                          op: assign_op.Equal
                          rhs: {<100>}
                          spids: [1144]
                        )
                      ]
                    )
                  ]
                  spids: [1127 1141]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:input_value)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [1165]
                        )
                      ]
                    )
                  ]
                  spids: [1148 1162]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 95>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                                ) <------WARNING-----> ($ Id.VSub_DollarName '$C_RESET') <']'>
                              )
                            }
                          spids: [1198]
                        )
                      ]
                    )
                  ]
                  spids: [1181 1195]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 90>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                                ) <-----------------> ($ Id.VSub_DollarName '$C_RESET') <'-]'>
                              )
                            }
                          spids: [1233]
                        )
                      ]
                    )
                  ]
                  spids: [1216 1230]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 88>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                                ) <----------------> ($ Id.VSub_DollarName '$C_RESET') <'--]'>
                              )
                            }
                          spids: [1268]
                        )
                      ]
                    )
                  ]
                  spids: [1251 1265]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 82>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                                ) <---------------> ($ Id.VSub_DollarName '$C_RESET') <'---]'>
                              )
                            }
                          spids: [1303]
                        )
                      ]
                    )
                  ]
                  spids: [1286 1300]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 76>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                ) <--------------> ($ Id.VSub_DollarName '$C_RESET') <'----]'>
                              )
                            }
                          spids: [1338]
                        )
                      ]
                    )
                  ]
                  spids: [1321 1335]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 70>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                ) <-------------> ($ Id.VSub_DollarName '$C_RESET') <'-----]'>
                              )
                            }
                          spids: [1373]
                        )
                      ]
                    )
                  ]
                  spids: [1356 1370]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 64>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                ) <------------> ($ Id.VSub_DollarName '$C_RESET') <'------]'>
                              )
                            }
                          spids: [1408]
                        )
                      ]
                    )
                  ]
                  spids: [1391 1405]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 56>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                ) <-----------> ($ Id.VSub_DollarName '$C_RESET') <'-------]'>
                              )
                            }
                          spids: [1443]
                        )
                      ]
                    )
                  ]
                  spids: [1426 1440]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 50>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                ) <----------> ($ Id.VSub_DollarName '$C_RESET') <'--------]'>
                              )
                            }
                          spids: [1478]
                        )
                      ]
                    )
                  ]
                  spids: [1461 1475]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 44>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                ) <---------> ($ Id.VSub_DollarName '$C_RESET') <'---------]'>
                              )
                            }
                          spids: [1513]
                        )
                      ]
                    )
                  ]
                  spids: [1496 1510]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 38>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                ) <--------> ($ Id.VSub_DollarName '$C_RESET') <'----------]'>
                              )
                            }
                          spids: [1548]
                        )
                      ]
                    )
                  ]
                  spids: [1531 1545]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 32>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                ) <-------> ($ Id.VSub_DollarName '$C_RESET') <'-----------]'>
                              )
                            }
                          spids: [1583]
                        )
                      ]
                    )
                  ]
                  spids: [1566 1580]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 26>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                ) <------> ($ Id.VSub_DollarName '$C_RESET') <'------------]'>
                              )
                            }
                          spids: [1618]
                        )
                      ]
                    )
                  ]
                  spids: [1601 1615]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 20>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                ) <-----> ($ Id.VSub_DollarName '$C_RESET') <'-------------]'>
                              )
                            }
                          spids: [1653]
                        )
                      ]
                    )
                  ]
                  spids: [1636 1650]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 15>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                ) <----> ($ Id.VSub_DollarName '$C_RESET') <'--------------]'>
                              )
                            }
                          spids: [1688]
                        )
                      ]
                    )
                  ]
                  spids: [1671 1685]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 10>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                ) <---> ($ Id.VSub_DollarName '$C_RESET') <'---------------]'>
                              )
                            }
                          spids: [1723]
                        )
                      ]
                    )
                  ]
                  spids: [1706 1720]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$input_value')}
                                  right: {<Id.Lit_Digits 5>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'%  ['> 
                                ($ Id.VSub_DollarName '$C_REVERSE') 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                ) <--> ($ Id.VSub_DollarName '$C_RESET') <'----------------]'>
                              )
                            }
                          spids: [1758]
                        )
                      ]
                    )
                  ]
                  spids: [1741 1755]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'%  ['> 
                            ($ Id.VSub_DollarName '$C_REVERSE') 
                            (braced_var_sub
                              token: <Id.VSub_Name aCOLOUR>
                              bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                            ) <-> ($ Id.VSub_DollarName '$C_RESET') <'-----------------]'>
                          )
                        }
                      spids: [1779]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1817]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_Temperature_Conversion
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$TEMPERATURE_OUTPUT_TYPE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (C {<awk>} 
                                    {
                                      (DQ <'BEGIN {printf '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) <'%.0f'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <','> 
                                        ($ Id.VSub_DollarName '$TEMPERATURE_CONVERSION_VALUE') <' * 1.8 + 32'>
                                      ) <Id.Lit_RBrace '}'>
                                    }
                                  )
                              )
                            }
                          spids: [1845]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE)
                          op: assign_op.PlusEqual
                          rhs: {(DQ <'\'f'>)}
                          spids: [1862]
                        )
                      ]
                    )
                  ]
                  spids: [1828 1842]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE)
                      op: assign_op.PlusEqual
                      rhs: {(DQ <'\'c'>)}
                      spids: [1871]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DATE_TIME)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1885]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_DATE_TIME
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DATE_TIME)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%a %x - %R'>)})
                      )
                    }
                  spids: [1896]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:UPTIME)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1912]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_UPTIME
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'fSeconds='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [(C {<cat>} {<'/proc/uptime'>}) (C {<awk>} {(SQ <'{print $1}'>)})]
                      negated: F
                    )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'seconds='> 
                (braced_var_sub
                  token: <Id.VSub_Name fSeconds>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VOp1_Percent '%'>
                      arg_word: {<.> <Id.Lit_Other '*'>}
                    )
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'minutes='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'hours='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'days='> <0>})
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: {($ Id.VSub_DollarName '$seconds')}
                              right: {<Id.Lit_Digits 60>}
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike minutes>
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:seconds)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: {($ Id.VSub_DollarName '$seconds')}
                                    right: {<Id.Lit_Digits 60>}
                                  )
                              )
                            }
                          spids: [1996]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: {($ Id.VSub_DollarName '$minutes')}
                              right: {<Id.Lit_Digits 60>}
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike hours>
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:minutes)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: {($ Id.VSub_DollarName '$minutes')}
                                    right: {<Id.Lit_Digits 60>}
                                  )
                              )
                            }
                          spids: [2037]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: {($ Id.VSub_DollarName '$hours')}
                              right: {<Id.Lit_Digits 24>}
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike days>
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:hours)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: {($ Id.VSub_DollarName '$hours')}
                                    right: {<Id.Lit_Digits 24>}
                                  )
                              )
                            }
                          spids: [2078]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:UPTIME)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'Uptime: '> ($ Id.VSub_DollarName '$days') <' Day, '> 
                        ($ Id.VSub_DollarName '$hours') <' Hour'>
                      )
                    }
                  spids: [2095]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPU_GOV)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2114]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPU_TEMP)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2118]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:C_CPUTEMP)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2122]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPU_FREQ_1)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2126]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPU_FREQ_2)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2130]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPU_USAGE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2134]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CPU_TOTALPROCESSES)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2138]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_CPU
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_TOTALPROCESSES)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Minus
                            left: 
                              {
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<ps>} {<--ppid>} {<2>} {<-p>} {<2>} {<--deselect>})
                                        (C {<wc>} {<-l>})
                                      ]
                                      negated: F
                                    )
                                )
                              }
                            right: {<Id.Lit_Digits 2>}
                          )
                      )
                    }
                  spids: [2149]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_GOV)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'>})
                      )
                    }
                  spids: [2183]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_TEMP)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<G_OBTAIN_CPU_TEMP>})
                      )
                    }
                  spids: [2191]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {($ Id.VSub_DollarName '$CPU_TEMP')}
                                  right: 
                                    {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                                      <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName '$CPU_TEMP')}
                                          right: {<Id.Lit_Digits 65>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:C_CPUTEMP)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aCOLOUR>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                                      )
                                    }
                                  spids: [2244]
                                )
                              ]
                            )
                          ]
                          spids: [2226 2240]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName '$CPU_TEMP')}
                                          right: {<Id.Lit_Digits 50>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:C_CPUTEMP)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aCOLOUR>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                      )
                                    }
                                  spids: [2272]
                                )
                              ]
                            )
                          ]
                          spids: [2254 2268]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName '$CPU_TEMP')}
                                          right: {<Id.Lit_Digits 35>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:C_CPUTEMP)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aCOLOUR>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                      )
                                    }
                                  spids: [2300]
                                )
                              ]
                            )
                          ]
                          spids: [2282 2296]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:C_CPUTEMP)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name aCOLOUR>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 4>})
                                  )
                                }
                              spids: [2314]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$CPU_TEMP')}
                          spids: [2332]
                        )
                      ]
                    )
                    (C {<Obtain_Temperature_Conversion>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CPU_TEMP)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$TEMPERATURE_CONVERSION_VALUE')}
                          spids: [2339]
                        )
                      ]
                    )
                  ]
                  spids: [2198 2218]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_FREQ_1)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Slash
                            left: 
                              {
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<cat>} 
                                      {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq'>}
                                    )
                                )
                              }
                            right: {<Id.Lit_Digits 1000>}
                          )
                      )
                    }
                  spids: [2348]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_FREQ_2)
                  op: assign_op.Equal
                  rhs: {(DQ <'N/A'>)}
                  spids: [2365]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 11>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CPU_FREQ_2)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Slash
                                    left: 
                                      {
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<cat>} 
                                              {
                                                <
'/sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq'
                                                >
                                              }
                                            )
                                        )
                                      }
                                    right: {<Id.Lit_Digits 1000>}
                                  )
                              )
                            }
                          spids: [2394]
                        )
                      ]
                    )
                  ]
                  spids: [2376 2390]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_USAGE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2416]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_TEMP)
                  op: assign_op.Equal
                  rhs: {(DQ <'/tmp/.cpu_usage'>)}
                  spids: [2420]
                )
              ]
            )
            (command.Pipeline
              children: [
                (C {<ps>} {<-axo>} {<Id.Lit_Other '%'> <cpu>})
                (C {<sed>} {(SQ <1d>)})
                (command.Simple
                  words: [{<sed>} {(SQ <'s/ //'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}
                    )
                  ]
                  do_fork: T
                )
              ]
              negated: F
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<read>} {<-r>} {<line>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CPU_USAGE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} 
                                        {
                                          (DQ <'scale=1;'> ($ Id.VSub_DollarName '$CPU_USAGE') <' + '> 
                                            ($ Id.VSub_DollarName '$line')
                                          )
                                        }
                                      )
                                      (C {<bc>} {<-l>})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [2474]
                        )
                      ]
                    )
                  ]
                )
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {($ Id.VSub_DollarName '$FP_TEMP')}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_USAGE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} 
                                {
                                  (DQ <'scale=0;'> ($ Id.VSub_DollarName '$CPU_USAGE') <' / '> 
                                    ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                                  )
                                }
                              )
                              (C {<bc>} {<-l>})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [2508]
                )
              ]
            )
            (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$CPU_USAGE')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CPU_USAGE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')}
                  spids: [2551]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_STORAGE)
          op: assign_op.Equal
          rhs: {<6>}
          spids: [2568]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STORAGE_TOTAL)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
          spids: [2572]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STORAGE_USED)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
          spids: [2577]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STORAGE_FREE)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
          spids: [2582]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STORAGE_PERCENT)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
          spids: [2587]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STORAGE_PATH)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
          spids: [2592]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:STORAGE_NAME)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
          spids: [2597]
        )
      ]
    )
    (command.ShFunction
      name: Init_STORAGE
      body: 
        (BraceGroup
          children: [
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {($ Id.VSub_DollarName '$MAX_STORAGE')}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: STORAGE_TOTAL
                              index: {($ Id.VSub_DollarName '$i')}
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'N/A'>)}
                          spids: [2632]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: STORAGE_USED
                              index: {($ Id.VSub_DollarName '$i')}
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'N/A'>)}
                          spids: [2642]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: STORAGE_FREE
                              index: {($ Id.VSub_DollarName '$i')}
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'N/A'>)}
                          spids: [2652]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: STORAGE_PERCENT
                              index: {($ Id.VSub_DollarName '$i')}
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <' Not installed'>)}
                          spids: [2662]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: STORAGE_NAME
                              index: {($ Id.VSub_DollarName '$i')}
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2672]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$i')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: STORAGE_PATH
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'/'>)}
                                  spids: [2703]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: STORAGE_NAME
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Flash/RootFS Storage:    '>)}
                                  spids: [2713]
                                )
                              ]
                            )
                          ]
                          spids: [2685 2699]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  name: STORAGE_PATH
                                  index: {($ Id.VSub_DollarName '$i')}
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <'/mnt/usb_'> ($ Id.VSub_DollarName '$i'))}
                              spids: [2728]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  name: STORAGE_NAME
                                  index: {($ Id.VSub_DollarName '$i')}
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <'Storage '> ($ Id.VSub_DollarName '$i') <':               '>)}
                              spids: [2739]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: Destroy_STORAGE
      body: 
        (BraceGroup
          children: [
            (C {<unset>} {<STORAGE_TOTAL>})
            (C {<unset>} {<STORAGE_USED>})
            (C {<unset>} {<STORAGE_FREE>})
            (C {<unset>} {<STORAGE_PERCENT>})
            (C {<unset>} {<STORAGE_PATH>})
            (C {<unset>} {<STORAGE_NAME>})
          ]
        )
    )
    (command.ShFunction
      name: Obtain_STORAGE
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'index_start='> ($ Id.VSub_Number '$1')})
            (C {<local>} {<Id.Lit_VarLike 'index_end='> ($ Id.VSub_Number '$2')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_TEMP)
                  op: assign_op.Equal
                  rhs: {(DQ <'/tmp/.df'>)}
                  spids: [2830]
                )
              ]
            )
            (C {<rm>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))})
            (C {<local>} {<Id.Lit_VarLike 'df_failed='> <0>})
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<df>} {<-Ph>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {($ Id.VSub_DollarName '$FP_TEMP')}
                    )
                  ]
                  do_fork: T
                )
              terminator: <Id.Op_Amp _>
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'pid='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<echo>} {($ Id.VSub_Bang '$!')})
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'max_seconds='> <4>})
            (C {<local>} {<Id.Lit_VarLike 'current_seconds='> <0>})
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.DParen
                      child: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {<ps>} {<aux>})
                                  (C {<awk>} {(SQ <'{print $2}'>)})
                                  (C {<grep>} {<-ci>} {<-m1>} 
                                    {(DQ ($ Id.VSub_DollarName '$pid') <Id.Lit_Dollar '$'>)}
                                  )
                                ]
                                negated: F
                              )
                          )
                        }
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName '$current_seconds')}
                                          right: {($ Id.VSub_DollarName '$max_seconds')}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<1>} 
                              {(DQ <'DF failed, unable to obtain drive data'>)}
                            )
                            (C {<sleep>} {<2>})
                            (C {<kill>} {($ Id.VSub_DollarName '$pid')})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:df_failed)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2982]
                                )
                              ]
                            )
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: (C {<date>})
                                    ) <' | df failed to respond'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/var/log/dietpi-cloudshell.log'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [2938 2952]
                        )
                      ]
                      else_action: [
                        (C {<sleep>} {<1>})
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike current_seconds>
                            )
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (command.DParen child:{($ Id.VSub_DollarName '$df_failed')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: {($ Id.VSub_DollarName '$index_start')}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: <Id.Lit_ArithVarLike i>
                          right: {($ Id.VSub_DollarName '$index_end')}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: STORAGE_PERCENT
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: <Id.VSub_Name STORAGE_PATH>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {($ Id.VSub_DollarName '$i')}
                                            )
                                        )
                                      )
                                    }
                                  spids: [3070]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: STORAGE_FREE
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'DF failed'>)}
                                  spids: [3085]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [3033 3043]
                )
              ]
              else_action: [
                (command.ForExpr
                  init: 
                    (arith_expr.BinaryAssign
                      op_id: Id.Arith_Equal
                      left: <Id.Lit_ArithVarLike i>
                      right: {($ Id.VSub_DollarName '$index_start')}
                    )
                  cond: 
                    (arith_expr.Binary
                      op_id: Id.Arith_LessEqual
                      left: <Id.Lit_ArithVarLike i>
                      right: {($ Id.VSub_DollarName '$index_end')}
                    )
                  update: 
                    (arith_expr.UnaryAssign
                      op_id: Id.Node_PostDPlus
                      child: <Id.Lit_ArithVarLike i>
                    )
                  body: 
                    (command.DoGroup
                      children: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              token: <Id.VSub_Name STORAGE_PATH>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: {($ Id.VSub_DollarName '$i')}
                                                                )
                                                            ) <Id.Lit_Dollar '$'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: STORAGE_TOTAL
                                              index: {($ Id.VSub_DollarName '$i')}
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                                      (C {<grep>} {<-m1>} 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              token: <Id.VSub_Name STORAGE_PATH>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: {($ Id.VSub_DollarName '$i')}
                                                                )
                                                            ) <Id.Lit_Dollar '$'>
                                                          )
                                                        }
                                                      )
                                                      (C {<awk>} {(SQ <'{print $2}'>)})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [3163]
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.IndexedName
                                          name: STORAGE_TOTAL
                                          index: {($ Id.VSub_DollarName '$i')}
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <B>)}
                                      spids: [3199]
                                    )
                                  ]
                                )
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: STORAGE_USED
                                              index: {($ Id.VSub_DollarName '$i')}
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                                      (C {<grep>} {<-m1>} 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              token: <Id.VSub_Name STORAGE_PATH>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: {($ Id.VSub_DollarName '$i')}
                                                                )
                                                            ) <Id.Lit_Dollar '$'>
                                                          )
                                                        }
                                                      )
                                                      (C {<awk>} {(SQ <'{print $3}'>)})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [3209]
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.IndexedName
                                          name: STORAGE_USED
                                          index: {($ Id.VSub_DollarName '$i')}
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <B>)}
                                      spids: [3245]
                                    )
                                  ]
                                )
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: STORAGE_FREE
                                              index: {($ Id.VSub_DollarName '$i')}
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                                      (C {<grep>} {<-m1>} 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              token: <Id.VSub_Name STORAGE_PATH>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: {($ Id.VSub_DollarName '$i')}
                                                                )
                                                            ) <Id.Lit_Dollar '$'>
                                                          )
                                                        }
                                                      )
                                                      (C {<awk>} {(SQ <'{print $4}'>)})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [3255]
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.IndexedName
                                          name: STORAGE_FREE
                                          index: {($ Id.VSub_DollarName '$i')}
                                        )
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <B>)}
                                      spids: [3291]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.IndexedName
                                          name: STORAGE_PERCENT
                                          index: {($ Id.VSub_DollarName '$i')}
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                                  (C {<grep>} {<-m1>} 
                                                    {
                                                      (DQ 
                                                        (braced_var_sub
                                                          token: <Id.VSub_Name STORAGE_PATH>
                                                          bracket_op: 
                                                            (bracket_op.ArrayIndex
                                                              expr: {($ Id.VSub_DollarName '$i')}
                                                            )
                                                        ) <Id.Lit_Dollar '$'>
                                                      )
                                                    }
                                                  )
                                                  (C {<awk>} {(SQ <'{print $5}'>)})
                                                  (C {<sed>} {(SQ <'s/%//g'>)})
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      spids: [3301]
                                    )
                                  ]
                                )
                                (C {<Percent_To_Graph>} 
                                  {
                                    (braced_var_sub
                                      token: <Id.VSub_Name STORAGE_PERCENT>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    )
                                  }
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.IndexedName
                                          name: STORAGE_PERCENT
                                          index: {($ Id.VSub_DollarName '$i')}
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')}
                                      spids: [3356]
                                    )
                                  ]
                                )
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {<-e>}
                                    {(DQ <'Results success:'> <Id.Lit_BadBackslash '\\'> <n>)}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_DGreat '>>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/var/log/dietpi-cloudshell.log'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {<-e>}
                                    {(DQ <' - Index = '> ($ Id.VSub_DollarName '$i'))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_DGreat '>>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/var/log/dietpi-cloudshell.log'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {<-e>}
                                    {
                                      (DQ <' - Path  = '> 
                                        (braced_var_sub
                                          token: <Id.VSub_Name STORAGE_PATH>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {($ Id.VSub_DollarName '$i')}
                                            )
                                        )
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_DGreat '>>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/var/log/dietpi-cloudshell.log'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {<-e>}
                                    {
                                      (DQ <' - Total = '> 
                                        (braced_var_sub
                                          token: <Id.VSub_Name STORAGE_TOTAL>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {($ Id.VSub_DollarName '$i')}
                                            )
                                        )
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_DGreat '>>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/var/log/dietpi-cloudshell.log'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              spids: [3127 3159]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: STORAGE_PERCENT
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: <Id.VSub_Name STORAGE_PATH>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {($ Id.VSub_DollarName '$i')}
                                            )
                                        )
                                      )
                                    }
                                  spids: [3441]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: STORAGE_FREE
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Mount not active'>)}
                                  spids: [3456]
                                )
                              ]
                            )
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: (C {<date>})
                                    ) <' | Mount not found:'> <Id.Lit_BadBackslash '\\'> <n>
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/var/log/dietpi-cloudshell.log'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <' - Index = '> ($ Id.VSub_DollarName '$i'))}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/var/log/dietpi-cloudshell.log'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <' - Path  = '> 
                                    (braced_var_sub
                                      token: <Id.VSub_Name STORAGE_PATH>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    ) <Id.Lit_BadBackslash '\\'> <n>
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/var/log/dietpi-cloudshell.log'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [{<cat>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/var/log/dietpi-cloudshell.log'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/var/log/dietpi-cloudshell.log'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                        )
                      ]
                    )
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DIETPI_VERSION_CURRENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3570]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3574]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DIETPI_WEBSITE)
          op: assign_op.Equal
          rhs: {(SQ <dietpi.com>)}
          spids: [3578]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DIETPI_TWITTER)
          op: assign_op.Equal
          rhs: {(DQ <'@dietpi_'>)}
          spids: [3584]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DIETPI_HW_DESCRIPTION)
          op: assign_op.Equal
          rhs: {(DQ <'N/A'>)}
          spids: [3590]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_DIETPIINFO
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DIETPI_VERSION_CURRENT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Name aCOLOUR>
                          bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                        ) 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>})
                        ) <.> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>})
                        ) ($ Id.VSub_DollarName '$C_RESET')
                      )
                    }
                  spids: [3607]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DIETPI_HW_DESCRIPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.hw_model'>})
                      )
                    }
                  spids: [3643]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE)
                  op: assign_op.Equal
                  rhs: {(DQ <'N/A'>)}
                  spids: [3660]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/.update_available'>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:DIETPI_VERSION_CURRENT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: <Id.VSub_Name aCOLOUR>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                                ) 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>})
                                ) <.> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>})
                                ) ($ Id.VSub_DollarName '$C_RESET')
                              )
                            }
                          spids: [3685]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'update_version='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<cat>} {<'/DietPi/dietpi/.update_available'>})
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} 
                                      {(DQ ($ Id.VSub_DollarName '$update_version'))} {<Id.Lit_Equals '='>} {(SQ <-1>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: <Id.VSub_Name aCOLOUR>
                                          bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                        ) <'New Image'> ($ Id.VSub_DollarName '$C_RESET')
                                      )
                                    }
                                  spids: [3748]
                                )
                              ]
                            )
                          ]
                          spids: [3727 3744]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aCOLOUR>
                                      bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                                    ) ($ Id.VSub_DollarName '$update_version') ($ Id.VSub_DollarName '$C_RESET')
                                  )
                                }
                              spids: [3766]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [3666 3677]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_ADAPTER)
          op: assign_op.Equal
          rhs: {(SQ <eth0>)}
          spids: [3796]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_IP_INT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3802]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MAC_ADDRESS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3806]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_SIGNAL_STRENGTH)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3810]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_DUPLEXSPEED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3814]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_HOSTNAME)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3818]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MODE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3822]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_NETWORK_DETAILS
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_TEMP)
                  op: assign_op.Equal
                  rhs: {(DQ <'/tmp/.ifconfig'>)}
                  spids: [3836]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_HOSTNAME)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))}
                  spids: [3847]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_ADAPTER)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<sed>} {<-n>} {<3p>} {<'/DietPi/dietpi/.network'>})
                      )
                    }
                  spids: [3858]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {<cat>} {<'/etc/network/interfaces'>})
                                          (C {<grep>} {<-ci>} {<-m1>} 
                                            {
                                              (DQ <'iface '> 
                                                ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER') <' inet dhcp'>
                                              )
                                            }
                                          )
                                        ]
                                        negated: F
                                      )
                                  )
                                }
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MODE)
                          op: assign_op.Equal
                          rhs: {(DQ <Dhcp>)}
                          spids: [3906]
                        )
                      ]
                    )
                  ]
                  spids: [3875 3903]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MODE)
                      op: assign_op.Equal
                      rhs: {(DQ <Static>)}
                      spids: [3915]
                    )
                  ]
                )
              ]
            )
            (command.Simple
              words: [{<ifconfig>} {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$FP_TEMP')}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_IP_INT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<cat>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))})
                              (C {<grep>} {<-m1>} {(SQ <'inet '>)})
                              (C {<cut>} {<-d> <Id.Lit_Colon ':'>} {<-f2>})
                              (C {<awk>} {(SQ <'{ print $1}'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [3943]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MAC_ADDRESS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<cat>} 
                            {<'/sys/class/net/'> ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER') 
                              <'/address'>
                            }
                          )
                      )
                    }
                  spids: [3979]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} 
                                                {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')}
                                              )
                                              (C {<grep>} {<-ci>} {<-m1>} {(SQ <wlan>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_SIGNAL_STRENGTH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<iwconfig>} 
                                          {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')}
                                        )
                                        (C {<grep>} {<-m1>} {(SQ <'Signal level='>)})
                                        (C {<awk>} {(SQ <'{ print $4 }'>)})
                                        (C {<sed>} {(SQ <'s/level=//g'>)})
                                        (C {<cut>} {<-f1>} {<-d>} {(DQ <'/'>)})
                                      ]
                                      negated: F
                                    )
                                ) <'%'>
                              )
                            }
                          spids: [4031]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_DUPLEXSPEED)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<iwconfig>} 
                                          {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')}
                                        )
                                        (C {<grep>} {<-m1>} {(SQ <'Bit Rate:'>)})
                                        (C {<awk>} {(SQ <'{ print $2 }'>)})
                                        (C {<sed>} {(SQ <'s/Rate://g'>)})
                                      ]
                                      negated: F
                                    )
                                ) <Mbit>
                              )
                            }
                          spids: [4080]
                        )
                      ]
                    )
                  ]
                  spids: [3998 4028]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_DUPLEXSPEED)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (C {<cat>} 
                                  {<'/sys/class/net/'> 
                                    ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER') <'/speed'>
                                  }
                                )
                            ) <' Mbit'>
                          )
                        }
                      spids: [4124]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_SIGNAL_STRENGTH)
                      op: assign_op.Equal
                      rhs: {(DQ <'N/A'>)}
                      spids: [4141]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_SENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4159]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_RECIEVED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4163]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_SENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4168]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_RECIEVED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4172]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_INIT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4176]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_SECONDS_SINCE_LAST_UPDATE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4180]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_SENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4185]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_RECIEVED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4189]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_SENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4193]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_RECIEVED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4197]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_OF_MONTH)
          op: assign_op.Equal
          rhs: {<-1>}
          spids: [4201]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_NETWORK_USAGE
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'run_update='> <1>})
            (C {<local>} 
              {<Id.Lit_VarLike 'mtu_size='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<netstat>} {<-N>} {<-i>})
                        (C {<grep>} {(DQ ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER'))})
                        (C {<awk>} {(SQ <'{print $2}'>)})
                      ]
                      negated: F
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_EqualTilde
                                      left: {($ Id.VSub_DollarName '$mtu_size')}
                                      right: 
                                        {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> 
                                          <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                        }
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:run_update)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [4277]
                        )
                      ]
                    )
                  ]
                  spids: [4252 4274]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'network_usage_current_recieved='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<netstat>} {<-N>} {<-i>})
                        (C {<grep>} {(DQ ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER'))})
                        (C {<awk>} {(SQ <'{print $4}'>)})
                      ]
                      negated: F
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_EqualTilde
                                      left: {($ Id.VSub_DollarName '$network_usage_current_recieved')}
                                      right: 
                                        {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> 
                                          <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                        }
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:run_update)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [4338]
                        )
                      ]
                    )
                  ]
                  spids: [4313 4335]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'network_usage_current_sent='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<netstat>} {<-N>} {<-i>})
                        (C {<grep>} {(DQ ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER'))})
                        (C {<awk>} {(SQ <'{print $8}'>)})
                      ]
                      negated: F
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_EqualTilde
                                      left: {($ Id.VSub_DollarName '$network_usage_current_sent')}
                                      right: 
                                        {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> 
                                          <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                        }
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:run_update)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [4399]
                        )
                      ]
                    )
                  ]
                  spids: [4374 4396]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$run_update')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'total_previous_sent='> 
                        ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT')
                      }
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'total_previous_recieved='> 
                        ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED')
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_RECIEVED)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Star
                                    left: {($ Id.VSub_DollarName '$network_usage_current_recieved')}
                                    right: {($ Id.VSub_DollarName '$mtu_size')}
                                  )
                              )
                            }
                          spids: [4447]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_SENT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Star
                                    left: {($ Id.VSub_DollarName '$network_usage_current_sent')}
                                    right: {($ Id.VSub_DollarName '$mtu_size')}
                                  )
                              )
                            }
                          spids: [4460]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'seconds_since_last_update='> 
                        (word_part.ArithSub
                          anode: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Minus
                              left: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>})
                                  )
                                }
                              right: 
                                {($ Id.VSub_DollarName '$NETWORK_USAGE_SECONDS_SINCE_LAST_UPDATE')}
                            )
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_INIT')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_SENT)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [4525]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_RECIEVED)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [4529]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_INIT)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [4534]
                                )
                              ]
                            )
                          ]
                          spids: [4508 4522]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_SENT)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (word_part.ArithSub
                                    anode: 
                                      (arith_expr.Binary
                                        op_id: Id.Arith_Slash
                                        left: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Minus
                                            left: 
                                              {
                                                ($ Id.VSub_DollarName 
'$NETWORK_USAGE_TOTAL_CURRENT_SENT'
                                                )
                                              }
                                            right: {($ Id.VSub_DollarName '$total_previous_sent')}
                                          )
                                        right: {($ Id.VSub_DollarName '$seconds_since_last_update')}
                                      )
                                  )
                                }
                              spids: [4546]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_RECIEVED)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (word_part.ArithSub
                                    anode: 
                                      (arith_expr.Binary
                                        op_id: Id.Arith_Slash
                                        left: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Minus
                                            left: 
                                              {
                                                ($ Id.VSub_DollarName 
'$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED'
                                                )
                                              }
                                            right: {($ Id.VSub_DollarName '$total_previous_recieved')}
                                          )
                                        right: {($ Id.VSub_DollarName '$seconds_since_last_update')}
                                      )
                                  )
                                }
                              spids: [4567]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_SECONDS_SINCE_LAST_UPDATE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>})
                              )
                            }
                          spids: [4596]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'dayofmonth='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%d'>)})
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} 
                                      {(DQ ($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_OF_MONTH'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dayofmonth'))} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_SENT)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT')}
                                  spids: [4678]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_RECIEVED)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED')}
                                  spids: [4682]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_OF_MONTH)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$dayofmonth')}
                                  spids: [4686]
                                )
                              ]
                            )
                          ]
                          spids: [4653 4671]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_SENT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT')}
                                    right: {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_PREVIOUS_SENT')}
                                  )
                              )
                            }
                          spids: [4699]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_RECIEVED)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: 
                                      {
                                        ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED')
                                      }
                                    right: 
                                      {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_PREVIOUS_RECIEVED')}
                                  )
                              )
                            }
                          spids: [4712]
                        )
                      ]
                    )
                  ]
                  spids: [4408 4422]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_TOTAL)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4738]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_FREE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4742]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_USED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4746]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_CACHED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4750]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_PERCENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4754]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPTOTAL)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4758]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPUSED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4762]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPFREE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4766]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [4770]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_MEMORY
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_TEMP)
                  op: assign_op.Equal
                  rhs: {(DQ <'/tmp/.mem'>)}
                  spids: [4785]
                )
              ]
            )
            (command.Simple
              words: [{<free>} {<-m>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$FP_TEMP')}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MEMORY_TOTAL)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                              (C {<grep>} {<-m1>} {(SQ <'Mem: '>)})
                              (C {<awk>} {(SQ <'{print $2}'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [4805]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MEMORY_CACHED)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                              (C {<grep>} {<-m1>} {(SQ <'Mem: '>)})
                              (C {<awk>} {(SQ <'{print $7}'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [4835]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MEMORY_USED)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Minus
                            left: 
                              {
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                        (C {<grep>} {<-m1>} {(SQ <'Mem: '>)})
                                        (C {<awk>} {(SQ <'{print $3}'>)})
                                      ]
                                      negated: F
                                    )
                                )
                              }
                            right: {($ Id.VSub_DollarName '$MEMORY_CACHED')}
                          )
                      )
                    }
                  spids: [4861]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MEMORY_FREE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: 
                              {
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                        (C {<grep>} {<-m1>} {(SQ <'Mem: '>)})
                                        (C {<awk>} {(SQ <'{print $4}'>)})
                                      ]
                                      negated: F
                                    )
                                )
                              }
                            right: {($ Id.VSub_DollarName '$MEMORY_CACHED')}
                          )
                      )
                    }
                  spids: [4896]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MEMORY_PERCENT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>})
                              (C {<awk>} 
                                {
                                  (DQ <'{print '> ($ Id.VSub_DollarName '$MEMORY_USED') <' / '> 
                                    ($ Id.VSub_DollarName '$MEMORY_TOTAL') <' * 100}'>
                                  )
                                }
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [4931]
                )
              ]
            )
            (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$MEMORY_PERCENT')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MEMORY_PERCENT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')}
                  spids: [4959]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MEMORY_SWAPTOTAL)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                              (C {<grep>} {<-m1>} {(SQ <'Swap: '>)})
                              (C {<awk>} {(SQ <'{print $2}'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [4968]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: {($ Id.VSub_DollarName '$MEMORY_SWAPTOTAL')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPUSED)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                      (C {<grep>} {<-m1>} {(SQ <'Swap: '>)})
                                      (C {<awk>} {(SQ <'{print $3}'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [5015]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPFREE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')})
                                      (C {<grep>} {<-m1>} {(SQ <'Swap: '>)})
                                      (C {<awk>} {(SQ <'{print $4}'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [5041]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>})
                                      (C {<awk>} 
                                        {
                                          (DQ <'{print '> ($ Id.VSub_DollarName '$MEMORY_SWAPUSED') 
                                            <' / '> ($ Id.VSub_DollarName '$MEMORY_SWAPTOTAL') <' * 100}'>
                                          )
                                        }
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [5067]
                        )
                      ]
                    )
                    (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$MEMORY_SWAPERCENT')})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')}
                          spids: [5096]
                        )
                      ]
                    )
                  ]
                  spids: [4998 5012]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT)
                      op: assign_op.Equal
                      rhs: {(DQ <' Disabled'>)}
                      spids: [5103]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIHOLE_QUERY_COUNT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5123]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_ADS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5127]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIHOLE_PERCENT_ADS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5131]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_DOMAINS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5135]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIHOLE_LAST_DOMAIN_BLOCKED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5139]
        )
      ]
    )
    (command.ShFunction
      name: Obtain_PIHOLE
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'pihole_log_file='> (DQ <'/var/log/pihole.log'>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$PIHOLE_TOTAL_DOMAINS')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/pihole/gravity.list'>} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_DOMAINS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<wc>} {<-l>} {<'/etc/pihole/gravity.list'>})
                                              (C {<awk>} {(SQ <'{print $1}'>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [5194]
                                )
                              ]
                            )
                          ]
                          spids: [5180 5191]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_DOMAINS)
                              op: assign_op.Equal
                              rhs: {(DQ <'Not Installed'>)}
                              spids: [5215]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5163 5177]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'today='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<date>} {<Id.Lit_Other '+'> (SQ <'%b %e'>)})
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PIHOLE_QUERY_COUNT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<cat>} {(DQ ($ Id.VSub_DollarName '$pihole_log_file'))})
                              (C {<grep>} {(DQ ($ Id.VSub_DollarName '$today'))})
                              (C {<awk>} {(SQ <'/query/ {print $7}'>)})
                              (C {<wc>} {<-l>})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [5243]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LessEqual
                                  left: {($ Id.VSub_DollarName '$PIHOLE_QUERY_COUNT')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:PIHOLE_QUERY_COUNT)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [5296]
                        )
                      ]
                    )
                  ]
                  spids: [5279 5293]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_ADS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<cat>} {(DQ ($ Id.VSub_DollarName '$pihole_log_file'))})
                              (C {<grep>} {(DQ ($ Id.VSub_DollarName '$today'))})
                              (C {<awk>} {(SQ <'/\\/etc\\/pihole\\/gravity.list/ {print $7}'>)})
                              (C {<wc>} {<-l>})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [5304]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PIHOLE_PERCENT_ADS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>})
                              (C {<awk>} 
                                {
                                  (DQ <'{print '> ($ Id.VSub_DollarName '$PIHOLE_TOTAL_ADS') <' / '> 
                                    ($ Id.VSub_DollarName '$PIHOLE_QUERY_COUNT') <' * 100}'>
                                  )
                                }
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [5336]
                )
              ]
            )
            (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$PIHOLE_PERCENT_ADS')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PIHOLE_PERCENT_ADS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')}
                  spids: [5364]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$PIHOLE_TOTAL_ADS')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:PIHOLE_LAST_DOMAIN_BLOCKED)
                          op: assign_op.Equal
                          rhs: {(DQ <None>)}
                          spids: [5390]
                        )
                      ]
                    )
                  ]
                  spids: [5373 5387]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:PIHOLE_LAST_DOMAIN_BLOCKED)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {<tac>} {<'/var/log/pihole.log'>})
                                  (C {<grep>} {<-m1>} {(SQ <gravity.list>)})
                                  (C {<awk>} {(SQ <'{print $6}'>)})
                                  (C {<cut>} {<-c>} {<1-24>})
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [5399]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RUN_INTRO)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5454]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName '$INPUT')}
                          right: {<Id.Lit_Digits 1>}
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:RUN_INTRO)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5475]
                )
              ]
            )
          ]
          spids: [5458 5472]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SCENE_CURRENT)
          op: assign_op.Equal
          rhs: {<2>}
          spids: [5487]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_SCENES)
          op: assign_op.Equal
          rhs: {<9>}
          spids: [5491]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REFRESH_RATE)
          op: assign_op.Equal
          rhs: {<5>}
          spids: [5500]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEMPERATURE_OUTPUT_TYPE)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [5509]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_CURRENT_OUTPUT_TYPE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5518]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aEnabledScenes)
          op: assign_op.Equal
          rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
          spids: [5527]
        )
      ]
    )
    (command.ForExpr
      init: 
        (arith_expr.BinaryAssign
          op_id: Id.Arith_Equal
          left: <Id.Lit_ArithVarLike i>
          right: {<Id.Lit_Digits 0>}
        )
      cond: 
        (arith_expr.Binary
          op_id: Id.Arith_Less
          left: <Id.Lit_ArithVarLike i>
          right: {($ Id.VSub_DollarName '$MAX_SCENES')}
        )
      update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aEnabledScenes
                      index: {($ Id.VSub_DollarName '$i')}
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5554]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Run_Intro
      body: 
        (BraceGroup
          children: [
            (C {<clear>})
            (C {<local>} 
              {<Id.Lit_VarLike 'aAnimation='> 
                (sh_array_literal
                  left: <Id.Op_LParen _>
                  words: [
                    {(SQ <'                          '>)}
                    {(SQ <'i         -              c'>)}
                    {(SQ <'P  i      -            c l'>)}
                    {(SQ <'t  P  i   -          c l o'>)}
                    {(SQ <'e  t  P  i-        c l o u'>)}
                    {(SQ <'i  e  t Pi-    c l o u d s'>)}
                    {(SQ <'D  i  etPi-  c l o u d s h'>)}
                    {(SQ <'  D  ietPi-c l o u d s h e'>)}
                    {(SQ <'    DietPi-cl o u d s h e '>)}
                    {(SQ <'    DietPi-clou d s h e l '>)}
                    {(SQ <'    DietPi-clouds h e l l '>)}
                    {(SQ <'    DietPi-cloudshe l l   '>)}
                    {(SQ <'    DietPi-cloudshell     '>)}
                  ]
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'aBar='> 
                (sh_array_literal
                  left: <Id.Op_LParen _>
                  words: [
                    {(SQ <' '>)}
                    {(SQ <'  '>)}
                    {(SQ <'    '>)}
                    {(SQ <'       '>)}
                    {(SQ <'         '>)}
                    {(SQ <'            '>)}
                    {(SQ <'               '>)}
                    {(SQ <'                 '>)}
                    {(SQ <'                    '>)}
                    {(SQ <'                      '>)}
                    {(SQ <'                        '>)}
                    {(SQ <'                         '>)}
                    {(SQ <'                          '>)}
                  ]
                )
              }
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name aAnimation>
                        prefix_op: (Id.VSub_Pound)
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      )
                    }
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (C {<clear>})
                    (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET'))})
                    (C {<echo>} {<-e>} {(DQ )})
                    (C {<echo>} {<-e>} {(DQ )})
                    (C {<echo>} {<-e>} {(DQ )})
                    (C {<echo>} {<-e>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$C_RESET') 
                          (braced_var_sub
                            token: <Id.VSub_Name aCOLOUR>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                              )
                          ) 
                          (braced_var_sub
                            token: <Id.VSub_Name aAnimation>
                            bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')})
                          )
                        )
                      }
                    )
                    (C {<echo>} {<-e>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$C_RESET') <'          v'> 
                          ($ Id.VSub_DollarName '$DIETPI_CLOUDSHELL_VERSION')
                        )
                      }
                    )
                    (C {<echo>} {<-e>} {(DQ )})
                    (C {<echo>} {<-e>} {(DQ <'       Loading...'>)})
                    (C {<echo>} {<-e>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$C_RESET') 
                          (braced_var_sub
                            token: <Id.VSub_Name aCOLOUR>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                              )
                          ) ($ Id.VSub_DollarName '$C_REVERSE') 
                          (braced_var_sub
                            token: <Id.VSub_Name aBar>
                            bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')})
                          )
                        )
                      }
                    )
                    (C {<sleep>} {<0.2>})
                  ]
                )
            )
            (C {<unset>} {<aAnimation>})
            (C {<unset>} {<aBar>})
            (C {<sleep>} {<0.1>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BANNER_PRINT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5920]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BANNER_MODE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [5924]
        )
      ]
    )
    (command.ShFunction
      name: Update_Banner
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$BANNER_MODE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:BANNER_PRINT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'DietPi - Cloudshell v'> 
                                ($ Id.VSub_DollarName '$DIETPI_CLOUDSHELL_VERSION')
                              )
                            }
                          spids: [5956]
                        )
                      ]
                    )
                  ]
                  spids: [5939 5953]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$BANNER_MODE')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Obtain_DATE_TIME>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:BANNER_PRINT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$DATE_TIME')}
                          spids: [5983]
                        )
                      ]
                    )
                  ]
                  spids: [5963 5977]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$BANNER_MODE')}
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Obtain_UPTIME>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:BANNER_PRINT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$UPTIME')}
                          spids: [6007]
                        )
                      ]
                    )
                  ]
                  spids: [5987 6001]
                )
              ]
            )
            (command.DParen
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: <Id.Lit_ArithVarLike BANNER_MODE>
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: {($ Id.VSub_DollarName '$BANNER_MODE')}
                                  right: {<Id.Lit_Digits 3>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:BANNER_MODE)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [6048]
                        )
                      ]
                    )
                  ]
                  spids: [6031 6045]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Update_Scene_0
      body: 
        (BraceGroup
          children: [
            (C {<Obtain_CPU>})
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' CPU Usage:               '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$CPU_USAGE'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' CPU Stats:               '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Temp      '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$C_CPUTEMP') 
                  ($ Id.VSub_DollarName '$CPU_TEMP')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Processes '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$CPU_TOTALPROCESSES')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Governor  '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$CPU_GOV')
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 11>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {<-e>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$C_RESET') 
                          (braced_var_sub
                            token: <Id.VSub_Name aCOLOUR>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                              )
                          ) <' Freq 0-3  '> 
                          (braced_var_sub
                            token: <Id.VSub_Name aCOLOUR>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                              )
                          ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$CPU_FREQ_1') <' mhz'>
                        )
                      }
                    )
                    (C {<echo>} {<-e>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$C_RESET') 
                          (braced_var_sub
                            token: <Id.VSub_Name aCOLOUR>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                              )
                          ) <' Freq 4-7  '> 
                          (braced_var_sub
                            token: <Id.VSub_Name aCOLOUR>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                              )
                          ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$CPU_FREQ_2') <' mhz'>
                        )
                      }
                    )
                  ]
                  spids: [6234 6248]
                )
              ]
              else_action: [
                (C {<echo>} {<-e>} 
                  {
                    (DQ ($ Id.VSub_DollarName '$C_RESET') 
                      (braced_var_sub
                        token: <Id.VSub_Name aCOLOUR>
                        bracket_op: 
                          (bracket_op.ArrayIndex
                            expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                          )
                      ) <' Freq      '> 
                      (braced_var_sub
                        token: <Id.VSub_Name aCOLOUR>
                        bracket_op: 
                          (bracket_op.ArrayIndex
                            expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                          )
                      ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$CPU_FREQ_1') <' mhz'>
                    )
                  }
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Update_Scene_1
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'index_1='> ($ Id.VSub_Number '$1')})
            (C {<local>} {<Id.Lit_VarLike 'index_2='> ($ Id.VSub_Number '$2')})
            (C {<Obtain_STORAGE>} {($ Id.VSub_DollarName '$index_1')} 
              {($ Id.VSub_DollarName '$index_2')}
            )
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' '> 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_NAME>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')})
                  )
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_PERCENT>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')})
                  )
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_USED>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')})
                  ) <' / '> 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_TOTAL>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')})
                  )
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_FREE>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')})
                  )
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' '> 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_NAME>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')})
                  )
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_PERCENT>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')})
                  )
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_USED>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')})
                  ) <' / '> 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_TOTAL>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')})
                  )
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name STORAGE_FREE>
                    bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')})
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Update_Scene_4
      body: 
        (BraceGroup
          children: [
            (C {<Obtain_DIETPIINFO>})
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' DietPi:                  '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Version   '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$DIETPI_VERSION_CURRENT')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Updates   '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$DIETPI_UPDATE_AVAILABLE')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Web       '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$DIETPI_WEBSITE')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Twitter   '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <':'> ($ Id.VSub_DollarName '$C_RESET') <'  '> ($ Id.VSub_DollarName '$DIETPI_TWITTER')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Device:                  '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') <' '> 
                  ($ Id.VSub_DollarName '$DIETPI_HW_DESCRIPTION')
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Update_Scene_5
      body: 
        (BraceGroup
          children: [
            (C {<Obtain_NETWORK_DETAILS>})
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Details:         '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' IP      : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_IP_INT')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Mode    : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_MODE')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Adapter : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Duplex  : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_DUPLEXSPEED')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Signal  : '> ($ Id.VSub_DollarName '$C_RESET') 
                  ($ Id.VSub_DollarName '$NETWORK_DETAILS_SIGNAL_STRENGTH')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Hostname: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_HOSTNAME')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' MAC: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_MAC_ADDRESS')
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Update_Scene_6
      body: 
        (BraceGroup
          children: [
            (C {<Obtain_NETWORK_USAGE>})
            (C {<local>} 
              {<Id.Lit_VarLike 'total_sent_output='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<BYTE_PRINT_CONVERSION>} 
                      {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT')}
                    )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'total_recieved_output='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<BYTE_PRINT_CONVERSION>} 
                      {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED')}
                    )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'today_sent_output='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<BYTE_PRINT_CONVERSION>} 
                      {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_CURRENT_SENT')}
                    )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'today_recieved_output='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<BYTE_PRINT_CONVERSION>} 
                      {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_CURRENT_RECIEVED')}
                    )
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'now_sent_output='> <0>})
            (C {<local>} {<now_recieved_output0>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$NETWORK_USAGE_CURRENT_OUTPUT_TYPE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:now_sent_output)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (C {<BIT_PRINT_CONVERSION>} 
                                    {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_SENT')}
                                  )
                              )
                            }
                          spids: [7093]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:now_recieved_output)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (C {<BIT_PRINT_CONVERSION>} 
                                    {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_RECIEVED')}
                                  )
                              )
                            }
                          spids: [7103]
                        )
                      ]
                    )
                  ]
                  spids: [7076 7090]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:now_sent_output)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (C {<BYTE_PRINT_CONVERSION>} 
                                {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_SENT')}
                              )
                          )
                        }
                      spids: [7116]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:now_recieved_output)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (C {<BYTE_PRINT_CONVERSION>} 
                                {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_RECIEVED')}
                              )
                          )
                        }
                      spids: [7126]
                    )
                  ]
                )
              ]
            )
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Usage (TOTAL):   '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Sent     : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$total_sent_output')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Recieved : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$total_recieved_output')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Usage (TODAY):   '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Sent     : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$today_sent_output')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Recieved : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$today_recieved_output')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Usage (CURRENT): '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Sent     : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$now_sent_output') <'/s'>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Recieved : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$now_recieved_output') <'/s'>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Update_Scene_7
      body: 
        (BraceGroup
          children: [
            (C {<Obtain_MEMORY>})
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Memory Usage (RAM):      '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_PERCENT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_USED') <' MB / '> 
                  ($ Id.VSub_DollarName '$MEMORY_TOTAL') <' MB'>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_FREE') <' MB'>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Memory Usage (SWAP):     '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_SWAPERCENT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_SWAPUSED') <' MB / '> 
                  ($ Id.VSub_DollarName '$MEMORY_SWAPTOTAL') <' MB'>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_SWAPFREE') <' MB'>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Update_Scene_8
      body: 
        (BraceGroup
          children: [
            (C {<Obtain_PIHOLE>})
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Pi-hole stats (TODAY):   '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Ads Blocked: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_TOTAL_ADS')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' DNS Queries: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_QUERY_COUNT')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) <' Blocked Domains: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_TOTAL_DOMAINS')
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' % of traffic = Ads:      '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_PERCENT_ADS'))}
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') 
                  (braced_var_sub
                    token: <Id.VSub_Name aCOLOUR>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')}
                      )
                  ) ($ Id.VSub_DollarName '$C_REVERSE') <' Last domain blocked:     '>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ ($ Id.VSub_DollarName '$C_RESET') <' '> 
                  ($ Id.VSub_DollarName '$PIHOLE_LAST_DOMAIN_BLOCKED')
                )
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FILEPATH_SETTINGS)
          op: assign_op.Equal
          rhs: {(DQ <'/DietPi/dietpi/.dietpi-cloudshell'>)}
          spids: [7713]
        )
      ]
    )
    (command.ShFunction
      name: Read_Settings_File
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(DQ ($ Id.VSub_DollarName '$FILEPATH_SETTINGS'))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<.>} {(DQ ($ Id.VSub_DollarName '$FILEPATH_SETTINGS'))})]
                  spids: [7727 7740]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Write_Settings_File
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<_EOF_>}
                      here_end_span_id: 7807
                      stdin_parts: [
                        <'REFRESH_RATE='>
                        ($ Id.VSub_DollarName '$REFRESH_RATE')
                        <'\n'>
                        <'USER_COLOUR_INDEX='>
                        ($ Id.VSub_DollarName '$USER_COLOUR_INDEX')
                        <'\n'>
                        <'TEMPERATURE_OUTPUT_TYPE='>
                        ($ Id.VSub_DollarName '$TEMPERATURE_OUTPUT_TYPE')
                        <'\n'>
                        <'OUTPUT_DISPLAY_INDEX='>
                        ($ Id.VSub_DollarName '$OUTPUT_DISPLAY_INDEX')
                        <'\n'>
                        <'\n'>
                        <'NETWORK_USAGE_CURRENT_OUTPUT_TYPE='>
                        ($ Id.VSub_DollarName '$NETWORK_USAGE_CURRENT_OUTPUT_TYPE')
                        <'\n'>
                        <'\n'>
                        <'BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED='>
                        ($ Id.VSub_DollarName '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED')
                        <'\n'>
                        <'BLANK_SCREEN_TIME_HOUR_START='>
                        ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START')
                        <'\n'>
                        <'BLANK_SCREEN_TIME_HOUR_END='>
                        ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END')
                        <'\n'>
                        <'\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName '$FILEPATH_SETTINGS'))}
                )
              ]
              do_fork: T
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {($ Id.VSub_DollarName '$MAX_SCENES')}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'aEnabledScenes['> ($ Id.VSub_DollarName '$i') <']='> 
                            (braced_var_sub
                              token: <Id.VSub_Name aEnabledScenes>
                              bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')})
                            )
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName '$FILEPATH_SETTINGS')}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {($ Id.VSub_DollarName '$MAX_STORAGE')}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'STORAGE_PATH['> ($ Id.VSub_DollarName '$i') <']=\''> 
                            (braced_var_sub
                              token: <Id.VSub_Name STORAGE_PATH>
                              bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')})
                            ) <'\''>
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName '$FILEPATH_SETTINGS')}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'STORAGE_NAME['> ($ Id.VSub_DollarName '$i') <']=\''> 
                            (braced_var_sub
                              token: <Id.VSub_Name STORAGE_NAME>
                              bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')})
                            ) <'\''>
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName '$FILEPATH_SETTINGS')}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: Init
      body: 
        (BraceGroup
          children: [
            (C {<Init_STORAGE>})
            (C {<Read_Settings_File>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 20>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.IndexedName name:aEnabledScenes index:{<Id.Lit_Digits 0>})
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [8011]
                        )
                      ]
                    )
                  ]
                  spids: [7994 8008]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                              {<'/etc/pihole/gravity.list'>} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.IndexedName name:aEnabledScenes index:{<Id.Lit_Digits 8>})
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [8052]
                        )
                      ]
                    )
                  ]
                  spids: [8035 8048]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'enabled_scene='> <0>})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {($ Id.VSub_DollarName '$MAX_SCENES')}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aEnabledScenes>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {($ Id.VSub_DollarName '$i')}
                                              )
                                          )
                                        }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:enabled_scene)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [8119]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [8101 8116]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$enabled_scene')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.IndexedName name:aEnabledScenes index:{<Id.Lit_Digits 4>})
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [8155]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SCENE_CURRENT)
                          op: assign_op.Equal
                          rhs: {<4>}
                          spids: [8163]
                        )
                      ]
                    )
                  ]
                  spids: [8137 8151]
                )
              ]
            )
            (C {<'/DietPi/dietpi/func/obtain_network_details'>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_DISPLAY_INDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [8203]
        )
      ]
    )
    (command.ShFunction
      name: Stop
      body: 
        (BraceGroup
          children: [
            (C {<systemctl>} {<stop>} {<dietpi-cloudshell>})
            (command.Pipeline
              children: [
                (C {<ps>} {<ax>})
                (C {<grep>} {(SQ <'[d]ietpi-cloudshell [1-9]'>)})
                (command.Simple
                  words: [{<awk>} {(SQ <'{print $1}'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}
                    )
                  ]
                  do_fork: T
                )
              ]
              negated: F
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<read>} {<-r>} {<line>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.Simple
                      words: [{<kill>} {($ Id.VSub_DollarName '$line')}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {($ Id.VSub_DollarName '$FP_TEMP')}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Start
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'output_current_screen='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: (C {<tty>})
                                  )
                                )
                              } {<Id.Lit_Equals '='>} {(DQ <'/dev/tty1'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output_current_screen)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [8330]
                        )
                      ]
                    )
                  ]
                  spids: [8308 8327]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_DISPLAY_INDEX')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output_current_screen)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [8351]
                        )
                      ]
                    )
                  ]
                  spids: [8334 8348]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$output_current_screen')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<clear>})
                    (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET'))})
                    (C {<read>} {<-p>} 
                      {
                        (DQ <'Use CTRL+C to exit. Press any key to launch '> 
                          ($ Id.VSub_DollarName '$PROGRAM_NAME') <...>
                        )
                      }
                    )
                  ]
                  spids: [8363 8377]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$output_current_screen')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<'/DietPi/dietpi/dietpi-cloudshell'>} {<1>})]
                  spids: [8411 8425]
                )
              ]
              else_action: [(C {<systemctl>} {<start>} {<dietpi-cloudshell>})]
            )
            (C {<sleep>} {<0.1>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [8477]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [8481]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [8485]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHOICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [8489]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [8493]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LASTSELECTED_ITEM)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [8497]
        )
      ]
    )
    (command.ShFunction
      name: Menu_Exit
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(DQ <'Exit '> ($ Id.VSub_DollarName '$PROGRAM_NAME'))}
                  spids: [8510]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: {(DQ <'Exit '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <' configuration tool?'>)}
                  spids: [8517]
                )
              ]
            )
            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} 
              {(DQ <Back>)} {<--defaultno>} {<9>} {<55>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [8564]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Write_Settings_File>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [8598]
                        )
                      ]
                    )
                  ]
                  spids: [8568 8582]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [8611]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Main
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8635]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'- '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <' v'> 
                        ($ Id.VSub_DollarName '$DIETPI_CLOUDSHELL_VERSION') <' -'>
                      )
                    }
                  spids: [8639]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(DQ <'- '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <' -'>)}
                  spids: [8649]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'temp_output_text='> (DQ <Fahrenheit>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$TEMPERATURE_OUTPUT_TYPE')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:temp_output_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Celsius>)}
                          spids: [8683]
                        )
                      ]
                    )
                  ]
                  spids: [8666 8680]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'target_output_text='> (DQ <'Main Screen (tty1)'>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_DISPLAY_INDEX')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:target_output_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'Current screen or terminal'>)}
                          spids: [8718]
                        )
                      ]
                    )
                  ]
                  spids: [8701 8715]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'bitbyte_output_text='> (DQ <'Bit (Kbit, Mbit, Gbit)'>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$NETWORK_USAGE_CURRENT_OUTPUT_TYPE')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:bitbyte_output_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'Byte (KB, MB, GB)'>)}
                          spids: [8753]
                        )
                      ]
                    )
                  ]
                  spids: [8736 8750]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'autoscreenoff='> (DQ <Disabled>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: {($ Id.VSub_DollarName '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED')}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:autoscreenoff)
                          op: assign_op.Equal
                          rhs: {(DQ <Enabled>)}
                          spids: [8784]
                        )
                      ]
                    )
                  ]
                  spids: [8771 8781]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                              {<--menu>}
                              {(DQ )}
                              {<--cancel-button>}
                              {(DQ <Exit>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName '$LASTSELECTED_ITEM'))}
                              {<17>}
                              {<75>}
                              {<10>}
                              {(DQ <Colour>)}
                              {(DQ <'Setting: Change the colour scheme.'>)}
                              {(DQ <'Update Rate'>)}
                              {(DQ <'Setting: Control the time between screen updates.'>)}
                              {(DQ <Scenes>)}
                              {(DQ <'Setting: Toggle which scenes are shown.'>)}
                              {(DQ <Storage>)}
                              {(DQ <'Setting: Set mount locations used for storage stats'>)}
                              {(DQ <Temperature>)}
                              {(DQ <'Setting: Output = '> ($ Id.VSub_DollarName '$temp_output_text'))}
                              {(DQ <'Net Usage Current'>)}
                              {
                                (DQ <'Setting: Output = '> 
                                  ($ Id.VSub_DollarName '$bitbyte_output_text')
                                )
                              }
                              {(DQ <'Output Display'>)}
                              {(DQ <'Setting: '> ($ Id.VSub_DollarName '$target_output_text') <.>)}
                              {(DQ <'Auto screen off'>)}
                              {
                                (DQ <'Setting: '> ($ Id.VSub_DollarName '$autoscreenoff') <' | Start '> 
                                  ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START') <' h | End '> ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END') <' h'>
                                )
                              }
                              {(DQ <'Start / Restart'>)}
                              {
                                (DQ <'Apply settings. Launch on '> 
                                  ($ Id.VSub_DollarName '$target_output_text') <.>
                                )
                              }
                              {(DQ <Stop>)}
                              {(DQ <'Stops '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <.>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [8794]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [8959]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:LASTSELECTED_ITEM)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$OPTION'))}
                          spids: [8981]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ <Storage>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<5>}
                                  spids: [9004]
                                )
                              ]
                            )
                          ]
                          spids: [8998 9001 9008 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Auto screen off'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [9017]
                                )
                              ]
                            )
                          ]
                          spids: [9011 9014 9021 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Net Usage Current'>)}]
                          action: [
                            (command.DParen
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: <Id.Lit_ArithVarLike NETWORK_USAGE_CURRENT_OUTPUT_TYPE>
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Great
                                                  left: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$NETWORK_USAGE_CURRENT_OUTPUT_TYPE'
                                                      )
                                                    }
                                                  right: {<Id.Lit_Digits 1>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              name: NETWORK_USAGE_CURRENT_OUTPUT_TYPE
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [9054]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9037 9051]
                                )
                              ]
                            )
                          ]
                          spids: [9024 9027 9061 -1]
                        )
                        (case_arm
                          pat_list: [{<Temperature>}]
                          action: [
                            (command.DParen
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: <Id.Lit_ArithVarLike TEMPERATURE_OUTPUT_TYPE>
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Great
                                                  left: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$TEMPERATURE_OUTPUT_TYPE'
                                                      )
                                                    }
                                                  right: {<Id.Lit_Digits 1>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:TEMPERATURE_OUTPUT_TYPE)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [9092]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9075 9089]
                                )
                              ]
                            )
                          ]
                          spids: [9064 9065 9099 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Output Display'>)}]
                          action: [
                            (command.DParen
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: <Id.Lit_ArithVarLike OUTPUT_DISPLAY_INDEX>
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Great
                                                  left: 
                                                    {($ Id.VSub_DollarName '$OUTPUT_DISPLAY_INDEX')}
                                                  right: {<Id.Lit_Digits 1>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:OUTPUT_DISPLAY_INDEX)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [9132]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9115 9129]
                                )
                              ]
                            )
                          ]
                          spids: [9102 9105 9139 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Start / Restart'>)}]
                          action: [(C {<Write_Settings_File>}) (C {<Stop>}) (C {<Start>})]
                          spids: [9142 9145 9157 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <Stop>)}]
                          action: [(C {<Stop>})]
                          spids: [9160 9163 9169 -1]
                        )
                        (case_arm
                          pat_list: [{<Colour>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [9176]
                                )
                              ]
                            )
                          ]
                          spids: [9172 9173 9180 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Update Rate'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [9189]
                                )
                              ]
                            )
                          ]
                          spids: [9183 9186 9193 -1]
                        )
                        (case_arm
                          pat_list: [{<Scenes>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [9200]
                                )
                              ]
                            )
                          ]
                          spids: [9196 9197 9204 -1]
                        )
                      ]
                    )
                  ]
                  spids: [8963 8977]
                )
              ]
              else_action: [(C {<Menu_Exit>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Colour
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9239]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'- Options : Colour -'>)}
                  spids: [9276]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: {(SQ <'Select your colour scheme.'>)}
                  spids: [9282]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                              {<--menu>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName '$USER_COLOUR_INDEX'))}
                              {<15>}
                              {<45>}
                              {<7>}
                              {(DQ <0>)}
                              {(DQ <White>)}
                              {(DQ <1>)}
                              {(DQ <Red>)}
                              {(DQ <2>)}
                              {(DQ <Green>)}
                              {(DQ <3>)}
                              {(DQ <'Yellow (Default)'>)}
                              {(DQ <4>)}
                              {(DQ <Blue>)}
                              {(DQ <5>)}
                              {(DQ <Purple>)}
                              {(DQ <6>)}
                              {(DQ <Cyan>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [9288]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [9410]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:USER_COLOUR_INDEX)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [9432]
                        )
                      ]
                    )
                  ]
                  spids: [9414 9428]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_UpdateRate
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9460]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'- Options : Update Rate -'>)}
                  spids: [9465]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: {(SQ <'Change the delay between scene changes and updates.'>)}
                  spids: [9471]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                              {<--menu>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName '$REFRESH_RATE'))}
                              {<15>}
                              {<55>}
                              {<7>}
                              {(DQ <1>)}
                              {(DQ <Second>)}
                              {(DQ <3>)}
                              {(DQ <Seconds>)}
                              {(DQ <5>)}
                              {(DQ <'Seconds (Default)'>)}
                              {(DQ <10>)}
                              {(DQ <Seconds>)}
                              {(DQ <15>)}
                              {(DQ <Seconds>)}
                              {(DQ <20>)}
                              {(DQ <Seconds>)}
                              {(DQ <30>)}
                              {(DQ <Seconds>)}
                              {(DQ <45>)}
                              {(DQ <Seconds>)}
                              {(DQ <60>)}
                              {(DQ <Seconds>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [9477]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [9619]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:REFRESH_RATE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [9641]
                        )
                      ]
                    )
                  ]
                  spids: [9623 9637]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_SceneSelection
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9669]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_TEMP)
                  op: assign_op.Equal
                  rhs: {(DQ <'/tmp/.dietpi-cloudshell_scenelist'>)}
                  spids: [9674]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'aWhiptailArray='> (sh_array_literal left:<Id.Op_LParen _>)})
            (C {<local>} 
              {<Id.Lit_VarLike 'aWhip_OnOff_Status='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {($ Id.VSub_DollarName '$MAX_SCENES')}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aWhip_OnOff_Status
                              index: {($ Id.VSub_DollarName '$i')}
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <on>)}
                          spids: [9725]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aEnabledScenes>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName '$i')}
                                                  )
                                              )
                                            }
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aWhip_OnOff_Status
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <off>)}
                                  spids: [9756]
                                )
                              ]
                            )
                          ]
                          spids: [9735 9752]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<local>} {<Id.Lit_VarLike 'index='> <0>})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [9785]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <'CPU: Temperatures, Usage, frequency and more.'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9788]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<1>}
                      spids: [9809]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <'Storage: Usage information for Flash and USB drives'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9812]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<2>}
                      spids: [9833]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <' - Additional Storage (USB_2/3)'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9836]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<3>}
                      spids: [9857]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <' - Additional Storage (USB_4/5)'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9860]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<4>}
                      spids: [9881]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <'DietPi: Information, stats and updates for DietPi.'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9884]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<5>}
                      spids: [9905]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <'Network Details: Ip address, Speeds, Signal and more.'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9908]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<6>}
                      spids: [9929]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <'Network Usage: Bandwidth usage (sent / recieved).'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9932]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<7>}
                      spids: [9953]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <'Memory: Stats for RAM and Swapfile usage.'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9956]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:index)
                      op: assign_op.Equal
                      rhs: {<8>}
                      spids: [9977]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                  op: assign_op.PlusEqual
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {(DQ ($ Id.VSub_DollarName '$index'))}
                          {(DQ <'Pi-hole: Stats for Pi-hole. Total Ads blocked etc.'>)}
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name aWhip_OnOff_Status>
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: {($ Id.VSub_DollarName '$index')}
                                  )
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [9980]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'- Options : Scene Selection -'>)}
                  spids: [10002]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: {(SQ <'Please use the spacebar to toggle which scenes are active.'>)}
                  spids: [10008]
                )
              ]
            )
            (command.Simple
              words: [
                {<whiptail>}
                {<--title>}
                {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                {<--checklist>}
                {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                {<--backtitle>}
                {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                {<--separate-output>}
                {<16>}
                {<75>}
                {<9>}
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name aWhiptailArray>
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '2>'>
                  loc: (redir_loc.Fd fd:2)
                  arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [10058]
                )
              ]
            )
            (C {<unset>} {<aWhiptailArray>})
            (C {<unset>} {<aWhip_OnOff_Status>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: <Id.Lit_ArithVarLike i>
                          right: {($ Id.VSub_DollarName '$MAX_SCENES')}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aEnabledScenes
                                      index: {($ Id.VSub_DollarName '$i')}
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [10122]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [10082 10096]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<read>} {<-r>} {<line>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aEnabledScenes
                              index: {($ Id.VSub_DollarName '$line')}
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [10156]
                        )
                      ]
                    )
                  ]
                )
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_BlankScreenAtTime
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10194]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'aWhipHour='> (sh_array_literal left:<Id.Op_LParen _>)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 24>}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:aWhipHour)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [{(DQ ($ Id.VSub_DollarName '$i'))} {(DQ <Hour>)}]
                              )
                            }
                          spids: [10232]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'blank_screen_at_specific_time_enabled_text='> (SQ <Disabled>)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: {($ Id.VSub_DollarName '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED')}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:blank_screen_at_specific_time_enabled_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [10270]
                        )
                      ]
                    )
                  ]
                  spids: [10257 10267]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'- Options : Auto screen off -'>)}
                  spids: [10280]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SQ 
                        <
'Automatically power down the screen and disable DietPi-Cloudshell processing during a specific time.\\n\\nNB: This feature will only work if DietPi-Cloudshell was launched with the DietPi-Autostart option, or, launched from the main screen (tty1).'
                        >
                      )
                    }
                  spids: [10286]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                              {<--menu>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName '$REFRESH_RATE'))}
                              {<16>}
                              {<60>}
                              {<3>}
                              {(DQ <Toggle>)}
                              {
                                (DQ 
                                  ($ Id.VSub_DollarName '$blank_screen_at_specific_time_enabled_text')
                                )
                              }
                              {(DQ <'Start time'>)}
                              {
                                (DQ <'Set which hour to power off screen ('> 
                                  ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START') <').'>
                                )
                              }
                              {(DQ <'End time'>)}
                              {
                                (DQ <'Set which hour to power on screen ('> 
                                  ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END') <').'>
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [10292]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [10378]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} 
                                      {<Id.Lit_Equals '='>} {(DQ <Toggle>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.DParen
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: <Id.Lit_ArithVarLike BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED>
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Great
                                                  left: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED'
                                                      )
                                                    }
                                                  right: {<Id.Lit_Digits 1>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              name: BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [10444]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [10427 10441]
                                )
                              ]
                            )
                          ]
                          spids: [10400 10416]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'Start time'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'Please select which hour (24h) you would like the screen to power off.'
                                        >
                                      )
                                    }
                                  spids: [10472]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {<whiptail>}
                                              {<--title>}
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                              {<--menu>}
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                                              {<--default-item>}
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName 
'$BLANK_SCREEN_TIME_HOUR_START'
                                                  )
                                                )
                                              }
                                              {<--backtitle>}
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                                              {<16>}
                                              {<55>}
                                              {<7>}
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aWhipHour>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_GreatAnd '3>&'>
                                                loc: (redir_loc.Fd fd:3)
                                                arg: {<1>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '1>&'>
                                                loc: (redir_loc.Fd fd:1)
                                                arg: {<2>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '2>&'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<3>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [10478]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [10532]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_TIME_HOUR_START)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [10553]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [10536 10550]
                                )
                              ]
                            )
                          ]
                          spids: [10452 10468]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} 
                                      {<Id.Lit_Equals '='>} {(DQ <'End time'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'Please select which hour (24h) you would like the screen to power on.'
                                        >
                                      )
                                    }
                                  spids: [10581]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {<whiptail>}
                                              {<--title>}
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                              {<--menu>}
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                                              {<--default-item>}
                                              {
                                                (DQ 
                                                  ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END')
                                                )
                                              }
                                              {<--backtitle>}
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                                              {<16>}
                                              {<55>}
                                              {<7>}
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aWhipHour>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                )
                                              }
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_GreatAnd '3>&'>
                                                loc: (redir_loc.Fd fd:3)
                                                arg: {<1>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '1>&'>
                                                loc: (redir_loc.Fd fd:1)
                                                arg: {<2>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '2>&'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<3>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [10587]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [10641]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_TIME_HOUR_END)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [10662]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [10645 10659]
                                )
                              ]
                            )
                          ]
                          spids: [10561 10577]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<4>}
                          spids: [10674]
                        )
                      ]
                    )
                  ]
                  spids: [10382 10396]
                )
              ]
            )
            (C {<unset>} {<aWhipHour>})
          ]
        )
    )
    (command.ShFunction
      name: Menu_Storage
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10708]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'aWhiptailArray='> (sh_array_literal left:<Id.Op_LParen _>)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 1>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {($ Id.VSub_DollarName '$MAX_STORAGE')}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:aWhiptailArray)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {(DQ ($ Id.VSub_DollarName '$i'))}
                                  {
                                    (DQ <': Drive '> ($ Id.VSub_DollarName '$i') <' | '> 
                                      (braced_var_sub
                                        token: <Id.VSub_Name STORAGE_PATH>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: {($ Id.VSub_DollarName '$i')}
                                          )
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [10748]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'- Options : Storage Device Mount Location -'>)}
                  spids: [10773]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SQ 
                        <
'DietPi-Cloudshell pulls the storage stats from the drive mount location. If you have custom drives/mounts, please set them here to be displayed during storage scene updates.\\n\\n - Drive 1 = Displayed during main storage scene\\n - Drive 2/3 = Displayed during additional storage scene\\n - Drive 4/5 = Displayed during additional storage scene'
                        >
                      )
                    }
                  spids: [10779]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName '$PROGRAM_NAME'))}
                              {<--menu>}
                              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<19>}
                              {<75>}
                              {<5>}
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name aWhiptailArray>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                )
                              }
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [10785]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [10840]
                )
              ]
            )
            (C {<unset>} {<aWhiptailArray>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$CHOICE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} {<Id.Lit_VarLike 'index='> ($ Id.VSub_DollarName '$OPTION')})
                    (C {<'/DietPi/dietpi/dietpi-drive_manager'>} {<1>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'return_string='> 
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<cat>} {<'/tmp/dietpi-drive_manager_selmnt'>})
                          )
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName '$return_string'))} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: STORAGE_PATH
                                      index: {($ Id.VSub_DollarName '$index')}
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$return_string'))}
                                  spids: [10910]
                                )
                              ]
                            )
                          ]
                          spids: [10893 10906]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<5>}
                          spids: [10925]
                        )
                      ]
                    )
                  ]
                  spids: [10851 10865]
                )
              ]
            )
          ]
        )
    )
    (C {<Init>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName '$INPUT')}
                          right: {<Id.Lit_Digits 0>}
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: {($ Id.VSub_DollarName '$TARGETMENUID')}
                              right: {<Id.Lit_Digits 0>}
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (C {<clear>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Main>})]
                          spids: [11014 11028]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Colour>})]
                          spids: [11034 11048]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                          right: {<Id.Lit_Digits 2>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_UpdateRate>})]
                          spids: [11054 11068]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                          right: {<Id.Lit_Digits 3>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_SceneSelection>})]
                          spids: [11074 11088]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                          right: {<Id.Lit_Digits 4>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_BlankScreenAtTime>})]
                          spids: [11094 11108]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                          right: {<Id.Lit_Digits 5>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Storage>})]
                          spids: [11114 11128]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [10970 10984]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_GreatEqual
                          left: {($ Id.VSub_DollarName '$INPUT')}
                          right: {<Id.Lit_Digits 1>}
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<Enable_Term_Options>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (command.DParen child:{($ Id.VSub_DollarName '$RUN_INTRO')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Run_Intro>})]
                  spids: [11176 11186]
                )
              ]
            )
            (command.Simple
              words: [{<renice>} {<-n>} {<10>} {($ Id.VSub_Dollar '$$')}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<true>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        {
                                          ($ Id.VSub_DollarName 
'$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED'
                                          )
                                        }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<RUN_BLANK_SCREEN_AT_SPECIFIC_TIME>})]
                          spids: [11227 11237]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: {($ Id.VSub_DollarName '$BLANK_SCREEN_ACTIVE')}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<sleep>} {<60>})]
                          spids: [11253 11263]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aEnabledScenes>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {($ Id.VSub_DollarName '$SCENE_CURRENT')}
                                                  )
                                              )
                                            }
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<Update_Banner>})
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName '$SCENE_CURRENT')}
                                                      right: {<Id.Lit_Digits 1>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [(C {<Update_Scene_1>} {<0>} {<1>})]
                                      spids: [11308 11322]
                                    )
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName '$SCENE_CURRENT')}
                                                      right: {<Id.Lit_Digits 2>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [(C {<Update_Scene_1>} {<2>} {<3>})]
                                      spids: [11338 11352]
                                    )
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName '$SCENE_CURRENT')}
                                                      right: {<Id.Lit_Digits 3>}
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [(C {<Update_Scene_1>} {<4>} {<5>})]
                                      spids: [11368 11382]
                                    )
                                  ]
                                  else_action: [
                                    (C {<Update_Scene_> ($ Id.VSub_DollarName '$SCENE_CURRENT')})
                                  ]
                                )
                                (C {<sleep>} {($ Id.VSub_DollarName '$REFRESH_RATE')})
                              ]
                              spids: [11281 11296]
                            )
                          ]
                        )
                        (command.DParen
                          child: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: <Id.Lit_ArithVarLike SCENE_CURRENT>
                            )
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: {($ Id.VSub_DollarName '$SCENE_CURRENT')}
                                              right: {($ Id.VSub_DollarName '$MAX_SCENES')}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:SCENE_CURRENT)
                                      op: assign_op.Equal
                                      rhs: {<0>}
                                      spids: [11458]
                                    )
                                  ]
                                )
                              ]
                              spids: [11441 11455]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [11150 11164]
        )
      ]
    )
    (command.Simple
      words: [{<rm>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}]
      redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (C {<unset>} {<aCOLOUR>})
    (C {<unset>} {<aEnabledScenes>})
    (C {<Destroy_STORAGE>})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
  ]
)