Apache Flink Kubernetes Operator (flink-kubernetes-operator)
Copyright 2014-2022 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This project bundles the following dependencies under the MIT license.
See bundled license files for details.

- AnchorJS v3.1.0 (https://github.com/bryanbraun/anchorjs) Copyright (c) 2016 Bryan Braun
    -> in "docs/static/js/anchor.min.js"
- font-awesome:4.6.3 (css) (https://fontawesome.com/) - Created by Dave Gandy
    -> css in "docs/static/font-awesome/css"
- chroma (css generated by Hugo) (https://github.com/alecthomas/chroma) Copyright (C) 2017 Alec Thomas
    -> in "docs/assets/github.css"

This project bundles the following dependencies under SIL OFL 1.1 license (https://opensource.org/licenses/OFL-1.1).
See bundled license files for details.

- font-awesome:4.6.3 (Font) (https://fontawesome.com/) - Created by Dave Gandy
    -> fonts in "docs/static/font-awesome/fonts"
