diff --git a/BuildGuideAndroidNDK.md.license b/BuildGuideAndroidNDK.md.license
new file mode 100644
index 0000000..739dc2d
--- /dev/null
+++ b/BuildGuideAndroidNDK.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/BuildGuideCrossCompilation.md.license b/BuildGuideCrossCompilation.md.license
new file mode 100644
index 0000000..739dc2d
--- /dev/null
+++ b/BuildGuideCrossCompilation.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/ContributorGuide.md.license b/ContributorGuide.md.license
new file mode 100644
index 0000000..c3a8823
--- /dev/null
+++ b/ContributorGuide.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/InstallationViaAptRepository.md.license b/InstallationViaAptRepository.md.license
new file mode 100644
index 0000000..ec9b9c3
--- /dev/null
+++ b/InstallationViaAptRepository.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/LICENSES/BSD-3-Clause.txt b/LICENSES/BSD-3-Clause.txt
new file mode 100644
index 0000000..ea890af
--- /dev/null
+++ b/LICENSES/BSD-3-Clause.txt
@@ -0,0 +1,11 @@
+Copyright (c) <year> <owner>. 
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
new file mode 100644
index 0000000..2071b23
--- /dev/null
+++ b/LICENSES/MIT.txt
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) <year> <copyright holders>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md.license b/README.md.license
new file mode 100644
index 0000000..739dc2d
--- /dev/null
+++ b/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/SECURITY.md.license b/SECURITY.md.license
new file mode 100644
index 0000000..344cf33
--- /dev/null
+++ b/SECURITY.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/cmake/AddDllCopyCommands.cmake b/cmake/AddDllCopyCommands.cmake
index 671bc7d..525eec4 100644
--- a/cmake/AddDllCopyCommands.cmake
+++ b/cmake/AddDllCopyCommands.cmake
@@ -1,3 +1,7 @@
+#
+# Copyright © 2018-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 macro (addDllCopyCommand target sourceDebug sourceRelease)
     add_custom_command(TARGET ${target} POST_BUILD
         COMMAND ${CMAKE_COMMAND} -E copy_if_different
diff --git a/cmake/ArmnnConfig.cmake.in b/cmake/ArmnnConfig.cmake.in
index e608f86..dfa89d5 100644
--- a/cmake/ArmnnConfig.cmake.in
+++ b/cmake/ArmnnConfig.cmake.in
@@ -1,3 +1,7 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 
 get_filename_component(ARMNN_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
 set(ARMNN_CONFIG_FILE ${CMAKE_CURRENT_LIST_FILE})
diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake
index 3a9d93a..b1cdd4c 100644
--- a/cmake/Utils.cmake
+++ b/cmake/Utils.cmake
@@ -1,3 +1,8 @@
+#
+# Copyright © 2018 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
 # Function which creates appropriate "source groups" (filter folders in Visual Studio) for the given list of source files
 function(createSourceGroups source1)
     set(sources ${source1} ${ARGN})
diff --git a/delegate/BuildGuideNative.md.license b/delegate/BuildGuideNative.md.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/delegate/BuildGuideNative.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/delegate/DelegateQuickStartGuide.md.license b/delegate/DelegateQuickStartGuide.md.license
new file mode 100644
index 0000000..eb48c51
--- /dev/null
+++ b/delegate/DelegateQuickStartGuide.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020, 2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/delegate/README.md.license b/delegate/README.md.license
new file mode 100644
index 0000000..ec9b9c3
--- /dev/null
+++ b/delegate/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/delegate/python/test/test_data/conv2d.tflite.license b/delegate/python/test/test_data/conv2d.tflite.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/delegate/python/test/test_data/conv2d.tflite.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/delegate/python/test/test_data/fallback_model.tflite.license b/delegate/python/test/test_data/fallback_model.tflite.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/delegate/python/test/test_data/fallback_model.tflite.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/delegate/python/test/test_data/fp32_model.tflite.license b/delegate/python/test/test_data/fp32_model.tflite.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/delegate/python/test/test_data/fp32_model.tflite.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/delegate/python/test/test_data/mock_model.tflite.license b/delegate/python/test/test_data/mock_model.tflite.license
new file mode 100644
index 0000000..344cf33
--- /dev/null
+++ b/delegate/python/test/test_data/mock_model.tflite.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docker/README.md.license b/docker/README.md.license
new file mode 100644
index 0000000..b994066
--- /dev/null
+++ b/docker/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docker/armnn-android/Dockerfile.license b/docker/armnn-android/Dockerfile.license
new file mode 100644
index 0000000..344cf33
--- /dev/null
+++ b/docker/armnn-android/Dockerfile.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docker/x86_64/Dockerfile.license b/docker/x86_64/Dockerfile.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/docker/x86_64/Dockerfile.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docs/Arm_NN_horizontal_blue.png.license b/docs/Arm_NN_horizontal_blue.png.license
new file mode 100644
index 0000000..344cf33
--- /dev/null
+++ b/docs/Arm_NN_horizontal_blue.png.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docs/FAQ.md.license b/docs/FAQ.md.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/docs/FAQ.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docs/PerformanceChart.png.license b/docs/PerformanceChart.png.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/docs/PerformanceChart.png.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docs/pyarmnn.png.license b/docs/pyarmnn.png.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/docs/pyarmnn.png.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/docs/stylesheet.css b/docs/stylesheet.css
index ea7f4dc..28fdba0 100644
--- a/docs/stylesheet.css
+++ b/docs/stylesheet.css
@@ -1,5 +1,6 @@
 /* Copyright (c) 2020 ARM Limited. */
-/* Changes to tabs.css */
+/* SPDX-License-Identifier: MIT    */
+/* Changes to tabs.css             */
 
 .tabs, .tabs2, .tabs3 {
     position: relative;
diff --git a/python/pyarmnn/.gitignore b/python/pyarmnn/.gitignore
index 69e2681..1120181 100644
--- a/python/pyarmnn/.gitignore
+++ b/python/pyarmnn/.gitignore
@@ -1,7 +1,11 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
 # Generated pyarmnn files
 src/pyarmnn/_generated/*
 !src/pyarmnn/_generated/.keep
 !src/pyarmnn/_generated/*.py
 !src/pyarmnn/_generated/*.cpp
 **/include
-
diff --git a/python/pyarmnn/README.md.license b/python/pyarmnn/README.md.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/python/pyarmnn/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/docs_conf/config.mako b/python/pyarmnn/docs_conf/config.mako
index b26003b..0b5592d 100644
--- a/python/pyarmnn/docs_conf/config.mako
+++ b/python/pyarmnn/docs_conf/config.mako
@@ -1,3 +1,7 @@
+##
+## Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+## SPDX-License-Identifier: MIT
+##
 <%!
     # Template configuration. Copy over in your template directory
     # (used with --template-dir) and adapt as required.
diff --git a/python/pyarmnn/examples/image_classification/README.md.license b/python/pyarmnn/examples/image_classification/README.md.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/python/pyarmnn/examples/image_classification/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/examples/image_classification/requirements.txt b/python/pyarmnn/examples/image_classification/requirements.txt
index 289a2b5..f411e2f 100644
--- a/python/pyarmnn/examples/image_classification/requirements.txt
+++ b/python/pyarmnn/examples/image_classification/requirements.txt
@@ -1,3 +1,7 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 requests>=2.23.0
 urllib3>=1.25.8
 Pillow>=6.1.0
diff --git a/python/pyarmnn/examples/keyword_spotting/README.MD b/python/pyarmnn/examples/keyword_spotting/README.md
similarity index 100%
rename from python/pyarmnn/examples/keyword_spotting/README.MD
rename to python/pyarmnn/examples/keyword_spotting/README.md
diff --git a/python/pyarmnn/examples/keyword_spotting/README.md.license b/python/pyarmnn/examples/keyword_spotting/README.md.license
new file mode 100644
index 0000000..db7c467
--- /dev/null
+++ b/python/pyarmnn/examples/keyword_spotting/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/examples/keyword_spotting/requirements.txt b/python/pyarmnn/examples/keyword_spotting/requirements.txt
index 96782ea..9d88f90 100644
--- a/python/pyarmnn/examples/keyword_spotting/requirements.txt
+++ b/python/pyarmnn/examples/keyword_spotting/requirements.txt
@@ -1,3 +1,7 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 numpy>=1.19.2
 soundfile>=0.10.3
 pytest==6.2.4
diff --git a/python/pyarmnn/examples/object_detection/README.md.license b/python/pyarmnn/examples/object_detection/README.md.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/python/pyarmnn/examples/object_detection/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/examples/object_detection/requirements.txt b/python/pyarmnn/examples/object_detection/requirements.txt
index 01f2d18..322bc83 100644
--- a/python/pyarmnn/examples/object_detection/requirements.txt
+++ b/python/pyarmnn/examples/object_detection/requirements.txt
@@ -1,3 +1,7 @@
+#
+# Copyright © 2020-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 --extra-index-url https://google-coral.github.io/py-repo/
 numpy>=1.19.2
 tqdm>=4.47.0
diff --git a/python/pyarmnn/examples/speech_recognition/README.md.license b/python/pyarmnn/examples/speech_recognition/README.md.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/python/pyarmnn/examples/speech_recognition/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/examples/speech_recognition/requirements.txt b/python/pyarmnn/examples/speech_recognition/requirements.txt
index 96782ea..c123b3d 100644
--- a/python/pyarmnn/examples/speech_recognition/requirements.txt
+++ b/python/pyarmnn/examples/speech_recognition/requirements.txt
@@ -1,3 +1,7 @@
+#
+# Copyright © 2020-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 numpy>=1.19.2
 soundfile>=0.10.3
 pytest==6.2.4
diff --git a/python/pyarmnn/examples/speech_recognition/tests/testdata/inference_output.npy.license b/python/pyarmnn/examples/speech_recognition/tests/testdata/inference_output.npy.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/python/pyarmnn/examples/speech_recognition/tests/testdata/inference_output.npy.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/examples/speech_recognition/tests/testdata/quick_brown_fox_16000khz.wav.license b/python/pyarmnn/examples/speech_recognition/tests/testdata/quick_brown_fox_16000khz.wav.license
new file mode 100644
index 0000000..b994066
--- /dev/null
+++ b/python/pyarmnn/examples/speech_recognition/tests/testdata/quick_brown_fox_16000khz.wav.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/examples/tests/testdata/labelmap.txt.license b/python/pyarmnn/examples/tests/testdata/labelmap.txt.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/python/pyarmnn/examples/tests/testdata/labelmap.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/python/pyarmnn/pylintconfig b/python/pyarmnn/pylintconfig
index f3b28d4..929d04d 100644
--- a/python/pyarmnn/pylintconfig
+++ b/python/pyarmnn/pylintconfig
@@ -1,4 +1,8 @@
 [MASTER]
+#
+# Copyright © 2020-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 
 # Add files or directories to the ignore list. They should be base names, not
 # paths.
diff --git a/python/pyarmnn/scripts/requirements.txt b/python/pyarmnn/scripts/requirements.txt
index 59477a0..192b363 100644
--- a/python/pyarmnn/scripts/requirements.txt
+++ b/python/pyarmnn/scripts/requirements.txt
@@ -1,2 +1,7 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# Copyright © 2020 NXP. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 requests==2.23.0
 pdoc3==0.6.3
diff --git a/python/pyarmnn/tox.ini.license b/python/pyarmnn/tox.ini.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/python/pyarmnn/tox.ini.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt
index 42e5a47..31ff508 100644
--- a/samples/CMakeLists.txt
+++ b/samples/CMakeLists.txt
@@ -1,3 +1,7 @@
+#
+# Copyright © 2018-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 if (NOT BUILD_BARE_METAL)
    if(BUILD_SAMPLE_APP AND ARMNNREF)
         add_executable(SimpleSample SimpleSample.cpp)
diff --git a/samples/ImageClassification/README.md.license b/samples/ImageClassification/README.md.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/samples/ImageClassification/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/samples/ImageClassification/requirements.txt b/samples/ImageClassification/requirements.txt
index 3f100b2..17b52b8 100644
--- a/samples/ImageClassification/requirements.txt
+++ b/samples/ImageClassification/requirements.txt
@@ -1,3 +1,7 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 numpy==1.20.2
 Pillow==8.2.0
 pybind11==2.6.2
diff --git a/samples/ImageClassification/run_classifier.py b/samples/ImageClassification/run_classifier.py
index b3f79ea..4ce8b8b 100644
--- a/samples/ImageClassification/run_classifier.py
+++ b/samples/ImageClassification/run_classifier.py
@@ -1,3 +1,7 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
 import argparse
 from pathlib import Path
 from typing import Union
diff --git a/samples/KeywordSpotting/Readme.md.license b/samples/KeywordSpotting/Readme.md.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/samples/KeywordSpotting/Readme.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/samples/ObjectDetection/Readme.md.license b/samples/ObjectDetection/Readme.md.license
new file mode 100644
index 0000000..6b63511
--- /dev/null
+++ b/samples/ObjectDetection/Readme.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2020-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/samples/SpeechRecognition/Readme.md.license b/samples/SpeechRecognition/Readme.md.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/samples/SpeechRecognition/Readme.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/samples/serialized/Readme.md.license b/samples/serialized/Readme.md.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/samples/serialized/Readme.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/samples/serialized/ssd_mobilenet_v1.armnn.license b/samples/serialized/ssd_mobilenet_v1.armnn.license
new file mode 100644
index 0000000..14e9b44
--- /dev/null
+++ b/samples/serialized/ssd_mobilenet_v1.armnn.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/shim/sl/scripts/NeuralNetworks.patch.license b/shim/sl/scripts/NeuralNetworks.patch.license
new file mode 100644
index 0000000..db7c467
--- /dev/null
+++ b/shim/sl/scripts/NeuralNetworks.patch.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/shim/sl/scripts/libbase_logging_cpp.patch.license b/shim/sl/scripts/libbase_logging_cpp.patch.license
new file mode 100644
index 0000000..db7c467
--- /dev/null
+++ b/shim/sl/scripts/libbase_logging_cpp.patch.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/armnnConverter/README.md.license b/src/armnnConverter/README.md.license
new file mode 100644
index 0000000..8c65a4a
--- /dev/null
+++ b/src/armnnConverter/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019, 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/armnnDeserializer/README.md.license b/src/armnnDeserializer/README.md.license
new file mode 100644
index 0000000..8c65a4a
--- /dev/null
+++ b/src/armnnDeserializer/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019, 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/armnnOnnxParser/README.md.license b/src/armnnOnnxParser/README.md.license
new file mode 100644
index 0000000..aa3548a
--- /dev/null
+++ b/src/armnnOnnxParser/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018, 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/armnnSerializer/README.md.license b/src/armnnSerializer/README.md.license
new file mode 100644
index 0000000..8c65a4a
--- /dev/null
+++ b/src/armnnSerializer/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019, 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/armnnTfLiteParser/README.md.license b/src/armnnTfLiteParser/README.md.license
new file mode 100644
index 0000000..e7092f5
--- /dev/null
+++ b/src/armnnTfLiteParser/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018-2019, 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/backends/README.md.license b/src/backends/README.md.license
new file mode 100644
index 0000000..739dc2d
--- /dev/null
+++ b/src/backends/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/src/dynamic/README.md.license b/src/dynamic/README.md.license
new file mode 100644
index 0000000..2ebf258
--- /dev/null
+++ b/src/dynamic/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019-2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 4cb324f..9f377c6 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,3 +1,8 @@
+#
+# Copyright © 2018-2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
 # UnitTests
 include(CheckIncludeFiles)
 
diff --git a/tests/ImageCSVFileGenerator/README.md.license b/tests/ImageCSVFileGenerator/README.md.license
new file mode 100644
index 0000000..c6b9825
--- /dev/null
+++ b/tests/ImageCSVFileGenerator/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/ImageTensorGenerator/README.md.license b/tests/ImageTensorGenerator/README.md.license
new file mode 100644
index 0000000..8c65a4a
--- /dev/null
+++ b/tests/ImageTensorGenerator/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019, 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/MemoryStrategyBenchmark/CMakeLists.txt b/tests/MemoryStrategyBenchmark/CMakeLists.txt
index 9ed79ba..e9b6477 100644
--- a/tests/MemoryStrategyBenchmark/CMakeLists.txt
+++ b/tests/MemoryStrategyBenchmark/CMakeLists.txt
@@ -1,3 +1,8 @@
+#
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
 add_executable(MemoryStrategyBenchmark
                MemoryStrategyBenchmark.cpp
                TestBlocks.hpp
@@ -13,4 +18,4 @@
                            ../../third-party/cxxopts)
 
 
-set_target_properties(MemoryStrategyBenchmark PROPERTIES LINKER_LANGUAGE CXX)
\ No newline at end of file
+set_target_properties(MemoryStrategyBenchmark PROPERTIES LINKER_LANGUAGE CXX)
diff --git a/tests/ModelAccuracyTool-Armnn/README.md.license b/tests/ModelAccuracyTool-Armnn/README.md.license
new file mode 100644
index 0000000..8c65a4a
--- /dev/null
+++ b/tests/ModelAccuracyTool-Armnn/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019, 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/OnnxMnist-Armnn/Validation.txt.license b/tests/OnnxMnist-Armnn/Validation.txt.license
new file mode 100644
index 0000000..1796fa8
--- /dev/null
+++ b/tests/OnnxMnist-Armnn/Validation.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/OnnxMobileNet-Armnn/Validation.txt.license b/tests/OnnxMobileNet-Armnn/Validation.txt.license
new file mode 100644
index 0000000..1796fa8
--- /dev/null
+++ b/tests/OnnxMobileNet-Armnn/Validation.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/OnnxMobileNet-Armnn/labels.txt.license b/tests/OnnxMobileNet-Armnn/labels.txt.license
new file mode 100644
index 0000000..1796fa8
--- /dev/null
+++ b/tests/OnnxMobileNet-Armnn/labels.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/TfLiteInceptionV3Quantized-Armnn/Validation.txt.license b/tests/TfLiteInceptionV3Quantized-Armnn/Validation.txt.license
new file mode 100644
index 0000000..c6b9825
--- /dev/null
+++ b/tests/TfLiteInceptionV3Quantized-Armnn/Validation.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/TfLiteInceptionV4Quantized-Armnn/Validation.txt.license b/tests/TfLiteInceptionV4Quantized-Armnn/Validation.txt.license
new file mode 100644
index 0000000..c6b9825
--- /dev/null
+++ b/tests/TfLiteInceptionV4Quantized-Armnn/Validation.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/TfLiteMobileNetQuantizedSoftmax-Armnn/Validation.txt.license b/tests/TfLiteMobileNetQuantizedSoftmax-Armnn/Validation.txt.license
new file mode 100644
index 0000000..c6b9825
--- /dev/null
+++ b/tests/TfLiteMobileNetQuantizedSoftmax-Armnn/Validation.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/TfLiteMobilenetQuantized-Armnn/Validation.txt.license b/tests/TfLiteMobilenetQuantized-Armnn/Validation.txt.license
new file mode 100644
index 0000000..1796fa8
--- /dev/null
+++ b/tests/TfLiteMobilenetQuantized-Armnn/Validation.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/TfLiteMobilenetQuantized-Armnn/labels.txt.license b/tests/TfLiteMobilenetQuantized-Armnn/labels.txt.license
new file mode 100644
index 0000000..1796fa8
--- /dev/null
+++ b/tests/TfLiteMobilenetQuantized-Armnn/labels.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/tests/TfLiteVGG16Quantized-Armnn/Validation.txt.license b/tests/TfLiteVGG16Quantized-Armnn/Validation.txt.license
new file mode 100644
index 0000000..e8a4e6d
--- /dev/null
+++ b/tests/TfLiteVGG16Quantized-Armnn/Validation.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright © 2018-2019 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
diff --git a/third-party/cxxopts/CHANGELOG.md.license b/third-party/cxxopts/CHANGELOG.md.license
new file mode 100644
index 0000000..bf1b5b5
--- /dev/null
+++ b/third-party/cxxopts/CHANGELOG.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright (c) 2014 Jarryd Beck
+# SPDX-License-Identifier: MIT
+#
diff --git a/third-party/cxxopts/README.md.license b/third-party/cxxopts/README.md.license
new file mode 100644
index 0000000..bf1b5b5
--- /dev/null
+++ b/third-party/cxxopts/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright (c) 2014 Jarryd Beck
+# SPDX-License-Identifier: MIT
+#
diff --git a/third-party/cxxopts/cxxopts.hpp b/third-party/cxxopts/cxxopts.hpp
index 88e8a02..5cebc4b 100644
--- a/third-party/cxxopts/cxxopts.hpp
+++ b/third-party/cxxopts/cxxopts.hpp
@@ -2,6 +2,8 @@
 
 Copyright (c) 2014, 2015, 2016, 2017 Jarryd Beck
 
+SPDX-License-Identifier: MIT
+
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
@@ -1228,7 +1230,7 @@
     public:
 
     ParseResult() {}
-     
+
     ParseResult(const ParseResult&) = default;
 
     ParseResult(NameHashMap&& keys, ParsedHashMap&& values, std::vector<KeyValue> sequential, std::vector<std::string>&& unmatched_args)
diff --git a/third-party/doctest/doctest.h b/third-party/doctest/doctest.h
index 42eb039..9719680 100644
--- a/third-party/doctest/doctest.h
+++ b/third-party/doctest/doctest.h
@@ -6,6 +6,8 @@
 //
 // Copyright (c) 2016-2021 Viktor Kirilov
 //
+// SPDX-License-Identifier: MIT
+//
 // Distributed under the MIT Software License
 // See accompanying file LICENSE.txt or copy at
 // https://opensource.org/licenses/MIT
@@ -607,7 +609,7 @@
         DT_WARN_THROWS_WITH    = is_throws_with | is_warn,
         DT_CHECK_THROWS_WITH   = is_throws_with | is_check,
         DT_REQUIRE_THROWS_WITH = is_throws_with | is_require,
-        
+
         DT_WARN_THROWS_WITH_AS    = is_throws_with | is_throws_as | is_warn,
         DT_CHECK_THROWS_WITH_AS   = is_throws_with | is_throws_as | is_check,
         DT_REQUIRE_THROWS_WITH_AS = is_throws_with | is_throws_as | is_require,
@@ -781,9 +783,9 @@
     template<class T> struct remove_reference<T&>  { typedef T type; };
     template<class T> struct remove_reference<T&&> { typedef T type; };
 
-    template<typename T, typename U = T&&> U declval(int); 
+    template<typename T, typename U = T&&> U declval(int);
 
-    template<typename T> T declval(long); 
+    template<typename T> T declval(long);
 
     template<typename T> auto declval() DOCTEST_NOEXCEPT -> decltype(declval<T>(0)) ;
 
@@ -1568,7 +1570,7 @@
     DOCTEST_INTERFACE void toStream(std::ostream* s, int long long in);
     DOCTEST_INTERFACE void toStream(std::ostream* s, int long long unsigned in);
 
-    // ContextScope base class used to allow implementing methods of ContextScope 
+    // ContextScope base class used to allow implementing methods of ContextScope
     // that don't depend on the template parameter in doctest.cpp.
     class DOCTEST_INTERFACE ContextScopeBase : public IContextScope {
     protected:
@@ -1620,7 +1622,7 @@
         bool log();
         void react();
     };
-    
+
     template <typename L>
     ContextScope<L> MakeContextScope(const L &lambda) {
         return ContextScope<L>(lambda);
@@ -2991,7 +2993,7 @@
 
 namespace timer_large_integer
 {
-    
+
 #if defined(DOCTEST_PLATFORM_WINDOWS)
     typedef ULONGLONG type;
 #else // DOCTEST_PLATFORM_WINDOWS
@@ -3747,7 +3749,7 @@
             if(matchesAny(m_signature.m_name.c_str(), s->filters[7], false, s->case_sensitive))
                 return;
         }
-        
+
         // if a Subcase on the same level has already been entered
         if(s->subcasesStack.size() < size_t(s->subcasesCurrentMaxLevel)) {
             s->should_reenter = true;
@@ -3769,8 +3771,8 @@
         DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature);
     }
 
-    DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17	
-    DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations")	
+    DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17
+    DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations")
     DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations")
 
     Subcase::~Subcase() {
@@ -3797,8 +3799,8 @@
         }
     }
 
-    DOCTEST_CLANG_SUPPRESS_WARNING_POP	
-    DOCTEST_GCC_SUPPRESS_WARNING_POP	
+    DOCTEST_CLANG_SUPPRESS_WARNING_POP
+    DOCTEST_GCC_SUPPRESS_WARNING_POP
     DOCTEST_MSVC_SUPPRESS_WARNING_POP
 
     Subcase::operator bool() const { return m_entered; }
@@ -4145,8 +4147,8 @@
         g_infoContexts.push_back(this);
     }
 
-    DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17	
-    DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations")	
+    DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17
+    DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations")
     DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH("-Wdeprecated-declarations")
 
     // destroy cannot be inlined into the destructor because that would mean calling stringify after
@@ -4165,8 +4167,8 @@
         g_infoContexts.pop_back();
     }
 
