(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(rspamd)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(1.6.4)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[18])]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ('Fast, free and open-source spam filtering system'))}
          spids: [21]
        )
      ]
      spids: [21]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ('https://rspamd.com'))}
          spids: [26]
        )
      ]
      spids: [26]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arch)
          op: Equal
          rhs: {(DQ ('x86_64 x86 armhf ppc64le'))}
          spids: [31]
        )
      ]
      spids: [31]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (BSD))} spids:[36])]
      spids: [36]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ ('!check'))} spids:[41])]
      spids: [41]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgusers)
          op: Equal
          rhs: {($ VSub_Name '$pkgname')}
          spids: [46]
        )
      ]
      spids: [46]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkggroups)
          op: Equal
          rhs: {($ VSub_Name '$pkgname')}
          spids: [49]
        )
      ]
      spids: [49]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends)
          op: Equal
          rhs: 
            {
              (DQ ('cmake ragel perl lua-dev glib-dev pcre-dev icu-dev\n') 
                ('\tlibevent-dev sqlite-dev libressl-dev file-dev curl-dev\n') ('\tgd-dev fann-dev')
              )
            }
          spids: [52]
        )
      ]
      spids: [52]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:install)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$pkgname') (.pre-install))}
          spids: [59]
        )
      ]
      spids: [59]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$pkgname') ('-doc ') ($ VSub_Name '$pkgname') ('-client ') 
                ($ VSub_Name '$pkgname') ('-utils::noarch\n') ('\t') ($ VSub_Name '$pkgname') ('-controller::noarch ') ($ VSub_Name '$pkgname') 
                ('-fuzzy::noarch\n') ('\t') ($ VSub_Name '$pkgname') ('-proxy::noarch\n') ('\t')
              )
            }
          spids: [65]
        )
      ]
      spids: [65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$pkgname') (-) ($ VSub_Name '$pkgver') 
                ('.tar.gz::https://github.com/vstakhov/') ($ VSub_Name '$pkgname') (/archive/) ($ VSub_Name '$pkgver') ('.tar.gz\n') ('\t') ($ VSub_Name '$pkgname') 
                ('.logrotated\n') ('\t') ($ VSub_Name '$pkgname') ('.initd\n') ('\t') ($ VSub_Name '$pkgname') ('.confd\n') 
                ('\tcmakelists.patch\n') ('\tworker.conf.in\n') ('\t')
              )
            }
          spids: [84]
        )
      ]
      spids: [84]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$srcdir') (/) ($ VSub_Name '$pkgname') (-) ($ VSub_Name '$pkgver'))}
          spids: [108]
        )
      ]
      spids: [108]
    )
    (FuncDef
      name: prepare
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:worker) op:Equal spids:[127])]
              spids: [125]
            )
            (C {(default_prepare)})
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (ForEach
              iter_name: worker
              iter_words: [
                {(proxy) (Lit_Other ':') (2)}
                {(normal) (Lit_Other ':') (3)}
                {(controller) (Lit_Other ':') (4)}
                {(fuzzy) (Lit_Other ':') (5)}
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {(sed)}
                        {(-e)}
                        {
                          (DQ ('s/@name@/') 
                            (BracedVarSub
                              token: <VSub_Name worker>
                              suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(':*')})
                              spids: [173 177]
                            ) (/g)
                          )
                        }
                        {(-e)}
                        {
                          (DQ ('s/@port@/') 
                            (BracedVarSub
                              token: <VSub_Name worker>
                              suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*:')})
                              spids: [185 189]
                            ) (/g)
                          )
                        }
                        {(DQ ($ VSub_Name '$srcdir')) (/worker.conf.in)}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: 
                            {(conf/worker-) 
                              (BracedVarSub
                                token: <VSub_Name worker>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(':*')})
                                spids: [203 207]
                              ) (.conf)
                            }
                          spids: [200]
                        )
                      ]
                    )
                  ]
                  spids: [164 211]
                )
              spids: [146 162]
            )
            (C {(sed)} {(-ri)} {(-e)} {(SQ <'s/worker /&"rspamd_proxy" /'>)} {(conf/worker-proxy.conf)})
            (AndOr
              children: [
                (C {(sed)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(-n)} {(-m1)} {(SQ <'worker {'>)} {(conf/rspamd.conf)})
                                  (C {(cut)} {(-d) (Lit_Other ':')} {(-f1)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [232 251]
                      ) (',') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (d)
                    )
                  } {(-i)} {(conf/rspamd.conf)}
                )
                (SimpleCommand
                  words: [{(echo)} {(SQ <'.include(glob=true) "$CONFDIR/worker-*.conf"'>)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {(conf/rspamd.conf)}
                      spids: [273]
                    )
                  ]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(sed)} {(-ri)} {(-e)} {(SQ <'s~DBDIR(/rspamd.sock)~RUNDIR\\1~'>)} {(-e)} 
              {(SQ <'s~rspamd_dynamic~dynamic~'>)} {(conf/options.inc)}
            )
          ]
          spids: [122]
        )
      spids: [118 121]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (C {(cmake)} {(CMakeLists.txt)} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other '=') (/usr)} 
              {(-DCONFDIR) (Lit_Other '=') (/etc/) ($ VSub_Name '$pkgname')} {(-DRUNDIR) (Lit_Other '=') (/run/) ($ VSub_Name '$pkgname')} 
              {(-DRSPAMD_USER) (Lit_Other '=') ($ VSub_Name '$pkgusers')} {(-DRSPAMD_GROUP) (Lit_Other '=') ($ VSub_Name '$pkggroups')} {(-DENABLE_DB) (Lit_Other '=') (ON)} 
              {(-DENABLE_SQLITE) (Lit_Other '=') (ON)} {(-DENABLE_HIREDIS) (Lit_Other '=') (ON)} {(-DENABLE_REDIRECTOR) (Lit_Other '=') (ON)} 
              {(-DENABLE_URL_INCLUDE) (Lit_Other '=') (ON)} {(-DINSTALL_EXAMPLES) (Lit_Other '=') (ON)}
            )
            (C {(make)})
          ]
          spids: [309]
        )
      spids: [305 308]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (C {(make)} {(Lit_VarLike 'DESTDIR=') (DQ ($ VSub_Name '$pkgdir'))} {(install)})
            (C {(mkdir)} {(-p)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/local.d)} {(DQ ($ VSub_Name '$pkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/override.d)}
            )
            (C {(install)} {(-Dm644)} 
              {(DQ ($ VSub_Name '$srcdir')) (/) ($ VSub_Name '$pkgname') (.logrotated)} {(DQ ($ VSub_Name '$pkgdir')) (/etc/logrotate.d/) ($ VSub_Name '$pkgname')}
            )
            (C {(install)} {(-Dm755)} 
              {(DQ ($ VSub_Name '$srcdir')) (/) ($ VSub_Name '$pkgname') (.initd)} {(DQ ($ VSub_Name '$pkgdir')) (/etc/init.d/) ($ VSub_Name '$pkgname')}
            )
            (C {(install)} {(-Dm644)} 
              {(DQ ($ VSub_Name '$srcdir')) (/) ($ VSub_Name '$pkgname') (.confd)} {(DQ ($ VSub_Name '$pkgdir')) (/etc/conf.d/) ($ VSub_Name '$pkgname')}
            )
            (C {(install)} {(-dm750)} {(-o)} {($ VSub_Name '$pkgname')} {(-g)} {($ VSub_Name '$pkgname')} 
              {(DQ ($ VSub_Name '$pkgdir')) (/var/lib/) ($ VSub_Name '$pkgname') (/dynamic)}
            )
            (C {(install)} {(-dm750)} {(-g)} {($ VSub_Name '$pkgname')} 
              {(DQ ($ VSub_Name '$pkgdir')) (/var/log/) ($ VSub_Name '$pkgname')}
            )
            (C {(chown)} {($ VSub_Name '$pkgname') (Lit_Other ':') ($ VSub_Name '$pkgname')} 
              {(DQ ($ VSub_Name '$pkgdir')) (/var/lib/) ($ VSub_Name '$pkgname')}
            )
            (C {(mkdir)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/sbin)})
            (C {(find)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin)} {(-type)} {(l)} {(-delete)})
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin/rspamd-) ($ VSub_Name '$pkgver')} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/sbin/rspamd)}
            )
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin/rspamadm-) ($ VSub_Name '$pkgver')} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin/rspamadm)}
            )
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/examples)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/doc)}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/) ($ VSub_Name '$pkgname') (/www/README.md)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/) ($ VSub_Name '$pkgname') (/www/plugins.txt)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/doc/) ($ VSub_Name '$pkgname')}
            )
          ]
          spids: [401]
        )
      spids: [397 400]
    )
    (FuncDef
      name: client
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' (console client)'))}
                  spids: [664]
                )
              ]
              spids: [664]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$subpkgdir')) (/usr/bin)})
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin/rspamc-) ($ VSub_Name '$pkgver')} 
              {(DQ ($ VSub_Name '$subpkgdir')) (/usr/bin/rspamc)}
            )
          ]
          spids: [661]
        )
      spids: [657 660]
    )
    (FuncDef
      name: utils
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ (perl))} spids:[706])]
              spids: [706]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' (utilities)'))}
                  spids: [712]
                )
              ]
              spids: [712]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$subpkgdir')) (/usr/bin)})
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin/) (${ VSub_Name pkgname) (_stats)} 
              {(DQ ($ VSub_Name '$subpkgdir')) (/usr/bin/) (${ VSub_Name pkgname) (-stats)}
            )
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin/) (${ VSub_Name pkgname) (-redirector)} 
              {(DQ ($ VSub_Name '$subpkgdir')) (/usr/bin)}
            )
          ]
          spids: [703]
        )
      spids: [699 702]
    )
    (FuncDef
      name: fuzzy
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgname'))}
                  spids: [778]
                )
              ]
              spids: [778]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' (local fuzzy storage)'))}
                  spids: [784]
                )
              ]
              spids: [784]
            )
            (C {(mkdir)} {(-p)} 
              {(DQ ($ VSub_Name '$subpkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/modules.d)}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/worker-fuzzy.) 
                (Lit_Other '*')
              } {(DQ ($ VSub_Name '$subpkgdir')) (/etc/) ($ VSub_Name '$pkgname')}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/modules.d/fuzzy_) 
                (Lit_Other '*')
              } {(DQ ($ VSub_Name '$subpkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/modules.d)}
            )
          ]
          spids: [775]
        )
      spids: [771 774]
    )
    (FuncDef
      name: controller
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (MIT))} spids:[851])]
              spids: [851]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgname'))}
                  spids: [857]
                )
              ]
              spids: [857]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' (controller web interface)'))}
                  spids: [863]
                )
              ]
              spids: [863]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$subpkgdir')) (/usr/share/) ($ VSub_Name '$pkgname')} 
              {(DQ ($ VSub_Name '$subpkgdir')) (/etc/) ($ VSub_Name '$pkgname')}
            )
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/) ($ VSub_Name '$pkgname') (/www)} 
              {(DQ ($ VSub_Name '$subpkgdir')) (/usr/share/) ($ VSub_Name '$pkgname')}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/worker-controller.) 
                (Lit_Other '*')
              } {(DQ ($ VSub_Name '$subpkgdir')) (/etc/) ($ VSub_Name '$pkgname')}
            )
          ]
          spids: [848]
        )
      spids: [844 847]
    )
    (FuncDef
      name: proxy
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgname') (' rmilter'))}
                  spids: [935]
                )
              ]
              spids: [935]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' (milter support)'))}
                  spids: [942]
                )
              ]
              spids: [942]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$subpkgdir')) (/etc/) ($ VSub_Name '$pkgname')})
            (C {(mv)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/etc/) ($ VSub_Name '$pkgname') (/worker-proxy.) 
                (Lit_Other '*')
              } {(DQ ($ VSub_Name '$subpkgdir')) (/etc/) ($ VSub_Name '$pkgname')}
            )
          ]
          spids: [932]
        )
      spids: [928 931]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'19c22d8f1085e8b48379787205d85053fb0f2c1ed7c3b4f757980929517dc344b5a4999963b0eeb9cd1c68412d0dc59c1eaa403125e42dbab257b24ed0627756  rspamd-1.6.4.tar.gz\n'
                ) 
                (
'2efe28575c40d1fba84b189bb872860e744400db80dce2f6330be6c6287fb3f46e6511284729b957488bf40bcb9b0952e26df9934f5f138334bd2766075c45cb  rspamd.logrotated\n'
                ) 
                (
'df37726d03e676b16d707854d95bafc9162da65c27bb150edbfc0cb00f1842188a1f2a8f1b82be5ae2a253b4f4db4d93dfe804a89feb988b5af858eb3f3458be  rspamd.initd\n'
                ) 
                (
'e417dd825d1b4d03d115db037b2fdf2f48a35420ee7a9010d97167b6c31e88d6c0a15dd33b21d7d76856db0fdc5097c922fcdf1d8164d1e92ae377f7c5303947  rspamd.confd\n'
                ) 
                (
'ae4b7e77a29bed5461088e5e9bd20941a578e899300b079b05900e355b5de1ba077fb33ae5533587f0748647bd2c7ee70aa53dd981899612eafac2203ae95883  cmakelists.patch\n'
                ) 
                (
'2169a8c4b4af6df9f3bbf4addeac564c9485a9d6a30fd15cf167093488362791c003a0d03360049c43d827e7fa767c1ad3522de6699b0247b75aa049c0b51214  worker.conf.in'
                )
              )
            }
          spids: [981]
        )
      ]
      spids: [981]
    )
  ]
)