Apache Flex Text Layout Framework
Copyright 2012-2015 The Apache Software Foundation

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

The Initial Developer of the Original Code, known as Adobe Text Layout Framework, is Adobe Systems Incorporated (http://www.adobe.com/).
    Copyright 2003 - 2012 Adobe Systems Incorporated. All Rights Reserved.