-    DOCTEST_CLANG_SUPPRESS_WARNING_POP	
-    DOCTEST_GCC_SUPPRESS_WARNING_POP	
+    DOCTEST_CLANG_SUPPRESS_WARNING_POP
+    DOCTEST_GCC_SUPPRESS_WARNING_POP
     DOCTEST_MSVC_SUPPRESS_WARNING_POP
 } // namespace detail
 namespace {
@@ -5117,7 +5119,7 @@
             test_case_start_impl(in);
             xml.ensureTagClosed();
         }
-        
+
         void test_case_reenter(const TestCaseData&) override {}
 
         void test_case_end(const CurrentTestCaseStats& st) override {
@@ -5837,7 +5839,7 @@
             subcasesStack.clear();
             currentSubcaseLevel = 0;
         }
-        
+
         void test_case_reenter(const TestCaseData&) override {
             subcasesStack.clear();
         }
@@ -6462,7 +6464,7 @@
             DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_start, tc);
 
             p->timer.start();
-            
+
             bool run_test = true;
 
             do {
@@ -6502,7 +6504,7 @@
                     run_test = false;
                     p->failure_flags |= TestCaseFailureReason::TooManyFailedAsserts;
                 }
-                
+
                 if(p->should_reenter && run_test)
                     DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_reenter, tc);
                 if(!p->should_reenter)
