[BACK]Return to innovations.html CVS log [TXT][DIR] Up to [local] / www

Diff for /www/innovations.html between version 1.58 and 1.59

version 1.58, 2017/10/31 01:00:45 version 1.59, 2017/11/03 10:59:03
Line 11 
Line 11 
 <body bgcolor= "#ffffff" text= "#000000">  <body bgcolor= "#ffffff" text= "#000000">
   
 <h2>  <h2>
 <a href="index.html">      <a href="index.html">
 <i><font color="#0000ff">Open</font></i><font color="#000084">BSD</font></a>          <i><font color="#0000ff">Open</font></i><font color="#000084">BSD</font></a>
 <font color="#e00000">Innovations</font>      <font color="#e00000">Innovations</font>
 </h2>  </h2>
 <hr>  <hr>
 <p>  <p>
       This is a list of software and ideas developed or maintained by the OpenBSD
 This is a list of software and ideas developed or maintained by the OpenBSD      project, sorted in order of approximate introduction. Some of them are
 project, sorted in order of approximate introduction. Some of them are      explained in detail in our <a href="events.html">research papers</a>.
 explained in detail in our <a href="events.html">research papers</a>.  </p>
   
 <p>  
 <hr>  <hr>
   
 <h3>Programs and subsystems</h3>  <h3>Concepts</h3>
   
 <ul>  <ul>
 <li><a href="https://man.openbsd.org/ypbind.8">ypbind(8)</a>,      <li>
   <a href="https://man.openbsd.org/ypset.8">ypset(8)</a>,          <a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a>:
   <a href="https://man.openbsd.org/ypcat.1">ypcat(1)</a>,          Started by John Ioannidis, Angelos D. Keromytis, Niels Provos, and
   <a href="https://man.openbsd.org/ypmatch.1">ypmatch(1)</a>,          Niklas Hallqvist, imported February 20, 1997.  OpenBSD was the first
   <a href="https://man.openbsd.org/ypwhich.1">ypwhich(1)</a>,          free operating system to provide an IPSec stack.
   and libc support: Started by Theo de Raadt.      </li>
   Imported April 26, 1993 and first released with NetBSD 0.9.      <li>
 <li><a href="https://man.openbsd.org/ypserv.8">ypserv(8)</a>:          <a href="https://man.openbsd.org/inet6.4">inet6(4)</a>:
   Started by Mats O. Jansson in 1994.          First complete integration and adoption of IPv6 led by
   Imported October 23, 1995 and first released with OpenBSD 2.0.          "Itojun" (Dr. Junichiro Hagino) [WIDE/KAME], Craig Metz [NRL], and
 <li><a href="https://man.openbsd.org/mopd.8">mopd(8)</a>:          Angelos D. Keromytis starting Jan 6, 1999.
   Started by Mats O. Jansson in 1993.          Almost fully operational Jun 6, 1999 during the
   Imported September 21, 1996 and first released with OpenBSD 2.0.          <a href="hackathons.html">first OpenBSD hackathon</a>.
 <li><a href="anoncvs.html">AnonCVS</a>:          OpenBSD 2.7.
   Designed and implemented by Chuck Cranor and Theo de Raadt in 1995      </li>
   (<a href="papers/anoncvs-paper.pdf">paper</a>,      <li>
   <a href="papers/anoncvs-slides.pdf">slides</a>)          <strong>Privilege separation</strong>:
 <li><a href="https://man.openbsd.org/aucat.1">aucat(1)</a>:          First implemented by
   Started by Kenneth Stailey.          <a href="http://www.citi.umich.edu/u/provos/ssh/privsep.html">Niels Provos</a>
   Imported January 2, 1997 and first released with OpenBSD 2.1.          and Markus Friedl in OpenSSH in March 2002, released with OpenBSD 3.2.
   Now maintained by Alexandre Ratchov.          The concept is now used in many OpenBSD programs, for example
 <li><a href="https://www.openssh.com/">OpenSSH</a>          <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>,
   including <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>,          <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>,
   <a href="https://man.openbsd.org/scp.1">scp(1)</a>,          <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>,
   <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>,          <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,
   <a href="https://man.openbsd.org/ssh-add.1">ssh-add(1)</a>,          <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,
   <a href="https://man.openbsd.org/ssh-agent.1">ssh-agent(1)</a>,          <a href="https://man.openbsd.org/file.1">file(1)</a>,
   <a href="https://man.openbsd.org/ssh-keygen.1">ssh-keygen(1)</a>,          <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>,
   <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>,          <a href="https://man.openbsd.org/iked.8">iked(8)</a>,
   <a href="https://man.openbsd.org/sftp-server.8">sftp-server(8)</a>:          <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
   Started by Aaron Campbell, Bob Beck, Dug Song, Markus Friedl,          <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,
   Niels Provos, and Theo de Raadt          <a href="https://man.openbsd.org/mountd.8">mountd(8)</a>,
   as a fork of SSH 1.2.12 by Tatu Ylonen.          <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,
   Imported September 26, 1999 and first released with OpenBSD 2.6.          <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>,
   Now maintained by Markus Friedl, Damien Miller, Darren Tucker, and          <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
   Theo de Raadt.          <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,
 <li><a href="https://man.openbsd.org/mg.1">mg(1)</a>:          <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,
   Started by Dave Conroy in November 1986.          <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>,
   Imported February 25, 2000 and first released with OpenBSD 2.7.          <a href="https://man.openbsd.org/man8/relayd.8">relayd(8)</a>,
   Now maintained by Mark Lumsden.          <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,
 <li><a href="https://man.openbsd.org/m4.1">m4(1)</a>:          <a href="https://man.openbsd.org/script.1">script(1)</a>,
   Originally implemented by Ozan Yigit and Richard A. O'Keefe for 4.3BSD-Reno.          <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,
   Considerably extended and maintained by Marc Espie since 1999.          <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a>,
 <li><a href="https://man.openbsd.org/pf.4">pf(4)</a>,          <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>,
   <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>,          <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>,
   <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,          <a href="https://man.openbsd.org/xconsole.1">xconsole(1)</a>,
   <a href="https://man.openbsd.org/authpf.8">authpf(8)</a>,          <a href="https://man.openbsd.org/xdm.1">xdm(1)</a>,
   <a href="https://man.openbsd.org/ftp-proxy.8">ftp-proxy(8)</a>:          <a href="https://man.openbsd.org/Xserver.1">Xserver(1)</a>,
   Started by Daniel Hartmeier          <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>,
   as a replacement for the non-free ipf by Darren Reed.          <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>,
   Imported June 24, 2001 and first released with OpenBSD 3.0.          etc.
   Now maintained by Henning Brauer.      </li>
 <li><a href="https://man.openbsd.org/OpenBSD-5.9/systrace.4">systrace(4)</a>,      <li>
   <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.1">systrace(1)</a>:          <strong>Privilege revocation</strong>:
   Started by Niels Provos.          Related to the work on privilege separation, some programs were refactored
   Imported June 4, 2002 and first released with OpenBSD 3.2.          to drop privileges while holding onto a tricky resource such as a raw socket,
   Deleted after OpenBSD 5.9 because          reserved port, or modification-locked bpf(4) descriptor,
   <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> is even better.          for example
 <li><a href="https://man.openbsd.org/spamd.8">spamd(8)</a>:          <a href="https://man.openbsd.org/ping.8">ping(8)</a>,
   Written by Bob Beck. Imported December 21, 2002 and first released with OpenBSD 3.3.          <a href="https://man.openbsd.org/traceroute.8">traceroute(8)</a>,
 <li><a href="https://man.openbsd.org/dc.1">dc(1)</a>:          etc.
   Written and maintained by Otto Moerbeek.      </li>
   Imported September 19, 2003 and first released with OpenBSD 3.5.      <li>
 <li><a href="https://man.openbsd.org/bc.1">bc(1)</a>:          <strong>Stack protector</strong>:
   Written and maintained by Otto Moerbeek.          Developed since 2001 as "propolice" by Hiroaki Etoh. Integrated, and
   Imported September 25, 2003 and first released with OpenBSD 3.5.          implemented for additional hardware platforms, by Miod Vallat and Theo
 <li><a href="https://man.openbsd.org/sensorsd.8">sensorsd(8)</a>:          de Raadt.  OpenBSD 3.3 was the first operating system to enable it
   Started by Henning Brauer.          systemwide by default.
   Imported September 24, 2003 and first released with OpenBSD 3.5.      </li>
   Reworked by Constantine A. Murenin.      <li>
 <li><a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>:          <strong>W^X</strong>:
   Written and maintained by Marc Espie.          First used for sparc, sparc64, alpha, and hppa in OpenBSD 3.3.
   Imported October 16, 2003 and first released with OpenBSD 3.5.          Strictly enforced by default since OpenBSD 6.0: a program can only
 <li><a href="https://man.openbsd.org/carp.4">carp(4)</a>:          violate it if the executable is marked with <code>PT_OPENBSD_WXNEEDED</code>
   Written by Mickey Shalayeff, Markus Friedl, Marco Pfatschbacher,          and it is located on a filesystem mounted with the <code>wxallowed</code>
   and Ryan McBride.          <a href="https://man.openbsd.org/mount.8">mount(8)</a> option.
   Imported October 17, 2003 and first released with OpenBSD 3.5.      </li>
 <li><a href="http://www.openbgpd.org/">OpenBGPD</a>      <li>
   including <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>          <strong>GOT and PLT protection</strong> by ld.so:
   and <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>:          first done as part of the W^X work in OpenBSD 3.3, by Dale Rahn and
   Written and maintained by Henning Brauer and Claudio Jeker,          Theo de Raadt. The GOT and PLT regions are read-only outside of ld.so
   and also maintained by Peter Hessler.          itself. Extended to the .init/.fini sections (constructors and
   Imported December 17, 2003 and first released with OpenBSD 3.5.          destructors) in OpenBSD 3.4.
 <li><a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>:      </li>
   Started by Ted Lemon and Elliot Poger in 1996.      <li>
   Imported January 18, 2004 and first released with OpenBSD 3.5.          <strong>ASLR</strong>:
   Reworked by Henning Brauer.          OpenBSD 3.4 was the first widely used operating system to
   Now maintained by Kenneth Westerback.          provide it by default.
 <li><a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>:      </li>
   Started by Ted Lemon in 1995.      <li>
   Imported April 13, 2004 and first released with OpenBSD 3.6.          <a href="https://man.openbsd.org/gcc-local.1">gcc-local(1)</a>
   Reworked by Henning Brauer.          __attribute__((__bounded__)) static analysis annotation
   Now maintained by Kenneth Westerback.          and checking mechanism:
 <li><a href="https://man.openbsd.org/hotplugd.8">hotplugd(8)</a>:          Started by Anil Madhavapeddy on June 26, 2003
   Started by Alexander Yurchenko.          and ported to GCC 4 by Nicholas Marriott.
   Imported May 30, 2004 and first released with OpenBSD 3.6.          First released with OpenBSD 3.4.
 <li><a href="http://www.openntpd.org/">OpenNTPD</a>      </li>
   including <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>      <li>
   and <a href="https://man.openbsd.org/ntpctl.8">ntpctl(8)</a>:          <a href="https://man.openbsd.org/malloc.3">malloc(3)</a>
   Written and maintained by Henning Brauer.          randomization implemented by Thierry Deval. Guard pages and randomized (delayed) free added by Ted Unangst.
   Imported May 31, 2004 and first released with OpenBSD 3.6.          Reimplemented by <a href="papers/eurobsdcon2009/otto-malloc.pdf">Otto Moerbeek</a>
   Portable version maintained by Brent Cook.          for OpenBSD 4.4.
 <li><a href="https://man.openbsd.org/dpb.1">dpb(1)</a>:      </li>
   Started by Nikolay Sturm on August 10, 2004; first available for OpenBSD 3.6.      <li>
   Rewritten and maintained by Marc Espie since August 20, 2010.          <strong>PIE</strong>:
 <li><a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,          OpenBSD 5.3 was the first widely used operating system to enable it
   <a href="https://man.openbsd.org/ospfctl.8">ospfctl(8)</a>:          globally by default, on seven hardware platforms.
   Started by Esben Norby and Claudio Jeker.      </li>
   Imported January 28, 2005 and first released with OpenBSD 3.7.      <li>
 <li><a href="https://man.openbsd.org/ifstated.8">ifstated(8)</a>:          <strong>Random-data memory</strong>:
   Started by Marco Pfatschbacher and Ryan McBride.          the ability to specify that a variable should be initialized at load
   Imported January 23, 2004 and first released with OpenBSD 3.8.          time with random byte values was implemented in OpenBSD 5.3 by Matthew
 <li><a href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>:          Dempsky.
   Started by Marco Peereboom.      </li>
   Imported March 29, 2005 and first released with OpenBSD 3.8.      <li>
 <li><a href="https://man.openbsd.org/hostapd.8">hostapd(8)</a>:          <strong>Stack protector per shared object</strong>:
   Written and maintained by Reyk Floeter.          using the random-data memory feature, each shared object was given its
   Imported May 26, 2005 and first released with OpenBSD 3.8.          own stack protector cookie in OpenBSD 5.3 by Matthew Dempsky.
 <li><a href="https://man.openbsd.org/watchdogd.8">watchdogd(8)</a>:      </li>
   Started by Marc Balmer.      <li>
   Imported August 8, 2005 and first released with OpenBSD 3.8.          <strong>Static-PIE</strong>:
 <li><a href="https://man.openbsd.org/sdiff.1">sdiff(1)</a>:          Position-independent static binaries for /bin, /sbin and ramdisks.
   Written by Ray Lai.          First released with OpenBSD 5.7.
   Imported December 27, 2005 and first released with OpenBSD 3.9.      </li>
 <li><a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,      <li>
   <a href="https://man.openbsd.org/dvmrpctl.8">dvmrpctl(8)</a>:          <strong>SROP</strong>
   Started by Esben Norby.          (<a href="https://man.openbsd.org/sigreturn.2">sigreturn(2)</a>
   Imported June 1, 2006 and first released with OpenBSD 4.0.          oriented programming) mitigation: Researched by
 <li><a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,          <a href="http://www.cs.vu.nl/~herbertb/papers/srop_sp14.pdf">Eric Bosman</a>
   <a href="https://man.openbsd.org/ripctl.8">ripctl(8)</a>:          and Herbert Bos in 2014, implemented by Theo de Raadt in May 2016,
   Started by Michele Marchetto.          enabled by default since OpenBSD 6.0.
   Imported October 18, 2006 and first released with OpenBSD 4.1.      </li>
 <li><a href="https://man.openbsd.org/pkg-config.1">pkg-config(1)</a>:      <li>
   Started by Chris Kuethe and Marc Espie.          <strong>Library order randomization</strong>:
   Imported November 27, 2006 and first released with OpenBSD 4.1.          In <a href="https://man.openbsd.org/rc.8">rc(8)</a>, re-link
   Now maintained by Jasper Lievisse Adriaanse.          <code>libc.so</code>, <code>libcrypto</code>, and <code>ld.so</code>
 <li><a href="https://man.openbsd.org/relayd.8">relayd(8)</a>          on startup, placing the objects in a random order.
   with <a href="https://man.openbsd.org/relayctl.8">relayctl(8)</a>:          Theo de Raadt and Robert Peichaer, May 2016,
   Started by Pierre-Yves Ritschard and Reyk Floeter.          enabled by default since OpenBSD 6.0 and 6.2.
   Imported December 16, 2006 and first released with OpenBSD 4.1.      </li>
   Now maintained by Reyk Floeter and Sebastian Benoit.<br/>      <li>
 <li><a href="https://man.openbsd.org/cwm.1">cwm(1)</a>:          Kernel-assisted lazy-binding for W^X safety in multi-threaded programs.
   Started by <a href="http://monkey.org/~marius/cwm/README">Marius          A new syscall <a href="https://man.openbsd.org/kbind.2">kbind(2)</a>
   Aamodt Eriksen</A> in 2004.          permits lazy-binding to be W^X safe in multi-threaded programs.
   Imported April 27, 2007 and first released with OpenBSD 4.2.          Implemented for OpenBSD 5.9 by Philip Guenther in July 2015.
   Now maintained by Okan Demirmen.      </li>
   <a href="https://github.com/chneukirchen/cwm">Portable version</a>      <li>
   maintained by Leah Neukirchen.          Process layouts in memory tightened to remove execute permission from
 <li><a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,          all segmented, non-instruction data and to remove write permission from
   <a href="https://man.openbsd.org/ospf6ctl.8">ospf6ctl(8)</a>:          data that is only modified during loading and relocation.
   Started by Esben Norby and Claudio Jeker.          By combining the RELRO (Read-Only after Relocation) design from the
   Imported October 8, 2007 and first released with OpenBSD 4.2.          GNU project with the original ASLR work from OpenBSD 3.3 and
 <li><a href="https://man.openbsd.org/libtool.1">libtool(1)</a>:          strict lazy-binding work from OpenBSD 5.9, this is applied to not
   Written by Steven Mestdagh and Marc Espie.          just a subset of programs and libraries but rather to all programs
   Imported October 28, 2007 and first available for OpenBSD 4.3.          and libraries.
   Now maintained by Marc Espie, Jasper Lievisse Adriaanse,          Implemented for OpenBSD 6.1 by Philip Guenther in August 2016.
   and Antoine Jacoutot.      </li>
 <li><a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>,      <li>
   <a href="https://man.openbsd.org/snmpctl.8">snmpctl(8)</a>:          Use of <strong>fork+exec in privilege separated programs</strong>. The
   Started by Reyk Floeter.          strategy is to give each process a fresh &amp; unique address space for
   Imported December 5, 2007 and first released with OpenBSD 4.3.          ASLR, stack protector -- as protection against address space discovery attacks.
   Maintained by Reyk Floeter and Bret Lambert.          Implemented first by
 <li><a href="https://man.openbsd.org/sysmerge.8">sysmerge(8)</a>:          Damien Miller (<a href="https://man.openbsd.org/sshd.8">sshd(8)</a> 2004),
   Written and maintained by Antoine Jacoutot,          Claudio Jeker (<a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, 2015),
   originally forked from mergemaster by Douglas Barton.          Eric Faurot (<a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>, 2016),
   Imported April 22, 2008, first released with OpenBSD 4.4.          Rafael Zalamena (various, 2016), and others.
 <li><a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>:      </li>
   Started by Pierre-Yves Ritschard.      <li>
   Imported June 26, 2008 and first released with OpenBSD 4.4.          <strong>trapsleds</strong>:
 <li><a href="https://www.opensmtpd.org/">OpenSMTPD</a>          Reduction of incidental NOP instructions/sequences in the instruction
   including <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,          stream which could be useful potentially for ROP attack methods to
   <a href="https://man.openbsd.org/smtpctl.8">smtpctl(8)</a>,          innaccurately target gadgets. These NOP sequences are converted into
   <a href="https://man.openbsd.org/makemap.8">makemap(8)</a>:          trap sequences where possible. Todd Mortimer and Theo de Raadt, June
   Started by Gilles Chehade.          2017.
   Imported November 1, 2008 and first released with OpenBSD 4.6.      </li>
   Now maintained by Gilles Chehade and Eric Faurot.      <li>
 <li><a href="http://tmux.github.io/">tmux</a>,          <strong>Kernel relinking at boot</strong>:
   <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>:          the .o files of the kernel are relinked in random order from a
   Started in 2007 and maintained by Nicholas Marriott.          link-kit, before every reboot. This provides substantial interior
   Imported June 1, 2009, first released with OpenBSD 4.6.          randomization in the kernel's text and data segments for layout and
 <li><a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,          relative branches/calls.  Basically a unique address space for each
   <a href="https://man.openbsd.org/ldpctl.8">ldpctl(8)</a>:          kernel boot, similar to the userland fork+exec model described above
   Started by Michele Marchetto.          but for the kernel.  Theo de Raadt, June 2017.
   Imported June 1, 2009 and first released with OpenBSD 4.6.      </li>
   Now maintained by Claudio Jeker.  
 <li><a href="http://mdocml.bsd.lv/">mandoc</a>  
   including <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>,  
   <a href="https://man.openbsd.org/man.1">man(1)</a>,  
   <a href="https://man.openbsd.org/apropos.1">apropos(1)</a>,  
   <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a>,  
   <a href="https://man.openbsd.org/mandoc/man8/man.cgi.8">man.cgi(8)</a>:  
   Started by Kristaps Dzonsons in November 2008.  
   Imported April 6, 2009, first released with OpenBSD 4.8.  
   Now maintained by Ingo Schwarze.  
 <li><a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,  
   <a href="https://man.openbsd.org/ldapctl.8">ldapctl(8)</a>:  
   Written by Martin Hedenfalk.  
   Imported May 31, 2010 and first released with OpenBSD 4.8.  
 <li><a href="http://www.openiked.org/">OpenIKED</a>  
   including <a href="https://man.openbsd.org/iked.8">iked(8)</a>  
   and <a href="https://man.openbsd.org/ikectl.8">ikectl(8)</a>:  
   Started by Reyk Floeter.  
   Imported June 3, 2010 and first released with OpenBSD 4.8.  
   Now maintained by Reyk Floeter and Mike Belopuhov.  
 <li><a href="https://man.openbsd.org/iscsid.8">iscsid(8)</a>,  
   <a href="https://man.openbsd.org/iscsictl.8">iscsictl(8)</a>:  
   Written and maintained by Claudio Jeker.  
   Imported September 24, 2010 and first released with OpenBSD 4.9.  
 <li><a href="https://man.openbsd.org/rc.d.8">rc.d(8)</a>,  
   <a href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a>:  
   Written and maintained by Robert Nagy and Antoine Jacoutot.  
   Imported October 26, 2010 and first released with OpenBSD 4.9.  
 <li><a href="https://man.openbsd.org/tftpd.8">tftpd(8)</a>:  
   Written and maintained by David Gwynne.  
   Imported March 2, 2012 and first released with OpenBSD 5.2.  
 <li><a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,  
   <a href="https://man.openbsd.org/npppctl.8">npppctl(8)</a>:  
   Started by Internet Initiative Japan Inc.  
   Imported January 11, 2010, first released with OpenBSD 5.3.  
   Maintained by YASUOKA Masahiko.  
 <li><a href="https://man.openbsd.org/ldomd.8">ldomd(8)</a>,  
   <a href="https://man.openbsd.org/ldomctl.8">ldomctl(8)</a>:  
   Written and maintained by Mark Kettenis.  
   Imported October 26, 2012 and first released with OpenBSD 5.3.  
 <li><a href="https://man.openbsd.org/sndiod.8">sndiod(8)</a>:  
   Written and maintained by Alexandre Ratchov.  
   Imported November 23, 2012 and first released with OpenBSD 5.3.  
 <li><a href="https://man.openbsd.org/cu.1">cu(1)</a>:  
   Written and maintained by Nicholas Marriott.  
   Imported July 10, 2012 and first released with OpenBSD 5.4.  
 <li><a href="https://man.openbsd.org/identd.8">identd(8)</a>:  
   Written and maintained by David Gwynne.  
   Imported March 18, 2013 and first released with OpenBSD 5.4.  
 <li><a href="https://man.openbsd.org/slowcgi.8">slowcgi(8)</a>:  
   Written and maintained by Florian Obser.  
   Imported May 23, 2013 and first released with OpenBSD 5.4.  
 <li><a href="https://man.openbsd.org/signify.1">signify(1)</a>:  
   Written and maintained by <a href="http://www.tedunangst.com/flak/post/signify">Ted Unangst</a>.  
   Imported December 31, 2013 and first released with OpenBSD 5.5.  
 <li><a href="https://man.openbsd.org/htpasswd.1">htpasswd(1)</a>:  
   Written and maintained by Florian Obser.  
   Imported March 17, 2014 and first released with OpenBSD 5.6.  
 <li><a href="https://www.libressl.org/">LibreSSL</a>:  
   Started by Ted Unangst, Bob Beck, Joel Sing, Miod Vallat, Philip Guenther,  
   and Theo de Raadt on April 13, 2014, as a fork of OpenSSL 1.0.1g.  
   First released with OpenBSD 5.6.  
   Portable version maintained by Brent Cook.  
 <li><a href="https://man.openbsd.org/httpd.8">httpd(8)</a>:  
   Started by Reyk Floeter.  
   Imported July 12, 2014 and first released with OpenBSD 5.6.  
   Maintained by Reyk Floeter and Florian Obser.  
 <li><a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>:  
   Written and maintained by Antoine Jacoutot.  
   Imported August 19, 2014 and first released with OpenBSD 5.7.  
 <li><a href="https://man.openbsd.org/file.1">file(1)</a>:  
   Rewritten from scratch and maintained by Nicholas Marriott.  
   Imported April 24, 2015 and first released with OpenBSD 5.8.  
 <li><a href="https://man.openbsd.org/doas.1">doas(1)</a>:  
   Written and maintained by Ted Unangst.  
   Imported July 16, 2015 and first released with OpenBSD 5.8.  
 <li><a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>:  
   Written and maintained by YASUOKA Masahiko.  
   Imported July 21, 2015 and first released with OpenBSD 5.8.  
 <li><a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,  
   <a href="https://man.openbsd.org/eigrpctl.8">eigrpctl(8)</a>:  
   Written and maintained by Renato Westphal.  
   Imported October 2, 2015 and first released with OpenBSD 5.9.  
 <li><a href="https://man.openbsd.org/rebound.8">rebound(8)</a>:  
   Written and maintained by Ted Unangst.  
   Imported October 15, 2015 and first released with OpenBSD 5.9.  
 <li><a href="https://man.openbsd.org/vmm.4">vmm(4)</a>,  
   <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>,  
   <a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>:  
   Written and maintained by Mike Larkin and Reyk Floeter.  
   Imported November 13, 2015 and first released with OpenBSD 5.9.  
 <li><a href="https://man.openbsd.org/pdisk.8">pdisk(8)</a>:  
   Originally written by Eryk Vershen in 1996-1998,  
   rewritten and maintained by Kenneth Westerback since January 11, 2016  
   and first released with OpenBSD 5.9.  
 <li><a href="https://man.openbsd.org/mknod.8">mknod(8)</a>:  
   Original version from Version 6 AT&T UNIX (1975),  
   last rewritten by Marc Espie on March 5, 2016  
   and first released with OpenBSD 6.0.  
 <li><a href="https://man.openbsd.org/audioctl.1">audioctl(1)</a>:  
   Originally written by Lennart Augustsson in 1997,  
   rewritten and maintained by Alexandre Ratchov since June 21, 2016  
   and first released with OpenBSD 6.0.  
 <li><a href="https://man.openbsd.org/switchd.8">switchd(8)</a>,  
   <a href="https://man.openbsd.org/switchctl.8">switchctl(8)</a>:  
   Written and maintained by Reyk Floeter.  
   Imported July 19, 2016; released with OpenBSD 6.1.  
 <li><a href="https://man.openbsd.org/acme-client.1">acme-client(1)</a>:  
   Written by Kristaps Dzonsons, imported August 31, 2016; released  
   with OpenBSD 6.1.  
 <li><a href="https://man.openbsd.org/syspatch.8">syspatch(8)</a>:  
   Written and maintained by Antoine Jacoutot.  
   Imported September 5, 2016; released with OpenBSD 6.1.  
 <li><a href="https://man.openbsd.org/ping.8">ping(8)</a>:  
   Restructured to include IPv6 functionality and maintained by Florian Obser.  
   The separate  
   <a href="https://man.openbsd.org/OpenBSD-6.0/ping6.8">ping6(8)</a>  
   was superseded on September 17, 2016,  
   and the new, combined version was released with OpenBSD 6.1.  
 <li><a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>:  
   Cleaned-up fork of  
   <a href="https://man.openbsd.org/OpenBSD-6.0/xdm.1">xdm(1)</a>  
   maintained by Matthieu Herrb.  
   Imported October 23, 2016; released with OpenBSD 6.1.  
 <li><a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>:  
   Written and maintained by Bob Beck.  
   Imported January 24, 2017; released with OpenBSD 6.1.  
 <li><a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>:  
   Written and maintained by Florian Obser.  
   Imported March 18, 2017; released with OpenBSD 6.2.  
 </ul>  </ul>
   
 <h3>Concepts</h3>  <h3>Functions</h3>
   
 <ul>  <ul>
 <li><a href="https://man.openbsd.org/ipsec.4">ipsec(4)</a>:      <li>
   Started by John Ioannidis, Angelos D. Keromytis, Niels Provos, and          <a href="https://man.openbsd.org/arc4random.3">arc4random(3)</a>:
   Niklas Hallqvist, imported February 20, 1997.  OpenBSD was the first          David Mazieres, December 28, 1996, OpenBSD 2.1
   free operating system to provide an IPSec stack.      </li>
 <li><a href="https://man.openbsd.org/inet6.4">inet6(4)</a>:      <li>
   First complete integration and adoption of IPv6 led by          <a href="https://man.openbsd.org/bcrypt.3">bcrypt(3)</a>:
   "Itojun" (Dr. Junichiro Hagino) [WIDE/KAME], Craig Metz [NRL], and          Implemented by <a href="https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html">Niels Provos and David Mazieres</a>
    Angelos D. Keromytis starting Jan 6, 1999.          Imported February 13, 1997 and first released with OpenBSD 2.1.
    Almost fully operational Jun 6, 1999 during the      </li>
    <a href="hackathons.html">first OpenBSD hackathon</a>.      <li>
    OpenBSD 2.7.          <a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a>,
 <li>Privilege separation:          <a href="https://man.openbsd.org/strlcat.3">strlcat(3)</a>:
   First implemented by          Todd Miller and Theo de Raadt, July 1, 1998, OpenBSD 2.4
   <a href="http://www.citi.umich.edu/u/provos/ssh/privsep.html">Niels Provos</a>      </li>
   and Markus Friedl in OpenSSH in March 2002, released with OpenBSD 3.2.      <li>
   The concept is now used in many OpenBSD programs, for example          <a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>:
   <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>,          Ted Unangst, Todd Miller, and Theo de Raadt, May 3, 2004, OpenBSD 3.6
   <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>,      </li>
   <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>,      <li>
   <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,          <a href="https://man.openbsd.org/imsg_init.3">imsg</a>:
   <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,          Message passing API, written by Henning Brauer.
   <a href="https://man.openbsd.org/file.1">file(1)</a>,          In libutil since May 26, 2010, OpenBSD 4.8;
   <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>,          used by various daemons before that.
   <a href="https://man.openbsd.org/iked.8">iked(8)</a>,      </li>
   <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,      <li>
   <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,          <a href="https://man.openbsd.org/timingsafe_bcmp.3">timingsafe_bcmp(3)</a>:
   <a href="https://man.openbsd.org/mountd.8">mountd(8)</a>,          Damien Miller, July 13, 2010, OpenBSD 4.9
   <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,      </li>
   <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>,      <li>
   <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,          <a href="https://man.openbsd.org/explicit_bzero.3">explicit_bzero(3)</a>:
   <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,          Ted Unangst and Matthew Dempsky, January 22, 2014, OpenBSD 5.5
   <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,      </li>
   <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>,      <li>
   <a href="https://man.openbsd.org/man8/relayd.8">relayd(8)</a>,          <a href="https://man.openbsd.org/ohash_init.3">ohash</a>:
   <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,          Written and maintained by Marc Espie.
   <a href="https://man.openbsd.org/script.1">script(1)</a>,          In libutil since May 12, 2014, OpenBSD 5.6;
   <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,          used by make(1) and m4(1) before that.
   <a href="https://man.openbsd.org/syslogd.8">syslogd(8)</a>,      </li>
   <a href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>,      <li>
   <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>,          <a href="https://man.openbsd.org/asr_run.3">asr</a>:
   <a href="https://man.openbsd.org/xconsole.1">xconsole(1)</a>,          Replacement resolver written and maintained by Eric Faurot.
   <a href="https://man.openbsd.org/xdm.1">xdm(1)</a>,          Imported April 14, 2012; activated on March 26, 2014, OpenBSD 5.6.
   <a href="https://man.openbsd.org/Xserver.1">Xserver(1)</a>,      </li>
   <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>,      <li>
   <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>,          <a href="https://man.openbsd.org/reallocarray.3">reallocarray(3)</a>:
   etc.          Theo de Raadt and Ted Unangst, April 22, 2014, OpenBSD 5.6
 <li>Privilege revocation:      </li>
   Related to the work on privilege separation, some programs were refactored      <li>
   to drop privileges while holding onto a tricky resource such as a raw socket,          <a href="https://man.openbsd.org/getentropy.2">getentropy(2)</a>:
   reserved port, or modification-locked bpf(4) descriptor,          Matthew Dempsky and Theo de Raadt, June 13, 2014, OpenBSD 5.6
   for example      </li>
   <a href="https://man.openbsd.org/ping.8">ping(8)</a>,      <li>
   <a href="https://man.openbsd.org/traceroute.8">traceroute(8)</a>,          <a href="https://man.openbsd.org/sendsyslog.2">sendsyslog(2)</a>:
   etc.          Theo de Raadt, July 10, 2014, OpenBSD 5.6
 <li>Stack protector:  Developed since 2001 as "propolice" by Hiroaki Etoh.      </li>
   Integrated, and implemented for additional hardware platforms,      <li>
   by Miod Vallat and Theo de Raadt.  OpenBSD 3.3 was the first operating          <a href="https://man.openbsd.org/timingsafe_memcmp.3">timingsafe_memcmp(3)</a>:
   system to enable it systemwide by default.          Matthew Dempsky, July 13, 2014, OpenBSD 5.6
 <li>W^X: First used for sparc, sparc64, alpha, and hppa in OpenBSD 3.3.      </li>
   Strictly enforced by default since OpenBSD 6.0: a program can only      <li>
   violate it if the executable is marked with <code>PT_OPENBSD_WXNEEDED</code>          <a href="https://man.openbsd.org/pledge.2">pledge(2)</a>:
   and it is located on a filesystem mounted with the <code>wxallowed</code>          Theo de Raadt, July 19, 2015, OpenBSD 5.9
   <a href="https://man.openbsd.org/mount.8">mount(8)</a> option.      </li>
 <li>GOT and PLT protection by ld.so: first done as part of the W^X      <li>
   work in OpenBSD 3.3, by Dale Rahn and Theo de Raadt.          <a href="https://man.openbsd.org/getpwnam_shadow.3">getpwnam_shadow(3)</a>,
   The GOT and PLT regions are read-only outside of ld.so itself.          <a href="https://man.openbsd.org/getpwuid_shadow.3">getpwuid_shadow(3)</a>:
   Extended to the .init/.fini sections (constructors and destructors)          Ted Unangst and Theo de Raadt, November 18, 2015, OpenBSD 5.9
   in OpenBSD 3.4.      </li>
 <li>ASLR: OpenBSD 3.4 was the first widely used operating system to      <li>
   provide it by default.          <a href="https://man.openbsd.org/recallocarray.3">recallocarray(3)</a>:
 <li><a href="https://man.openbsd.org/gcc-local.1">gcc-local(1)</a>          Otto Moerbeek, Joel Sing and Theo de Raadt, March 6, 2017, OpenBSD 6.1
   __attribute__((__bounded__)) static analysis annotation      </li>
   and checking mechanism:      <li>
   Started by Anil Madhavapeddy on June 26, 2003          <a href="https://man.openbsd.org/freezero.3">freezero(3)</a>:
   and ported to GCC 4 by Nicholas Marriott.          Otto Moerbeek, April 10, 2017, OpenBSD 6.2
   First released with OpenBSD 3.4.      </li>
 <li><a href="https://man.openbsd.org/malloc.3">malloc(3)</a>  
   randomization implemented by Thierry Deval. Guard pages and randomized (delayed) free added by Ted Unangst.  
   Reimplemented by <a href="papers/eurobsdcon2009/otto-malloc.pdf">Otto Moerbeek</a>  
   for OpenBSD 4.4.</li>  
 <li>PIE: OpenBSD 5.3 was the first widely used operating system to enable  
   it globally by default, on seven hardware platforms.  
 <li>Random-data memory: the ability to specify that a variable  
   should be initialized at load time with random byte values was  
   implemented in OpenBSD 5.3 by Matthew Dempsky.  
 <li>Stack protector per shared object: using the random-data memory  
   feature, each shared object was given its own stack protector  
   cookie in OpenBSD 5.3 by Matthew Dempsky.  
 <li>Static-PIE: Position-independent static binaries for /bin, /sbin and ramdisks.  
   First released with OpenBSD 5.7.  
 <li>SROP (<a href="https://man.openbsd.org/sigreturn.2">sigreturn(2)</a>  
   oriented programming) mitigation: Researched by  
   <a href="http://www.cs.vu.nl/~herbertb/papers/srop_sp14.pdf">Eric Bosman</a>  
   and Herbert Bos in 2014, implemented by Theo de Raadt in May 2016,  
   enabled by default since OpenBSD 6.0.  
 <li>Library order randomization:  
   In <a href="https://man.openbsd.org/rc.8">rc(8)</a>, re-link  
   <code>libc.so</code>, <code>libcrypto</code>, and <code>ld.so</code>  
   on startup, placing the objects in a random order.  
   Theo de Raadt and Robert Peichaer, May 2016,  
   enabled by default since OpenBSD 6.0 and 6.2.  
 <li>Kernel-assisted lazy-binding for W^X safety in multi-threaded programs.  
   A new syscall <a href="https://man.openbsd.org/kbind.2">kbind(2)</a>  
   permits lazy-binding to be W^X safe in multi-threaded programs.  
   Implemented for OpenBSD 5.9 by Philip Guenther in July 2015.  
 <li>Process layouts in memory tightened to remove execute permission from  
   all segmented, non-instruction data and to remove write permission from  
   data that is only modified during loading and relocation.  
   By combining the RELRO (Read-Only after Relocation) design from the  
   GNU project with the original ASLR work from OpenBSD 3.3 and  
   strict lazy-binding work from OpenBSD 5.9, this is applied to not  
   just a subset of programs and libraries but rather to all programs  
   and libraries.  
   Implemented for OpenBSD 6.1 by Philip Guenther in August 2016.  
 <li>Use of fork+exec in privilege separated programs.  The strategy is to give  
   each process a fresh & unique address space for ASLR, stack protector -- as  
   protection against address space discovery attacks.  Implemented first by  
   Damien Miller (<a href="https://man.openbsd.org/sshd.8">sshd(8)</a> 2004),  
   Claudio Jeker (<a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>, 2015),  
   Eric Faurot (<a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>, 2016),  
   Rafael Zalamena (various, 2016), and others.  
 <li>trapsleds: Reduction of incidental NOP instructions/sequences in the  
    instruction stream which could be useful potentially for ROP attack methods  
    to innaccurately target gadgets.  These NOP sequences are converted into  
    trap sequences where possible.  Todd Mortimer and Theo de Raadt, June 2017.  
 <li>The .o files of the kernel are relinked in random order from a link-kit,  
    before every reboot.  This provides substantial interior randomization in  
    the kernel's text and data segments for layout and relative branches/calls.  
    Basically a unique address space for each kernel boot, similar to the userland  
    fork+exec model described above but for the kernel.  Theo de Raadt, June 2017.  
 </ul>  </ul>
   
 <h3>Functions</h3>  
   
   <h3>Programs and subsystems</h3>
   
 <ul>  <ul>
 <li><a href="https://man.openbsd.org/arc4random.3">arc4random(3)</a>:      <li>
   David Mazieres, December 28, 1996, OpenBSD 2.1          <a href="https://man.openbsd.org/ypbind.8">ypbind(8)</a>,
 <li><a href="https://man.openbsd.org/bcrypt.3">bcrypt(3)</a>:          <a href="https://man.openbsd.org/ypset.8">ypset(8)</a>,
   Implemented by <a href="https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html">Niels Provos and David Mazieres</a>          <a href="https://man.openbsd.org/ypcat.1">ypcat(1)</a>,
   Imported February 13, 1997 and first released with OpenBSD 2.1.          <a href="https://man.openbsd.org/ypmatch.1">ypmatch(1)</a>,
 <li><a href="https://man.openbsd.org/strlcpy.3">strlcpy(3)</a>,          <a href="https://man.openbsd.org/ypwhich.1">ypwhich(1)</a>,
   <a href="https://man.openbsd.org/strlcat.3">strlcat(3)</a>:          and libc support: Started by Theo de Raadt.
   Todd Miller and Theo de Raadt, July 1, 1998, OpenBSD 2.4          Imported April 26, 1993 and first released with NetBSD 0.9.
 <li><a href="https://man.openbsd.org/strtonum.3">strtonum(3)</a>:      </li>
   Ted Unangst, Todd Miller, and Theo de Raadt, May 3, 2004, OpenBSD 3.6      <li>
 <li><a href="https://man.openbsd.org/imsg_init.3">imsg</a>:          <a href="https://man.openbsd.org/ypserv.8">ypserv(8)</a>:
   Message passing API, written by Henning Brauer.          Started by Mats O. Jansson in 1994.
   In libutil since May 26, 2010, OpenBSD 4.8;          Imported October 23, 1995 and first released with OpenBSD 2.0.
   used by various daemons before that.      </li>
 <li><a href="https://man.openbsd.org/timingsafe_bcmp.3">timingsafe_bcmp(3)</a>:      <li>
   Damien Miller, July 13, 2010, OpenBSD 4.9          <a href="https://man.openbsd.org/mopd.8">mopd(8)</a>:
 <li><a href="https://man.openbsd.org/explicit_bzero.3">explicit_bzero(3)</a>:          Started by Mats O. Jansson in 1993.
   Ted Unangst and Matthew Dempsky, January 22, 2014, OpenBSD 5.5          Imported September 21, 1996 and first released with OpenBSD 2.0.
 <li><a href="https://man.openbsd.org/ohash_init.3">ohash</a>:      </li>
   Written and maintained by Marc Espie.      <li>
   In libutil since May 12, 2014, OpenBSD 5.6;          <a href="anoncvs.html">AnonCVS</a>:
   used by make(1) and m4(1) before that.          Designed and implemented by Chuck Cranor and Theo de Raadt in 1995
 <li><a href="https://man.openbsd.org/asr_run.3">asr</a>:          (<a href="papers/anoncvs-paper.pdf">paper</a>,
   Replacement resolver written and maintained by Eric Faurot.          <a href="papers/anoncvs-slides.pdf">slides</a>)
   Imported April 14, 2012; activated on March 26, 2014, OpenBSD 5.6.      </li>
 <li><a href="https://man.openbsd.org/reallocarray.3">reallocarray(3)</a>:      <li>
   Theo de Raadt and Ted Unangst, April 22, 2014, OpenBSD 5.6          <a href="https://man.openbsd.org/aucat.1">aucat(1)</a>:
 <li><a href="https://man.openbsd.org/getentropy.2">getentropy(2)</a>:          Started by Kenneth Stailey.
   Matthew Dempsky and Theo de Raadt, June 13, 2014, OpenBSD 5.6          Imported January 2, 1997 and first released with OpenBSD 2.1.
 <li><a href="https://man.openbsd.org/sendsyslog.2">sendsyslog(2)</a>:          Now maintained by Alexandre Ratchov.
   Theo de Raadt, July 10, 2014, OpenBSD 5.6      </li>
 <li><a href="https://man.openbsd.org/timingsafe_memcmp.3">timingsafe_memcmp(3)</a>:      <li>
   Matthew Dempsky, July 13, 2014, OpenBSD 5.6          <a href="https://www.openssh.com/">OpenSSH</a>
 <li><a href="https://man.openbsd.org/pledge.2">pledge(2)</a>:          including <a href="https://man.openbsd.org/ssh.1">ssh(1)</a>,
   Theo de Raadt, July 19, 2015, OpenBSD 5.9          <a href="https://man.openbsd.org/scp.1">scp(1)</a>,
 <li><a href="https://man.openbsd.org/getpwnam_shadow.3">getpwnam_shadow(3)</a>,          <a href="https://man.openbsd.org/sftp.1">sftp(1)</a>,
   <a href="https://man.openbsd.org/getpwuid_shadow.3">getpwuid_shadow(3)</a>:          <a href="https://man.openbsd.org/ssh-add.1">ssh-add(1)</a>,
   Ted Unangst and Theo de Raadt, November 18, 2015, OpenBSD 5.9          <a href="https://man.openbsd.org/ssh-agent.1">ssh-agent(1)</a>,
 <li><a href="https://man.openbsd.org/recallocarray.3">recallocarray(3)</a>:          <a href="https://man.openbsd.org/ssh-keygen.1">ssh-keygen(1)</a>,
   Otto Moerbeek, Joel Sing and Theo de Raadt, March 6, 2017, OpenBSD 6.1          <a href="https://man.openbsd.org/sshd.8">sshd(8)</a>,
 <li><a href="https://man.openbsd.org/freezero.3">freezero(3)</a>:          <a href="https://man.openbsd.org/sftp-server.8">sftp-server(8)</a>:
   Otto Moerbeek, April 10, 2017, OpenBSD 6.2          Started by Aaron Campbell, Bob Beck, Dug Song, Markus Friedl,
           Niels Provos, and Theo de Raadt
           as a fork of SSH 1.2.12 by Tatu Ylonen.
           Imported September 26, 1999 and first released with OpenBSD 2.6.
           Now maintained by Markus Friedl, Damien Miller, Darren Tucker, and
           Theo de Raadt.
       </li>
       <li>
           <a href="https://man.openbsd.org/mg.1">mg(1)</a>:
           Started by Dave Conroy in November 1986.
           Imported February 25, 2000 and first released with OpenBSD 2.7.
           Now maintained by Mark Lumsden.
       </li>
       <li>
           <a href="https://man.openbsd.org/m4.1">m4(1)</a>:
           Originally implemented by Ozan Yigit and Richard A. O'Keefe for 4.3BSD-Reno.
           Considerably extended and maintained by Marc Espie since 1999.
       </li>
       <li>
           <a href="https://man.openbsd.org/pf.4">pf(4)</a>,
           <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>,
           <a href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>,
           <a href="https://man.openbsd.org/authpf.8">authpf(8)</a>,
           <a href="https://man.openbsd.org/ftp-proxy.8">ftp-proxy(8)</a>:
           Started by Daniel Hartmeier as a replacement for the non-free ipf by
           Darren Reed. Imported June 24, 2001 and first released with OpenBSD
           3.0. Now maintained by Henning Brauer.
       </li>
       <li>
           <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.4">systrace(4)</a>,
           <a href="https://man.openbsd.org/OpenBSD-5.9/systrace.1">systrace(1)</a>:
           Started by Niels Provos.
           Imported June 4, 2002 and first released with OpenBSD 3.2.
           Deleted after OpenBSD 5.9 because
           <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> is even better.
       </li>
       <li>
           <a href="https://man.openbsd.org/spamd.8">spamd(8)</a>:
           Written by Bob Beck. Imported December 21, 2002 and first released with
           OpenBSD 3.3.
       </li>
       <li>
           <a href="https://man.openbsd.org/dc.1">dc(1)</a>:
           Written and maintained by Otto Moerbeek.
           Imported September 19, 2003 and first released with OpenBSD 3.5.
       </li>
       <li>
           <a href="https://man.openbsd.org/bc.1">bc(1)</a>:
           Written and maintained by Otto Moerbeek.
           Imported September 25, 2003 and first released with OpenBSD 3.5.
       </li>
       <li>
           <a href="https://man.openbsd.org/sensorsd.8">sensorsd(8)</a>:
           Started by Henning Brauer.
           Imported September 24, 2003 and first released with OpenBSD 3.5.
           Reworked by Constantine A. Murenin.
       </li>
       <li>
           <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>:
           Written and maintained by Marc Espie.
           Imported October 16, 2003 and first released with OpenBSD 3.5.
       </li>
       <li>
           <a href="https://man.openbsd.org/carp.4">carp(4)</a>:
           Written by Mickey Shalayeff, Markus Friedl, Marco Pfatschbacher,
           and Ryan McBride.
           Imported October 17, 2003 and first released with OpenBSD 3.5.
       </li>
       <li>
           <a href="http://www.openbgpd.org/">OpenBGPD</a>
           including <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>
           and <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>:
           Written and maintained by Henning Brauer and Claudio Jeker,
           and also maintained by Peter Hessler.
           Imported December 17, 2003 and first released with OpenBSD 3.5.
       </li>
       <li>
           <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>:
           Started by Ted Lemon and Elliot Poger in 1996.
           Imported January 18, 2004 and first released with OpenBSD 3.5.
           Reworked by Henning Brauer.
           Now maintained by Kenneth Westerback.
       </li>
       <li>
           <a href="https://man.openbsd.org/dhcpd.8">dhcpd(8)</a>:
           Started by Ted Lemon in 1995.
           Imported April 13, 2004 and first released with OpenBSD 3.6.
           Reworked by Henning Brauer.
           Now maintained by Kenneth Westerback.
       </li>
       <li>
           <a href="https://man.openbsd.org/hotplugd.8">hotplugd(8)</a>:
           Started by Alexander Yurchenko.
           Imported May 30, 2004 and first released with OpenBSD 3.6.
       </li>
       <li>
           <a href="http://www.openntpd.org/">OpenNTPD</a>
           including <a href="https://man.openbsd.org/ntpd.8">ntpd(8)</a>
           and <a href="https://man.openbsd.org/ntpctl.8">ntpctl(8)</a>:
           Written and maintained by Henning Brauer.
           Imported May 31, 2004 and first released with OpenBSD 3.6.
           Portable version maintained by Brent Cook.
       </li>
       <li>
           <a href="https://man.openbsd.org/dpb.1">dpb(1)</a>:
           Started by Nikolay Sturm on August 10, 2004; first available for OpenBSD 3.6.
           Rewritten and maintained by Marc Espie since August 20, 2010.
       </li>
       <li>
           <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
           <a href="https://man.openbsd.org/ospfctl.8">ospfctl(8)</a>:
           Started by Esben Norby and Claudio Jeker.
           Imported January 28, 2005 and first released with OpenBSD 3.7.
       </li>
       <li>
           <a href="https://man.openbsd.org/ifstated.8">ifstated(8)</a>:
           Started by Marco Pfatschbacher and Ryan McBride.
           Imported January 23, 2004 and first released with OpenBSD 3.8.
       </li>
       <li>
           <a href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>:
           Started by Marco Peereboom.
           Imported March 29, 2005 and first released with OpenBSD 3.8.
       </li>
       <li>
           <a href="https://man.openbsd.org/hostapd.8">hostapd(8)</a>:
           Written and maintained by Reyk Floeter.
           Imported May 26, 2005 and first released with OpenBSD 3.8.
       </li>
       <li>
           <a href="https://man.openbsd.org/watchdogd.8">watchdogd(8)</a>:
           Started by Marc Balmer.
           Imported August 8, 2005 and first released with OpenBSD 3.8.
       </li>
       <li>
           <a href="https://man.openbsd.org/sdiff.1">sdiff(1)</a>:
           Written by Ray Lai.
           Imported December 27, 2005 and first released with OpenBSD 3.9.
       </li>
       <li>
           <a href="https://man.openbsd.org/dvmrpd.8">dvmrpd(8)</a>,
           <a href="https://man.openbsd.org/dvmrpctl.8">dvmrpctl(8)</a>:
           Started by Esben Norby.
           Imported June 1, 2006 and first released with OpenBSD 4.0.
       </li>
       <li>
           <a href="https://man.openbsd.org/ripd.8">ripd(8)</a>,
           <a href="https://man.openbsd.org/ripctl.8">ripctl(8)</a>:
           Started by Michele Marchetto.
           Imported October 18, 2006 and first released with OpenBSD 4.1.
       </li>
       <li>
           <a href="https://man.openbsd.org/pkg-config.1">pkg-config(1)</a>:
           Started by Chris Kuethe and Marc Espie.
           Imported November 27, 2006 and first released with OpenBSD 4.1.
           Now maintained by Jasper Lievisse Adriaanse.
       </li>
       <li>
           <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>
           with <a href="https://man.openbsd.org/relayctl.8">relayctl(8)</a>:
           Started by Pierre-Yves Ritschard and Reyk Floeter.
           Imported December 16, 2006 and first released with OpenBSD 4.1.
           Now maintained by Reyk Floeter and Sebastian Benoit.<br/>
       </li>
       <li>
           <a href="https://man.openbsd.org/cwm.1">cwm(1)</a>:
           Started by <a href="http://monkey.org/~marius/cwm/README">Marius
               Aamodt Eriksen</A> in 2004.
           Imported April 27, 2007 and first released with OpenBSD 4.2.
           Now maintained by Okan Demirmen.
           <a href="https://github.com/chneukirchen/cwm">Portable version</a>
           maintained by Leah Neukirchen.
       </li>
       <li>
           <a href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a>,
           <a href="https://man.openbsd.org/ospf6ctl.8">ospf6ctl(8)</a>:
           Started by Esben Norby and Claudio Jeker.
           Imported October 8, 2007 and first released with OpenBSD 4.2.
       </li>
       <li>
           <a href="https://man.openbsd.org/libtool.1">libtool(1)</a>:
           Written by Steven Mestdagh and Marc Espie.
           Imported October 28, 2007 and first available for OpenBSD 4.3.
           Now maintained by Marc Espie, Jasper Lievisse Adriaanse,
           and Antoine Jacoutot.
       </li>
       <li>
           <a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>,
           <a href="https://man.openbsd.org/snmpctl.8">snmpctl(8)</a>:
           Started by Reyk Floeter.
           Imported December 5, 2007 and first released with OpenBSD 4.3.
           Maintained by Reyk Floeter and Bret Lambert.
       </li>
       <li>
           <a href="https://man.openbsd.org/sysmerge.8">sysmerge(8)</a>:
           Written and maintained by Antoine Jacoutot,
           originally forked from mergemaster by Douglas Barton.
           Imported April 22, 2008, first released with OpenBSD 4.4.
       </li>
       <li>
           <a href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>:
           Started by Pierre-Yves Ritschard.
           Imported June 26, 2008 and first released with OpenBSD 4.4.
       </li>
       <li>
           <a href="https://www.opensmtpd.org/">OpenSMTPD</a>
           including <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a>,
           <a href="https://man.openbsd.org/smtpctl.8">smtpctl(8)</a>,
           <a href="https://man.openbsd.org/makemap.8">makemap(8)</a>:
           Started by Gilles Chehade.
           Imported November 1, 2008 and first released with OpenBSD 4.6.
           Now maintained by Gilles Chehade and Eric Faurot.
       </li>
       <li>
           <a href="http://tmux.github.io/">tmux</a>,
           <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>:
           Started in 2007 and maintained by Nicholas Marriott.
           Imported June 1, 2009, first released with OpenBSD 4.6.
       </li>
       <li>
           <a href="https://man.openbsd.org/ldpd.8">ldpd(8)</a>,
           <a href="https://man.openbsd.org/ldpctl.8">ldpctl(8)</a>:
           Started by Michele Marchetto.
           Imported June 1, 2009 and first released with OpenBSD 4.6.
           Now maintained by Claudio Jeker.
       </li>
       <li>
           <a href="http://mdocml.bsd.lv/">mandoc</a>
           including <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>,
           <a href="https://man.openbsd.org/man.1">man(1)</a>,
           <a href="https://man.openbsd.org/apropos.1">apropos(1)</a>,
           <a href="https://man.openbsd.org/makewhatis.8">makewhatis(8)</a>,
           <a href="https://man.openbsd.org/mandoc/man8/man.cgi.8">man.cgi(8)</a>:
           Started by Kristaps Dzonsons in November 2008.
           Imported April 6, 2009, first released with OpenBSD 4.8.
           Now maintained by Ingo Schwarze.
       </li>
       <li>
           <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
           <a href="https://man.openbsd.org/ldapctl.8">ldapctl(8)</a>:
           Written by Martin Hedenfalk.
           Imported May 31, 2010 and first released with OpenBSD 4.8.
       </li>
       <li>
           <a href="http://www.openiked.org/">OpenIKED</a>
           including <a href="https://man.openbsd.org/iked.8">iked(8)</a>
           and <a href="https://man.openbsd.org/ikectl.8">ikectl(8)</a>:
           Started by Reyk Floeter.
           Imported June 3, 2010 and first released with OpenBSD 4.8.
           Now maintained by Reyk Floeter and Mike Belopuhov.
       </li>
       <li>
           <a href="https://man.openbsd.org/iscsid.8">iscsid(8)</a>,
           <a href="https://man.openbsd.org/iscsictl.8">iscsictl(8)</a>:
           Written and maintained by Claudio Jeker.
           Imported September 24, 2010 and first released with OpenBSD 4.9.
       </li>
       <li>
           <a href="https://man.openbsd.org/rc.d.8">rc.d(8)</a>,
           <a href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a>:
           Written and maintained by Robert Nagy and Antoine Jacoutot.
           Imported October 26, 2010 and first released with OpenBSD 4.9.
       </li>
       <li>
           <a href="https://man.openbsd.org/tftpd.8">tftpd(8)</a>:
           Written and maintained by David Gwynne.
           Imported March 2, 2012 and first released with OpenBSD 5.2.
       </li>
       <li>
           <a href="https://man.openbsd.org/npppd.8">npppd(8)</a>,
           <a href="https://man.openbsd.org/npppctl.8">npppctl(8)</a>:
           Started by Internet Initiative Japan Inc.
           Imported January 11, 2010, first released with OpenBSD 5.3.
           Maintained by YASUOKA Masahiko.
       </li>
       <li>
           <a href="https://man.openbsd.org/ldomd.8">ldomd(8)</a>,
           <a href="https://man.openbsd.org/ldomctl.8">ldomctl(8)</a>:
           Written and maintained by Mark Kettenis.
           Imported October 26, 2012 and first released with OpenBSD 5.3.
       </li>
       <li>
           <a href="https://man.openbsd.org/sndiod.8">sndiod(8)</a>:
           Written and maintained by Alexandre Ratchov.
           Imported November 23, 2012 and first released with OpenBSD 5.3.
       </li>
       <li>
           <a href="https://man.openbsd.org/cu.1">cu(1)</a>:
           Written and maintained by Nicholas Marriott.
           Imported July 10, 2012 and first released with OpenBSD 5.4.
       </li>
       <li>
           <a href="https://man.openbsd.org/identd.8">identd(8)</a>:
           Written and maintained by David Gwynne.
           Imported March 18, 2013 and first released with OpenBSD 5.4.
       </li>
       <li>
           <a href="https://man.openbsd.org/slowcgi.8">slowcgi(8)</a>:
           Written and maintained by Florian Obser.
           Imported May 23, 2013 and first released with OpenBSD 5.4.
       </li>
       <li>
           <a href="https://man.openbsd.org/signify.1">signify(1)</a>:
           Written and maintained by <a href="http://www.tedunangst.com/flak/post/signify">Ted Unangst</a>.
           Imported December 31, 2013 and first released with OpenBSD 5.5.
       </li>
       <li>
           <a href="https://man.openbsd.org/htpasswd.1">htpasswd(1)</a>:
           Written and maintained by Florian Obser.
           Imported March 17, 2014 and first released with OpenBSD 5.6.
       </li>
       <li>
           <a href="https://www.libressl.org/">LibreSSL</a>:
           Started by Ted Unangst, Bob Beck, Joel Sing, Miod Vallat, Philip Guenther,
           and Theo de Raadt on April 13, 2014, as a fork of OpenSSL 1.0.1g.
           First released with OpenBSD 5.6.
           Portable version maintained by Brent Cook.
       </li>
       <li>
           <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>:
           Started by Reyk Floeter.
           Imported July 12, 2014 and first released with OpenBSD 5.6.
           Maintained by Reyk Floeter and Florian Obser.
       </li>
       <li>
           <a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>:
           Written and maintained by Antoine Jacoutot.
           Imported August 19, 2014 and first released with OpenBSD 5.7.
       </li>
       <li>
           <a href="https://man.openbsd.org/file.1">file(1)</a>:
           Rewritten from scratch and maintained by Nicholas Marriott.
           Imported April 24, 2015 and first released with OpenBSD 5.8.
       </li>
       <li>
           <a href="https://man.openbsd.org/doas.1">doas(1)</a>:
           Written and maintained by Ted Unangst.
           Imported July 16, 2015 and first released with OpenBSD 5.8.
       </li>
       <li>
           <a href="https://man.openbsd.org/radiusd.8">radiusd(8)</a>:
           Written and maintained by YASUOKA Masahiko.
           Imported July 21, 2015 and first released with OpenBSD 5.8.
       </li>
       <li>
           <a href="https://man.openbsd.org/eigrpd.8">eigrpd(8)</a>,
           <a href="https://man.openbsd.org/eigrpctl.8">eigrpctl(8)</a>:
           Written and maintained by Renato Westphal.
           Imported October 2, 2015 and first released with OpenBSD 5.9.
       </li>
       <li>
           <a href="https://man.openbsd.org/rebound.8">rebound(8)</a>:
           Written and maintained by Ted Unangst.
           Imported October 15, 2015 and first released with OpenBSD 5.9.
       </li>
       <li>
           <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>,
           <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>,
           <a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>:
           Written and maintained by Mike Larkin and Reyk Floeter.
           Imported November 13, 2015 and first released with OpenBSD 5.9.
       </li>
       <li>
           <a href="https://man.openbsd.org/pdisk.8">pdisk(8)</a>:
           Originally written by Eryk Vershen in 1996-1998,
           rewritten and maintained by Kenneth Westerback since January 11, 2016
           and first released with OpenBSD 5.9.
       </li>
       <li>
           <a href="https://man.openbsd.org/mknod.8">mknod(8)</a>:
           Original version from Version 6 AT&amp;T UNIX (1975),
           last rewritten by Marc Espie on March 5, 2016
           and first released with OpenBSD 6.0.
       </li>
       <li>
           <a href="https://man.openbsd.org/audioctl.1">audioctl(1)</a>:
           Originally written by Lennart Augustsson in 1997,
           rewritten and maintained by Alexandre Ratchov since June 21, 2016
           and first released with OpenBSD 6.0.
       </li>
       <li>
           <a href="https://man.openbsd.org/switchd.8">switchd(8)</a>,
           <a href="https://man.openbsd.org/switchctl.8">switchctl(8)</a>:
           Written and maintained by Reyk Floeter.
           Imported July 19, 2016; released with OpenBSD 6.1.
       </li>
       <li>
           <a href="https://man.openbsd.org/acme-client.1">acme-client(1)</a>:
           Written by Kristaps Dzonsons, imported August 31, 2016; released
           with OpenBSD 6.1.
       </li>
       <li>
           <a href="https://man.openbsd.org/syspatch.8">syspatch(8)</a>:
           Written and maintained by Antoine Jacoutot.
           Imported September 5, 2016; released with OpenBSD 6.1.
       </li>
       <li>
           <a href="https://man.openbsd.org/ping.8">ping(8)</a>:
           Restructured to include IPv6 functionality and maintained by Florian Obser.
           The separate
           <a href="https://man.openbsd.org/OpenBSD-6.0/ping6.8">ping6(8)</a>
           was superseded on September 17, 2016,
           and the new, combined version was released with OpenBSD 6.1.
       </li>
       <li>
           <a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>:
           Cleaned-up fork of
           <a href="https://man.openbsd.org/OpenBSD-6.0/xdm.1">xdm(1)</a>
           maintained by Matthieu Herrb.
           Imported October 23, 2016; released with OpenBSD 6.1.
       </li>
       <li>
           <a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>:
           Written and maintained by Bob Beck.
           Imported January 24, 2017; released with OpenBSD 6.1.
       </li>
       <li>
           <a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>:
           Written and maintained by Florian Obser.
           Imported March 18, 2017; released with OpenBSD 6.2.
       </li>
 </ul>  </ul>
   
 <h3>Projects maintained by OpenBSD developers outside OpenBSD</h3>  <h3>Projects maintained by OpenBSD developers outside OpenBSD</h3>
   
 <ul>  <ul>
 <li><a href="http://www.sudo.ws/">sudo</a>:      <li>
   Started by Bob Coggeshall and Cliff Spencer around 1980.          <a href="http://www.sudo.ws/">sudo</a>:
   Imported November 18, 1999, first released with OpenBSD 2.7.          Started by Bob Coggeshall and Cliff Spencer around 1980.
   Now maintained by Todd Miller.          Imported November 18, 1999, first released with OpenBSD 2.7.
 <li><a href="http://bulabula.org/femail/">femail</a>:          Now maintained by Todd Miller.
   Written and maintained by Henning Brauer.      </li>
   Started in 2005, port available since September 22, 2005.      <li>
 <li><a href="http://www.midish.org/">midish</a>:          <a href="http://bulabula.org/femail/">femail</a>:
   Written and maintained by Alexandre Ratchov.          Written and maintained by Henning Brauer.
   Started in 2003, port available since November 4, 2005.          Started in 2005, port available since September 22, 2005.
 <li><a href="https://github.com/nicm/fdm">fdm</a>:      </li>
   Written and maintained by Nicholas Marriott.      <li>
   Started in 2006, port available since January 18, 2007.          <a href="http://www.midish.org/">midish</a>:
 <li><a href="https://github.com/ajacoutot/toad/">toad</a>:          Written and maintained by Alexandre Ratchov.
   Written and maintained by Antoine Jacoutot.          Started in 2003, port available since November 4, 2005.
   Started in 2013, port available since October 8, 2013.      </li>
 <li><a href="http://jasperla.github.io/portroach/">portroach</a>:      <li>
   Written and maintained by Jasper Lievisse Adriaanse,          <a href="https://github.com/nicm/fdm">fdm</a>:
   originally forked from FreeBSD's portscout.          Written and maintained by Nicholas Marriott.
   Started in 2014, port available since September 5, 2014.          Started in 2006, port available since January 18, 2007.
 <li><a href="https://github.com/yasuoka/cvs2gitdump">cvs2gitdump</a>:      </li>
   Written and maintained by YASUOKA Masahiko.      <li>
   Started in 2012, port available since August 1, 2016.          <a href="https://github.com/ajacoutot/toad/">toad</a>:
           Written and maintained by Antoine Jacoutot.
           Started in 2013, port available since October 8, 2013.
       </li>
       <li>
           <a href="http://jasperla.github.io/portroach/">portroach</a>:
           Written and maintained by Jasper Lievisse Adriaanse,
           originally forked from FreeBSD's portscout.
           Started in 2014, port available since September 5, 2014.
       </li>
       <li>
           <a href="https://github.com/yasuoka/cvs2gitdump">cvs2gitdump</a>:
           Written and maintained by YASUOKA Masahiko.
           Started in 2012, port available since August 1, 2016.
       </li>
 </ul>  </ul>
   
 </body>  </body>

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.59