Здесь так много кода, потому что некоторые функции на полсотни строчек объявляются дважды, подряд, в одном файле. Умри, садист.