diff --git a/third-party/fmt/README.rst.license b/third-party/fmt/README.rst.license
new file mode 100644
index 0000000..3755e29
--- /dev/null
+++ b/third-party/fmt/README.rst.license
@@ -0,0 +1,4 @@
+#
+# Copyright (c) 2012 - present, Victor Zverovich
+# SPDX-License-Identifier: MIT
+#
diff --git a/third-party/fmt/core.h b/third-party/fmt/core.h
index 338e0c7..a992418 100644
--- a/third-party/fmt/core.h
+++ b/third-party/fmt/core.h
@@ -2,6 +2,7 @@
 //
 // Copyright (c) 2012 - present, Victor Zverovich
 // All rights reserved.
+// SPDX-License-Identifier: MIT
 //
 // For the license information refer to format.h.
 
diff --git a/third-party/fmt/format-inl.h b/third-party/fmt/format-inl.h
index d3970d4..f4e3392 100644
--- a/third-party/fmt/format-inl.h
+++ b/third-party/fmt/format-inl.h
@@ -2,6 +2,7 @@
 //
 // Copyright (c) 2012 - 2016, Victor Zverovich
 // All rights reserved.
+// SPDX-License-Identifier: MIT
 //
 // For the license information refer to format.h.
 
diff --git a/third-party/fmt/format.h b/third-party/fmt/format.h
index 712c6eb..20ed0bb 100644
--- a/third-party/fmt/format.h
+++ b/third-party/fmt/format.h
@@ -3,6 +3,8 @@
 
  Copyright (c) 2012 - present, Victor Zverovich
 
