--- /dev/null
+#!/bin/sh -e
+
+file=$1
+[ -n "$file" ]
+ctr=${3:-1}
+cat <<EOF
+$(( $ctr + 0 ))||http://ftpmirror.gnu.org/$file
+$(( $ctr + 1 ))||https://ftpmirror.gnu.org/$file
+$(( $ctr + 2 ))|at|http://mirror.easyname.at/gnu/$file
+$(( $ctr + 2 ))|at|http://mirror.kumi.systems/gnu/$file
+$(( $ctr + 2 ))|br|http://gnu.c3sl.ufpr.br/ftp/$file
+$(( $ctr + 2 ))|ca|http://mirror.csclub.uwaterloo.ca/gnu/$file
+$(( $ctr + 2 ))|ca|http://mirror.its.dal.ca/gnu/$file
+$(( $ctr + 2 ))|ca|http://mirror2.evolution-host.com/gnu/$file
+$(( $ctr + 2 ))|cn|http://mirrors.nju.edu.cn/gnu/$file
+$(( $ctr + 2 ))|cn|http://mirrors.ustc.edu.cn/gnu/$file
+$(( $ctr + 2 ))|de|http://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.gnu.org/$file
+$(( $ctr + 2 ))|de|http://ftp.fau.de/gnu/$file
+$(( $ctr + 2 ))|de|http://ftp.halifax.rwth-aachen.de/gnu/$file
+$(( $ctr + 2 ))|de|http://mirror.checkdomain.de/gnu/$file
+$(( $ctr + 2 ))|de|http://mirror.diyarciftci.xyz/gnu/$file
+$(( $ctr + 2 ))|de|http://mirror.dogado.de/gnu/$file
+$(( $ctr + 2 ))|de|http://mirror.netcologne.de/gnu/$file
+$(( $ctr + 2 ))|de|http://www.artfiles.org/gnu.org/$file
+$(( $ctr + 2 ))|dk|http://ftp.klid.dk/ftp/gnu/$file
+$(( $ctr + 2 ))|dk|http://mirrors.dotsrc.org/gnu/$file
+$(( $ctr + 2 ))|es|http://ftp.rediris.es/mirror/GNU/$file
+$(( $ctr + 2 ))|fi|http://www.nic.funet.fi/pub/gnu/ftp.gnu.org/pub/gnu/$file
+$(( $ctr + 2 ))|fr|http://mirror.cyberbits.eu/gnu/$file
+$(( $ctr + 2 ))|gb|http://mirrorservice.org/sites/ftp.gnu.org/gnu/$file
+$(( $ctr + 2 ))|gr|http://fosszone.csd.auth.gr/gnu/$file
+$(( $ctr + 2 ))|gr|http://ftp.cc.uoc.gr/mirrors/gnu/$file
+$(( $ctr + 2 ))|in|http://mirrors.hopbox.net/gnu/$file
+$(( $ctr + 2 ))|jp|http://ftp.jaist.ac.jp/pub/GNU/$file
+$(( $ctr + 2 ))|ma|http://mirror.marwan.ma/gnu/$file
+$(( $ctr + 2 ))|md|http://mirror.ihost.md/gnu/$file
+$(( $ctr + 2 ))|nc|http://mirror.lagoon.nc/gnu/$file
+$(( $ctr + 2 ))|nl|http://ftp.nluug.nl/pub/gnu/$file
+$(( $ctr + 2 ))|nl|http://ftp.snt.utwente.nl/pub/software/gnu/$file
+$(( $ctr + 2 ))|nl|http://mirror.lyrahosting.com/gnu/$file
+$(( $ctr + 2 ))|pl|http://ftp.man.poznan.pl/gnu/$file
+$(( $ctr + 2 ))|pl|http://sunsite.icm.edu.pl/pub/gnu/$file
+$(( $ctr + 2 ))|pt|http://ftp.eq.uc.pt/software/unix/gnu/$file
+$(( $ctr + 2 ))|ro|http://mirrors.nav.ro/gnu/$file
+$(( $ctr + 2 ))|ru|http://mirror.tochlab.net/pub/gnu/$file
+$(( $ctr + 2 ))|ru|http://mirror.truenetwork.ru/gnu/$file
+$(( $ctr + 2 ))|se|http://mirror.accum.se/mirror/gnu.org/gnu/$file
+$(( $ctr + 2 ))|se|http://mirror.bahnhof.net/pub/gnu/$file
+$(( $ctr + 2 ))|sg|http://mirror.freedif.org/GNU/$file
+$(( $ctr + 2 ))|tw|http://mirror.ossplanet.net/gnu/$file
+$(( $ctr + 2 ))|tw|http://mirror.twds.com.tw/gnu/$file
+$(( $ctr + 2 ))|us|http://ftp.wayne.edu/gnu/$file
+$(( $ctr + 2 ))|us|http://gnu.mirror.constant.com/$file
+$(( $ctr + 2 ))|us|http://mirror.keystealth.org/gnu/$file
+$(( $ctr + 2 ))|us|http://mirror.rit.edu/gnu/$file
+$(( $ctr + 2 ))|us|http://mirror.team-cymru.com/gnu/$file
+$(( $ctr + 2 ))|us|http://mirror.us-midwest-1.nexcess.net/gnu/$file
+$(( $ctr + 2 ))|us|http://mirrors.ibiblio.org/gnu/$file
+$(( $ctr + 2 ))|us|http://mirrors.ocf.berkeley.edu/gnu/$file
+$(( $ctr + 2 ))|za|http://mirror.ufs.ac.za/gnu/$file
+$(( $ctr + 3 ))|at|https://mirror.easyname.at/gnu/$file
+$(( $ctr + 3 ))|at|https://mirror.kumi.systems/gnu/$file
+$(( $ctr + 3 ))|au|https://mirrors.middlendian.com/gnu/$file
+$(( $ctr + 3 ))|bg|https://ftp.sotirov-bg.net/pub/mirrors/gnu/$file
+$(( $ctr + 3 ))|br|https://gnu.c3sl.ufpr.br/ftp/$file
+$(( $ctr + 3 ))|ca|https://mirror.csclub.uwaterloo.ca/gnu/$file
+$(( $ctr + 3 ))|ca|https://mirror.its.dal.ca/gnu/$file
+$(( $ctr + 3 ))|ca|https://mirror2.evolution-host.com/gnu/$file
+$(( $ctr + 3 ))|cn|https://mirrors.nju.edu.cn/gnu/$file
+$(( $ctr + 3 ))|cn|https://mirrors.tuna.tsinghua.edu.cn/gnu/$file
+$(( $ctr + 3 ))|cn|https://mirrors.ustc.edu.cn/gnu/$file
+$(( $ctr + 3 ))|de|https://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.gnu.org/$file
+$(( $ctr + 3 ))|de|https://ftp.fau.de/gnu/$file
+$(( $ctr + 3 ))|de|https://ftp.halifax.rwth-aachen.de/gnu/$file
+$(( $ctr + 3 ))|de|https://mirror.checkdomain.de/gnu/$file
+$(( $ctr + 3 ))|de|https://mirror.clientvps.com/gnu/$file
+$(( $ctr + 3 ))|de|https://mirror.diyarciftci.xyz/gnu/$file
+$(( $ctr + 3 ))|de|https://mirror.dogado.de/gnu/$file
+$(( $ctr + 3 ))|de|https://mirror.netcologne.de/gnu/$file
+$(( $ctr + 3 ))|de|https://www.artfiles.org/gnu.org/$file
+$(( $ctr + 3 ))|dk|https://mirrors.dotsrc.org/gnu/$file
+$(( $ctr + 3 ))|ec|https://mirror.cedia.org.ec/gnu/$file
+$(( $ctr + 3 ))|es|https://ftp.rediris.es/mirror/GNU/$file
+$(( $ctr + 3 ))|fi|https://www.nic.funet.fi/pub/gnu/ftp.gnu.org/pub/gnu/$file
+$(( $ctr + 3 ))|fr|https://mirror.cyberbits.eu/gnu/$file
+$(( $ctr + 3 ))|fr|https://mirror.ibcp.fr/pub/gnu/$file
+$(( $ctr + 3 ))|gb|https://ftp.gnu.org.uk/gnu/$file
+$(( $ctr + 3 ))|gb|https://mirrorservice.org/sites/ftp.gnu.org/gnu/$file
+$(( $ctr + 3 ))|gr|https://fosszone.csd.auth.gr/gnu/$file
+$(( $ctr + 3 ))|gr|https://ftp.cc.uoc.gr/mirrors/gnu/$file
+$(( $ctr + 3 ))|in|https://mirrors.hopbox.net/gnu/$file
+$(( $ctr + 3 ))|jp|https://ftp.jaist.ac.jp/pub/GNU/$file
+$(( $ctr + 3 ))|kr|https://ftp.kaist.ac.kr/gnu/$file
+$(( $ctr + 3 ))|ma|https://mirror.marwan.ma/gnu/$file
+$(( $ctr + 3 ))|md|https://mirror.ihost.md/gnu/$file
+$(( $ctr + 3 ))|nc|https://mirror.lagoon.nc/gnu/$file
+$(( $ctr + 3 ))|nl|https://ftp.nluug.nl/pub/gnu/$file
+$(( $ctr + 3 ))|nl|https://ftp.snt.utwente.nl/pub/software/gnu/$file
+$(( $ctr + 3 ))|nl|https://mirror.lyrahosting.com/gnu/$file
+$(( $ctr + 3 ))|no|https://gnuftp.uib.no/$file
+$(( $ctr + 3 ))|pl|https://ftp.man.poznan.pl/gnu/$file
+$(( $ctr + 3 ))|pl|https://sunsite.icm.edu.pl/pub/gnu/$file
+$(( $ctr + 3 ))|pt|https://ftp.eq.uc.pt/software/unix/gnu/$file
+$(( $ctr + 3 ))|ro|https://mirrors.nav.ro/gnu/$file
+$(( $ctr + 3 ))|ru|https://mirror.tochlab.net/pub/gnu/$file
+$(( $ctr + 3 ))|ru|https://mirror.truenetwork.ru/gnu/$file
+$(( $ctr + 3 ))|se|https://mirror.accum.se/mirror/gnu.org/gnu/$file
+$(( $ctr + 3 ))|se|https://mirror.bahnhof.net/pub/gnu/$file
+$(( $ctr + 3 ))|sg|https://mirror.freedif.org/GNU/$file
+$(( $ctr + 3 ))|th|https://mirror.cyberbits.asia/gnu/$file
+$(( $ctr + 3 ))|tw|https://mirror.ossplanet.net/gnu/$file
+$(( $ctr + 3 ))|tw|https://mirror.twds.com.tw/gnu/$file
+$(( $ctr + 3 ))|ua|https://ftp-gnu-org.ip-connect.vn.ua/$file
+$(( $ctr + 3 ))|us|https://ftp.wayne.edu/gnu/$file
+$(( $ctr + 3 ))|us|https://gnu.mirror.constant.com/$file
+$(( $ctr + 3 ))|us|https://mirror.cs.odu.edu/gnu/$file
+$(( $ctr + 3 ))|us|https://mirror.team-cymru.com/gnu/$file
+$(( $ctr + 3 ))|us|https://mirror.us-midwest-1.nexcess.net/gnu/$file
+$(( $ctr + 3 ))|us|https://mirrors.ibiblio.org/gnu/$file
+$(( $ctr + 3 ))|us|https://mirrors.ocf.berkeley.edu/gnu/$file
+$(( $ctr + 3 ))|za|https://mirror.ufs.ac.za/gnu/$file
+$(( $ctr + 4 ))|us|http://ftp.gnu.org/pub/gnu/$file
+$(( $ctr + 5 ))|us|https://ftp.gnu.org/pub/gnu/$file
+EOF
--- /dev/null
+#!/bin/sh -e
+
+file=$1
+[ -n "$file" ]
+ctr=${3:-1}
+cat <<EOF
+$(( $ctr + 0 ))||http://download.savannah.gnu.org/releases/$file
+$(( $ctr + 1 ))||https://download.savannah.gnu.org/releases/$file
+$(( $ctr + 2 ))|at|http://mirror.easyname.at/nongnu/$file
+$(( $ctr + 2 ))|at|http://mirror.kumi.systems/nongnu/$file
+$(( $ctr + 2 ))|br|http://savannah.c3sl.ufpr.br/$file
+$(( $ctr + 2 ))|ca|http://mirror.csclub.uwaterloo.ca/nongnu/$file
+$(( $ctr + 2 ))|de|http://mirror.netcologne.de/savannah/$file
+$(( $ctr + 2 ))|gb|http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/$file
+$(( $ctr + 2 ))|gr|http://fosszone.csd.auth.gr/nongnu/$file
+$(( $ctr + 2 ))|gr|http://ftp.cc.uoc.gr/mirrors/nongnu.org/$file
+$(( $ctr + 2 ))|ma|http://mirror.marwan.ma/savannah/$file
+$(( $ctr + 2 ))|nl|http://nongnu.niranjan.co/$file
+$(( $ctr + 2 ))|se|http://mirror.accum.se/mirror/gnu.org/savannah/$file
+$(( $ctr + 2 ))|us|http://download-mirror.savannah.nongnu.org/releases/$file
+$(( $ctr + 2 ))|us|http://mirrors.ocf.berkeley.edu/nongnu/$file
+$(( $ctr + 2 ))|us|http://nongnu.askapache.com/$file
+$(( $ctr + 3 ))|at|https://mirror.easyname.at/nongnu/$file
+$(( $ctr + 3 ))|at|https://mirror.kumi.systems/nongnu/$file
+$(( $ctr + 3 ))|br|https://savannah.c3sl.ufpr.br/$file
+$(( $ctr + 3 ))|ca|https://mirror.csclub.uwaterloo.ca/nongnu/$file
+$(( $ctr + 3 ))|de|https://mirror.netcologne.de/savannah/$file
+$(( $ctr + 3 ))|ec|https://mirror.cedia.org.ec/nongnu/$file
+$(( $ctr + 3 ))|gb|https://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/$file
+$(( $ctr + 3 ))|gr|https://fosszone.csd.auth.gr/nongnu/$file
+$(( $ctr + 3 ))|ma|https://mirror.marwan.ma/savannah/$file
+$(( $ctr + 3 ))|nl|https://nongnu.niranjan.co/$file
+$(( $ctr + 3 ))|se|https://mirror.accum.se/mirror/gnu.org/savannah/$file
+$(( $ctr + 3 ))|us|https://download-mirror.savannah.nongnu.org/releases/$file
+$(( $ctr + 3 ))|us|https://mirrors.ocf.berkeley.edu/nongnu/$file
+$(( $ctr + 3 ))|us|https://nongnu.askapache.com/$file
+EOF
--- /dev/null
+#!/bin/sh -e
+
+proj=$1
+file=$2
+[ -n "$proj" ]
+[ -n "$file" ]
+ctr=${3:-1}
+cat <<EOF
+$(( $ctr + 0 ))||https://sourceforge.net/projects/$proj/files/$file/download
+$(( $ctr + 1 ))|ar|http://sitsa.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|au|http://ixpeering.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|az|http://phoenixnap.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|az|http://yer.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|br|http://sinalbr.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|fr|http://deac-fra.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|fr|http://freefr.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|hk|http://zenlayer.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|in|http://excellmedia.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|lv|http://deac-riga.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|nl|http://deac-ams.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|se|http://altushost-swe.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|sg|http://onboardcloud.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|tw|http://nchc.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|us|http://cfhcable.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|us|http://gigenet.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 1 ))|za|http://tenet.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|ar|https://sitsa.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|au|https://ixpeering.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|az|https://phoenixnap.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|az|https://yer.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|br|https://sinalbr.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|fr|https://deac-fra.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|fr|https://freefr.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|hk|https://zenlayer.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|in|https://excellmedia.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|lv|https://deac-riga.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|nl|https://deac-ams.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|se|https://altushost-swe.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|sg|https://onboardcloud.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|tw|https://nchc.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|us|https://cfhcable.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|us|https://gigenet.dl.sourceforge.net/project/$proj/$file?viasf=1
+$(( $ctr + 2 ))|za|https://tenet.dl.sourceforge.net/project/$proj/$file?viasf=1
+EOF