/*
 * Copyright (C) 2011, 2013 Apple Inc. All rights reserved.
 *
 * 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.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 APPLE INC. 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.
 */

// This all-in-one cpp file cuts down on template bloat to allow us to build our Windows release build.
 
#include "BasicShapeFunctions.cpp"
#include "CSSAspectRatioValue.cpp"
#include "CSSBasicShapes.cpp"
#include "CSSBorderImage.cpp"
#include "CSSBorderImageSliceValue.cpp"
#include "CSSCalculationValue.cpp"
#include "CSSCanvasValue.cpp"
#include "CSSCharsetRule.cpp"
#include "CSSComputedStyleDeclaration.cpp"
#include "CSSContentDistributionValue.cpp"
#include "CSSCrossfadeValue.cpp"
#include "CSSCursorImageValue.cpp"
#include "CSSDefaultStyleSheets.cpp"
#include "CSSFilterImageValue.cpp"
#include "CSSFontFace.cpp"
#include "CSSFontFaceLoadEvent.cpp"
#include "CSSFontFaceRule.cpp"
#include "CSSFontFaceSource.cpp"
#include "CSSFontFaceSrcValue.cpp"
#include "CSSFontFeatureValue.cpp"
#include "CSSFontSelector.cpp"
#include "CSSFontValue.cpp"
#include "CSSFunctionValue.cpp"
#include "CSSGradientValue.cpp"
#include "CSSGridLineNamesValue.cpp"
#include "CSSGridTemplateAreasValue.cpp"
#include "CSSGroupingRule.cpp"
#include "CSSImageGeneratorValue.cpp"
#include "CSSImageSetValue.cpp"
#include "CSSImageValue.cpp"
#include "CSSImportRule.cpp"
#include "CSSInheritedValue.cpp"
#include "CSSInitialValue.cpp"
#include "CSSKeyframeRule.cpp"
#include "CSSKeyframesRule.cpp"
#include "CSSLineBoxContainValue.cpp"
#include "CSSMediaRule.cpp"
#include "CSSNamedImageValue.cpp"
#include "CSSOMUtils.cpp"
#include "CSSPageRule.cpp"
#include "CSSParser.cpp"
#include "CSSParserValues.cpp"
#include "CSSProperty.cpp"
#include "CSSPropertySourceData.cpp"
#include "CSSReflectValue.cpp"
#include "CSSRule.cpp"
#include "CSSRuleList.cpp"
#include "CSSSegmentedFontFace.cpp"
#include "CSSSelector.cpp"
#include "CSSSelectorList.cpp"
#include "CSSShadowValue.cpp"
#include "CSSStyleRule.cpp"
#include "CSSStyleSheet.cpp"
#include "CSSSupportsRule.cpp"
#include "CSSTimingFunctionValue.cpp"
#include "CSSToLengthConversionData.cpp"
#include "CSSToStyleMap.cpp"
#include "CSSUnicodeRangeValue.cpp"
#include "CSSValue.cpp"
#include "CSSValueList.cpp"
#include "CSSValuePool.cpp"
#include "DOMWindowCSS.cpp"
#include "DocumentRuleSets.cpp"
#include "ElementRuleCollector.cpp"
#include "FontLoader.cpp"
#include "InspectorCSSOMWrappers.cpp"
#include "LengthFunctions.cpp"
#include "MediaList.cpp"
#include "MediaQuery.cpp"
#include "MediaQueryEvaluator.cpp"
#include "MediaQueryExp.cpp"
#include "MediaQueryList.cpp"
#include "MediaQueryMatcher.cpp"
#include "PageRuleCollector.cpp"
#include "PropertySetCSSStyleDeclaration.cpp"
#include "RGBColor.cpp"
#include "RuleFeature.cpp"
#include "RuleSet.cpp"
#include "SVGCSSComputedStyleDeclaration.cpp"
#include "SVGCSSParser.cpp"
#include "SelectorChecker.cpp"
#include "SelectorFilter.cpp"
#include "StyleInvalidationAnalysis.cpp"
#include "StyleMedia.cpp"
#include "StyleProperties.cpp"
#include "StylePropertyShorthand.cpp"
#include "StyleResolver.cpp"
#include "StyleRule.cpp"
#include "StyleRuleImport.cpp"
#include "StyleSheet.cpp"
#include "StyleSheetContents.cpp"
#include "StyleSheetList.cpp"
#include "TransformFunctions.cpp"
#include "ViewportStyleResolver.cpp"
#include "WebKitCSSFilterValue.cpp"
#include "WebKitCSSMatrix.cpp"
#include "WebKitCSSRegionRule.cpp"
#include "WebKitCSSTransformValue.cpp"
#include "WebKitCSSViewportRule.cpp"