+ SPDX-License-Identifier: MIT
+
  Permission is hereby granted, free of charge, to any person obtaining
  a copy of this software and associated documentation files (the
  "Software"), to deal in the Software without restriction, including
diff --git a/third-party/fmt/src/format.cc b/third-party/fmt/src/format.cc
index a64a1f3..10af1f5 100644
--- a/third-party/fmt/src/format.cc
+++ b/third-party/fmt/src/format.cc
@@ -2,6 +2,7 @@
 //
 // Copyright (c) 2012 - 2016, Victor Zverovich
 // All rights reserved.
+// SPDX-License-Identifier: MIT
 //
 // For the license information refer to format.h.
 
diff --git a/third-party/ghc/README.md.license b/third-party/ghc/README.md.license
new file mode 100644
index 0000000..5da8163
--- /dev/null
+++ b/third-party/ghc/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
+# SPDX-License-Identifier: MIT
+#
diff --git a/third-party/ghc/filesystem.hpp b/third-party/ghc/filesystem.hpp
index 1f0fe39..bc00025 100644
--- a/third-party/ghc/filesystem.hpp
+++ b/third-party/ghc/filesystem.hpp
@@ -6,6 +6,8 @@
 //
 // Copyright (c) 2018, Steffen Schümann <s.schuemann@pobox.com>
 //
