diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..30221dd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+_build
+venv-docs
+
+.DS_Store
+Thumbs.db
diff --git a/.reuse/dep5 b/.reuse/dep5
new file mode 100644
index 0000000..4b44910
--- /dev/null
+++ b/.reuse/dep5
@@ -0,0 +1,9 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
+Files: VERSION .gitreview *.rst *.png *.svg dict.txt
+Copyright: 2022 Open Networking Foundation
+License: Apache-2.0
+
+Files: _static/fonts/Inconsolata*.ttf
+Copyright: 2006 Raph Levien
+License: OFL-1.1
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 0000000..137069b
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,73 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+     (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+     (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+     (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+     (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+     You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!)  The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/LICENSES/OFL-1.1.txt b/LICENSES/OFL-1.1.txt
new file mode 100644
index 0000000..6fe84ee
--- /dev/null
+++ b/LICENSES/OFL-1.1.txt
@@ -0,0 +1,43 @@
+SIL OPEN FONT LICENSE
+
+Version 1.1 - 26 February 2007
+
+PREAMBLE
+
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting — in part or in whole — any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..471713a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,56 @@
+# Minimal makefile for Sphinx documentation
+
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+SHELL = bash -e -o pipefail
+
+# You can set these variables from the command line.
+SPHINXOPTS    = -W
+SPHINXBUILD   = sphinx-build
+SOURCEDIR     = .
+BUILDDIR      = _build
+
+# Create the virtualenv with all the tools installed
+VIRTUALENV    = venv-docs
+
+# Put it first so that "make" without argument runs "make help".
+help: $(VIRTUALENV)
+	source ./$(VIRTUALENV)/bin/activate ;\
+	$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile lint license test
+# automatically reload changes in browser as they're made
+
+$(VIRTUALENV):
+	python3 -m venv $@ ;\
+	source ./$@/bin/activate ;\
+	pip install -r requirements.txt
+
+# test - check that local build will lint, spelling is correct, then
+# build the html site.
+test: license lint spelling linkcheck
+
+# lint all .rst files
+lint: $(VIRTUALENV)
+	source ./$</bin/activate ; set -u;\
+	doc8 --ignore-path $< --ignore-path _build --ignore-path LICENSES --max-line-length 99
+
+license: $(VIRTUALENV) ## Check license with the reuse tool
+	source ./$</bin/activate ; set -u ;\
+  reuse --version ;\
+  reuse --root . lint
+
+# clean up
+clean:
+	rm -rf "$(BUILDDIR)"
+
+# clean-all - delete the virtualenv too
+clean-all: clean
+	rm -rf "$(VIRTUALENV)"
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: $(VIRTUALENV) Makefile
+	source ./$</bin/activate ; set -u;\
+	$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..4259c64
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+0.5.0-dev
diff --git a/_static/css/rtd_theme_mods.css b/_static/css/rtd_theme_mods.css
new file mode 100644
index 0000000..9b91c02
--- /dev/null
+++ b/_static/css/rtd_theme_mods.css
@@ -0,0 +1,24 @@
+/*
+ * SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+ * SPDX-License-Identifier: Apache-2.0
+ *
+*/
+
+/* Don't restrict content width on the RTD theme
+ * from: https://stackoverflow.com/a/32898444 */
+
+.wy-nav-content {
+  max-width: none;
+}
+
+.wy-table-responsive table td, .wy-table-responsive table th {
+  white-space: normal;
+}
+
+.wy-side-nav-search {
+  background-color: #d9d9d9;
+}
+
+.wy-side-nav-search>div.version {
+  color: #404040;
+}
diff --git a/_static/fonts/Inconsolata-Bold.ttf b/_static/fonts/Inconsolata-Bold.ttf
new file mode 100644
index 0000000..9addc89
--- /dev/null
+++ b/_static/fonts/Inconsolata-Bold.ttf
Binary files differ
diff --git a/_static/fonts/Inconsolata-Regular.ttf b/_static/fonts/Inconsolata-Regular.ttf
new file mode 100644
index 0000000..592ccd2
--- /dev/null
+++ b/_static/fonts/Inconsolata-Regular.ttf
Binary files differ
diff --git a/_static/onf-favicon-128.png b/_static/onf-favicon-128.png
new file mode 100644
index 0000000..a996445
--- /dev/null
+++ b/_static/onf-favicon-128.png
Binary files differ
diff --git a/_static/onf.svg b/_static/onf.svg
new file mode 100644
index 0000000..13bb3f5
--- /dev/null
+++ b/_static/onf.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:version="1.0 (4035a4f, 2020-05-01)"
+   sodipodi:docname="NEW ONF_WITH-GRADIENT.eps"
+   viewBox="0 0 322 188.8828"
+   height="188.8828"
+   width="322"
+   xml:space="preserve"
+   id="svg10"
+   version="1.1"><metadata
+     id="metadata16"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs14"><clipPath
+       id="clipPath76"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path74"
+         d="m 1440.98,442.609 c 0,10.621 -1.18,22.422 -3.54,35.403 -2.36,12.976 -8.26,24.777 -15.34,35.398 -7.08,10.621 -17.7,20.059 -30.68,27.141 -12.97,7.078 -30.67,11.801 -50.73,11.801 h -326.85 c -21.238,0 -37.762,-3.543 -50.742,-11.801 -12.977,-7.082 -23.598,-16.52 -30.676,-27.141 -7.082,-10.621 -12.981,-22.422 -15.34,-35.398 -2.363,-12.981 -3.539,-24.782 -3.539,-35.403 v -154.57 c 0,-11.801 -4.723,-22.418 -12.977,-30.68 -8.261,-8.257 -18.882,-12.98 -30.679,-12.98 -11.801,0 -22.422,4.723 -30.684,12.98 -8.258,8.262 -12.98,18.879 -12.98,30.68 v 154.57 c 0,22.422 3.543,46.02 11.804,69.621 7.078,23.602 18.875,44.84 33.036,63.719 14.16,18.879 31.859,34.215 53.101,47.196 20.059,11.8 43.656,17.699 69.613,17.699 h 379.943 c 24.78,-1.176 47.21,-8.258 66.08,-20.059 18.88,-11.797 35.4,-28.32 49.56,-47.195 14.16,-18.879 23.6,-40.121 30.68,-62.539 7.08,-22.422 10.62,-46.02 10.62,-68.442 v -154.57 c 0,-11.801 -4.72,-22.418 -12.98,-30.68 -8.26,-8.257 -18.88,-12.98 -30.68,-12.98 -11.8,0 -22.42,4.723 -30.68,12.98 -8.26,8.262 -12.98,18.879 -12.98,30.68 v 154.57 z" /></clipPath><linearGradient
+       id="linearGradient84"
+       spreadMethod="pad"
+       gradientTransform="matrix(3193.64,1162.39,-1162.39,3193.64,4219.74,1530.52)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop78"
+         offset="0"
+         style="stop-opacity:1;stop-color:#3678c6" /><stop
+         id="stop80"
+         offset="0.626268"
+         style="stop-opacity:1;stop-color:#59caf5" /><stop
+         id="stop82"
+         offset="1"
+         style="stop-opacity:1;stop-color:#59caf5" /></linearGradient><clipPath
+       id="clipPath94"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path92"
+         d="m 737.473,442.609 c 0,-22.418 -3.539,-46.007 -11.801,-69.609 -7.074,-23.609 -18.875,-44.84 -33.035,-63.719 -14.16,-18.883 -31.864,-34.222 -53.098,-47.199 -20.062,-11.801 -43.66,-17.703 -69.617,-17.703 H 156.938 c -24.782,1.18 -47.204,8.262 -66.0786,20.062 -18.8828,12.981 -35.4024,28.321 -49.5625,47.2 C 27.1367,330.52 17.6992,351.762 10.6172,374.172 3.53906,396.602 0,420.191 0,442.609 c 0,22.422 3.53906,46.02 11.8008,69.621 7.0781,23.602 18.875,44.84 33.0351,63.719 14.1602,18.879 31.8633,34.215 53.1016,47.196 20.0585,11.8 43.6565,17.699 69.6135,17.699 h 412.988 c 24.781,-1.176 47.199,-8.258 66.078,-20.059 18.879,-11.797 35.399,-28.32 49.559,-47.195 14.16,-18.879 23.597,-40.121 30.679,-62.539 7.079,-23.602 10.618,-46.02 10.618,-68.442 z M 551.039,331.699 c 20.063,0 37.758,3.539 50.742,11.789 12.977,7.082 23.598,16.524 30.68,27.141 7.078,10.621 12.977,22.422 15.336,35.402 2.363,12.981 3.539,24.778 3.539,35.399 0,10.621 -1.184,22.422 -3.539,35.402 -2.359,12.977 -8.258,24.777 -15.336,35.398 -7.082,10.622 -17.703,20.059 -30.68,27.141 -12.984,7.078 -30.679,11.801 -50.742,11.801 H 185.254 c -21.238,0 -37.762,-3.543 -50.738,-11.801 -12.981,-7.082 -23.602,-16.519 -30.68,-27.141 -7.0782,-10.621 -12.9766,-22.421 -15.336,-35.398 -2.3633,-12.98 -3.5391,-24.781 -3.5391,-35.402 0,-10.621 1.1758,-22.418 3.5391,-35.399 2.3594,-12.98 8.2578,-24.781 15.336,-35.402 7.078,-10.617 17.699,-20.059 30.68,-27.141 12.976,-7.078 29.5,-11.789 50.738,-11.789 z" /></clipPath><linearGradient
+       id="linearGradient104"
+       spreadMethod="pad"
+       gradientTransform="matrix(369.571,134.513,-134.513,369.571,-1.30069,307.93)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop96"
+         offset="0"
+         style="stop-opacity:1;stop-color:#243e7f" /><stop
+         id="stop98"
+         offset="0.0996414"
+         style="stop-opacity:1;stop-color:#243e7f" /><stop
+         id="stop100"
+         offset="0.50264328"
+         style="stop-opacity:1;stop-color:#3779c6" /><stop
+         id="stop102"
+         offset="1"
+         style="stop-opacity:1;stop-color:#3779c6" /></linearGradient><clipPath
+       id="clipPath114"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path112"
+         d="m 2190.06,385.262 h -394.11 c -19.98,0 -36.18,16.199 -36.18,36.179 0,19.981 16.2,36.18 36.18,36.18 h 394.11 c 19.98,0 36.18,-16.199 36.18,-36.18 0,-19.98 -16.2,-36.179 -36.18,-36.179 z" /></clipPath><linearGradient
+       id="linearGradient120"
+       spreadMethod="pad"
+       gradientTransform="matrix(416.016,151.417,151.417,-416.016,1785,345.73)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop116"
+         offset="0"
+         style="stop-opacity:1;stop-color:#3678c6" /><stop
+         id="stop118"
+         offset="1"
+         style="stop-opacity:1;stop-color:#59caf5" /></linearGradient><clipPath
+       id="clipPath130"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path128"
+         d="m 1669.19,246.91 c -23.31,0 -42.21,18.899 -42.21,42.211 V 463.41 c 0,97.84 79.6,177.434 177.44,177.434 h 493.37 c 23.32,0 42.21,-18.899 42.21,-42.207 0,-23.305 -18.89,-42.207 -42.21,-42.207 h -493.37 c -51.29,0 -93.03,-41.731 -93.03,-93.02 V 289.121 c 0,-23.312 -18.89,-42.211 -42.2,-42.211 z" /></clipPath><linearGradient
+       id="linearGradient136"
+       spreadMethod="pad"
+       gradientTransform="matrix(733.895,267.116,267.116,-733.895,1586.29,393.44)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop132"
+         offset="0"
+         style="stop-opacity:1;stop-color:#3678c6" /><stop
+         id="stop134"
+         offset="1"
+         style="stop-opacity:1;stop-color:#59caf5" /></linearGradient><clipPath
+       id="clipPath146"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path144"
+         d="m 1053.03,1131.77 c 7.64,-17.58 16.14,-35.27 25.53,-53 109.4,-206.668 284.51,-334.836 400.28,-267.176 138.97,81.304 84.35,271.796 18.26,401.696 l -0.17,0.25 c 12.76,-40.86 43.45,-227.817 -26.61,-267.895 -80.65,-46.149 -192.35,41.152 -274.1,195.645 -11.06,20.9 -21.52,42.78 -30.32,63.66 0,0 -12.93,-3.6 -47.06,-24.65 -33.52,-20.68 -65.81,-48.53 -65.81,-48.53 z" /></clipPath><linearGradient
+       id="linearGradient154"
+       spreadMethod="pad"
+       gradientTransform="matrix(512.429,0,0,-512.429,1053.03,1003.47)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop148"
+         offset="0"
+         style="stop-opacity:1;stop-color:#771519" /><stop
+         id="stop150"
+         offset="0.51721552"
+         style="stop-opacity:1;stop-color:#c91e25" /><stop
+         id="stop152"
+         offset="1"
+         style="stop-opacity:1;stop-color:#c91e25" /></linearGradient><clipPath
+       id="clipPath164"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path162"
+         d="M 0,0 H 2340 V 1586 H 0 Z" /></clipPath><clipPath
+       id="clipPath170"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path168"
+         d="m 1007.16,1284.74 c -19.933,123.87 7.79,227.28 75.51,275.21 114.92,81.39 247.42,-41.44 326.02,-155.07 l -0.12,0.01 c -66.87,56.27 -165.64,128.85 -233.87,95.08 -46.06,-22.8 -59.61,-82.88 -48.66,-158.18 0,0 -25.11,-8.41 -40.48,-14.61 -37.63,-15.2 -78.4,-42.44 -78.4,-42.44 z" /></clipPath><linearGradient
+       id="linearGradient178"
+       spreadMethod="pad"
+       gradientTransform="matrix(407.852,0,0,-407.852,1000.83,1435.52)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop172"
+         offset="0"
+         style="stop-opacity:1;stop-color:#771519" /><stop
+         id="stop174"
+         offset="0.51721552"
+         style="stop-opacity:1;stop-color:#c91e25" /><stop
+         id="stop176"
+         offset="1"
+         style="stop-opacity:1;stop-color:#c91e25" /></linearGradient><clipPath
+       id="clipPath188"
+       clipPathUnits="userSpaceOnUse"><path
+         id="path186"
+         d="m 1361.46,1032.64 c 105.43,141.68 39.04,228.3 14.06,253.09 -36.54,36.27 -87.64,53.94 -144.79,53.94 -78.77,0 -169.07,-33.54 -248.71,-98.13 -93.079,-75.44 -153.086,-171.55 -160.516,-257.118 -4.004,-46.031 8.098,-86.699 35.008,-117.606 87.515,-100.515 192.238,-71.55 274.428,-18.316 -59.39,-11.773 -133.139,-21.738 -178.163,26.004 -21.429,22.73 -31.593,52.16 -29.379,85.098 4.192,62.608 50.813,134.348 127.912,196.808 81.61,66.16 169.69,101.08 235.5,93.47 32.23,-3.74 57.64,-17.34 75.52,-40.43 0,0 45.69,-65.06 -0.87,-176.81 z" /></clipPath><linearGradient
+       id="linearGradient196"
+       spreadMethod="pad"
+       gradientTransform="matrix(598.434,0,0,-598.434,820.752,1069.8)"
+       gradientUnits="userSpaceOnUse"
+       y2="0"
+       x2="1"
+       y1="0"
+       x1="0"><stop
+         id="stop190"
+         offset="0"
+         style="stop-opacity:1;stop-color:#771519" /><stop
+         id="stop192"
+         offset="0.51721552"
+         style="stop-opacity:1;stop-color:#c91e25" /><stop
+         id="stop194"
+         offset="1"
+         style="stop-opacity:1;stop-color:#c91e25" /></linearGradient></defs><sodipodi:namedview
+     fit-margin-bottom="5"
+     fit-margin-right="5"
+     fit-margin-left="5"
+     fit-margin-top="5"
+     inkscape:current-layer="g20"
+     inkscape:window-maximized="0"
+     inkscape:window-y="23"
+     inkscape:window-x="0"
+     inkscape:cy="110.71333"
+     inkscape:cx="161"
+     inkscape:zoom="2.3974359"
+     showgrid="false"
+     id="namedview12"
+     inkscape:window-height="949"
+     inkscape:window-width="1407"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0"
+     guidetolerance="10"
+     gridtolerance="10"
+     objecttolerance="10"
+     borderopacity="1"
+     bordercolor="#666666"
+     pagecolor="#ffffff" /><g
+     transform="matrix(1.3333333,0,0,-1.3333333,5,216.46666)"
+     inkscape:label="ink_ext_XXXXXX"
+     inkscape:groupmode="layer"
+     id="g18"><g
+       transform="scale(0.1)"
+       id="g20"><g
+         id="g70"><g
+           clip-path="url(#clipPath76)"
+           id="g72"><path
+             id="path86"
+             style="fill:url(#linearGradient84);fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 1440.98,442.609 c 0,10.621 -1.18,22.422 -3.54,35.403 -2.36,12.976 -8.26,24.777 -15.34,35.398 -7.08,10.621 -17.7,20.059 -30.68,27.141 -12.97,7.078 -30.67,11.801 -50.73,11.801 h -326.85 c -21.238,0 -37.762,-3.543 -50.742,-11.801 -12.977,-7.082 -23.598,-16.52 -30.676,-27.141 -7.082,-10.621 -12.981,-22.422 -15.34,-35.398 -2.363,-12.981 -3.539,-24.782 -3.539,-35.403 v -154.57 c 0,-11.801 -4.723,-22.418 -12.977,-30.68 -8.261,-8.257 -18.882,-12.98 -30.679,-12.98 -11.801,0 -22.422,4.723 -30.684,12.98 -8.258,8.262 -12.98,18.879 -12.98,30.68 v 154.57 c 0,22.422 3.543,46.02 11.804,69.621 7.078,23.602 18.875,44.84 33.036,63.719 14.16,18.879 31.859,34.215 53.101,47.196 20.059,11.8 43.656,17.699 69.613,17.699 h 379.943 c 24.78,-1.176 47.21,-8.258 66.08,-20.059 18.88,-11.797 35.4,-28.32 49.56,-47.195 14.16,-18.879 23.6,-40.121 30.68,-62.539 7.08,-22.422 10.62,-46.02 10.62,-68.442 v -154.57 c 0,-11.801 -4.72,-22.418 -12.98,-30.68 -8.26,-8.257 -18.88,-12.98 -30.68,-12.98 -11.8,0 -22.42,4.723 -30.68,12.98 -8.26,8.262 -12.98,18.879 -12.98,30.68 v 154.57 h -2.36" /></g></g><g
+         id="g88"><g
+           clip-path="url(#clipPath94)"
+           id="g90"><path
+             id="path106"
+             style="fill:url(#linearGradient104);fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 737.473,442.609 c 0,-22.418 -3.539,-46.007 -11.801,-69.609 -7.074,-23.609 -18.875,-44.84 -33.035,-63.719 -14.16,-18.883 -31.864,-34.222 -53.098,-47.199 -20.062,-11.801 -43.66,-17.703 -69.617,-17.703 H 156.938 c -24.782,1.18 -47.204,8.262 -66.0786,20.062 -18.8828,12.981 -35.4024,28.321 -49.5625,47.2 C 27.1367,330.52 17.6992,351.762 10.6172,374.172 3.53906,396.602 0,420.191 0,442.609 c 0,22.422 3.53906,46.02 11.8008,69.621 7.0781,23.602 18.875,44.84 33.0351,63.719 14.1602,18.879 31.8633,34.215 53.1016,47.196 20.0585,11.8 43.6565,17.699 69.6135,17.699 h 412.988 c 24.781,-1.176 47.199,-8.258 66.078,-20.059 18.879,-11.797 35.399,-28.32 49.559,-47.195 14.16,-18.879 23.597,-40.121 30.679,-62.539 7.079,-23.602 10.618,-46.02 10.618,-68.442 z M 551.039,331.699 c 20.063,0 37.758,3.539 50.742,11.789 12.977,7.082 23.598,16.524 30.68,27.141 7.078,10.621 12.977,22.422 15.336,35.402 2.363,12.981 3.539,24.778 3.539,35.399 0,10.621 -1.184,22.422 -3.539,35.402 -2.359,12.977 -8.258,24.777 -15.336,35.398 -7.082,10.622 -17.703,20.059 -30.68,27.141 -12.984,7.078 -30.679,11.801 -50.742,11.801 H 185.254 c -21.238,0 -37.762,-3.543 -50.738,-11.801 -12.981,-7.082 -23.602,-16.519 -30.68,-27.141 -7.0782,-10.621 -12.9766,-22.421 -15.336,-35.398 -2.3633,-12.98 -3.5391,-24.781 -3.5391,-35.402 0,-10.621 1.1758,-22.418 3.5391,-35.399 2.3594,-12.98 8.2578,-24.781 15.336,-35.402 7.078,-10.617 17.699,-20.059 30.68,-27.141 12.976,-7.078 29.5,-11.789 50.738,-11.789 h 365.785 v 0" /></g></g><g
+         id="g108"><g
+           clip-path="url(#clipPath114)"
+           id="g110"><path
+             id="path122"
+             style="fill:url(#linearGradient120);fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 2190.06,385.262 h -394.11 c -19.98,0 -36.18,16.199 -36.18,36.179 0,19.981 16.2,36.18 36.18,36.18 h 394.11 c 19.98,0 36.18,-16.199 36.18,-36.18 0,-19.98 -16.2,-36.179 -36.18,-36.179" /></g></g><g
+         id="g124"><g
+           clip-path="url(#clipPath130)"
+           id="g126"><path
+             id="path138"
+             style="fill:url(#linearGradient136);fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 1669.19,246.91 c -23.31,0 -42.21,18.899 -42.21,42.211 V 463.41 c 0,97.84 79.6,177.434 177.44,177.434 h 493.37 c 23.32,0 42.21,-18.899 42.21,-42.207 0,-23.305 -18.89,-42.207 -42.21,-42.207 h -493.37 c -51.29,0 -93.03,-41.731 -93.03,-93.02 V 289.121 c 0,-23.312 -18.89,-42.211 -42.2,-42.211" /></g></g><g
+         id="g140"><g
+           clip-path="url(#clipPath146)"
+           id="g142"><path
+             id="path156"
+             style="fill:url(#linearGradient154);fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 1053.03,1131.77 c 7.64,-17.58 16.14,-35.27 25.53,-53 109.4,-206.668 284.51,-334.836 400.28,-267.176 138.97,81.304 84.35,271.796 18.26,401.696 l -0.17,0.25 c 12.76,-40.86 43.45,-227.817 -26.61,-267.895 -80.65,-46.149 -192.35,41.152 -274.1,195.645 -11.06,20.9 -21.52,42.78 -30.32,63.66 0,0 -12.93,-3.6 -47.06,-24.65 -33.52,-20.68 -65.81,-48.53 -65.81,-48.53" /></g></g><g
+         id="g158"><g
+           clip-path="url(#clipPath164)"
+           id="g160"><g
+             clip-path="url(#clipPath170)"
+             id="g166"><path
+               id="path180"
+               style="fill:url(#linearGradient178);fill-opacity:1;fill-rule:nonzero;stroke:none"
+               d="m 1007,1284 v 1 h -1 v 7 h -1 v 7 h -1 v 8 h -1 v 11 h -1 v 11 h -1 v 21 h -1 v 18 h 1 v 23 h 1 v 10 h 1 v 9 h 1 v 7 h 1 v 6 h 1 v 6 h 1 v 5 h 1 v 5 h 1 v 4 h 1 v 4 h 1 v 4 h 1 v 3 h 1 v 4 h 1 v 3 h 1 v 3 h 1 v 3 h 1 v 3 h 1 v 3 h 1 v 2 h 1 v 3 h 1 v 2 h 1 v 3 h 1 v 2 h 1 v 3 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 2 v 1 h 2 v 1 h 1 v 1 h 2 v 1 h 2 v 1 h 2 v 1 h 2 v 1 h 1 v 1 h 2 v 1 h 3 v 1 h 2 v 1 h 3 v 1 h 3 v 1 h 2 v 1 h 3 v 1 h 3 v 1 h 2 v 1 h 5 v 1 h 5 v 1 h 5 v 1 h 5 v 1 h 34 v -1 h 7 v -1 h 7 v -1 h 4 v -1 h 4 v -1 h 3 v -1 h 4 v -1 h 3 v -1 h 4 v -1 h 3 v -1 h 2 v -1 h 2 v -1 h 3 v -1 h 2 v -1 h 2 v -1 h 3 v -1 h 2 v -1 h 3 v -1 h 2 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -2 h 1 v -2 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -3 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -3 v 1 h -2 v 1 h -3 v 1 h -2 v 1 h -3 v 1 h -3 v 1 h -3 v 1 h -3 v 1 h -4 v 1 h -3 v 1 h -5 v 1 h -5 v 1 h -5 v 1 h -9 v 1 h -17 v -1 h -7 v -1 h -5 v -1 h -5 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -2 h -1 v -2 h -1 v -1 h -1 v -2 h -1 v -2 h -1 v -1 h -1 v -2 h -1 v -2 h -1 v -1 h -1 v -2 h -1 v -3 h -1 v -3 h -1 v -2 h -1 v -3 h -1 v -3 h -1 v -2 h -1 v -3 h -1 v -5 h -1 v -4 h -1 v -5 h -1 v -5 h -1 v -8 h -1 v -13 h -1 v -26 h 1 v -14 h 1 v -10 h 1 v -7 h 1 v -2 h -3 v -1 h -3 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -3 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -2 v -1" /></g></g></g><g
+         id="g182"><g
+           clip-path="url(#clipPath188)"
+           id="g184"><path
+             id="path198"
+             style="fill:url(#linearGradient196);fill-opacity:1;fill-rule:nonzero;stroke:none"
+             d="m 1361.46,1032.64 c 105.43,141.68 39.04,228.3 14.06,253.09 -36.54,36.27 -87.64,53.94 -144.79,53.94 -78.77,0 -169.07,-33.54 -248.71,-98.13 -93.079,-75.44 -153.086,-171.55 -160.516,-257.118 -4.004,-46.031 8.098,-86.699 35.008,-117.606 87.515,-100.515 192.238,-71.55 274.428,-18.316 -59.39,-11.773 -133.139,-21.738 -178.163,26.004 -21.429,22.73 -31.593,52.16 -29.379,85.098 4.192,62.608 50.813,134.348 127.912,196.808 81.61,66.16 169.69,101.08 235.5,93.47 32.23,-3.74 57.64,-17.34 75.52,-40.43 0,0 45.69,-65.06 -0.87,-176.81" /></g></g></g></g></svg>
diff --git a/conf.py b/conf.py
new file mode 100644
index 0000000..510943e
--- /dev/null
+++ b/conf.py
@@ -0,0 +1,245 @@
+# -*- coding: utf-8 -*-
+
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+import os
+
+def get_version():
+    with open("VERSION") as f:
+        return f.read().strip()
+
+
+# -- Project information -----------------------------------------------------
+
+project = u'ONF Documentation'
+copyright = u'2020-current, Open Networking Foundation'
+author = u'Open Networking Foundation'
+
+# The short X.Y version
+version = get_version()
+# The full version, including alpha/beta/rc tags
+release = version
+
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autosectionlabel',
+    'sphinx.ext.coverage',
+    'sphinx.ext.graphviz',
+    'sphinx.ext.ifconfig',
+    'sphinx.ext.intersphinx',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.todo',
+    'sphinxcontrib.spelling',
+    "sphinx_multiversion",
+]
+
+# require document prefix on section labels
+autosectionlabel_prefix_document = True
+
+# Text files with lists of words that shouldn't fail the spellchecker:
+spelling_word_list_filename=['dict.txt', ]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = [
+    '.DS_Store',
+    'Thumbs.db',
+    '_build',
+    'LICENSES',
+    'requirements.txt',
+    'venv-docs',
+]
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+html_logo = '_static/onf.svg'
+
+html_favicon = '_static/onf-favicon-128.png'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+
+html_theme_options = {
+    'logo_only': True
+}
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'ONFDocs'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+# latex_engine = "xelatex"
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'ONFDocs.tex', u'ONF Docs',
+     u'ONF Team', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'onfdocs', u'ONF Docs',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'ONFDocs', u'ONF Docs',
+     author, 'ONFDocs', 'ONF Documentation',
+     'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+
+# -- Options for todo extension ----------------------------------------------
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = True
+
+# -- Options for linkcheck ---------------------------------------------------
+# The link checker strips off .md from links and then complains
+linkcheck_ignore = [
+    r'https://gerrit.opencord.org/settings/.*',
+]
+
+# -- options for Intersphinx extension ---------------------------------------
+
+intersphinx_mapping = {
+    'ansible': ('https://docs.ansible.com/ansible/latest', None),
+    'sphinx': ('https://www.sphinx-doc.org/en/master', None),
+    'rtd': ('https://docs.readthedocs.io/en/stable', None),
+    'trellis': ('https://docs.trellisfabric.org/master', None),
+    'voltha': ('https://docs.voltha.org/master', None),
+    'aether': ('https://docs.aetherproject.org/master', None),
+    'sdcore': ('https://docs.sd-core.opennetworking.org/master', None),
+    'sdran': ('https://docs.sd-ran.org/master', None),
+    'sdran': ('https://docs.sd-fabric.org/master', None),
+    'sysapproach5g': ('https://5g.systemsapproach.org/', None),
+    'sysapproachnet': ('https://book.systemsapproach.org/', None),
+    'sysapproachsdn': ('https://sdn.systemsapproach.org/', None),
+    'sysapproachops': ('https://ops.systemsapproach.org/', None),
+    }
+
+def setup(app):
+
+    app.add_css_file('css/rtd_theme_mods.css')
+
diff --git a/devguide/cicd.rst b/devguide/cicd.rst
new file mode 100644
index 0000000..009b4c1
--- /dev/null
+++ b/devguide/cicd.rst
@@ -0,0 +1,4 @@
+Continuous Integration and Delivery
+===================================
+
+
diff --git a/devguide/conventions.rst b/devguide/conventions.rst
new file mode 100644
index 0000000..2e612af
--- /dev/null
+++ b/devguide/conventions.rst
@@ -0,0 +1,73 @@
+Development Conventions
+=======================
+
+ONF has many (over 300) software repositories as of 2022, and to effectively
+develop across all of these projects, the following development conventions are
+used.
+
+Strategy
+--------
+
+The general strategy for ONF software development is as follows:
+
+Make it easy to start contributing to any repo
+""""""""""""""""""""""""""""""""""""""""""""""
+
+A convention we've embraced in nearly all repos is to have a ``Makefile`` in
+their base directory, which has a few common targets:
+
+* ``make help``:  Get a list of ``make`` targets
+* ``make build`` run
+* ``make test`` run all tests, as they'd be run in CI by a
+
+
+Most ``Makefiles`` use the GNU Make syntax variant.
+
+Automated tests should be identical for the developer and automation
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+The CI test runner (Jenkins or similar) that performs automated testing should
+run the same tests in the same way that a developer would on their local
+system, by running ``make test``. There should be no (or very rare) cases where
+a test will pass locally but fail in CI.
+
+Additionally, this greatly simplifies the configuration of the test runner - it
+only needs to run ``make test``.  In some cases, it may be necessary for the
+Makefile to include commands that generate Jenkins-consumable output, such as
+test results (usually in JUnit, xUnit, or TAP formats) or coverage information
+(usually in Cobertura XML format).
+
+
+Style, formatting, linting, license compliance should be automated
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Code review should be about the structure and design of the code, and should
+
+To that end, automated tools should be used that verify and conform the code to
+a specific convention and standard:
+
+* Formatting tools such as ``go fmt``, ``black`` and similar should be used to
+  conform code to style guidelines
+
+* Linting tools such as ``pylint``, ``yamllint``
+
+In the documentation space, spelling and other checks should also be performed.
+
+Versioning and Releasing Software
+---------------------------------
+
+Versioning software and performing releases are fundamentally for two audiences:
+
+1. Providing compatibility claims about
+2. Developers who use the
+
+Two common and recommended versioning schemes are;
+
+* SemVer
+* CalVer
+
+Division of responsibilities
+""""""""""""""""""""""""""""
+
+Automated tools should perform low-level versioning tasks like creating tags on
+repos.
diff --git a/devguide/design.rst b/devguide/design.rst
new file mode 100644
index 0000000..30b3816
--- /dev/null
+++ b/devguide/design.rst
@@ -0,0 +1,35 @@
+Design Guide
+============
+
+Make the obvious way the right way
+----------------------------------
+
+A developer coming to a new-to-them project should be able to quickly learn the
+correct way to interact with a project's code, and the "path of least
+resistance" should also be the correct way to make changes to a project.
+
+Build on the shoulders of giants
+---------------------------------
+
+Another way of saying this is: "Avoid reinventing the wheel".
+
+If there is (acceptably licensed and maintained) code out available out there
+that could be used to accomplish a task, consider using it.
+
+External Dependencies
+---------------------
+
+Upstream code changes over time, and you should design your projects to be able
+to deal with this change.
+
+
+Lifecycle
+"""""""""
+
+Testing against new versions
+''''''''''''''''''''''''''''
+
+You should embrace tools that allow you to test against upgraded dependencies.
+
+One example of a tool that lets you do this easily is ``tox``, which can handle
+running a unit test suite against multiple versions of the Python language.
diff --git a/dict.txt b/dict.txt
new file mode 100644
index 0000000..091ed2d
--- /dev/null
+++ b/dict.txt
@@ -0,0 +1,25 @@
+Ansible
+Cobertura
+Hadolint
+JUnit
+Kubernetes
+Makefile
+ONF
+intersphinx
+lifecycle
+linkcheck
+patchset
+pylint
+rST
+reStructuredText
+relicensed
+repo
+repos
+shellcheck
+sublicense
+virtualenv
+xUnit
+tox
+codebase
+unittest
+unix
diff --git a/docs/sphinx.rst b/docs/sphinx.rst
new file mode 100644
index 0000000..05bcba9
--- /dev/null
+++ b/docs/sphinx.rst
@@ -0,0 +1,132 @@
+Sphinx
+======
+
+Docs are generated using :doc:`Sphinx <sphinx:usage/index>` using the
+:doc:`reStructuredText <sphinx:usage/restructuredtext/basics>` syntax.
+
+Sphinx was chosen because it's widely used (Python official docs, Linux Kernel,
+Read the Docs, etc.), open source, actively maintained, has code highlighting,
+and a good client-side search implementation.
+
+Writing Documentation
+---------------------
+
+reStructuredText syntax references can be found here:
+
+* :doc:`Sphinx reStructuredText Primer <sphinx:usage/restructuredtext/basics>`
+* `rst cheat sheet <https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst>`_
+
+rST creates headings by underlining the heading with a series of symbol
+characters. There is no specific required order for these, but for consistency
+most ONF docs use the following symbols/order to represent heading levels::
+
+   H1: =
+   H2: -
+   H3: "
+   H4: '
+   H5: ^
+   H6: +
+
+Linking within Documentation
+""""""""""""""""""""""""""""
+
+
+Referencing other Documentation
+"""""""""""""""""""""""""""""""
+
+Other Sphinx-built documentation, both ONF and non-ONF can be linked to using
+:doc:`InterSphinx <sphinx:usage/extensions/intersphinx>`, which allows you to
+create links that will work even if the other site moves or reorganizes
+content.
+
+New InterSphinx reference requires modifying the ``intersphinx_mapping``
+variables of the ``conf.py`` file.
+
+You can see all link targets available on a remote Sphinx's docs by running::
+
+  python -msphinx.ext.intersphinx http://otherdocs/objects.inv
+
+More information about InterSphinx:
+
+* :doc:`Read the Docs InterSphinx Guide <rtd:guides/intersphinx>`
+
+Adding Images and Diagrams
+""""""""""""""""""""""""""
+
+There are multiple ways to add images and diagrams to the documentation.
+
+Generally, you should prefer using `SVG
+<https://en.wikipedia.org/wiki/Scalable_Vector_Graphics>`_ images, as these can
+be scaled to any size without quality loss.
+
+If you're creating diagrams, there are multiple tools available.
+:doc:`Graphviz <sphinx:usage/extensions/graphviz>` can render inline text-based
+graphs definitions and diagrams within the documentation, and is best choice for
+simple diagrams.
+
+More complex diagrams can be created in `Diagrams.net/Draw.io
+<https://www.diagrams.net/>`_ format, which is available as a standalone app,
+web app, or integrated with various other tools like Google Workspace. When
+saving these diagrams, use the SVG format, and check the **Include a copy of my
+diagram** box. This will let someone open the SVG later within Diagrams.net
+from file saved in the documentation and edit it without any loss in
+functionality or quality.
+
+The last resort is to use raster (bitmap) images. If they're drawings or screen
+captures, use the `PNG
+<https://en.wikipedia.org/wiki/Portable_Network_Graphics>`_ format.  Consider
+optimizing the PNG files with a tool like `OptiPNG
+<http://optipng.sourceforge.net/>`_, or `pngquant <https://pngquant.org/>`_ to
+save space and data transfer required.
+
+If you need to include a photograph, use `JPEG
+<https://en.wikipedia.org/wiki/JPEG>`_.
+
+Building the Documentation
+--------------------------
+
+The documentation build process is stored in a ``Makefile``. Building docs
+requires Python to be installed, and most steps will create a virtualenv
+(usually ``venv-docs``) which contains the required tools.  You may also need
+to install the ``enchant`` C library using your system's package manager for
+the spelling checker to function properly.
+
+Run ``make html`` to generate html documentation in ``_build/html``.
+
+There is also a test target, ``make test``, which will run all the following
+checks - this is what Jenkins does on patchset validation, so:
+
+* ``make lint``: Check the formatting of documentation using `doc8
+  <https://github.com/PyCQA/doc8>`_.
+
+* ``make license``: Verifies licensing is correct using :ref:`REUSE
+  <policies/licensing:REUSE License Tool>`
+
+* ``make spelling``: Checks spelling on all documentation. If there are
+  additional words that are correctly spelled but not in the dictionary
+  (acronyms, nouns, etc.) please add them to the ``dict.txt`` file, which
+  should be alphabetized using ``sort``
+
+* ``make linkcheck``: Verifies that links in the document are working and
+  accessible, using Sphinx's built in linkcheck tool. If there are links that
+  don't work with this, please see the ``linkcheck_ignore`` section of
+  ``conf.py``.
+
+Some sites may have the ability to build a PDF file of the documentation using
+``make latexpdf``. This requires that you have a recent LaTeX installation and
+``latexmk`` installed.
+
+Versioning Documentation
+""""""""""""""""""""""""
+
+To change the version shown on the built site, change the contents of the
+``VERSION`` file to be released SemVer version. This will create a tag on the
+repo.
+
+Then when ``make multiversion`` target can be used which will build all
+versions tagged or branched on the remote to ``_build/multiversion``. This will
+use a fork of `sphinx-multiversion
+<https://github.com/Holzhaus/sphinx-multiversion>`_ to build multiple versions
+and a menu on the site.
+
+There are variables in ``conf.py`` to determine which tags/branches to build.
diff --git a/docs/write.rst b/docs/write.rst
new file mode 100644
index 0000000..f1e5c75
--- /dev/null
+++ b/docs/write.rst
@@ -0,0 +1,55 @@
+Writing Documentation
+=====================
+
+Documentation is an essential part of any software product.
+
+4 Types of Documentation
+
+This site is an example of **Reference** documentation.
+
+
+Where should I put Documentation?
+---------------------------------
+
+The README
+""""""""""
+
+Basic **How To** Documentation should go into a README file in each repo:
+
+1. A high level summary of what the code in the repo does ("This code is ... ")
+
+2. Licensing and community information ("This is developed by ONF as a part of
+   the FOO project, and licensed under Apache-2")
+
+3. High level dependencies required ("Go version 1.17.x is needed to...")
+
+4. Examples of how to build the code ("Run ``make build`` to create a binary
+   named ...")
+
+5. Examples of how to run the code ("The output binary can be found in and run
+   with ...")
+
+6. How the code is tested ("Your code should pass ``make test``")
+
+Generally this should be fairly short and easy to reference
+
+Design Documents
+""""""""""""""""
+
+Design Documents concern the Why ...
+
+One option is to place these in the code repo
+
+
+Tutorials
+"""""""""
+
+Operations Guides
+"""""""""""""""""
+
+These show a user **How** to use a project and software.  Generally these
+should be located in a documentation repo, not stored with code.
+
+
+Project Documentation
+"""""""""""""""""""""
diff --git a/index.rst b/index.rst
new file mode 100644
index 0000000..7c47461
--- /dev/null
+++ b/index.rst
@@ -0,0 +1,47 @@
+ONF Technical Docs
+==================
+
+This site describes various technical processes used by ONF across many
+projects.
+
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Development Guide
+
+   devguide/design
+   devguide/conventions
+   devguide/cicd
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Tool-specific Guides
+
+   tools/ansible
+   tools/docker
+   tools/go
+   tools/k8s
+   tools/make
+   tools/python
+   tools/shell
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Documentation
+
+   docs/write
+   docs/sphinx
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Policies
+
+   policies/licensing
+   policies/conduct
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/policies/conduct.rst b/policies/conduct.rst
new file mode 100644
index 0000000..27766ed
--- /dev/null
+++ b/policies/conduct.rst
@@ -0,0 +1,63 @@
+Code of Conduct
+===============
+
+Version: 2019-11-07
+
+The Open Networking Foundation (ONF) is dedicated to providing a safe and
+harassment-free professional environment (meetings, events, activities, both
+online and offline) for everyone, regardless of gender, sexual orientation,
+disability, physical appearance, race, age, religion, or any other protected
+category. ONF does not tolerate harassment of any participant in any form. ONF
+participants violating these rules may be sanctioned or expelled from ONF
+projects and programs, including but not limited to online communities,
+internal programs, and in-person events at the discretion of ONF staff, with no
+refund. These individuals could also have their permissions revoked, and this
+decision would be communicated to the violator’s company. In addition,
+violations may be turned over to the appropriate authorities for resolution.
+
+Expected Behavior
+-----------------
+
+* Be respectful, kind, and professional
+* Exercise consideration and empathy in your words and actions
+* Be mindful of others
+
+ONF is an international community and assumes good intent, but also understands
+that written communication, including emojis, does not always convey nuances,
+such as humor. Please think about how your words may be misinterpreted by the
+community before saying, posting, or sending them.
+
+Unacceptable Behavior
+---------------------
+
+Intimidating, harassing, discriminatory, abusive, derogatory, or demeaning
+speech or actions by any participant, at any ONF event online or offline as
+well as in one-on-one communication carried out in the context of ONF will not
+be tolerated.
+
+Harassment includes, but is not limited to: offensive verbal comments related
+to gender, gender identity and expression, sexual orientation, disability,
+physical appearance, body size, race, age, religion; it also includes stalking,
+following, harassing photography or recording, sustained disruption of talks or
+other events, inappropriate physical contact, and unwelcome sexual attention.
+
+Consequences of Unacceptable Behavior
+-------------------------------------
+
+Participants who are asked to stop any unacceptable behavior are expected to
+comply immediately.  If a participant engages in unacceptable behavior, ONF
+staff members or volunteer leaders may initiate any reasonable action they deem
+appropriate, including expulsion from ONF online forums or summoning event
+security or law enforcement.
+
+Contact Information
+-------------------
+
+If you are being harassed, notice that someone else is being harassed, or have
+any other concerns involving someone’s welfare, please notify a member of the
+ONF team or email `conduct@opennetworking.org
+<mailto:conduct@opennetworking.org>`_. In case of an emergency, please contact
+law enforcement first and then notify ONF. ONF will be available to help
+participants contact local law enforcement, provide escorts, or otherwise
+provide assistance, so that those experiencing unacceptable behavior can feel
+safe for the duration of the event. ONF values your participation.
diff --git a/policies/licensing.rst b/policies/licensing.rst
new file mode 100644
index 0000000..0e3c01e
--- /dev/null
+++ b/policies/licensing.rst
@@ -0,0 +1,91 @@
+Software Licensing
+==================
+
+Software Licenses used by ONF
+-----------------------------
+
+Most of ONF's software is licensed under the `Apache License, Version 2.0
+<https://www.apache.org/licenses/LICENSE-2.0>`_ (commonly referred to as
+Apache-2 or APL2).
+
+REUSE License Tool
+""""""""""""""""""
+
+ONF uses the `REUSE <https://reuse.software>`_ toolkit to verify that licenses
+are correctly applied to files within a code repository, as an automated step
+in the CI process.
+
+REUSE replies on the `Software Package Data Exchange (SPDX) license headers
+<https://spdx.dev>`_ headers to be applied  to every source code file in the
+system.  These are put in a comment at the start of a file, similar to::
+
+  # SPDX-FileCopyrightText: 2022 Open Networking Foundation <info@opennetworking.org>
+  # SPDX-License-Identifier: Apache-2.0
+
+License Compatibility
+"""""""""""""""""""""
+
+Software licensing is a complex task, and attention needs to be paid to how
+code is incorporated in ONF projects, or how binaries generated from that code
+are used.
+
+If you would like to use external code in an ONF project that uses a license
+that is not mentioned as being acceptable in the lists below, please make an
+inquiry with the project development team before including that code.
+
+Code Level Linking
+''''''''''''''''''
+
+Apache 2.0 licensed software can incorporate or link directly against code
+written using the following licenses. A few examples:
+
+* BSD with 2, 3 clauses
+* MIT
+* Most "Public Domain" licenses
+
+See also the `ASF 3rd Party License Policy
+<https://www.apache.org/legal/resolved.html>`_ for additional details.
+
+Runtime Usage
+'''''''''''''
+
+Code with these kinds of licenses can be used at runtime, but can't be directly
+linked to:
+
+* GPL and most other "Strong Copyleft" licenses
+
+An example of this would be running an OS like Linux that is GPLv2 licensed as
+a part of an ONF project, it's used but not modified or linked against.
+
+Licenses to avoid
+'''''''''''''''''
+
+The following licenses have various issues related to additional requirements
+placed on it's use that are problematic, or favor one party over others.
+
+* AGPL: This makes requirements on releasing modifications to services
+  delivered over a network.
+
+* BSL: this is a timed license, which is proprietary for a period of time,
+  then automatically relicensed as GPL2
+
+* SSPL (MongoDB, Elasticsearch, etc.): makes requirements upon business process
+  and deployment code.
+
+Dual Licensing
+""""""""""""""
+
+It may be advantageous to dual-license code - code that serves as an example or
+templates that a user would copy and modify.  This also could include any code
+that is within documentation.
+
+In cases such as this, it may be advantageous to place examples in the public
+domain, or with a less strict license such as MIT or BSD 2-Clause.
+
+Contributor License Agreement
+-----------------------------
+
+Contributing software to and ONF project requires agreeing to the `Contributor
+Licensing Agreement <https://wiki.opennetworking.org/x/BgCUI>`_, which gives
+ONF a copyright and patent grant to for all code contributions, and the right
+to sublicense the code in the future.
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..09c76d6
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,10 @@
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+Sphinx~=4.4.0
+doc8~=0.10.1
+docutils~=0.17.1
+reuse~=0.14.0
+sphinx-rtd-theme~=1.0.0
+sphinxcontrib-spelling~=7.3.2
+sphinx-multiversion~=0.2.4
diff --git a/tools/ansible.rst b/tools/ansible.rst
new file mode 100644
index 0000000..4847684
--- /dev/null
+++ b/tools/ansible.rst
@@ -0,0 +1,3 @@
+Ansible
+=======
+
diff --git a/tools/docker.rst b/tools/docker.rst
new file mode 100644
index 0000000..4509fde
--- /dev/null
+++ b/tools/docker.rst
@@ -0,0 +1,21 @@
+Docker
+======
+
+
+
+Security
+--------
+
+By default, the docker daemon will modify the firewall settings on the host
+machine. This is undesirable if the machine isn't behind another, separate
+non-host firewall.
+
+In general Docker workloads should be run within :doc:`Kubernetes
+<k8s>`.
+
+Linting
+-------
+
+Hadolint
+
+
diff --git a/tools/go.rst b/tools/go.rst
new file mode 100644
index 0000000..f1e53b9
--- /dev/null
+++ b/tools/go.rst
@@ -0,0 +1,4 @@
+Go
+==
+
+
diff --git a/tools/k8s.rst b/tools/k8s.rst
new file mode 100644
index 0000000..a105056
--- /dev/null
+++ b/tools/k8s.rst
@@ -0,0 +1,2 @@
+Kubernetes
+==========
diff --git a/tools/make.rst b/tools/make.rst
new file mode 100644
index 0000000..ed8b71e
--- /dev/null
+++ b/tools/make.rst
@@ -0,0 +1,28 @@
+Make
+====
+
+Make is a unix tool that provides a dependency-based way to execute commands.
+
+The make command takes a parameter, known as the **target** which is usually
+the name of a file you would like to generate, or set of commands you would
+like to run.
+
+
+Best Practices
+--------------
+
+Include a ``help`` target in the Makefile.  This can be automatically generated
+from comments in the Makefile. There are many forms for this - this one is
+recommended::
+
+   # makefile example...
+
+This will work on both GNU and BSD implementations (``sed`` specifically).
+
+Formatting
+----------
+
+Each line of a Makefile is a new shell invocation - if you need to maintain the
+state of a shell (ex: entering a virtualenv, setting variables, etc.) you
+should wrap lines with ``;\\`` to separate individual commands while retaining
+the same shell instance.
diff --git a/tools/python.rst b/tools/python.rst
new file mode 100644
index 0000000..2b02ee4
--- /dev/null
+++ b/tools/python.rst
@@ -0,0 +1,30 @@
+Python
+======
+
+
+Formatting
+----------
+
+Black
+
+
+Lint
+----
+
+Pylint
+
+
+Testing
+-------
+
+Unittest
+
+
+Tox
+
+
+
+Taking a codebase from Python 2 to Python 3
+-------------------------------------------
+
+
diff --git a/tools/shell.rst b/tools/shell.rst
new file mode 100644
index 0000000..cf047fe
--- /dev/null
+++ b/tools/shell.rst
@@ -0,0 +1,12 @@
+Shell
+-----
+
+Shell scripts are frequently used for automating
+
+
+Lint
+----
+
+Shellcheck
+
+
