Source: http://epsilon.2000.free.fr/Brevet/2011-nc.pdf