# eclipse conf file
.settings
.classpath
.project
.manager
.scala_dependencies
.cache

# idea conf files
.idea
*.iml
*.ipr
*.iws

# building
target
[Bb]uild/
null
tmp
temp
dist
test-output
build.log
release
out
gen
local.properties

#Apache Flex Projects
lib/
libs/
in/
swfobject/
flex2/
thirdparty/
tempDoc/
air/

*.pbj
*.vms
*.ser
*.mxp
bundles.properties
css_*.properties
FXGException_*.properties
FXGLog_*.properties
FABridge.js
frameworks/projects/spark/manifest.xml
env.properties
local.properties
packages.dita
rat.report
airsdk.xml

#OS junk files
[Tt]humbs.db
*.DS_Store

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#CVS files
.svn
.git

# Office Temp Files
~$*

#Binaries
*.dll
*.bin
*.com
*.exe
*.class
*.jar
*.swf
*.swc

#Compressed Files
*.zip
*.rar
*.tar

/asdoc-output/

#mustellarunner
*.patch
*.reply
mailbody.txt
gitstatus.txt

#AIR SDK
frameworks/projects/air/
runtimes/
templates/air/
samples/badge/
samples/icons/
templates/air/
templates/extensions/
templates/sdk/
install/android
AIR SDK Readme.txt
AIR SDK license.pdf
air-sdk-description.xml
samples/descriptor-sample.xml
include/FlashRuntimeExtensions.h

#BlazeDS generated/copied
apps/blazeds/WEB-INF/flex/version.properties
apps/ds-console/history/
apps/ds-console/index.html
apps/ds-console/swfobject.js
apps/samples/WEB-INF/classes/
apps/samples/WEB-INF/flex/version.properties
asdoc/
frameworks/air-config-template.xml
frameworks/air-config.xml
frameworks/airmobile-config-template.xml
frameworks/airmobile-config.xml
frameworks/apache-manifest.xml
frameworks/build_framework.xml
frameworks/downloads.xml
frameworks/experimental-manifest.xml
frameworks/experimental-mobile-manifest.xml
frameworks/flash-unicode-table.xml
frameworks/flex-config-template.xml
frameworks/flex-config.xml
frameworks/flex-sdk-description.xml
frameworks/locale/
frameworks/metadata.xml
frameworks/mx-manifest.xml
frameworks/mxml-2009-manifest.xml
frameworks/mxml-manifest.xml
frameworks/spark-manifest.xml
frameworks/tests/
frameworks/themes/
remoting/classes/
core/classes/
core/src/ExcludeDoclet.java
qa/resources/config/air-config.xml
qa/resources/config/flex-config.xml
resources/security/tomcat/TomcatValve.java
servers/apache-tomcat-6.0.29/
templates/
apps/team/WEB-INF/flex/air-config.xml
apps/team/WEB-INF/flex/apache-manifest.xml
apps/team/WEB-INF/flex/experimental-manifest.xml
apps/team/WEB-INF/flex/experimental-mobile-manifest.xml
apps/team/WEB-INF/flex/flash-unicode-table.xml
apps/team/WEB-INF/flex/flex-config.xml
apps/team/WEB-INF/flex/flex-sdk-description.xml
apps/team/WEB-INF/flex/flex-webtier-config.xml
apps/team/WEB-INF/flex/locale/
apps/team/WEB-INF/flex/mx-manifest.xml
apps/team/WEB-INF/flex/mxml-2009-manifest.xml
apps/team/WEB-INF/flex/mxml-manifest.xml
apps/team/WEB-INF/flex/spark-manifest.xml
apps/team/WEB-INF/flex/themes/
apps/team/WEB-INF/web.xml
apps/team/history/
qa/apps/qa-manual/WEB-INF/flex/apache-manifest.xml
qa/apps/qa-manual/WEB-INF/flex/experimental-manifest.xml
qa/apps/qa-manual/WEB-INF/flex/experimental-mobile-manifest.xml
qa/apps/qa-manual/WEB-INF/flex/flash-unicode-table.xml
qa/apps/qa-manual/WEB-INF/flex/flex-sdk-description.xml
qa/apps/qa-manual/WEB-INF/flex/locale/
qa/apps/qa-manual/WEB-INF/flex/mx-manifest.xml
qa/apps/qa-manual/WEB-INF/flex/mxml-2009-manifest.xml
qa/apps/qa-manual/WEB-INF/flex/mxml-manifest.xml
qa/apps/qa-manual/WEB-INF/flex/spark-manifest.xml
qa/apps/qa-manual/WEB-INF/flex/themes/
qa/apps/qa-manual/WEB-INF/flex/version.properties
qa/apps/qa-manual/WEB-INF/src/qa/utils/mxml/
qa/apps/qa-manual/WEB-INF/web.xml
qa/apps/qa-manual/history/
qa/apps/qa-regress/WEB-INF/classes/
qa/apps/qa-regress/WEB-INF/flex/apache-manifest.xml
qa/apps/qa-regress/WEB-INF/flex/experimental-manifest.xml
qa/apps/qa-regress/WEB-INF/flex/experimental-mobile-manifest.xml
qa/apps/qa-regress/WEB-INF/flex/flash-unicode-table.xml
qa/apps/qa-regress/WEB-INF/flex/flex-sdk-description.xml
qa/apps/qa-regress/WEB-INF/flex/locale/
qa/apps/qa-regress/WEB-INF/flex/mx-manifest.xml
qa/apps/qa-regress/WEB-INF/flex/mxml-2009-manifest.xml
qa/apps/qa-regress/WEB-INF/flex/mxml-manifest.xml
qa/apps/qa-regress/WEB-INF/flex/spark-manifest.xml
qa/apps/qa-regress/WEB-INF/flex/themes/
qa/apps/qa-regress/WEB-INF/flex/version.properties
qa/apps/qa-regress/WEB-INF/src/qa/utils/
qa/apps/qa-regress/WEB-INF/web.xml
qa/apps/qa-regress/WEB-INF/web.xml.spring
qa/apps/qa-regress/history/

