(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(john)} spids:[9])]
      spids: [9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(1.8.0)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_pkgrel) op:Equal rhs:{(jumbo-1)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(7)} spids:[18])]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ('John the Ripper password cracker'))}
          spids: [21]
        )
      ]
      spids: [21]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ('http://www.openwall.com/john'))}
          spids: [26]
        )
      ]
      spids: [26]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arch)
          op: Equal
          rhs: {(DQ ('x86_64 armhf ppc64le'))}
          spids: [31]
        )
      ]
      spids: [31]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (GPL2))} spids:[36])]
      spids: [36]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ (nss))} spids:[41])]
      spids: [41]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ ('!strip'))} spids:[46])]
      spids: [46]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends)
          op: Equal
          rhs: {(DQ ('libpcap-dev libressl-dev gmp-dev yasm-dev zlib-dev'))}
          spids: [51]
        )
      ]
      spids: [51]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:install) op:Equal rhs:{(DQ )} spids:[56])]
      spids: [56]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$pkgname') ('-doc\n') ('\t') ($ VSub_Name '$pkgname') 
                ('-scripts-py:py:noarch\n') ('\t') ($ VSub_Name '$pkgname') ('-scripts-perl:perl:noarch\n') ('\t') ($ VSub_Name '$pkgname') 
                ('-scripts-ruby:ruby:noarch\n') ('\t') ($ VSub_Name '$pkgname') ('-misc::noarch\n') ('\t') ($ VSub_Name '$pkgname') 
                ('-zsh-completion:zshcomp:noarch\n') ('\t') ($ VSub_Name '$pkgname') ('-bash-completion:bashcomp:noarch\n') ('\t') ($ VSub_Name '$pkgname') 
                ('-jumbo:jumbo:noarch\n') ('\t')
              )
            }
          spids: [60]
        )
      ]
      spids: [60]
    )
    (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/magnumripper/JohnTheRipper/archive/') ($ VSub_Name '$pkgver') (-) ($ VSub_Name '$_pkgrel') ('.tar.gz\n') ('\ttruecrypt_fmt_plug.patch\n') 
                ('\tparams-h.patch\n') ('\tgcc5-support.patch\n') ('\tlibressl.patch\n') ('\t')
              )
            }
          spids: [88]
        )
      ]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$srcdir') (/JohnTheRipper-) ($ VSub_Name '$pkgver') (-) 
                ($ VSub_Name '$_pkgrel')
              )
            }
          spids: [105]
        )
      ]
      spids: [105]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name '$builddir')) (/src)})
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ('s/ac_default_prefix.*/ac_default_prefix=') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\/'>) (usr/g)
                )
              } {(configure)}
            )
            (C {(export)} {(Lit_VarLike 'OPENSSL_LIBS=') (DQ ('-lssl -lcrypto'))})
            (C {(./configure)} {(--disable-openmp)})
            (AndOr
              children: [(C {(make)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
              op_id: Op_DPipe
            )
          ]
          spids: [119]
        )
      spids: [115 118]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin)})
            (C {(mkdir)} {(-p)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/doc/) ($ VSub_Name '$pkgname')}
            )
            (C {(install)} {(-Dm644)} {(run/john.conf)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/etc/john/john.conf)}
            )
            (C {(install)} {(-Dm644)} {(run/john.local.conf)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/etc/john/john.local.conf)}
            )
            (C {(install)} {(-Dm644)} {(doc/) (Lit_Other '*')} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/doc/) ($ VSub_Name '$pkgname')}
            )
            (C {(install)} {(-Dm644)} {(doc/LICENSE)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/licenses/) ($ VSub_Name '$pkgname') (/LICENSE)}
            )
            (C {(rm)} 
              {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/doc/) ($ VSub_Name '$pkgname') (/LICENSE) 
                (Lit_Other '*')
              }
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:john_bins)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('john calc_stat genmkvpwd mkvcalcproba relbench\n') 
                        ('\t\t\ttgtsnarf raw2dyna')
                      )
                    }
                  spids: [273]
                )
              ]
              spids: [271]
            )
            (ForEach
              iter_name: bin
              iter_words: [{(${ VSub_Name john_bins)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(install)} {(-Dm755)} {(run/) (${ VSub_Name bin)} 
                      {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin)}
                    )
                  ]
                  spids: [291 309]
                )
              spids: [285 289]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:john_links)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('hccap2john keepass2john mozilla2john pdf2john\n') 
                        ('\t\t\tpfx2john pwsafe2john racf2john rar2john ssh2john\n') ('\t\t\tunafs unique unsahdow undrop zip2john')
                      )
                    }
                  spids: [315]
                )
              ]
              spids: [313]
            )
            (ForEach
              iter_name: link
              iter_words: [{(${ VSub_Name john_links)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(ln)} {(-s)} {(john)} 
                      {(DQ ($ VSub_Name '$pkgdir')) (/usr/bin/) (${ VSub_Name link)}
                    )
                  ]
                  spids: [334 352]
                )
              spids: [328 332]
            )
          ]
          spids: [175]
        )
      spids: [171 174]
    )
    (FuncDef
      name: py
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ('libxml2 libgsf'))}
                  spids: [364]
                )
              ]
              spids: [364]
            )
            (C {(_script)} {(python)} {(DQ ('*.py'))})
          ]
          spids: [361]
        )
      spids: [357 360]
    )
    (FuncDef
      name: perl
      body: 
        (BraceGroup
          children: [(C {(_script)} {(perl)} {(DQ ('*.pl benchmark-unify'))})]
          spids: [385]
        )
      spids: [381 384]
    )
    (FuncDef
      name: ruby
      body: (BraceGroup children:[(C {(_script)} {(ruby)} {(DQ ('*.rb'))})] spids:[403])
      spids: [399 402]
    )
    (FuncDef
      name: _script
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lang)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [426]
                )
              ]
              spids: [424]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$depends') (' ') ($ VSub_Name '$lang'))}
                  spids: [433]
                )
              ]
              spids: [433]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ('John the Ripper (') ($ VSub_Name '$lang') (' scripts)'))}
                  spids: [441]
                )
              ]
              spids: [441]
            )
            (C {(_install)} {(755)} {(DQ ($ VSub_Number '$2'))})
          ]
          spids: [421]
        )
      spids: [417 420]
    )
    (FuncDef
      name: misc
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ('Misc tools for John the Ripper: password list and charset files'))}
                  spids: [467]
                )
              ]
              spids: [467]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:john_pwd)
                  op: Equal
                  rhs: {(DQ ('password.lst dictionary.rfc2865 stats'))}
                  spids: [475]
                )
              ]
              spids: [473]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:john_chr)
                  op: Equal
                  rhs: {(DQ ('*.chr'))}
                  spids: [483]
                )
              ]
              spids: [481]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:john_cfg)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('dumb*.conf repeats*.conf dynamic*.conf\n') 
                        ('\t\t\tkorelogic.conf regex_alphabets.conf')
                      )
                    }
                  spids: [491]
                )
              ]
              spids: [489]
            )
            (C {(_install)} {(644)} 
              {
                (DQ ($ VSub_Name '$john_pwd') (' ') ($ VSub_Name '$john_cfg') (' ') 
                  ($ VSub_Name '$john_chr')
                )
              }
            )
          ]
          spids: [464]
        )
      spids: [460 463]
    )
    (FuncDef
      name: _install
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:perm)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [522]
                )
              ]
              spids: [520]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [530]
                )
              ]
              spids: [528]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$subpkgdir')) (/usr/share/) ($ VSub_Name '$pkgname')})
            (C {(cd)} {(DQ ($ VSub_Name '$builddir')) (/run)})
            (ForEach
              iter_name: f
              iter_words: [{(${ VSub_Name files)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(install)} {(-Dm) (${ VSub_Name perm)} {(${ VSub_Name f)} 
                      {(DQ ($ VSub_Name '$subpkgdir')) (/usr/share/john)}
                    )
                  ]
                  spids: [567 587]
                )
              spids: [561 565]
            )
          ]
          spids: [517]
        )
      spids: [513 516]
    )
    (FuncDef
      name: bashcomp
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[599])]
              spids: [599]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ('Bash completions for ') ($ VSub_Name '$pkgname'))}
                  spids: [604]
                )
              ]
              spids: [604]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_if)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$pkgname') ('=') ($ VSub_Name '$pkgver') (-r) 
                        ($ VSub_Name '$pkgrel') (' bash-completion')
                      )
                    }
                  spids: [611]
                )
              ]
              spids: [611]
            )
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (AndOr
              children: [
                (C {(install)} {(-Dm644)} {(run/john.bash_completion)} 
                  {(DQ ($ VSub_Name '$subpkgdir')) (/usr/share/bash-completion/completions/) 
                    ($ VSub_Name '$pkgname')
                  }
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [596]
        )
      spids: [592 595]
    )
    (FuncDef
      name: zshcomp
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[660])]
              spids: [660]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ('Zsh completions for ') ($ VSub_Name '$pkgname'))}
                  spids: [665]
                )
              ]
              spids: [665]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_if)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$pkgname') ('=') ($ VSub_Name '$pkgver') (-r) 
                        ($ VSub_Name '$pkgrel') (' zsh')
                      )
                    }
                  spids: [672]
                )
              ]
              spids: [672]
            )
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (AndOr
              children: [
                (C {(install)} {(-Dm644)} {(run/john.zsh_completion)} 
                  {(DQ ($ VSub_Name '$subpkgdir')) (/usr/share/zsh/site-functions/) 
                    ($ VSub_Name '$pkgname')
                  }
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [657]
        )
      spids: [653 656]
    )
    (FuncDef
      name: jumbo
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' (jumbo pack)'))}
                  spids: [721]
                )
              ]
              spids: [721]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$pkgname') ('-scripts-py ') ($ VSub_Name '$pkgname') 
                        ('-scripts-perl\n') ('\t\t') ($ VSub_Name '$pkgname') ('-scripts-ruby ') ($ VSub_Name '$pkgname') (-misc)
                      )
                    }
                  spids: [728]
                )
              ]
              spids: [728]
            )
            (C {(mkdir)} {(DQ ($ VSub_Name '$subpkgdir'))})
          ]
          spids: [718]
        )
      spids: [714 717]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'8b7fad7a6330b5ff1afc306218ba698aaa27776b566f82c2e76102d5ceb10aeafa69d71fa6fff67c81996ea2c6a04384bab4696ed192306c6d074873562e7089  john-1.8.0.tar.gz\n'
                ) 
                (
'80be6cc1b1b35c6a85392008638b2f8b6d8a518ee35f59405e2f5682e025e4b8beecf964148311e6f62d76b59153f04427024fa81aaf56ee2062ac2dbf0a9bcb  truecrypt_fmt_plug.patch\n'
                ) 
                (
'a5c22feb8bf11509c306a2f236f2bd4891fdfc3b01882f07d85015e0895d82f28df0dff78ba8d3a3862d8d95877a88a9eb8138e6c407b40881fa1455079b98fc  params-h.patch\n'
                ) 
                (
'4ebe8b41b1d0c3839348dcf5348332f9d7ce25919077fa054db64b7106150f299c6b177d117f7c18c1db672a494a6de6be8b5afe502f5ca3639602ba3aef6866  gcc5-support.patch\n'
                ) 
                (
'fb46431fe3e42e36c72361c13460e8ac626d2f146fa84c8f6e17e5407e69530a84ceb1de6bc9910c1a03a6e907fc113f7000a2cbc3936ae0860103d3e2d489b0  libressl.patch'
                )
              )
            }
          spids: [751]
        )
      ]
      spids: [751]
    )
  ]
)