<revhistory>
  <revision>
    <revnumber>1</revnumber>
    <date>August 2020</date>
    <authorinitials>HW</authorinitials>
    <revremark>
      Initial OsmoSMLC manual
    </revremark>
  </revision>
</revhistory>

<authorgroup>
  <author>
    <firstname>Harald</firstname>
    <surname>Welte</surname>
    <email>hwelte@sysmocom.de</email>
    <authorinitials>HW</authorinitials>
    <affiliation>
      <shortaffil>sysmocom</shortaffil>
      <orgname>sysmocom - s.f.m.c. GmbH</orgname>
      <jobtitle>Managing Director</jobtitle>
    </affiliation>
  </author>
  <author>
    <firstname>Neels</firstname>
    <surname>Hofmeyr</surname>
    <email>nhofmeyr@sysmocom.de</email>
    <authorinitials>NH</authorinitials>
    <affiliation>
      <shortaffil>sysmocom</shortaffil>
      <orgname>sysmocom - s.f.m.c. GmbH</orgname>
      <jobtitle>Senior Developer</jobtitle>
    </affiliation>
  </author>
</authorgroup>

<copyright>
  <year>2012-2020</year>
  <holder>sysmocom - s.f.m.c. GmbH</holder>
</copyright>

<legalnotice>
  <para>
	Permission is granted to copy, distribute and/or modify this
	document under the terms of the GNU Free Documentation License,
	Version 1.3 or any later version published by the Free Software
	Foundation; with the Invariant Sections being just 'Foreword',
	'Acknowledgements' and 'Preface', with no Front-Cover Texts,
	and no Back-Cover Texts.  A copy of the license is included in
	the section entitled "GNU Free Documentation License".
  </para>
  <para>
	The Asciidoc source code of this manual can be found at
	<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
		http://git.osmocom.org/osmo-gsm-manuals/
	</ulink>
	and
	<ulink url="http://git.osmocom.org/osmo-smlc/">
		http://git.osmocom.org/osmo-smlc/
	</ulink>

  </para>
</legalnotice>
