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

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

# vscode conf files
.vscode/
asconfig.json

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

#Apache Flex Projects
lib/
libs/
in/
swfobject/
ide/
flex2/
thirdparty/
external/
META-INF/
3.0.33/

*.pbj
*.vms
*.ser
*.mxp
*.report
bundles.properties
empty.properties
css_*.properties
FXGException_*.properties
FXGLog_*.properties
FABridge.js
frameworks/projects/spark/manifest.xml
env.properties
local.properties
flex-sdk-description.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
rc
*.flexProperties
*.flexLibProperties
*.project
*.actionScriptProperties
bin-release
Squiggly/main/generated/
flex-installer/deps
MD5Checker/MD5CheckerLog.txt

node_modules
npm-flexjs.iml
