Author: Jacob Appelbaum / Andy Muller-Maguhn / Jeremie Zim