Apache Fory™
Copyright 2023-2026 The Apache Software Foundation

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

================================================================

This product includes code with separate copyright notices and license terms.
Your use of that code is subject to the terms and conditions of the licenses
listed in LICENSE.

================================================================

dataclasses (https://github.com/ericvsmith/dataclasses)
Copyright 2017-2022 Eric V. Smith, all rights reserved.