+// SPDX-License-Identifier: MIT
+//
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal
 // in the Software without restriction, including without limitation the rights
@@ -211,7 +213,7 @@
 template <typename char_type>
 constexpr char_type path_helper_base<char_type>::preferred_separator;
 #endif
-    
+
 // 30.10.8 class path
 class GHC_FS_API_CLASS path
 #if defined(GHC_OS_WINDOWS) && defined(GHC_WIN_WSTRING_STRING_TYPE)
@@ -228,7 +230,7 @@
 #endif
     using string_type = std::basic_string<value_type>;
     using path_helper_base<value_type>::preferred_separator;
-    
+
     // 30.10.10.1 enumeration format
     /// The path format in wich the constructor argument is given.
     enum format {
@@ -1154,7 +1156,7 @@
     return std::error_code(err ? err : errno, std::system_category());
 }
 #endif
-    
+
 #endif  // GHC_EXPAND_IMPL
 
 template <typename Enum>
@@ -1277,7 +1279,7 @@
     codepoint = (state ? (codepoint << 6) | (fragment & 0x3fu) : (0xffu >> category) & fragment);
     return state == S_RJCT ? static_cast<unsigned>(S_RJCT) : static_cast<unsigned>((utf8_state_info[category + 16] >> (state << 2)) & 0xf);
 }
-    
+
 GHC_INLINE bool validUtf8(const std::string& utf8String)
 {
     std::string::const_iterator iter = utf8String.begin();
@@ -1295,9 +1297,9 @@
 }
 
 }  // namespace detail
-    
+
 #endif
