(BraceGroup
  children: [
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:INPUT) op:assign_op.Equal rhs:{<0>} spids:[79])]
    )
    (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: [106]
                )
              ]
            )
          ]
          spids: [83 103]
        )
      ]
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Set_nfsclient>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OPTION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [151]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHOICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [155]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:nfsclient_ipaddress)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NFSCLIENT_ADDRESS='>)} {<'/DietPi/dietpi.txt'>})
                      (C {<sed>} {(SQ <'s/.*=//'>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [159]
        )
      ]
    )
    (command.ShFunction
      name: Apply_And_Mount
      body: 
        (BraceGroup
          children: [
            (C {<sed>} {<-i>} 
              {
                (DQ <'/'> <Id.Lit_BadBackslash '\\'> <'/mnt'> <Id.Lit_BadBackslash '\\'> 
                  <'/nfs_client/c '> ($ Id.VSub_DollarName '$nfsclient_ipaddress') <':'> <Id.Lit_BadBackslash '\\'> <'/ '> 
                  <Id.Lit_BadBackslash '\\'> <'/mnt'> <Id.Lit_BadBackslash '\\'> <'/nfs_client nfs4 auto,_netdev 0  0'>
                )
              } {<'/etc/fstab'>}
            )
            (C {<mount>} {<-a>})
          ]
        )
    )
    (command.If
      arms: [
        (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.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--inputbox>}
                              {
                                (DQ <'Please enter the NFS server IP address'> 
                                  <Id.Lit_BadBackslash '\\'> <'n - eg: 192.168.0.123'>
                                )
                              }
                              {<9>}
                              {<65>}
                              {(DQ ($ Id.VSub_DollarName '$nfsclient_ipaddress'))}
                              {<--title>}
                              {(DQ <'NFS Client Setup'>)}
                            ]
                            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: [269]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [306]
                )
              ]
            )
            (command.If
              arms: [
                (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:nfsclient_ipaddress)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                          spids: [328]
                        )
                      ]
                    )
                    (C {<clear>})
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                          <'n Attempting mount, please wait....'>
                        )
                      }
                    )
                    (command.Simple
                      words: [{<umount>} {<'/mnt/nfs_client'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/CONFIG_NFSCLIENT_ADDRESS=/c'> <Id.Lit_BadBackslash '\\'> 
                          <'CONFIG_NFSCLIENT_ADDRESS='> ($ Id.VSub_DollarName '$nfsclient_ipaddress')
                        )
                      } {<'/DietPi/dietpi.txt'>}
                    )
                    (C {<Apply_And_Mount>})
                  ]
                  spids: [310 324]
                )
              ]
            )
          ]
          spids: [251 265]
        )
        (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: [(C {<Apply_And_Mount>})]
          spids: [397 411]
        )
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
  ]
)