<?xml version="1.0"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.

-->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="0xFFFFFF" width="1200" height="800">
    <mx:Script>
        <![CDATA[

        ]]>
    </mx:Script>

    <mx:Style>    
        @font-face {
            src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Regular.ttf");
            fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
        }

        @font-face {
            src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Bold.ttf");
            fontWeight: bold;
            fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
        }

        @font-face {
            src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Italic.ttf");
            fontStyle: italic;
            fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
        }

        global{
            fontFamily: EmbeddedVerdana;
            fontAntiAliasType: normal;
        }

        .myStyle
        {
            upArrowSkin: ClassReference("comps.Arrow_Top_jpg_embedded");
            downArrowSkin: ClassReference("comps.Arrow_Bottom_jpg_embedded");
        }
    </mx:Style>

    <mx:Box backgroundColor="0xFFFFFF">
        <mx:TextArea id="myTextArea_jpg_embedded"/>
    </mx:Box>
    
</mx:Application>