-    
+
 namespace detail {
 
 template <class StringType, typename std::enable_if<(sizeof(typename StringType::value_type) == 1)>::type* = nullptr>
diff --git a/third-party/half/ChangeLog.txt.license b/third-party/half/ChangeLog.txt.license
new file mode 100644
index 0000000..771b79e
--- /dev/null
+++ b/third-party/half/ChangeLog.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright (c) 2012-2017 Christian Rau
+# SPDX-License-Identifier: MIT
+#
diff --git a/third-party/half/README.txt.license b/third-party/half/README.txt.license
new file mode 100644
index 0000000..771b79e
--- /dev/null
+++ b/third-party/half/README.txt.license
@@ -0,0 +1,4 @@
+#
+# Copyright (c) 2012-2017 Christian Rau
+# SPDX-License-Identifier: MIT
+#
diff --git a/third-party/half/half.hpp b/third-party/half/half.hpp
index 0d7459b..4e432b9 100644
--- a/third-party/half/half.hpp
+++ b/third-party/half/half.hpp
@@ -2,16 +2,18 @@
 //
 // Copyright (c) 2012-2017 Christian Rau <rauy@users.sourceforge.net>
 //
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation 
-// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, 
-// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the 
+// SPDX-License-Identifier: MIT
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
+// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
 // Software is furnished to do so, subject to the following conditions:
 //
 // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 //
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
-// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 
-// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 // Version 1.12.0
@@ -195,8 +197,8 @@
 
 
 /// Default rounding mode.
-/// This specifies the rounding mode used for all conversions between [half](\ref half_float::half)s and `float`s as well as 
-/// for the half_cast() if not specifying a rounding mode explicitly. It can be redefined (before including half.hpp) to one 
+/// This specifies the rounding mode used for all conversions between [half](\ref half_float::half)s and `float`s as well as
+/// for the half_cast() if not specifying a rounding mode explicitly. It can be redefined (before including half.hpp) to one
 /// of the standard rounding modes using their respective constants or the equivalent values of `std::float_round_style`:
 ///
 /// `std::float_round_style`         | value | rounding
@@ -207,30 +209,30 @@
 /// `std::round_toward_infinity`     | 2     | toward positive infinity
 /// `std::round_toward_neg_infinity` | 3     | toward negative infinity
 ///
-/// By default this is set to `-1` (`std::round_indeterminate`), which uses truncation (round toward zero, but with overflows 
-/// set to infinity) and is the fastest rounding mode possible. It can even be set to `std::numeric_limits<float>::round_style` 
+/// By default this is set to `-1` (`std::round_indeterminate`), which uses truncation (round toward zero, but with overflows
+/// set to infinity) and is the fastest rounding mode possible. It can even be set to `std::numeric_limits<float>::round_style`
 /// to synchronize the rounding mode with that of the underlying single-precision implementation.
 #ifndef HALF_ROUND_STYLE
 	#define HALF_ROUND_STYLE	-1			// = std::round_indeterminate
 #endif
 
 /// Tie-breaking behaviour for round to nearest.
-/// This specifies if ties in round to nearest should be resolved by rounding to the nearest even value. By default this is 
-/// defined to `0` resulting in the faster but slightly more biased behaviour of rounding away from zero in half-way cases (and 
-/// thus equal to the round() function), but can be redefined to `1` (before including half.hpp) if more IEEE-conformant 
+/// This specifies if ties in round to nearest should be resolved by rounding to the nearest even value. By default this is
+/// defined to `0` resulting in the faster but slightly more biased behaviour of rounding away from zero in half-way cases (and
+/// thus equal to the round() function), but can be redefined to `1` (before including half.hpp) if more IEEE-conformant
 /// behaviour is needed.
 #ifndef HALF_ROUND_TIES_TO_EVEN
 	#define HALF_ROUND_TIES_TO_EVEN	0		// ties away from zero
 #endif
 
 /// Value signaling overflow.
-/// In correspondence with `HUGE_VAL[F|L]` from `<cmath>` this symbol expands to a positive value signaling the overflow of an 
+/// In correspondence with `HUGE_VAL[F|L]` from `<cmath>` this symbol expands to a positive value signaling the overflow of an
 /// operation, in particular it just evaluates to positive infinity.
 #define HUGE_VALH	std::numeric_limits<half_float::half>::infinity()
 
 /// Fast half-precision fma function.
-/// This symbol is only defined if the fma() function generally executes as fast as, or faster than, a separate 
-/// half-precision multiplication followed by an addition. Due to the internal single-precision implementation of all 
+/// This symbol is only defined if the fma() function generally executes as fast as, or faster than, a separate
+/// half-precision multiplication followed by an addition. Due to the internal single-precision implementation of all
 /// arithmetic operations, this is in fact always the case.
 #define FP_FAST_FMAH	1
 
@@ -366,7 +368,7 @@
 		};
 
 		/// SFINAE helper for generic half-precision functions.
-		/// This class template has to be specialized for each valid combination of argument types to provide a corresponding 
+		/// This class template has to be specialized for each valid combination of argument types to provide a corresponding
 		/// `type` member equivalent to \a T.
 		/// \tparam T type to return
 		template<typename T,typename,typename=void,typename=void> struct enable {};
diff --git a/third-party/mapbox/README.md.license b/third-party/mapbox/README.md.license
new file mode 100644
index 0000000..aba8d37
--- /dev/null
+++ b/third-party/mapbox/README.md.license
@@ -0,0 +1,4 @@
+#
+# Copyright (c) MapBox 2016. All rights reserved.
+# SPDX-License-Identifier: BSD-3-Clause
+#
\ No newline at end of file
diff --git a/third-party/mapbox/optional.hpp b/third-party/mapbox/optional.hpp
index d84705c..b9e682a 100644
--- a/third-party/mapbox/optional.hpp
+++ b/third-party/mapbox/optional.hpp
@@ -1,3 +1,8 @@
+//
+// Copyright (c) MapBox All rights reserved.
+// SPDX-License-Identifier: BSD-3-Clause
+//
+
 #ifndef MAPBOX_UTIL_OPTIONAL_HPP
 #define MAPBOX_UTIL_OPTIONAL_HPP
 
diff --git a/third-party/mapbox/recursive_wrapper.hpp b/third-party/mapbox/recursive_wrapper.hpp
index 4ffcbd7..8a85d30 100644
--- a/third-party/mapbox/recursive_wrapper.hpp
+++ b/third-party/mapbox/recursive_wrapper.hpp
@@ -1,3 +1,8 @@
+//
+// Copyright (c) MapBox All rights reserved.
+// SPDX-License-Identifier: BSD-3-Clause
+//
+
 #ifndef MAPBOX_UTIL_RECURSIVE_WRAPPER_HPP
 #define MAPBOX_UTIL_RECURSIVE_WRAPPER_HPP
 
diff --git a/third-party/mapbox/variant.hpp b/third-party/mapbox/variant.hpp
index 06a46ab..7110857 100644
--- a/third-party/mapbox/variant.hpp
+++ b/third-party/mapbox/variant.hpp
@@ -1,3 +1,8 @@
+//
+// Copyright (c) MapBox All rights reserved.
+// SPDX-License-Identifier: BSD-3-Clause
+//
+
 #ifndef MAPBOX_UTIL_VARIANT_HPP
 #define MAPBOX_UTIL_VARIANT_HPP
 
diff --git a/third-party/mapbox/variant_cast.hpp b/third-party/mapbox/variant_cast.hpp
index fe1ab35..0795bcf 100644
--- a/third-party/mapbox/variant_cast.hpp
+++ b/third-party/mapbox/variant_cast.hpp
@@ -1,3 +1,8 @@
+//
+// Copyright (c) MapBox All rights reserved.
+// SPDX-License-Identifier: BSD-3-Clause
+//
+
 #ifndef VARIANT_CAST_HPP
 #define VARIANT_CAST_HPP
 
diff --git a/third-party/mapbox/variant_io.hpp b/third-party/mapbox/variant_io.hpp
index 1456cc5..7fdb818 100644
--- a/third-party/mapbox/variant_io.hpp
+++ b/third-party/mapbox/variant_io.hpp
@@ -1,3 +1,8 @@
+//
+// Copyright (c) MapBox All rights reserved.
+// SPDX-License-Identifier: BSD-3-Clause
+//
+
 #ifndef MAPBOX_UTIL_VARIANT_IO_HPP
 #define MAPBOX_UTIL_VARIANT_IO_HPP
 
diff --git a/third-party/mapbox/variant_visitor.hpp b/third-party/mapbox/variant_visitor.hpp
index 54ddba0..a5657d3 100644
--- a/third-party/mapbox/variant_visitor.hpp
+++ b/third-party/mapbox/variant_visitor.hpp
@@ -1,3 +1,8 @@
+//
+// Copyright (c) MapBox All rights reserved.
+// SPDX-License-Identifier: BSD-3-Clause
+//
+
 #ifndef MAPBOX_UTIL_VARIANT_VISITOR_HPP
 #define MAPBOX_UTIL_VARIANT_VISITOR_HPP
 
@@ -15,7 +20,7 @@
     using Fn::operator();
 
     template<typename T>
-    visitor(T&& fn) : Fn(std::forward<T>(fn)) {}    
+    visitor(T&& fn) : Fn(std::forward<T>(fn)) {}
 };
 
 template <typename Fn, typename... Fns>
@@ -36,7 +41,7 @@
     return visitor<typename std::decay<Fns>::type...>
         (std::forward<Fns>(fns)...);
 }
-    
+
 } // namespace util
 } // namespace mapbox
 
diff --git a/third-party/stb/stb_image.h b/third-party/stb/stb_image.h
index f0cc581..5d4d5cf 100644
--- a/third-party/stb/stb_image.h
+++ b/third-party/stb/stb_image.h
@@ -1,3 +1,8 @@
+//
+// Copyright (c) 2017 Sean Barrett
+// SPDX-License-Identifier: MIT
+//
+
 /* stb_image - v2.16 - public domain image loader - http://nothings.org/stb_image.h
                                      no warranty implied; use at your own risk
 
diff --git a/third-party/stb/stb_image_resize.h b/third-party/stb/stb_image_resize.h
index 858cc87..cece8ef 100644
--- a/third-party/stb/stb_image_resize.h
+++ b/third-party/stb/stb_image_resize.h
@@ -1,3 +1,8 @@
+//
+// Copyright (c) 2017 Sean Barrett
+// SPDX-License-Identifier: MIT
+//
+
 /* stb_image_resize - v0.95 - public domain image resizing
    by Jorge L Rodriguez (@VinoBS) - 2014
    http://github.com/nothings/stb
@@ -20,8 +25,8 @@
                                output_pixels, out_w, out_h, 0,
                                num_channels , alpha_chan  , 0)
       stbir_resize_uint8_srgb_edgemode(
-                               input_pixels , in_w , in_h , 0, 
-                               output_pixels, out_w, out_h, 0, 
+                               input_pixels , in_w , in_h , 0,
+                               output_pixels, out_w, out_h, 0,
                                num_channels , alpha_chan  , 0, STBIR_EDGE_CLAMP)
                                                             // WRAP/REFLECT/ZERO
 
@@ -231,7 +236,7 @@
                                      int num_channels);
 
 
-// The following functions interpret image data as gamma-corrected sRGB. 
+// The following functions interpret image data as gamma-corrected sRGB.
 // Specify STBIR_ALPHA_CHANNEL_NONE if you have no alpha channel,
 // or otherwise provide the index of the alpha channel. Flags value
 // of 0 will probably do the right thing if you're not sure what
@@ -304,19 +309,19 @@
 STBIRDEF int stbir_resize_uint8_generic( const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes,
                                                unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                          int num_channels, int alpha_channel, int flags,
-                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, 
+                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space,
                                          void *alloc_context);
 
 STBIRDEF int stbir_resize_uint16_generic(const stbir_uint16 *input_pixels  , int input_w , int input_h , int input_stride_in_bytes,
                                                stbir_uint16 *output_pixels , int output_w, int output_h, int output_stride_in_bytes,
                                          int num_channels, int alpha_channel, int flags,
-                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, 
+                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space,
                                          void *alloc_context);
 
 STBIRDEF int stbir_resize_float_generic( const float *input_pixels         , int input_w , int input_h , int input_stride_in_bytes,
                                                float *output_pixels        , int output_w, int output_h, int output_stride_in_bytes,
                                          int num_channels, int alpha_channel, int flags,
-                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, 
+                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space,
                                          void *alloc_context);
 
 
@@ -348,7 +353,7 @@
                                          void *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                    stbir_datatype datatype,
                                    int num_channels, int alpha_channel, int flags,
-                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, 
+                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical,
                                    stbir_filter filter_horizontal,  stbir_filter filter_vertical,
                                    stbir_colorspace space, void *alloc_context);
 
@@ -356,7 +361,7 @@
                                          void *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                    stbir_datatype datatype,
                                    int num_channels, int alpha_channel, int flags,
-                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, 
+                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical,
                                    stbir_filter filter_horizontal,  stbir_filter filter_vertical,
                                    stbir_colorspace space, void *alloc_context,
                                    float x_scale, float y_scale,
@@ -366,7 +371,7 @@
                                          void *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                    stbir_datatype datatype,
                                    int num_channels, int alpha_channel, int flags,
-                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, 
+                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical,
                                    stbir_filter filter_horizontal,  stbir_filter filter_vertical,
                                    stbir_colorspace space, void *alloc_context,
                                    float s0, float t0, float s1, float t1);
@@ -668,14 +673,14 @@
     0x44c20798, 0x488e071e, 0x4c1c06b6, 0x4f76065d, 0x52a50610, 0x55ac05cc, 0x5892058f, 0x5b590559,
     0x5e0c0a23, 0x631c0980, 0x67db08f6, 0x6c55087f, 0x70940818, 0x74a007bd, 0x787d076c, 0x7c330723,
 };
- 
+
 static stbir_uint8 stbir__linear_to_srgb_uchar(float in)
 {
     static const stbir__FP32 almostone = { 0x3f7fffff }; // 1-eps
     static const stbir__FP32 minval = { (127-13) << 23 };
     stbir_uint32 tab,bias,scale,t;
     stbir__FP32 f;
- 
+
     // Clamp to [2^(-13), 1-eps]; these two values map to 0 and 1, respectively.
     // The tests are carefully written so that NaNs map to 0, same as in the reference
     // implementation.
@@ -683,13 +688,13 @@
         in = minval.f;
     if (in > almostone.f)
         in = almostone.f;
- 
+
     // Do the table lookup and unpack bias, scale
     f.f = in;
     tab = fp32_to_srgb8_tab4[(f.u - minval.u) >> 20];
     bias = (tab >> 16) << 9;
     scale = tab & 0xffff;
- 
+
     // Grab next-highest mantissa bits and perform linear interpolation
     t = (f.u >> 12) & 0xff;
     return (unsigned char) ((bias + scale*t) >> 16);
@@ -2442,7 +2447,7 @@
         return 0;
 
     result = stbir__resize_allocated(&info, input_data, input_stride_in_bytes,
-                                            output_data, output_stride_in_bytes, 
+                                            output_data, output_stride_in_bytes,
                                             alpha_channel, flags, type,
                                             edge_horizontal, edge_vertical,
                                             colorspace, extra_memory, memory_required);
@@ -2496,7 +2501,7 @@
 STBIRDEF int stbir_resize_uint8_generic( const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes,
                                                unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                          int num_channels, int alpha_channel, int flags,
-                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, 
+                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space,
                                          void *alloc_context)
 {
     return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes,
@@ -2508,7 +2513,7 @@
 STBIRDEF int stbir_resize_uint16_generic(const stbir_uint16 *input_pixels  , int input_w , int input_h , int input_stride_in_bytes,
                                                stbir_uint16 *output_pixels , int output_w, int output_h, int output_stride_in_bytes,
                                          int num_channels, int alpha_channel, int flags,
-                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, 
+                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space,
                                          void *alloc_context)
 {
     return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes,
@@ -2521,7 +2526,7 @@
 STBIRDEF int stbir_resize_float_generic( const float *input_pixels         , int input_w , int input_h , int input_stride_in_bytes,
                                                float *output_pixels        , int output_w, int output_h, int output_stride_in_bytes,
                                          int num_channels, int alpha_channel, int flags,
-                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, 
+                                         stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space,
                                          void *alloc_context)
 {
     return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes,
@@ -2535,7 +2540,7 @@
                                          void *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                    stbir_datatype datatype,
                                    int num_channels, int alpha_channel, int flags,
-                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, 
+                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical,
                                    stbir_filter filter_horizontal,  stbir_filter filter_vertical,
                                    stbir_colorspace space, void *alloc_context)
 {
@@ -2550,7 +2555,7 @@
                                          void *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                    stbir_datatype datatype,
                                    int num_channels, int alpha_channel, int flags,
-                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, 
+                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical,
                                    stbir_filter filter_horizontal,  stbir_filter filter_vertical,
                                    stbir_colorspace space, void *alloc_context,
                                    float x_scale, float y_scale,
@@ -2571,7 +2576,7 @@
                                          void *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                    stbir_datatype datatype,
                                    int num_channels, int alpha_channel, int flags,
-                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, 
+                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical,
                                    stbir_filter filter_horizontal,  stbir_filter filter_vertical,
                                    stbir_colorspace space, void *alloc_context,
                                    float s0, float t0, float s1, float t1)
@@ -2588,20 +2593,20 @@
 ------------------------------------------------------------------------------
 MIT License
 Copyright (c) 2017 Sean Barrett
-Permission is hereby granted, free of charge, to any person obtaining a copy of 
-this software and associated documentation files (the "Software"), to deal in 
-the Software without restriction, including without limitation the rights to 
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
-of the Software, and to permit persons to whom the Software is furnished to do 
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
 so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all 
+The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 ------------------------------------------------------------------------------
 */
diff --git a/third-party/stb/stb_image_write.h b/third-party/stb/stb_image_write.h
index bcbb16f..bf5bd1d 100644
--- a/third-party/stb/stb_image_write.h
+++ b/third-party/stb/stb_image_write.h
@@ -1,3 +1,8 @@
+//
+// Copyright (c) 2017 Sean Barrett
+// SPDX-License-Identifier: MIT
+//
+
 /* stb_image_write - v1.06 - public domain - http://nothings.org/stb/stb_image_write.h
    writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015
                                      no warranty implied; use at your own risk
@@ -81,7 +86,7 @@
 
    TGA supports RLE or non-RLE compressed data. To use non-RLE-compressed
    data, set the global variable 'stbi_write_tga_with_rle' to 0.
-   
+
    JPEG does ignore alpha channels in input data; quality is between 1 and 100.
    Higher quality looks better but results in a bigger image.
    JPEG baseline (no JPEG progressive).
@@ -114,7 +119,7 @@
       Thatcher Ulrich
       github:poppolopoppo
       Patrick Boettcher
-      
+
 LICENSE
 
   See end of file for license information.
@@ -1250,7 +1255,7 @@
                              37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99};
    static const int UVQT[] = {17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,
                               99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99};
-   static const float aasf[] = { 1.0f * 2.828427125f, 1.387039845f * 2.828427125f, 1.306562965f * 2.828427125f, 1.175875602f * 2.828427125f, 
+   static const float aasf[] = { 1.0f * 2.828427125f, 1.387039845f * 2.828427125f, 1.306562965f * 2.828427125f, 1.175875602f * 2.828427125f,
                                  1.0f * 2.828427125f, 0.785694958f * 2.828427125f, 0.541196100f * 2.828427125f, 0.275899379f * 2.828427125f };
 
    int row, col, i, k;
@@ -1417,20 +1422,20 @@
 ------------------------------------------------------------------------------
 MIT License
 Copyright (c) 2017 Sean Barrett
-Permission is hereby granted, free of charge, to any person obtaining a copy of 
-this software and associated documentation files (the "Software"), to deal in 
-the Software without restriction, including without limitation the rights to 
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
-of the Software, and to permit persons to whom the Software is furnished to do 
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
 so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all 
+The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 ------------------------------------------------------------------------------
 */
