diff --git a/.gitignore b/.gitignore index 2135d2944..5805c8b83 100644 --- a/.gitignore +++ b/.gitignore @@ -2,16 +2,16 @@ .directory build CMakeFiles -fonts -graphics -gui -lang -levels -materials -models -music -plugins -sounds +#fonts +#graphics +#gui +#lang +#levels +#materials +#models +#music +#plugins +#sounds *.bin *.cfg @@ -36,10 +36,10 @@ install_manifest.txt Makefile OpenDungeons opendungeons.kdev4 -plugins.cfg -plugins_d.cfg -resources.cfg -resources_install.cfg +#plugins.cfg +#plugins_d.cfg +#resources.cfg +#resources_install.cfg screenshot* ogre.cfg shaderCache diff --git a/CREDITS b/CREDITS new file mode 100644 index 000000000..80de4269a --- /dev/null +++ b/CREDITS @@ -0,0 +1,107 @@ +Training pole: CC-BY-SA p0ss http://opengameart.org/content/wooden-training-pole +Training dummy: CC-BY-SA p0ss http://opengameart.org/content/leather-training-dummy + +-- + +Pal Zoltan Illes - OpenDungeons - MAIN THEME 01 - start.flac +Pal Zoltan Illes - OpenDungeons - MAIN THEME 02 - loop.flac +Pal Zoltan Illes - OpenDungeons - MAIN THEME 03 - end.flac +Pal Zoltan Illes - OpenDungeons - maintheme.flac + +CC-BY-SA 3.0 unported- Pal Zoltan Illes - http://www.illespalzoltan.com + +music/yd_Searching_ingame.ogg +CC0 yd - http://opengameart.org/content/searching + +-- + +Reiner Flassig - Obsidian photo source - CC-by-sa/de 2.0 - http://de.wikipedia.org/w/index.php?title=Datei:Obsi.jpg&filetimestamp=20070905143430 + +-- + +Clint Bellanger "pfunked" - Bed - CC0 - http://opengameart.org/content/bed-low-poly + +-- + +Surt - Knight, Kobold - CC0 - http://opengameart.org/forumtopic/cc0-scraps + +-- + +riidom - Ghoul, Forge +Andrew Buck +Svenskmand +Danimal - Adventurer, concept art - CC-BY-SA 3.0 +StefanP.MUC (GUI) +Oln +paul424 +Skorpio + +http://www.burningwell.org/ - Titus Tscharntke - photo sources for textures - Public Domain + +matthew.pablo - Theme of Com-Mecha (currently renamed - replacementmusic.ogg) - CC-BY 3.0 - http://opengameart.org/content/theme-of-com-mecha + +MODELS: + +Adventurer Danimal CC-BY-SA 3.0 +Axe Skorpio CC-BY-SA 3.0, GPL 3.0 +Bed Clint Bellanger CC0 +big_wood_barrel Nobiax/yughues CC0 +Cannon Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 +Cannonball Andrew Buck CC-BY-SA 3.0 +Chair Skorpio CC-BY-SA 3.0, GPL 3.0 +Claimed Walls Skorpio CC-BY-SA 3.0, GPL 3.0 +Con_worker Skorpio CC-BY-SA 3.0, GPL 3.0 +Cre_vision_indicator Andrew Buck CC-BY-SA 3.0 +DigSelector Andrew Buck CC-BY-SA 3.0 +Dirt Walls Skorpio CC-BY-SA 3.0, GPL 3.0 +Dojo p0ss CC-BY-SA 3.0 +DojoRockObject p0ss CC-BY-SA 3.0 +Dragon Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 +DungeonTemple Skorpio CC-BY-SA 3.0, GPL 3.0 +Dwarf1 Skorpio CC-BY-SA 3.0, GPL 3.0 +Dwarf2 Skorpio CC-BY-SA 3.0, GPL 3.0 +Fire Skorpio CC-BY-SA 3.0, GPL 3.0 +Forge riidom +Gnome Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 +Goblin Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 +Goldnugget Skorpio CC-BY-SA 3.0, GPL 3.0 +Gold Walls Skorpio CC-BY-SA 3.0, GPL 3.0 +Keeperhand Skorpio CC-BY-SA 3.0, GPL 3.0 +Knight surt CC0 +Kobold surt CC0 +Kreatur Skorpio CC-BY-SA 3.0, GPL 3.0 +Lava Skorpio CC-BY-SA 3.0, GPL 3.0 +Lizardman Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 +Longsword Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 +mini_wood_barrel Nobiax/yughues CC0 +Orc Skorpio CC-BY-SA 3.0, GPL 3.0 +Pit Demon Skorpio CC-BY-SA 3.0, GPL 3.0 +Portal Skorpio CC-BY-SA 3.0, GPL 3.0 +Quarters Skorpio CC-BY-SA 3.0, GPL 3.0 +Rock Walls Skorpio CC-BY-SA 3.0, GPL 3.0 +Round Shield Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 +Sabre Andrew Buck CC-BY-SA 3.0 +Shield_small Danimal CC-BY-SA 3.0 +Shortsword Danimal CC-BY-SA 3.0 +Spider Skorpio CC-BY-SA 3.0, GPL 3.0 +Staff Skorpio CC-BY-SA 3.0, GPL 3.0 +Stool Skorpio CC-BY-SA 3.0, GPL 3.0 +Table Skorpio CC-BY-SA 3.0, GPL 3.0 +Tentacle1+2 Skorpio CC-BY-SA 3.0, GPL 3.0 +Torch Skorpio CC-BY-SA 3.0, GPL 3.0 +Training Dummy p0ss CC-BY-SA 3.0 +Training Pole p0ss CC-BY-SA 3.0 +Treasury Skorpio CC-BY-SA 3.0, GPL 3.0 +Troll Skorpio CC-BY-SA 3.0, GPL 3.0 +Water Skorpio CC-BY-SA 3.0, GPL 3.0 +Wizard Skorpio CC-BY-SA 3.0, GPL 3.0 +Wyvern Andrew Buck, Skorpio CC-BY-SA 3.0, GPL 3.0 + +SOUNDS: + +Svenskmand CC-BY-SA 3.0 + +GUI: + +Main menu background Vagner CC by 3.0 http://opengameart.org/content/mammon-angel-of-darkness +Main menu buttons StumpyStrust CC by 3.0 http://opengameart.org/content/fantasy-ui-box diff --git a/gui/FreeMono.ttf b/gui/FreeMono.ttf new file mode 100644 index 000000000..1feefc2e4 Binary files /dev/null and b/gui/FreeMono.ttf differ diff --git a/gui/OD-Logo.ico b/gui/OD-Logo.ico new file mode 100644 index 000000000..cb72c44ef Binary files /dev/null and b/gui/OD-Logo.ico differ diff --git a/gui/OD.project b/gui/OD.project new file mode 100644 index 000000000..ab72e144f --- /dev/null +++ b/gui/OD.project @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gui/ODBackgrounds.imageset b/gui/ODBackgrounds.imageset new file mode 100644 index 000000000..07d2727e8 --- /dev/null +++ b/gui/ODBackgrounds.imageset @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gui/ODBackgrounds.png b/gui/ODBackgrounds.png new file mode 100644 index 000000000..cc64d41c4 Binary files /dev/null and b/gui/ODBackgrounds.png differ diff --git a/gui/ODLogo.imageset b/gui/ODLogo.imageset new file mode 100644 index 000000000..c84542777 --- /dev/null +++ b/gui/ODLogo.imageset @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gui/ODLogo.png b/gui/ODLogo.png new file mode 100644 index 000000000..ff3be4471 Binary files /dev/null and b/gui/ODLogo.png differ diff --git a/gui/ODMainMenuBackground.imageset b/gui/ODMainMenuBackground.imageset new file mode 100644 index 000000000..e5165d5b5 --- /dev/null +++ b/gui/ODMainMenuBackground.imageset @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gui/ODMainMenuBackground.png b/gui/ODMainMenuBackground.png new file mode 100644 index 000000000..1ed2160de Binary files /dev/null and b/gui/ODMainMenuBackground.png differ diff --git a/gui/ODMainMenuButtons.imageset b/gui/ODMainMenuButtons.imageset new file mode 100644 index 000000000..9dd58fdc9 --- /dev/null +++ b/gui/ODMainMenuButtons.imageset @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gui/ODMainMenuButtons.png b/gui/ODMainMenuButtons.png new file mode 100644 index 000000000..cbf4a9122 Binary files /dev/null and b/gui/ODMainMenuButtons.png differ diff --git a/gui/OpenDungeons.imageset b/gui/OpenDungeons.imageset new file mode 100644 index 000000000..7ad6b4392 --- /dev/null +++ b/gui/OpenDungeons.imageset @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gui/OpenDungeons.layout b/gui/OpenDungeons.layout new file mode 100644 index 000000000..8ae3b76bc --- /dev/null +++ b/gui/OpenDungeons.layout @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/OpenDungeons.looknfeel b/gui/OpenDungeons.looknfeel new file mode 100644 index 000000000..4c05223a9 --- /dev/null +++ b/gui/OpenDungeons.looknfeel @@ -0,0 +1,3991 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+ +
+
+ +
+
+
+ + +
+
+
+ +
+ + + + +
+
+
+ +
+ + + + +
+ +
+
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+ +
+
+ +
+
+
+ + +
+
+
+ +
+ + + + +
+
+
+ +
+ + + + +
+ +
+
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + +
+ + + + +
+ + + + +
+ +
+
+
+ + +
+ + + + +
+ + + + +
+ +
+
+
+ + +
+ + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+ + + + +
+ +
+
+ +
+
+ +
+
+
+ + +
+ + + + +
+ + + + +
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+
+ +
+ + + + +
+ +
+
+ +
+
+
+ + +
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + +
+ +
+
+ +
+
+
+ + +
+ +
+
+ +
+
+
+ + +
+ +
+
+ +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+ +
+
+
+ + +
+ +
+
+ +
+
+
+ + +
+ +
+
+ +
+
+
+ + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + +
+ + +
+ + +
+ + +
+ + + + +
+ + +
+ + +
+ + +
+ + + + +
+ + +
+ + +
+ + +
+ + + + +
+ + +
+ + +
+ + +
+ + + + + diff --git a/gui/OpenDungeons.png b/gui/OpenDungeons.png new file mode 100644 index 000000000..d4d3f0e0b Binary files /dev/null and b/gui/OpenDungeons.png differ diff --git a/gui/OpenDungeonsEditorMenu.layout b/gui/OpenDungeonsEditorMenu.layout new file mode 100644 index 000000000..5ed72dd5d --- /dev/null +++ b/gui/OpenDungeonsEditorMenu.layout @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/OpenDungeonsIcons.imageset b/gui/OpenDungeonsIcons.imageset new file mode 100644 index 000000000..93cfb4263 --- /dev/null +++ b/gui/OpenDungeonsIcons.imageset @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gui/OpenDungeonsIcons.png b/gui/OpenDungeonsIcons.png new file mode 100644 index 000000000..c45a91635 Binary files /dev/null and b/gui/OpenDungeonsIcons.png differ diff --git a/gui/OpenDungeonsMainMenu.layout b/gui/OpenDungeonsMainMenu.layout new file mode 100644 index 000000000..87f1457a2 --- /dev/null +++ b/gui/OpenDungeonsMainMenu.layout @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/OpenDungeonsSkin.scheme b/gui/OpenDungeonsSkin.scheme new file mode 100644 index 000000000..031dcd0b9 --- /dev/null +++ b/gui/OpenDungeonsSkin.scheme @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gui/bluehigh.ttf b/gui/bluehigh.ttf new file mode 100644 index 000000000..14d45c5a1 Binary files /dev/null and b/gui/bluehigh.ttf differ diff --git a/gui/bluehighway.font b/gui/bluehighway.font new file mode 100644 index 000000000..497c612eb --- /dev/null +++ b/gui/bluehighway.font @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gui/ogrefonts.fontdef b/gui/ogrefonts.fontdef new file mode 100644 index 000000000..a5731d5ec --- /dev/null +++ b/gui/ogrefonts.fontdef @@ -0,0 +1,7 @@ +FreeMono +{ + type truetype + source FreeMono.ttf + size 16 + resolution 72 +} \ No newline at end of file diff --git a/gui/schemas/Animation.xsd b/gui/schemas/Animation.xsd new file mode 100644 index 000000000..9022cc346 --- /dev/null +++ b/gui/schemas/Animation.xsd @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/schemas/CEGUIConfig.xsd b/gui/schemas/CEGUIConfig.xsd new file mode 100644 index 000000000..4c4d3cc79 --- /dev/null +++ b/gui/schemas/CEGUIConfig.xsd @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/schemas/Falagard.xsd b/gui/schemas/Falagard.xsd new file mode 100644 index 000000000..df782592a --- /dev/null +++ b/gui/schemas/Falagard.xsd @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/schemas/Font.xsd b/gui/schemas/Font.xsd new file mode 100644 index 000000000..227950415 --- /dev/null +++ b/gui/schemas/Font.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/schemas/GUILayout.xsd b/gui/schemas/GUILayout.xsd new file mode 100644 index 000000000..0a3a5b9cf --- /dev/null +++ b/gui/schemas/GUILayout.xsd @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/schemas/GUIScheme.xsd b/gui/schemas/GUIScheme.xsd new file mode 100644 index 000000000..0ed538928 --- /dev/null +++ b/gui/schemas/GUIScheme.xsd @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gui/schemas/Imageset.xsd b/gui/schemas/Imageset.xsd new file mode 100644 index 000000000..49ced132a --- /dev/null +++ b/gui/schemas/Imageset.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/levels/Test.level b/levels/Test.level new file mode 100644 index 000000000..246cc775d --- /dev/null +++ b/levels/Test.level @@ -0,0 +1,5897 @@ +OpenDungeons_Version:0.4.9 # The version of OpenDungeons which created this file (for compatibility reasons). + +[Seats] +# color faction startingX startingY colorR colorG colorB +1 Player 195 207 0 0.4 0 +2 KeeperAI 200 200 0.4 0 0 +3 KeeperAI 200 200 0 0 0.4 +4 KeeperAI 266 95 0.4 0.4 0.1 +5 none 200 200 0.4 0.1 0.4 +[/Seats] + +[Goals] +# goalName arguments +KillAllEnemies NULL +ProtectCreature King +- 1 +ClaimNTiles 1000 +ClaimNTiles 200 +MineNGold 20 ++ 1 +MineNGold 5000 ++ 1 +MineNGold 10000 +ProtectDungeonTemple NULL +[/Goals] + +[Tiles] +# Map Size +400 # MapSizeX +400 # MapSizeY +# posX posY type fullness +146 102 3 100 +146 103 3 100 +146 104 3 100 +146 105 3 100 +146 106 3 100 +146 107 3 100 +146 108 3 100 +146 109 3 100 +146 110 3 100 +146 111 3 100 +146 112 3 100 +146 113 3 100 +146 114 3 100 +146 115 3 100 +146 116 3 100 +146 117 3 100 +146 118 3 100 +146 119 3 100 +146 120 3 100 +147 102 3 100 +147 103 3 100 +147 104 3 100 +147 105 3 100 +147 106 3 100 +147 107 3 100 +147 108 3 100 +147 109 3 100 +147 110 3 100 +147 111 3 100 +147 112 3 100 +147 113 3 100 +147 114 3 100 +147 115 3 100 +147 116 3 100 +147 117 3 100 +147 118 3 100 +147 119 3 100 +147 120 3 100 +148 102 3 100 +148 103 3 100 +148 104 3 100 +148 105 3 100 +148 106 3 100 +148 107 3 100 +148 108 3 100 +148 109 3 100 +148 110 3 100 +148 111 3 100 +148 112 3 100 +148 113 3 100 +148 114 3 100 +148 115 3 100 +148 116 3 100 +148 117 3 100 +148 118 3 100 +148 119 3 100 +148 120 3 100 +149 102 3 100 +149 103 3 100 +149 104 3 100 +149 107 2 100 +149 108 2 100 +149 109 2 100 +149 110 2 100 +149 114 3 100 +149 115 3 100 +149 116 3 100 +149 117 3 100 +149 118 3 100 +149 119 3 100 +149 120 3 100 +150 101 3 100 +150 102 3 100 +150 103 3 100 +150 104 3 100 +150 107 2 100 +150 108 2 100 +150 109 2 100 +150 110 2 100 +150 116 3 100 +150 117 3 100 +150 118 3 100 +150 119 3 100 +150 120 3 100 +151 101 3 100 +151 102 3 100 +151 107 2 100 +151 108 2 100 +151 109 2 100 +151 110 2 100 +151 116 3 100 +151 117 3 100 +151 118 3 100 +151 119 3 100 +151 120 3 100 +152 99 3 100 +152 100 3 100 +152 101 3 100 +152 109 1 0 +152 110 1 0 +152 111 1 0 +152 114 2 100 +152 115 2 100 +152 117 3 100 +152 118 3 100 +152 119 3 100 +152 120 3 100 +153 97 3 100 +153 98 3 100 +153 99 3 100 +153 100 3 100 +153 107 1 0 +153 108 1 0 +153 109 1 0 +153 110 1 0 +153 111 1 0 +153 112 1 0 +153 113 1 0 +153 117 3 100 +153 118 3 100 +153 119 3 100 +153 120 3 100 +154 97 3 100 +154 98 3 100 +154 99 3 100 +154 104 1 0 +154 105 1 0 +154 106 1 0 +154 107 1 0 +154 108 1 0 +154 109 1 0 +154 110 1 0 +154 111 1 0 +154 112 1 0 +154 113 1 0 +154 114 1 0 +154 118 3 100 +154 119 3 100 +154 120 3 100 +155 95 3 100 +155 96 3 100 +155 97 3 100 +155 98 3 100 +155 103 1 0 +155 104 1 25 +155 105 1 25 +155 106 1 25 +155 107 1 25 +155 108 1 25 +155 109 1 0 +155 110 1 0 +155 111 1 0 +155 112 1 0 +155 113 1 0 +155 114 1 0 +155 115 1 0 +155 118 3 100 +155 119 3 100 +155 120 3 100 +156 95 3 100 +156 96 3 100 +156 97 3 100 +156 98 3 100 +156 102 1 0 +156 103 1 25 +156 104 1 25 +156 105 1 0 +156 106 1 0 +156 107 1 0 +156 108 1 0 +156 109 1 25 +156 110 1 0 +156 111 1 0 +156 112 1 0 +156 113 1 0 +156 114 1 0 +156 115 1 0 +156 118 3 100 +156 119 3 100 +156 120 3 100 +156 197 1 0 +156 198 1 0 +156 199 1 0 +156 200 1 0 +156 201 1 0 +156 202 1 0 +156 203 1 0 +156 204 1 0 +157 93 3 100 +157 94 3 100 +157 95 3 100 +157 96 3 100 +157 97 3 100 +157 101 1 0 +157 102 1 0 +157 104 1 0 +157 105 1 0 +157 106 1 0 +157 107 1 0 +157 108 1 0 +157 110 1 0 +157 111 1 0 +157 112 1 0 +157 113 1 0 +157 114 1 0 +157 115 1 0 +157 118 3 100 +157 119 3 100 +157 120 3 100 +157 197 1 0 +157 198 1 0 +157 199 1 0 +157 200 1 0 +157 201 1 0 +157 202 1 0 +157 203 1 0 +157 204 1 0 +158 93 3 100 +158 94 3 100 +158 95 3 100 +158 96 3 100 +158 97 3 100 +158 99 1 0 +158 100 1 0 +158 101 1 0 +158 102 1 0 +158 104 1 0 +158 105 1 0 +158 106 1 0 +158 107 1 0 +158 108 1 0 +158 110 1 0 +158 111 1 0 +158 112 1 0 +158 113 1 0 +158 114 1 0 +158 115 1 0 +158 118 3 100 +158 119 3 100 +158 120 3 100 +158 197 1 0 +158 198 1 0 +158 199 1 0 +158 200 1 0 +158 201 1 0 +158 202 1 0 +158 203 1 0 +158 204 1 0 +159 91 3 100 +159 92 3 100 +159 93 3 100 +159 94 3 100 +159 95 3 100 +159 96 3 100 +159 99 1 0 +159 100 1 0 +159 101 1 0 +159 102 1 0 +159 104 1 0 +159 105 1 0 +159 106 1 0 +159 107 1 0 +159 108 1 0 +159 110 1 0 +159 111 1 0 +159 112 1 0 +159 113 1 0 +159 114 1 0 +159 115 1 0 +159 118 3 100 +159 119 3 100 +159 120 3 100 +159 197 1 0 +159 198 1 0 +159 199 1 0 +159 200 1 0 +159 201 1 0 +159 202 1 0 +159 203 1 0 +159 204 1 0 +160 90 3 100 +160 91 3 100 +160 92 3 100 +160 93 3 100 +160 94 3 100 +160 95 3 100 +160 96 3 100 +160 98 1 0 +160 99 1 0 +160 100 1 0 +160 101 1 0 +160 102 1 0 +160 103 1 0 +160 104 1 0 +160 105 1 0 +160 106 1 0 +160 107 1 0 +160 108 1 0 +160 109 1 0 +160 110 1 0 +160 111 1 0 +160 112 1 0 +160 113 1 0 +160 114 1 0 +160 115 1 0 +160 116 2 100 +160 117 2 100 +160 118 3 100 +160 119 3 100 +160 120 3 100 +160 197 1 0 +160 198 1 0 +160 199 1 0 +160 200 1 0 +160 201 1 0 +160 202 1 0 +160 203 1 0 +160 204 1 0 +161 90 3 100 +161 91 3 100 +161 92 3 100 +161 93 3 100 +161 94 3 100 +161 98 1 0 +161 99 1 0 +161 100 1 0 +161 101 1 0 +161 102 1 0 +161 103 1 0 +161 104 1 0 +161 105 1 0 +161 106 1 0 +161 107 1 0 +161 108 1 0 +161 109 1 0 +161 110 1 0 +161 111 1 0 +161 112 1 0 +161 113 1 0 +161 114 1 0 +161 115 1 0 +161 116 2 100 +161 117 2 100 +161 118 3 100 +161 119 3 100 +161 120 3 100 +161 195 1 0 +161 196 1 0 +161 197 1 0 +161 198 1 0 +161 199 1 0 +161 200 1 0 +161 201 1 0 +161 202 1 0 +161 203 1 0 +161 204 1 0 +162 90 3 100 +162 91 3 100 +162 92 3 100 +162 93 3 100 +162 94 3 100 +162 97 1 0 +162 98 1 0 +162 99 1 0 +162 100 1 0 +162 101 1 0 +162 102 1 0 +162 103 1 0 +162 104 1 0 +162 105 1 0 +162 106 1 0 +162 107 1 0 +162 110 1 0 +162 111 1 0 +162 112 1 0 +162 113 1 0 +162 114 1 0 +162 115 1 0 +162 118 3 100 +162 119 3 100 +162 120 3 100 +162 195 1 0 +162 196 1 0 +162 197 1 0 +162 198 1 0 +162 199 1 0 +162 200 1 0 +162 201 1 0 +162 202 1 0 +162 203 1 0 +162 204 1 0 +163 88 3 100 +163 89 3 100 +163 90 3 100 +163 91 3 100 +163 92 3 100 +163 93 3 100 +163 97 1 0 +163 98 1 0 +163 99 1 0 +163 100 1 0 +163 101 1 0 +163 102 1 0 +163 104 1 0 +163 106 1 0 +163 107 1 0 +163 108 1 0 +163 110 1 0 +163 111 1 0 +163 112 1 0 +163 113 1 0 +163 114 1 0 +163 115 1 0 +163 118 3 100 +163 119 3 100 +163 120 3 100 +163 195 1 0 +163 196 1 0 +163 197 1 0 +163 198 1 0 +163 199 1 0 +163 200 1 0 +163 201 1 0 +163 202 1 0 +163 203 1 0 +163 204 1 0 +164 86 3 100 +164 87 3 100 +164 88 3 100 +164 89 3 100 +164 90 3 100 +164 91 3 100 +164 92 3 100 +164 93 3 100 +164 96 1 0 +164 97 1 0 +164 110 1 0 +164 111 1 0 +164 112 1 0 +164 113 1 0 +164 114 1 0 +164 115 1 0 +164 118 3 100 +164 119 3 100 +164 120 3 100 +164 196 1 0 +164 197 1 0 +164 198 1 0 +164 199 1 0 +165 85 3 100 +165 86 3 100 +165 87 3 100 +165 88 3 100 +165 89 3 100 +165 90 3 100 +165 91 3 100 +165 92 3 100 +165 93 3 100 +165 96 1 0 +165 97 1 0 +165 102 1 0 +165 103 6 0 +165 104 6 0 +165 105 6 0 +165 106 6 0 +165 107 6 0 +165 109 1 0 +165 110 1 0 +165 111 1 0 +165 112 1 0 +165 113 1 0 +165 114 1 0 +165 118 3 100 +165 119 3 100 +165 120 3 100 +165 198 1 0 +165 199 1 0 +166 83 3 100 +166 84 3 100 +166 85 3 100 +166 86 3 100 +166 87 3 100 +166 88 3 100 +166 89 3 100 +166 90 3 100 +166 91 3 100 +166 92 3 100 +166 93 3 100 +166 102 6 0 +166 103 6 0 +166 104 6 0 +166 105 6 0 +166 106 6 0 +166 107 6 0 +166 108 1 0 +166 109 1 0 +166 110 1 0 +166 111 1 0 +166 112 1 0 +166 113 1 0 +166 114 1 0 +166 118 3 100 +166 119 3 100 +166 120 3 100 +166 198 1 0 +166 199 1 0 +166 211 2 100 +166 212 2 100 +166 213 2 100 +166 214 2 100 +166 215 2 100 +167 83 3 100 +167 84 3 100 +167 85 3 100 +167 86 3 100 +167 87 3 100 +167 88 3 100 +167 89 3 100 +167 90 3 100 +167 97 1 0 +167 98 1 0 +167 99 1 0 +167 100 1 0 +167 102 6 0 +167 103 6 0 +167 104 6 0 +167 105 6 0 +167 106 6 0 +167 107 6 0 +167 108 1 0 +167 109 1 0 +167 110 1 0 +167 111 1 0 +167 112 1 0 +167 113 1 0 +167 114 1 0 +167 118 3 100 +167 119 3 100 +167 120 3 100 +167 200 4 0 +167 201 4 0 +167 202 4 0 +167 203 4 0 +167 211 2 100 +167 212 2 100 +167 213 2 100 +167 214 2 100 +167 215 2 100 +168 82 3 100 +168 83 3 100 +168 84 3 100 +168 85 3 100 +168 86 3 100 +168 87 3 100 +168 88 3 100 +168 89 3 100 +168 96 1 0 +168 97 1 0 +168 98 1 0 +168 99 1 0 +168 100 1 0 +168 102 1 0 +168 103 6 0 +168 104 6 0 +168 105 6 0 +168 106 6 0 +168 107 6 0 +168 108 1 0 +168 109 1 0 +168 110 1 0 +168 111 1 0 +168 112 1 0 +168 113 1 0 +168 118 3 100 +168 119 3 100 +168 120 3 100 +168 191 4 0 +168 192 4 0 +168 193 4 0 +168 194 4 0 +168 200 4 0 +168 201 4 0 +168 202 4 0 +168 203 4 0 +168 211 2 100 +168 212 2 100 +168 213 2 100 +168 214 2 100 +168 215 2 100 +169 80 3 100 +169 81 3 100 +169 82 3 100 +169 83 3 100 +169 84 3 100 +169 85 3 100 +169 86 3 100 +169 87 3 100 +169 88 3 100 +169 89 3 100 +169 93 2 100 +169 94 2 100 +169 95 1 0 +169 97 1 0 +169 98 1 0 +169 99 1 0 +169 100 1 0 +169 102 1 0 +169 103 6 0 +169 104 6 0 +169 105 6 0 +169 106 6 0 +169 107 6 0 +169 109 1 0 +169 110 1 0 +169 111 1 0 +169 112 1 0 +169 113 1 0 +169 118 3 100 +169 119 3 100 +169 120 3 100 +169 191 4 0 +169 192 4 0 +169 193 4 0 +169 194 4 0 +169 200 4 0 +169 201 4 0 +169 202 4 0 +169 203 4 0 +169 211 2 100 +169 212 2 100 +169 213 2 100 +169 214 2 100 +169 215 2 100 +170 80 3 100 +170 81 3 100 +170 82 3 100 +170 83 3 100 +170 84 3 100 +170 85 3 100 +170 86 3 100 +170 87 3 100 +170 88 3 100 +170 95 1 0 +170 97 1 0 +170 98 1 0 +170 99 1 0 +170 100 1 0 +170 109 1 0 +170 110 1 0 +170 111 1 0 +170 117 3 100 +170 118 3 100 +170 119 3 100 +170 191 4 0 +170 192 4 0 +170 193 4 0 +170 194 4 0 +170 200 4 0 +170 201 4 0 +170 202 4 0 +170 203 4 0 +170 211 2 100 +170 212 2 100 +170 213 2 100 +170 214 2 100 +170 215 2 100 +171 79 3 100 +171 80 3 100 +171 81 3 100 +171 82 3 100 +171 83 3 100 +171 84 3 100 +171 85 3 100 +171 86 3 100 +171 87 3 100 +171 88 3 100 +171 95 1 0 +171 97 1 0 +171 98 1 0 +171 101 1 0 +171 109 1 0 +171 110 1 0 +171 111 1 0 +171 117 3 100 +171 118 3 100 +171 119 3 100 +171 188 4 0 +171 189 4 0 +171 190 4 0 +171 191 4 0 +171 192 4 0 +171 193 4 0 +171 194 4 0 +171 202 4 0 +171 203 4 0 +171 204 4 0 +171 205 4 0 +171 206 4 0 +171 207 4 0 +171 208 4 0 +171 214 2 100 +171 215 2 100 +171 216 2 100 +171 217 2 100 +172 77 3 100 +172 78 3 100 +172 79 3 100 +172 80 3 100 +172 81 3 100 +172 82 3 100 +172 83 3 100 +172 84 3 100 +172 85 3 100 +172 86 3 100 +172 87 3 100 +172 92 1 0 +172 93 1 0 +172 94 1 0 +172 95 1 0 +172 96 1 0 +172 97 1 0 +172 98 1 0 +172 100 1 0 +172 101 1 0 +172 109 1 0 +172 110 1 0 +172 111 1 0 +172 117 3 100 +172 118 3 100 +172 119 3 100 +172 188 4 0 +172 189 4 0 +172 190 4 0 +172 191 4 0 +172 192 4 0 +172 193 4 0 +172 194 4 0 +172 202 4 0 +172 203 4 0 +172 204 4 0 +172 205 4 0 +172 206 4 0 +172 207 4 0 +172 208 4 0 +172 214 2 100 +172 215 2 100 +172 216 2 100 +172 217 2 100 +173 76 3 100 +173 77 3 100 +173 78 3 100 +173 79 3 100 +173 80 3 100 +173 81 3 100 +173 82 3 100 +173 83 3 100 +173 84 3 100 +173 85 3 100 +173 86 3 100 +173 91 1 0 +173 92 1 0 +173 93 1 0 +173 94 1 0 +173 95 1 0 +173 96 1 0 +173 97 1 0 +173 98 1 0 +173 99 1 0 +173 100 1 0 +173 101 1 0 +173 102 1 0 +173 109 1 0 +173 110 1 0 +173 116 3 100 +173 117 3 100 +173 118 3 100 +173 119 3 100 +173 188 4 0 +173 189 4 0 +173 190 4 0 +173 191 4 0 +173 192 4 0 +173 202 4 0 +173 203 4 0 +173 204 4 0 +173 205 4 0 +173 206 4 0 +173 207 4 0 +173 208 4 0 +173 214 2 100 +173 215 2 100 +173 216 2 100 +173 217 2 100 +174 76 3 100 +174 77 3 100 +174 78 3 100 +174 79 3 100 +174 80 3 100 +174 81 3 100 +174 82 3 100 +174 83 3 100 +174 84 3 100 +174 85 3 100 +174 91 1 0 +174 92 1 0 +174 96 1 0 +174 97 1 0 +174 98 1 0 +174 99 1 0 +174 100 1 0 +174 101 1 0 +174 109 1 0 +174 110 1 0 +174 116 3 100 +174 117 3 100 +174 118 3 100 +174 187 4 0 +174 188 4 0 +174 189 4 0 +174 190 4 0 +174 191 4 0 +174 202 4 0 +174 203 4 0 +174 204 4 0 +174 205 4 0 +174 206 4 0 +174 207 4 0 +174 208 4 0 +174 214 2 100 +174 215 2 100 +174 216 2 100 +174 217 2 100 +175 76 3 100 +175 77 3 100 +175 78 3 100 +175 79 3 100 +175 80 3 100 +175 81 3 100 +175 82 3 100 +175 83 3 100 +175 84 3 100 +175 85 3 100 +175 90 1 0 +175 91 1 0 +175 92 1 0 +175 96 1 0 +175 97 1 0 +175 98 1 0 +175 101 1 0 +175 102 1 0 +175 109 1 0 +175 116 3 100 +175 117 3 100 +175 118 3 100 +175 186 4 0 +175 187 4 0 +175 188 4 0 +175 189 4 0 +175 202 4 0 +175 203 4 0 +175 204 4 0 +175 205 4 0 +175 206 4 0 +175 207 4 0 +175 208 4 0 +175 209 4 0 +175 214 2 100 +175 215 2 100 +175 216 2 100 +175 217 2 100 +176 76 3 100 +176 77 3 100 +176 78 3 100 +176 79 3 100 +176 80 3 100 +176 81 3 100 +176 82 3 100 +176 83 3 100 +176 89 1 0 +176 90 1 0 +176 91 1 0 +176 92 1 0 +176 96 1 0 +176 97 1 0 +176 98 1 0 +176 99 1 0 +176 100 1 0 +176 101 1 0 +176 109 1 0 +176 115 3 100 +176 116 3 100 +176 117 3 100 +176 118 3 100 +176 186 4 0 +176 187 4 0 +176 188 4 0 +176 208 4 0 +176 209 4 0 +176 210 4 0 +176 214 4 0 +176 215 4 0 +176 216 4 0 +176 217 4 0 +176 218 4 0 +177 76 3 100 +177 77 3 100 +177 78 3 100 +177 79 3 100 +177 80 3 100 +177 81 3 100 +177 89 1 0 +177 90 1 0 +177 91 1 0 +177 92 1 0 +177 93 1 0 +177 96 1 0 +177 97 1 0 +177 98 1 0 +177 99 1 0 +177 100 1 0 +177 102 1 0 +177 109 2 100 +177 110 2 100 +177 115 3 100 +177 116 3 100 +177 117 3 100 +177 186 4 0 +177 187 4 0 +177 188 4 0 +177 209 4 0 +177 210 4 0 +177 214 4 0 +177 215 4 0 +177 216 4 0 +177 217 4 0 +177 218 4 0 +178 76 3 100 +178 77 3 100 +178 78 3 100 +178 79 3 100 +178 80 3 100 +178 88 1 0 +178 89 1 0 +178 90 1 0 +178 91 1 0 +178 96 1 0 +178 97 1 0 +178 102 1 0 +178 107 1 0 +178 109 2 100 +178 110 2 100 +178 115 3 100 +178 116 3 100 +178 117 3 100 +178 186 4 0 +178 187 4 0 +178 188 4 0 +178 209 4 0 +178 210 4 0 +178 214 4 0 +178 215 4 0 +178 216 4 0 +178 217 4 0 +178 218 4 0 +178 219 4 0 +179 76 3 100 +179 77 3 100 +179 78 3 100 +179 79 3 100 +179 80 3 100 +179 86 1 0 +179 87 1 0 +179 88 1 0 +179 89 1 0 +179 90 1 0 +179 91 1 0 +179 96 1 0 +179 97 1 0 +179 102 1 0 +179 109 2 100 +179 110 2 100 +179 114 3 100 +179 115 3 100 +179 116 3 100 +179 117 3 100 +179 183 4 0 +179 184 4 0 +179 185 4 0 +179 186 4 0 +179 209 4 0 +179 210 4 0 +179 211 4 0 +179 212 4 0 +179 213 4 0 +179 214 4 0 +179 215 4 0 +179 216 4 0 +179 217 4 0 +179 218 4 0 +179 219 4 0 +179 220 4 0 +179 221 4 0 +179 222 4 0 +180 76 3 100 +180 77 3 100 +180 78 3 100 +180 79 3 100 +180 80 3 100 +180 85 1 0 +180 86 1 0 +180 87 1 0 +180 88 1 0 +180 89 1 0 +180 90 1 0 +180 91 1 0 +180 96 1 0 +180 97 1 0 +180 102 1 0 +180 114 3 100 +180 115 3 100 +180 183 4 0 +180 184 4 0 +180 185 4 0 +180 186 4 0 +180 211 4 0 +180 212 4 0 +180 213 4 0 +180 214 4 0 +180 215 4 0 +180 216 4 0 +180 217 4 0 +180 218 4 0 +180 219 4 0 +180 220 4 0 +180 221 4 0 +180 222 4 0 +181 75 3 100 +181 76 3 100 +181 77 3 100 +181 78 3 100 +181 79 3 100 +181 84 1 0 +181 85 1 0 +181 86 1 0 +181 87 1 0 +181 88 1 0 +181 89 1 0 +181 90 1 0 +181 95 1 0 +181 96 1 0 +181 102 1 0 +181 114 3 100 +181 115 3 100 +181 178 1 0 +181 179 1 0 +181 183 4 0 +181 184 4 0 +181 185 4 0 +181 186 4 0 +181 211 4 0 +181 212 4 0 +181 213 4 0 +181 214 4 0 +181 220 4 0 +181 221 4 0 +181 222 4 0 +181 227 1 0 +181 228 1 0 +181 229 2 100 +181 230 1 0 +181 231 1 0 +181 232 1 0 +181 233 1 0 +181 234 1 0 +181 235 1 0 +181 236 1 0 +181 237 1 0 +182 75 3 100 +182 76 3 100 +182 77 3 100 +182 78 3 100 +182 79 3 100 +182 84 1 0 +182 85 1 0 +182 86 1 0 +182 87 1 0 +182 89 2 100 +182 90 2 100 +182 94 1 0 +182 95 1 0 +182 96 1 0 +182 102 1 0 +182 103 1 0 +182 104 1 0 +182 105 1 0 +182 106 1 0 +182 107 1 0 +182 113 3 100 +182 114 3 100 +182 115 3 100 +182 178 1 0 +182 179 1 0 +182 183 4 0 +182 184 4 0 +182 185 4 0 +182 186 4 0 +182 220 4 0 +182 221 4 0 +182 222 4 0 +182 227 1 0 +182 228 1 0 +182 229 1 0 +182 230 1 0 +182 231 1 0 +182 232 1 0 +182 233 1 0 +182 234 1 0 +182 235 1 0 +182 236 1 0 +182 237 1 0 +183 75 3 100 +183 76 3 100 +183 77 3 100 +183 78 3 100 +183 79 3 100 +183 84 1 0 +183 85 1 0 +183 86 1 0 +183 94 1 0 +183 95 1 0 +183 96 1 0 +183 103 1 0 +183 107 1 0 +183 113 3 100 +183 114 3 100 +183 115 3 100 +183 178 1 0 +183 179 1 0 +183 183 4 0 +183 184 4 0 +183 185 4 0 +183 186 4 0 +183 220 4 0 +183 221 4 0 +183 222 4 0 +183 227 1 0 +183 228 2 100 +183 229 1 0 +183 230 2 100 +183 231 2 100 +183 232 2 100 +183 233 1 0 +183 234 1 0 +183 235 1 0 +183 236 1 0 +183 237 1 0 +184 71 3 100 +184 72 3 100 +184 73 3 100 +184 74 3 100 +184 75 3 100 +184 76 3 100 +184 77 3 100 +184 78 3 100 +184 84 1 0 +184 85 1 0 +184 86 1 0 +184 104 1 0 +184 105 1 0 +184 106 1 0 +184 107 1 0 +184 113 3 100 +184 114 3 100 +184 115 3 100 +184 178 1 0 +184 179 1 0 +184 181 4 0 +184 182 4 0 +184 183 4 0 +184 220 4 0 +184 221 4 0 +184 222 4 0 +184 227 1 0 +184 228 1 0 +184 229 1 0 +184 230 2 100 +184 231 2 100 +184 232 2 100 +184 233 1 0 +184 234 1 0 +184 235 1 0 +184 236 1 0 +184 237 1 0 +185 71 3 100 +185 72 3 100 +185 73 3 100 +185 74 3 100 +185 75 3 100 +185 76 3 100 +185 77 3 100 +185 78 3 100 +185 84 1 0 +185 85 1 0 +185 86 1 0 +185 113 3 100 +185 114 3 100 +185 115 3 100 +185 178 1 0 +185 179 1 0 +185 180 4 0 +185 181 4 0 +185 182 4 0 +185 183 4 0 +185 206 2 100 +185 207 2 100 +185 208 2 100 +185 212 6 50 +185 213 6 25 +185 214 6 50 +185 215 6 25 +185 216 6 100 +185 220 4 0 +185 221 4 0 +185 222 4 0 +185 227 1 0 +185 228 2 100 +185 229 2 100 +185 230 1 0 +185 231 1 0 +185 232 1 0 +185 233 1 0 +185 234 1 0 +185 235 1 0 +185 236 1 0 +185 237 1 0 +186 71 3 100 +186 72 3 100 +186 73 3 100 +186 74 3 100 +186 75 3 100 +186 76 3 100 +186 77 3 100 +186 78 3 100 +186 84 1 0 +186 85 1 0 +186 86 1 0 +186 112 3 100 +186 113 3 100 +186 178 1 0 +186 179 1 0 +186 180 4 0 +186 181 4 0 +186 182 1 0 +186 198 2 100 +186 199 2 100 +186 200 2 100 +186 206 2 100 +186 207 2 100 +186 208 2 100 +186 212 6 0 +186 213 6 0 +186 214 6 0 +186 215 6 0 +186 216 6 100 +186 217 6 100 +186 220 4 0 +186 221 4 0 +186 222 4 0 +186 227 1 0 +186 228 2 100 +186 229 2 100 +186 230 2 100 +186 231 1 0 +186 232 1 0 +186 233 1 0 +186 234 1 0 +186 235 1 0 +186 236 1 0 +186 237 1 0 +187 71 3 100 +187 72 3 100 +187 73 3 100 +187 74 3 100 +187 75 3 100 +187 76 3 100 +187 77 3 100 +187 84 1 0 +187 85 1 0 +187 86 1 0 +187 112 3 100 +187 113 3 100 +187 177 1 0 +187 178 1 0 +187 179 1 0 +187 180 4 0 +187 181 4 0 +187 182 1 0 +187 198 2 100 +187 199 2 100 +187 200 2 100 +187 206 2 100 +187 207 2 100 +187 208 2 100 +187 212 1 0 +187 213 1 0 +187 214 1 0 +187 215 1 0 +187 216 6 0 +187 217 6 100 +187 221 4 0 +187 222 4 0 +187 223 4 0 +187 227 1 0 +187 228 1 0 +187 229 1 0 +187 230 1 0 +187 231 1 0 +187 232 1 0 +187 233 1 0 +187 234 1 0 +187 235 1 0 +187 236 1 0 +187 237 1 0 +187 306 1 0 +187 307 1 0 +187 308 1 0 +187 309 1 0 +187 310 1 0 +187 311 1 0 +187 312 1 0 +187 313 1 0 +187 314 1 0 +187 315 1 0 +187 316 1 0 +187 317 1 0 +187 318 1 0 +188 71 3 100 +188 72 3 100 +188 73 3 100 +188 74 3 100 +188 75 3 100 +188 76 3 100 +188 77 3 100 +188 86 1 0 +188 99 1 0 +188 100 1 0 +188 101 1 0 +188 112 3 100 +188 113 3 100 +188 165 3 100 +188 166 3 100 +188 167 3 100 +188 168 3 100 +188 177 1 0 +188 178 1 0 +188 179 4 0 +188 180 4 0 +188 181 1 0 +188 182 1 0 +188 198 2 100 +188 199 2 100 +188 200 2 100 +188 212 6 0 +188 213 6 0 +188 214 6 0 +188 215 6 0 +188 216 6 0 +188 217 6 100 +188 221 4 0 +188 222 4 0 +188 223 4 0 +188 306 1 0 +188 307 1 0 +188 308 1 0 +188 309 1 0 +188 310 1 0 +188 311 1 0 +188 312 1 0 +188 313 1 0 +188 314 1 0 +188 315 1 0 +188 316 1 0 +188 317 1 0 +188 318 1 0 +189 71 3 100 +189 72 3 100 +189 73 3 100 +189 74 3 100 +189 75 3 100 +189 76 3 100 +189 77 3 100 +189 87 1 0 +189 88 1 0 +189 89 1 0 +189 90 1 0 +189 94 1 0 +189 95 1 0 +189 96 1 0 +189 97 1 0 +189 98 1 0 +189 99 1 0 +189 100 1 0 +189 101 1 0 +189 111 3 100 +189 112 3 100 +189 113 3 100 +189 156 3 100 +189 157 3 100 +189 158 3 100 +189 159 3 100 +189 160 3 100 +189 161 3 100 +189 162 3 100 +189 163 3 100 +189 164 3 100 +189 165 3 100 +189 166 3 100 +189 167 3 100 +189 168 3 100 +189 177 1 0 +189 178 1 0 +189 179 4 0 +189 180 4 0 +189 181 1 0 +189 182 1 0 +189 212 6 0 +189 213 6 0 +189 214 6 0 +189 215 6 0 +189 216 6 0 +189 217 6 100 +189 221 4 0 +189 222 4 0 +189 223 4 0 +189 224 4 0 +189 306 1 0 +189 307 1 0 +189 308 1 0 +189 309 1 0 +189 310 1 0 +189 311 1 0 +189 312 1 0 +189 313 1 0 +189 314 1 0 +189 315 1 0 +189 316 1 0 +189 317 1 0 +189 318 1 0 +190 71 3 100 +190 72 3 100 +190 73 3 100 +190 74 3 100 +190 75 3 100 +190 88 1 0 +190 89 1 0 +190 90 1 0 +190 91 1 0 +190 92 1 0 +190 93 1 0 +190 94 1 0 +190 95 1 0 +190 96 1 0 +190 97 1 0 +190 98 1 0 +190 99 1 0 +190 100 1 0 +190 101 1 0 +190 111 3 100 +190 112 3 100 +190 113 3 100 +190 153 3 100 +190 154 3 100 +190 155 3 100 +190 156 3 100 +190 157 3 100 +190 158 3 100 +190 159 3 100 +190 160 3 100 +190 161 3 100 +190 162 3 100 +190 163 3 100 +190 164 3 100 +190 165 3 100 +190 166 3 100 +190 167 3 100 +190 168 3 100 +190 169 3 100 +190 171 3 100 +190 172 3 100 +190 173 3 100 +190 174 3 100 +190 175 3 100 +190 176 3 100 +190 177 3 100 +190 178 3 100 +190 179 4 0 +190 180 4 0 +190 181 1 0 +190 182 1 0 +190 212 6 0 +190 213 6 0 +190 214 6 0 +190 215 6 0 +190 216 6 25 +190 217 6 100 +190 221 4 0 +190 222 4 0 +190 223 4 0 +190 224 4 0 +190 225 4 0 +190 226 4 0 +190 227 4 0 +190 228 4 0 +190 229 4 0 +190 230 4 0 +190 231 4 0 +190 306 1 0 +190 307 1 0 +190 308 1 0 +190 309 1 0 +190 310 1 0 +190 311 1 0 +190 312 1 0 +190 313 1 0 +190 314 1 0 +190 315 1 0 +190 316 1 0 +190 317 1 0 +190 318 1 0 +191 71 3 100 +191 72 3 100 +191 73 3 100 +191 74 3 100 +191 75 3 100 +191 88 1 0 +191 89 1 0 +191 90 1 0 +191 91 1 0 +191 92 1 0 +191 93 1 0 +191 94 1 0 +191 95 1 0 +191 96 1 0 +191 97 1 0 +191 98 1 0 +191 99 1 0 +191 100 1 0 +191 101 1 0 +191 111 3 100 +191 112 3 100 +191 151 3 100 +191 152 3 100 +191 153 3 100 +191 154 3 100 +191 155 3 100 +191 156 3 100 +191 157 3 100 +191 158 3 100 +191 159 3 100 +191 160 3 100 +191 161 3 100 +191 162 3 100 +191 163 3 100 +191 164 3 100 +191 165 3 100 +191 166 3 100 +191 167 3 100 +191 168 3 100 +191 169 3 100 +191 170 3 100 +191 171 3 100 +191 172 3 100 +191 173 3 100 +191 174 3 100 +191 175 3 100 +191 176 3 100 +191 177 3 100 +191 178 3 100 +191 179 4 0 +191 180 3 100 +191 181 1 0 +191 182 1 0 +191 206 6 0 +191 207 6 0 +191 208 6 0 +191 209 6 0 +191 210 6 0 +191 212 6 25 +191 213 6 25 +191 214 6 25 +191 215 6 25 +191 216 6 25 +191 222 4 0 +191 223 4 0 +191 224 4 0 +191 225 4 0 +191 226 4 0 +191 227 4 0 +191 228 4 0 +191 229 4 0 +191 230 4 0 +191 231 4 0 +191 232 4 0 +191 233 4 0 +191 234 4 0 +191 306 1 0 +191 307 1 0 +191 308 1 0 +191 309 1 0 +191 310 1 0 +191 311 1 0 +191 312 1 0 +191 313 1 0 +191 314 1 0 +191 315 1 0 +191 316 1 0 +191 317 1 0 +191 318 1 0 +192 71 3 100 +192 72 3 100 +192 73 3 100 +192 74 3 100 +192 75 3 100 +192 90 1 0 +192 91 1 0 +192 92 1 0 +192 93 1 0 +192 94 1 0 +192 95 1 0 +192 98 1 0 +192 99 1 0 +192 100 1 0 +192 101 1 0 +192 111 3 100 +192 112 3 100 +192 149 3 100 +192 150 3 100 +192 151 3 100 +192 152 3 100 +192 153 3 100 +192 154 3 100 +192 155 3 100 +192 156 3 100 +192 157 3 100 +192 158 3 100 +192 159 3 100 +192 160 3 100 +192 161 3 100 +192 162 3 100 +192 163 3 100 +192 164 3 100 +192 165 3 100 +192 166 3 100 +192 167 3 100 +192 168 3 100 +192 169 3 100 +192 170 3 100 +192 171 3 100 +192 172 3 100 +192 173 3 100 +192 174 3 100 +192 175 3 100 +192 176 3 100 +192 177 3 100 +192 178 3 100 +192 179 3 100 +192 180 3 100 +192 181 3 100 +192 182 3 100 +192 203 1 0 +192 204 1 0 +192 205 6 0 +192 206 6 0 +192 207 6 0 +192 208 6 0 +192 209 6 0 +192 210 6 0 +192 214 6 0 +192 223 4 0 +192 224 4 0 +192 225 4 0 +192 226 4 0 +192 227 4 0 +192 228 4 0 +192 229 4 0 +192 230 4 0 +192 231 4 0 +192 242 4 0 +192 243 4 0 +192 244 4 0 +192 245 4 0 +192 246 4 0 +192 306 1 0 +192 307 1 0 +192 308 1 0 +192 309 1 0 +192 310 1 0 +192 311 1 0 +192 312 1 0 +192 313 1 0 +192 314 1 0 +192 315 1 0 +192 316 1 0 +192 317 1 0 +192 318 1 0 +193 71 3 100 +193 72 3 100 +193 73 3 100 +193 74 3 100 +193 87 1 0 +193 88 1 0 +193 89 1 0 +193 90 1 0 +193 91 1 0 +193 92 1 0 +193 98 1 0 +193 99 1 0 +193 100 1 0 +193 101 1 0 +193 110 3 100 +193 111 3 100 +193 112 3 100 +193 148 3 100 +193 149 3 100 +193 150 3 100 +193 151 3 100 +193 152 3 100 +193 153 3 100 +193 154 3 100 +193 155 3 100 +193 156 3 100 +193 157 3 100 +193 158 3 100 +193 159 3 100 +193 160 3 100 +193 161 3 100 +193 162 3 100 +193 163 3 100 +193 164 3 100 +193 165 3 100 +193 166 3 100 +193 167 3 100 +193 168 3 100 +193 169 3 100 +193 170 3 100 +193 171 3 100 +193 172 3 100 +193 173 3 100 +193 174 3 100 +193 175 3 100 +193 176 3 100 +193 177 4 0 +193 178 4 0 +193 179 4 0 +193 180 3 100 +193 181 3 100 +193 182 3 100 +193 197 2 100 +193 198 2 100 +193 199 2 100 +193 203 1 0 +193 204 1 0 +193 205 6 0 +193 206 6 0 +193 207 6 0 +193 208 6 0 +193 209 6 0 +193 210 6 0 +193 211 6 0 +193 223 4 0 +193 224 4 0 +193 225 4 0 +193 226 4 0 +193 227 4 0 +193 228 4 0 +193 229 4 0 +193 230 4 0 +193 232 4 0 +193 242 4 0 +193 243 4 0 +193 244 4 0 +193 245 4 0 +193 246 4 0 +193 306 1 0 +193 307 1 0 +193 308 1 0 +193 309 1 0 +193 310 1 0 +193 311 1 0 +193 312 1 0 +193 313 1 0 +193 314 1 0 +193 315 1 0 +193 316 1 0 +193 317 1 0 +193 318 1 0 +194 69 3 100 +194 70 3 100 +194 71 3 100 +194 72 3 100 +194 73 3 100 +194 74 3 100 +194 79 1 0 +194 80 1 0 +194 81 1 0 +194 86 1 0 +194 87 1 0 +194 88 1 0 +194 89 1 0 +194 90 1 0 +194 91 1 0 +194 98 1 0 +194 99 1 0 +194 100 1 0 +194 101 1 0 +194 109 3 100 +194 110 3 100 +194 111 3 100 +194 145 3 100 +194 146 3 100 +194 147 3 100 +194 148 3 100 +194 149 3 100 +194 150 3 100 +194 151 3 100 +194 152 3 100 +194 153 3 100 +194 154 3 100 +194 155 3 100 +194 156 3 100 +194 157 3 100 +194 158 3 100 +194 159 3 100 +194 160 3 100 +194 161 3 100 +194 162 3 100 +194 163 3 100 +194 168 2 100 +194 169 2 100 +194 172 3 100 +194 173 3 100 +194 174 3 100 +194 175 3 100 +194 176 3 100 +194 177 4 0 +194 178 4 0 +194 179 4 0 +194 182 3 100 +194 197 2 100 +194 198 2 100 +194 199 2 100 +194 203 1 0 +194 204 1 0 +194 205 6 0 +194 206 6 0 +194 207 6 0 +194 208 6 0 +194 209 6 0 +194 210 6 0 +194 211 6 0 +194 223 4 0 +194 224 4 0 +194 225 4 0 +194 226 4 0 +194 227 4 0 +194 228 4 0 +194 229 4 0 +194 230 4 0 +194 231 4 0 +194 232 4 0 +194 233 4 0 +194 242 4 0 +194 243 4 0 +194 244 4 0 +194 245 4 0 +194 246 4 0 +194 306 1 0 +194 307 1 0 +194 308 1 0 +194 309 1 0 +194 310 1 0 +194 311 1 0 +194 312 1 0 +194 313 1 0 +194 314 1 0 +194 315 1 0 +194 316 1 0 +194 317 1 0 +194 318 1 0 +195 69 3 100 +195 70 3 100 +195 71 3 100 +195 72 3 100 +195 73 3 100 +195 79 1 0 +195 80 1 0 +195 81 1 0 +195 82 1 0 +195 83 1 0 +195 84 1 0 +195 85 1 0 +195 86 1 0 +195 87 1 0 +195 88 1 0 +195 89 1 0 +195 90 1 0 +195 91 1 0 +195 98 1 0 +195 99 1 0 +195 100 1 0 +195 101 1 0 +195 109 3 100 +195 110 3 100 +195 111 3 100 +195 143 3 100 +195 144 3 100 +195 145 3 100 +195 146 3 100 +195 147 3 100 +195 148 3 100 +195 149 3 100 +195 150 3 100 +195 151 3 100 +195 152 3 100 +195 153 3 100 +195 154 3 100 +195 155 3 100 +195 177 4 0 +195 178 4 0 +195 179 4 0 +195 197 2 100 +195 198 2 100 +195 199 2 100 +195 203 1 0 +195 204 1 0 +195 205 6 0 +195 206 6 0 +195 207 6 0 +195 208 6 0 +195 209 6 0 +195 210 6 0 +195 211 6 0 +195 223 4 0 +195 224 4 0 +195 225 4 0 +195 226 4 0 +195 227 4 0 +195 228 4 0 +195 229 4 0 +195 230 4 0 +195 231 4 0 +195 232 4 0 +195 233 4 0 +195 234 4 0 +195 235 4 0 +195 236 4 0 +195 237 4 0 +195 238 4 0 +195 239 4 0 +195 240 4 0 +195 241 4 0 +195 242 4 0 +195 243 4 0 +195 244 4 0 +195 245 4 0 +195 246 4 0 +195 306 1 0 +195 307 1 0 +195 308 1 0 +195 309 1 0 +195 310 1 0 +195 311 1 0 +195 312 1 0 +195 313 1 0 +195 314 1 0 +195 315 1 0 +195 316 1 0 +195 317 1 0 +195 318 1 0 +196 69 3 100 +196 70 3 100 +196 71 3 100 +196 72 3 100 +196 73 3 100 +196 79 1 0 +196 80 1 0 +196 81 1 0 +196 82 1 0 +196 83 1 0 +196 84 1 0 +196 85 1 0 +196 86 1 0 +196 87 1 0 +196 88 1 0 +196 98 1 0 +196 99 1 0 +196 100 1 0 +196 101 1 0 +196 108 3 100 +196 109 3 100 +196 110 3 100 +196 111 3 100 +196 143 3 100 +196 144 3 100 +196 145 3 100 +196 146 3 100 +196 147 3 100 +196 148 3 100 +196 149 3 100 +196 150 3 100 +196 151 3 100 +196 152 3 100 +196 153 3 100 +196 154 3 100 +196 155 3 100 +196 177 4 0 +196 178 4 0 +196 179 4 0 +196 203 1 0 +196 204 1 0 +196 205 6 0 +196 206 6 0 +196 207 6 0 +196 208 6 0 +196 209 6 0 +196 210 6 0 +196 211 6 0 +196 223 4 0 +196 224 4 0 +196 225 4 0 +196 226 4 0 +196 227 4 0 +196 228 4 0 +196 229 4 0 +196 230 4 0 +196 231 4 0 +196 232 4 0 +196 233 4 0 +196 234 4 0 +196 235 4 0 +196 236 4 0 +196 237 4 0 +196 238 4 0 +196 239 4 0 +196 240 4 0 +196 241 4 0 +196 242 4 0 +196 243 4 0 +196 244 4 0 +196 245 4 0 +196 246 4 0 +196 306 1 0 +196 307 1 0 +196 308 1 0 +196 309 1 0 +196 310 1 0 +196 311 1 0 +196 312 1 0 +196 313 1 0 +196 314 1 0 +196 315 1 0 +196 316 1 0 +196 317 1 0 +196 318 1 0 +197 69 3 100 +197 70 3 100 +197 71 3 100 +197 72 3 100 +197 73 3 100 +197 79 1 0 +197 80 1 0 +197 81 1 0 +197 82 1 0 +197 83 1 0 +197 84 1 0 +197 85 1 0 +197 86 1 0 +197 87 1 0 +197 98 1 0 +197 99 1 0 +197 100 1 0 +197 107 3 100 +197 108 3 100 +197 109 3 100 +197 110 3 100 +197 143 3 100 +197 144 3 100 +197 145 3 100 +197 146 3 100 +197 147 3 100 +197 148 3 100 +197 149 3 100 +197 150 3 100 +197 151 3 100 +197 152 3 100 +197 153 3 100 +197 154 3 100 +197 167 1 0 +197 175 1 0 +197 176 1 0 +197 177 4 0 +197 178 4 0 +197 179 4 0 +197 184 1 0 +197 185 1 0 +197 203 1 0 +197 204 1 0 +197 205 6 0 +197 206 6 0 +197 207 6 0 +197 208 6 0 +197 209 6 0 +197 210 6 0 +197 211 6 0 +197 223 4 0 +197 224 4 0 +197 225 4 0 +197 226 4 0 +197 227 4 0 +197 228 4 0 +197 229 4 0 +197 230 4 0 +197 231 4 0 +197 232 4 0 +197 233 4 0 +197 234 4 0 +197 235 4 0 +197 236 4 0 +197 237 4 0 +197 238 4 0 +197 239 4 0 +197 240 4 0 +197 241 4 0 +197 242 4 0 +197 243 4 0 +197 306 1 0 +197 307 1 0 +197 308 1 0 +197 309 1 0 +197 310 1 0 +197 311 1 0 +197 312 1 0 +197 313 1 0 +197 314 1 0 +197 315 1 0 +197 316 1 0 +197 317 1 0 +197 318 1 0 +198 69 3 100 +198 70 3 100 +198 71 3 100 +198 72 3 100 +198 73 3 100 +198 82 1 0 +198 83 1 0 +198 84 1 0 +198 98 1 0 +198 99 1 0 +198 100 1 0 +198 107 3 100 +198 108 3 100 +198 109 3 100 +198 110 3 100 +198 142 3 100 +198 143 3 100 +198 144 3 100 +198 145 3 100 +198 146 3 100 +198 147 3 100 +198 148 3 100 +198 149 3 100 +198 150 3 100 +198 151 3 100 +198 152 3 100 +198 153 3 100 +198 167 1 0 +198 173 1 0 +198 174 1 0 +198 175 1 0 +198 176 1 0 +198 177 4 0 +198 178 4 0 +198 179 4 0 +198 184 1 0 +198 185 1 0 +198 203 1 0 +198 204 1 0 +198 205 6 0 +198 206 6 0 +198 207 6 0 +198 208 6 0 +198 209 6 0 +198 210 6 0 +198 211 6 0 +198 223 4 0 +198 224 4 0 +198 225 4 0 +198 226 4 0 +198 227 4 0 +198 228 4 0 +198 229 4 0 +198 230 4 0 +198 231 4 0 +198 232 4 0 +198 233 4 0 +198 234 4 0 +198 235 4 0 +198 236 4 0 +198 237 4 0 +198 238 4 0 +198 239 4 0 +198 240 4 0 +198 241 4 0 +198 242 4 0 +198 243 4 0 +198 306 1 0 +198 307 1 0 +198 308 1 0 +198 309 1 0 +198 310 1 0 +198 311 1 0 +198 312 1 0 +198 313 1 0 +198 314 1 0 +198 315 1 0 +198 316 1 0 +198 317 1 0 +198 318 1 0 +199 69 3 100 +199 70 3 100 +199 71 3 100 +199 72 3 100 +199 73 3 100 +199 97 1 0 +199 98 1 0 +199 99 1 0 +199 100 1 0 +199 107 3 100 +199 108 3 100 +199 109 3 100 +199 142 3 100 +199 143 3 100 +199 144 3 100 +199 145 3 100 +199 146 3 100 +199 147 3 100 +199 148 3 100 +199 149 3 100 +199 165 1 0 +199 166 1 0 +199 167 1 0 +199 168 1 0 +199 169 1 0 +199 170 1 0 +199 171 1 0 +199 172 1 0 +199 173 1 0 +199 174 1 0 +199 175 1 0 +199 176 1 0 +199 177 4 0 +199 178 4 0 +199 179 4 0 +199 184 1 0 +199 185 1 0 +199 223 4 0 +199 224 4 0 +199 225 4 0 +199 226 4 0 +199 227 4 0 +199 228 4 0 +199 229 4 0 +199 230 4 0 +199 231 4 0 +199 232 4 0 +199 233 4 0 +199 234 4 0 +199 235 4 0 +199 236 4 0 +199 237 4 0 +199 306 1 0 +199 307 1 0 +199 308 1 0 +199 309 1 0 +199 310 1 0 +199 311 1 0 +199 312 1 0 +199 313 1 0 +199 314 1 0 +199 315 1 0 +199 316 1 0 +199 317 1 0 +199 318 1 0 +200 69 3 100 +200 70 3 100 +200 71 3 100 +200 72 3 100 +200 73 3 100 +200 97 1 0 +200 98 1 0 +200 99 1 0 +200 100 1 0 +200 107 3 100 +200 108 3 100 +200 109 3 100 +200 140 3 100 +200 141 3 100 +200 142 3 100 +200 143 3 100 +200 144 3 100 +200 145 3 100 +200 146 3 100 +200 147 3 100 +200 157 2 100 +200 165 1 0 +200 169 1 0 +200 170 1 0 +200 171 1 0 +200 172 1 0 +200 173 1 0 +200 174 1 0 +200 175 1 0 +200 176 1 0 +200 177 4 0 +200 178 4 0 +200 179 4 0 +200 184 1 0 +200 185 1 0 +200 199 5 0 +200 201 5 0 +200 227 4 0 +200 228 4 0 +200 229 4 0 +200 230 4 0 +200 231 4 0 +200 232 4 0 +200 233 4 0 +200 234 4 0 +200 235 4 0 +200 236 4 0 +200 237 4 0 +200 306 1 0 +200 307 1 0 +200 308 1 0 +200 309 1 0 +200 310 1 0 +200 311 1 0 +200 312 1 0 +200 313 1 0 +200 314 1 0 +200 315 1 0 +200 316 1 0 +200 317 1 0 +200 318 1 0 +201 69 3 100 +201 70 3 100 +201 71 3 100 +201 72 3 100 +201 73 3 100 +201 97 1 0 +201 98 1 0 +201 99 1 0 +201 100 1 0 +201 106 3 100 +201 107 3 100 +201 108 3 100 +201 109 3 100 +201 138 3 100 +201 139 3 100 +201 140 3 100 +201 141 3 100 +201 142 3 100 +201 143 3 100 +201 144 3 100 +201 145 3 100 +201 156 2 100 +201 157 2 100 +201 169 1 0 +201 170 1 0 +201 171 1 0 +201 172 1 0 +201 173 1 0 +201 174 1 0 +201 175 1 0 +201 178 4 0 +201 183 1 0 +201 184 1 0 +201 185 1 0 +201 193 5 0 +201 197 1 0 +201 198 1 0 +201 199 5 0 +201 200 5 0 +201 201 5 0 +201 202 5 0 +201 203 5 0 +201 204 5 0 +201 226 4 0 +201 227 4 0 +201 228 4 0 +201 230 4 0 +201 306 1 0 +201 307 1 0 +201 308 1 0 +201 309 1 0 +201 310 1 0 +201 311 1 0 +201 312 1 0 +201 313 1 0 +201 314 1 0 +201 315 1 0 +201 316 1 0 +201 317 1 0 +201 318 1 0 +202 69 3 100 +202 70 3 100 +202 71 3 100 +202 72 3 100 +202 73 3 100 +202 95 1 0 +202 96 1 0 +202 97 1 0 +202 98 1 0 +202 99 1 0 +202 106 3 100 +202 107 3 100 +202 108 3 100 +202 138 3 100 +202 139 3 100 +202 140 3 100 +202 141 3 100 +202 142 3 100 +202 143 3 100 +202 144 3 100 +202 145 3 100 +202 178 4 0 +202 182 1 0 +202 183 1 0 +202 184 1 0 +202 185 3 100 +202 186 3 100 +202 190 5 0 +202 191 5 0 +202 192 5 0 +202 193 5 0 +202 194 5 0 +202 195 5 0 +202 196 5 0 +202 197 1 0 +202 198 1 0 +202 199 5 0 +202 200 5 0 +202 201 5 0 +202 202 5 0 +202 203 5 0 +202 204 5 0 +203 69 3 100 +203 70 3 100 +203 71 3 100 +203 72 3 100 +203 73 3 100 +203 94 1 0 +203 95 1 0 +203 96 1 0 +203 97 1 0 +203 98 1 0 +203 99 1 0 +203 100 2 100 +203 106 3 100 +203 107 3 100 +203 108 3 100 +203 129 2 100 +203 138 3 100 +203 139 3 100 +203 140 3 100 +203 141 3 100 +203 142 3 100 +203 143 3 100 +203 178 4 0 +203 182 1 0 +203 183 1 0 +203 184 1 0 +203 185 3 100 +203 186 3 100 +203 190 5 0 +203 191 5 0 +203 196 5 0 +203 197 1 0 +203 198 1 0 +203 199 5 0 +203 200 5 0 +203 201 5 0 +203 202 5 0 +203 203 5 0 +203 204 5 0 +203 205 5 0 +203 206 5 0 +204 69 3 100 +204 70 3 100 +204 71 3 100 +204 72 3 100 +204 73 3 100 +204 92 1 0 +204 93 1 0 +204 94 1 0 +204 95 1 0 +204 96 1 0 +204 97 1 0 +204 98 1 0 +204 106 3 100 +204 107 3 100 +204 108 3 100 +204 138 3 100 +204 139 3 100 +204 140 3 100 +204 141 3 100 +204 149 1 0 +204 150 1 0 +204 151 1 0 +204 152 1 0 +204 153 1 0 +204 154 1 0 +204 155 1 0 +204 156 1 0 +204 157 1 0 +204 165 1 0 +204 166 1 0 +204 167 1 0 +204 168 1 0 +204 169 1 0 +204 170 1 0 +204 171 1 0 +204 177 4 0 +204 178 4 0 +204 179 4 0 +204 180 4 0 +204 181 4 0 +204 182 1 0 +204 183 1 0 +204 184 1 0 +204 185 3 100 +204 190 5 0 +204 195 2 100 +204 197 1 0 +204 198 1 0 +204 199 5 0 +204 200 5 0 +204 201 5 0 +204 202 5 0 +204 203 5 0 +204 204 5 0 +204 205 5 0 +204 206 5 0 +205 69 3 100 +205 70 3 100 +205 71 3 100 +205 72 3 100 +205 73 3 100 +205 92 1 0 +205 93 1 0 +205 94 1 0 +205 95 1 0 +205 96 1 0 +205 105 3 100 +205 106 3 100 +205 107 3 100 +205 108 3 100 +205 134 3 100 +205 135 3 100 +205 136 3 100 +205 137 3 100 +205 138 3 100 +205 139 3 100 +205 140 3 100 +205 141 3 100 +205 148 1 0 +205 149 1 0 +205 150 1 0 +205 151 1 0 +205 152 1 0 +205 153 1 0 +205 154 1 0 +205 155 1 0 +205 156 1 0 +205 157 1 0 +205 158 1 0 +205 165 1 0 +205 166 1 0 +205 167 1 0 +205 168 1 0 +205 169 1 0 +205 170 1 0 +205 171 1 0 +205 172 1 0 +205 173 1 0 +205 183 1 0 +205 184 1 0 +205 185 3 100 +205 186 3 100 +205 192 2 100 +205 193 2 100 +205 195 2 100 +205 197 1 0 +205 198 1 0 +205 199 5 0 +205 200 5 0 +205 201 5 0 +205 202 5 0 +205 203 5 0 +205 204 5 0 +206 69 3 100 +206 70 3 100 +206 71 3 100 +206 72 3 100 +206 73 3 100 +206 92 1 0 +206 93 1 0 +206 94 1 0 +206 95 1 0 +206 106 3 100 +206 107 3 100 +206 108 3 100 +206 134 3 100 +206 135 3 100 +206 136 3 100 +206 137 3 100 +206 138 3 100 +206 139 3 100 +206 147 1 0 +206 148 1 0 +206 149 1 0 +206 150 1 0 +206 151 1 0 +206 152 1 0 +206 153 1 0 +206 154 1 0 +206 155 1 0 +206 156 1 0 +206 157 1 0 +206 158 1 0 +206 165 1 0 +206 166 1 0 +206 167 1 0 +206 168 1 0 +206 169 1 0 +206 170 1 0 +206 171 1 0 +206 172 1 0 +206 173 1 0 +206 174 1 0 +206 183 1 0 +206 184 1 0 +206 185 3 100 +206 186 3 100 +206 192 2 100 +206 198 1 0 +206 199 5 0 +206 200 5 0 +206 201 5 0 +206 202 5 0 +206 203 5 0 +206 204 5 0 +207 69 3 100 +207 70 3 100 +207 71 3 100 +207 72 3 100 +207 73 3 100 +207 89 1 0 +207 90 1 0 +207 91 1 0 +207 92 1 0 +207 93 1 0 +207 94 1 0 +207 106 3 100 +207 107 3 100 +207 108 3 100 +207 109 3 100 +207 134 3 100 +207 135 3 100 +207 136 3 100 +207 137 3 100 +207 147 1 0 +207 148 1 0 +207 149 1 0 +207 150 1 0 +207 151 1 0 +207 152 1 0 +207 153 1 0 +207 154 1 0 +207 155 1 0 +207 156 1 0 +207 157 1 0 +207 158 1 0 +207 165 1 0 +207 166 1 0 +207 167 1 0 +207 168 1 0 +207 169 1 0 +207 170 1 0 +207 171 1 0 +207 172 1 0 +207 173 1 0 +207 174 1 0 +207 175 1 0 +207 183 1 0 +207 184 1 0 +207 185 3 100 +207 186 3 100 +207 189 5 0 +207 198 1 0 +207 199 5 0 +207 200 5 0 +207 201 5 0 +207 202 5 0 +207 203 5 0 +207 204 5 0 +208 69 3 100 +208 70 3 100 +208 71 3 100 +208 72 3 100 +208 73 3 100 +208 87 1 0 +208 88 1 0 +208 89 1 0 +208 90 1 0 +208 91 1 0 +208 92 1 0 +208 93 1 0 +208 94 1 0 +208 100 2 100 +208 101 2 100 +208 106 3 100 +208 107 3 100 +208 108 3 100 +208 109 3 100 +208 110 3 100 +208 129 3 100 +208 130 3 100 +208 131 3 100 +208 132 3 100 +208 133 3 100 +208 134 3 100 +208 135 3 100 +208 136 3 100 +208 145 1 0 +208 146 1 0 +208 147 1 0 +208 148 1 0 +208 149 1 0 +208 150 1 0 +208 156 1 0 +208 157 1 0 +208 158 1 0 +208 159 1 0 +208 165 1 0 +208 166 1 0 +208 167 1 0 +208 168 1 0 +208 169 1 0 +208 170 1 0 +208 171 1 0 +208 172 1 0 +208 173 1 0 +208 174 1 0 +208 175 1 0 +208 180 3 100 +208 181 3 100 +208 182 3 100 +208 183 3 100 +208 184 3 100 +208 185 3 100 +208 186 3 100 +208 197 2 100 +208 198 1 0 +208 199 5 0 +208 200 5 0 +208 201 5 0 +208 202 5 0 +208 203 5 0 +208 204 5 0 +208 205 5 0 +208 206 5 0 +209 69 3 100 +209 70 3 100 +209 71 3 100 +209 72 3 100 +209 73 3 100 +209 86 1 0 +209 87 1 0 +209 88 1 0 +209 89 1 0 +209 90 1 0 +209 91 1 0 +209 100 2 100 +209 101 2 100 +209 107 3 100 +209 108 3 100 +209 109 3 100 +209 110 3 100 +209 128 3 100 +209 129 3 100 +209 130 3 100 +209 131 3 100 +209 132 3 100 +209 133 3 100 +209 134 3 100 +209 135 3 100 +209 136 3 100 +209 145 1 0 +209 146 1 0 +209 147 1 0 +209 148 1 0 +209 149 1 0 +209 156 1 0 +209 157 1 0 +209 158 1 0 +209 159 1 0 +209 172 1 0 +209 173 1 0 +209 174 1 0 +209 175 1 0 +209 179 3 100 +209 180 3 100 +209 181 3 100 +209 182 3 100 +209 183 3 100 +209 184 3 100 +209 185 1 0 +209 186 1 0 +209 187 1 0 +209 190 5 0 +209 193 2 100 +209 195 5 0 +209 198 1 0 +209 199 5 0 +209 200 5 0 +209 201 5 0 +209 202 5 0 +209 203 5 0 +209 204 5 0 +210 69 3 100 +210 70 3 100 +210 71 3 100 +210 72 3 100 +210 73 3 100 +210 85 1 0 +210 86 1 0 +210 87 1 0 +210 88 1 0 +210 89 1 0 +210 100 1 0 +210 101 1 0 +210 102 1 0 +210 107 3 100 +210 108 3 100 +210 109 3 100 +210 110 3 100 +210 128 3 100 +210 129 3 100 +210 130 3 100 +210 131 3 100 +210 132 3 100 +210 133 3 100 +210 134 3 100 +210 135 3 100 +210 143 1 0 +210 144 1 0 +210 145 1 0 +210 146 1 0 +210 147 1 0 +210 155 1 0 +210 156 1 0 +210 157 1 0 +210 158 1 0 +210 159 1 0 +210 179 3 100 +210 180 3 100 +210 181 3 100 +210 182 3 100 +210 183 3 100 +210 184 1 0 +210 185 1 0 +210 186 1 0 +210 187 1 0 +210 188 5 0 +210 189 5 0 +210 190 5 0 +210 191 5 0 +210 195 5 0 +210 198 1 0 +210 199 5 0 +210 200 5 0 +210 201 5 0 +210 202 5 0 +210 203 5 0 +210 204 5 0 +211 69 3 100 +211 70 3 100 +211 71 3 100 +211 72 3 100 +211 73 3 100 +211 85 1 0 +211 86 1 0 +211 87 1 0 +211 88 1 0 +211 100 1 0 +211 101 1 0 +211 102 1 0 +211 108 3 100 +211 109 3 100 +211 110 3 100 +211 111 3 100 +211 128 3 100 +211 129 3 100 +211 130 3 100 +211 131 3 100 +211 132 3 100 +211 133 3 100 +211 142 1 0 +211 143 1 0 +211 144 1 0 +211 145 1 0 +211 146 1 0 +211 147 1 0 +211 154 1 0 +211 155 1 0 +211 156 1 0 +211 157 1 0 +211 158 1 0 +211 159 1 0 +211 177 3 100 +211 178 3 100 +211 179 3 100 +211 180 3 100 +211 181 3 100 +211 182 3 100 +211 183 1 0 +211 184 1 0 +211 185 1 0 +211 186 5 0 +211 187 5 0 +211 188 5 0 +211 189 5 0 +211 190 5 0 +211 191 5 0 +211 195 5 0 +211 196 5 0 +211 197 5 0 +211 198 5 0 +211 199 5 0 +211 200 5 0 +211 201 5 0 +211 202 5 0 +211 203 5 0 +211 204 5 0 +212 69 3 100 +212 70 3 100 +212 71 3 100 +212 72 3 100 +212 73 3 100 +212 85 1 0 +212 86 1 0 +212 87 1 0 +212 90 1 0 +212 91 1 0 +212 92 1 0 +212 93 1 0 +212 94 1 0 +212 95 1 0 +212 96 1 0 +212 97 1 0 +212 98 1 0 +212 99 1 0 +212 100 1 0 +212 101 1 0 +212 102 1 0 +212 108 3 100 +212 109 3 100 +212 110 3 100 +212 111 3 100 +212 125 3 100 +212 126 3 100 +212 127 3 100 +212 128 3 100 +212 129 3 100 +212 130 3 100 +212 131 3 100 +212 132 3 100 +212 141 1 0 +212 142 1 0 +212 143 1 0 +212 144 1 0 +212 145 1 0 +212 154 1 0 +212 155 1 0 +212 156 1 0 +212 157 1 0 +212 158 1 0 +212 159 1 0 +212 163 2 100 +212 176 3 100 +212 177 3 100 +212 178 3 100 +212 179 3 100 +212 180 3 100 +212 182 1 0 +212 183 1 0 +212 184 1 0 +212 185 1 0 +212 186 1 0 +212 187 5 0 +212 188 5 0 +212 189 5 0 +212 194 5 0 +212 195 5 0 +212 197 5 0 +212 198 5 0 +212 199 5 0 +212 200 5 0 +212 201 5 0 +212 202 5 0 +213 73 3 100 +213 74 3 100 +213 84 1 0 +213 85 1 0 +213 86 1 0 +213 87 1 0 +213 90 1 0 +213 91 1 0 +213 92 1 0 +213 93 1 0 +213 94 1 0 +213 95 1 0 +213 96 1 0 +213 97 1 0 +213 98 1 0 +213 99 1 0 +213 100 1 0 +213 101 1 0 +213 102 1 0 +213 103 1 0 +213 110 3 100 +213 111 3 100 +213 112 3 100 +213 113 3 100 +213 123 3 100 +213 124 3 100 +213 125 3 100 +213 126 3 100 +213 127 3 100 +213 128 3 100 +213 129 3 100 +213 130 3 100 +213 131 3 100 +213 132 3 100 +213 140 1 0 +213 141 1 0 +213 142 1 0 +213 143 1 0 +213 144 1 0 +213 145 1 0 +213 147 2 100 +213 149 2 0 +213 150 2 0 +213 154 1 0 +213 155 1 0 +213 156 1 0 +213 157 1 0 +213 158 1 0 +213 159 1 0 +213 163 2 100 +213 164 2 100 +213 172 3 100 +213 173 3 100 +213 174 3 100 +213 176 3 100 +213 177 3 100 +213 178 3 100 +213 179 3 100 +213 180 3 100 +213 182 1 0 +213 183 1 0 +213 184 1 0 +213 185 1 0 +213 186 1 0 +213 187 5 0 +213 188 5 0 +213 189 5 0 +213 190 3 100 +213 194 5 0 +213 198 5 0 +213 199 5 0 +213 200 5 0 +213 201 5 0 +214 73 3 100 +214 74 3 100 +214 75 3 100 +214 82 1 0 +214 83 1 0 +214 84 1 0 +214 85 1 0 +214 86 1 0 +214 87 1 0 +214 88 1 0 +214 89 1 0 +214 90 1 0 +214 91 1 0 +214 92 1 0 +214 93 1 0 +214 94 1 0 +214 95 1 0 +214 96 1 0 +214 97 1 0 +214 98 1 0 +214 99 1 0 +214 100 1 0 +214 101 1 0 +214 102 1 0 +214 103 1 0 +214 104 1 0 +214 110 3 100 +214 111 3 100 +214 112 3 100 +214 113 3 100 +214 123 3 100 +214 124 3 100 +214 125 3 100 +214 126 3 100 +214 127 3 100 +214 128 3 100 +214 129 3 100 +214 138 1 0 +214 139 1 0 +214 140 1 0 +214 141 1 0 +214 142 1 0 +214 143 1 0 +214 144 1 0 +214 149 2 0 +214 150 2 0 +214 154 1 0 +214 155 1 0 +214 156 1 0 +214 157 1 0 +214 158 1 0 +214 163 2 100 +214 164 2 100 +214 168 3 100 +214 169 3 100 +214 170 3 100 +214 171 3 100 +214 172 3 100 +214 173 3 100 +214 174 3 100 +214 175 3 100 +214 176 3 100 +214 177 3 100 +214 178 3 100 +214 182 1 0 +214 183 1 0 +214 184 1 0 +214 185 1 0 +214 186 1 0 +214 187 1 0 +214 188 1 0 +214 189 1 0 +214 190 3 100 +214 191 3 100 +214 194 5 0 +214 196 5 0 +214 197 5 0 +214 198 5 0 +214 199 5 0 +214 200 5 0 +214 201 5 0 +215 73 3 100 +215 74 3 100 +215 75 3 100 +215 82 1 0 +215 83 1 0 +215 84 1 0 +215 85 1 0 +215 86 1 0 +215 87 1 0 +215 88 1 0 +215 89 1 0 +215 90 1 0 +215 91 1 0 +215 92 1 0 +215 93 1 0 +215 94 1 0 +215 95 1 0 +215 96 1 0 +215 97 1 0 +215 101 1 0 +215 102 1 0 +215 103 1 0 +215 104 1 0 +215 112 3 100 +215 113 3 100 +215 114 3 100 +215 123 3 100 +215 124 3 100 +215 125 3 100 +215 126 3 100 +215 127 3 100 +215 128 3 100 +215 138 1 0 +215 139 1 0 +215 140 1 0 +215 141 1 0 +215 142 1 0 +215 143 1 0 +215 145 2 100 +215 149 2 0 +215 150 2 0 +215 154 1 0 +215 155 1 0 +215 156 1 0 +215 157 1 0 +215 168 3 100 +215 169 3 100 +215 170 3 100 +215 171 3 100 +215 172 3 100 +215 173 3 100 +215 174 3 100 +215 175 3 100 +215 176 3 100 +215 177 3 100 +215 178 3 100 +215 183 1 0 +215 184 1 0 +215 185 1 0 +215 186 1 0 +215 187 1 0 +215 188 1 0 +215 189 1 0 +215 190 1 0 +215 191 3 100 +215 192 3 100 +215 193 5 0 +215 194 5 0 +215 195 5 0 +215 196 5 0 +215 197 5 0 +215 198 5 0 +215 199 5 0 +215 200 5 0 +215 201 5 0 +216 73 3 100 +216 74 3 100 +216 75 3 100 +216 82 1 0 +216 83 1 0 +216 84 1 0 +216 85 1 0 +216 86 1 0 +216 87 1 0 +216 88 1 0 +216 89 1 0 +216 90 1 0 +216 91 1 0 +216 92 1 0 +216 93 1 0 +216 94 1 0 +216 95 1 0 +216 96 1 0 +216 97 1 0 +216 101 1 0 +216 102 1 0 +216 103 1 0 +216 104 1 0 +216 112 3 100 +216 113 3 100 +216 114 3 100 +216 115 3 100 +216 116 3 100 +216 117 3 100 +216 118 3 100 +216 119 3 100 +216 120 3 100 +216 121 3 100 +216 122 3 100 +216 123 3 100 +216 124 3 100 +216 125 3 100 +216 126 3 100 +216 127 3 100 +216 137 1 0 +216 138 1 0 +216 139 1 0 +216 140 1 0 +216 141 1 0 +216 142 1 0 +216 145 1 0 +216 146 1 0 +216 147 1 0 +216 148 1 0 +216 149 1 0 +216 150 1 0 +216 154 1 0 +216 155 1 0 +216 156 1 0 +216 168 3 100 +216 169 3 100 +216 170 3 100 +216 171 3 100 +216 172 3 100 +216 173 3 100 +216 174 3 100 +216 175 3 100 +216 176 3 100 +216 177 3 100 +216 184 1 0 +216 185 1 0 +216 186 1 0 +216 187 1 0 +216 188 1 0 +216 189 1 0 +216 190 1 0 +216 191 3 100 +216 192 3 100 +216 193 3 100 +216 194 5 0 +216 195 5 0 +216 198 5 0 +216 199 5 0 +216 200 5 0 +216 201 5 0 +217 73 3 100 +217 74 3 100 +217 75 3 100 +217 83 1 0 +217 84 1 0 +217 85 1 0 +217 86 1 0 +217 87 1 0 +217 88 1 0 +217 89 1 0 +217 90 1 0 +217 91 1 0 +217 92 1 0 +217 93 1 0 +217 94 1 0 +217 95 1 0 +217 96 1 0 +217 97 1 0 +217 98 1 0 +217 102 1 0 +217 103 1 0 +217 104 1 0 +217 105 1 0 +217 114 3 100 +217 115 3 100 +217 116 3 100 +217 117 3 100 +217 118 3 100 +217 119 3 100 +217 120 3 100 +217 121 3 100 +217 122 3 100 +217 123 3 100 +217 124 3 100 +217 125 3 100 +217 137 1 0 +217 138 1 0 +217 139 1 0 +217 140 1 0 +217 141 1 0 +217 142 1 0 +217 143 1 0 +217 144 1 0 +217 145 1 0 +217 146 1 0 +217 147 1 0 +217 148 1 0 +217 149 1 0 +217 150 1 0 +217 151 1 0 +217 152 1 0 +217 153 1 0 +217 154 1 0 +217 155 1 0 +217 156 1 0 +217 168 3 100 +217 184 1 0 +217 185 1 0 +217 186 1 0 +217 187 1 0 +217 188 1 0 +217 189 1 0 +217 190 1 0 +217 191 1 0 +217 192 1 0 +217 193 3 100 +218 73 3 100 +218 74 3 100 +218 75 3 100 +218 83 1 0 +218 84 1 0 +218 85 1 0 +218 86 1 0 +218 87 1 0 +218 88 1 0 +218 89 1 0 +218 90 1 0 +218 91 1 0 +218 92 1 0 +218 93 1 0 +218 94 1 0 +218 95 1 0 +218 96 1 0 +218 97 1 0 +218 98 1 0 +218 102 1 0 +218 103 1 0 +218 104 1 0 +218 105 1 0 +218 106 1 0 +218 115 3 100 +218 116 3 100 +218 117 3 100 +218 118 3 100 +218 119 3 100 +218 120 3 100 +218 121 3 100 +218 122 3 100 +218 123 3 100 +218 137 1 0 +218 138 1 0 +218 139 1 0 +218 140 1 0 +218 141 1 0 +218 142 1 0 +218 143 1 0 +218 144 1 0 +218 145 1 0 +218 146 1 0 +218 147 1 0 +218 148 1 0 +218 149 1 0 +218 150 1 0 +218 151 1 0 +218 152 1 0 +218 153 1 0 +218 154 1 0 +218 155 1 0 +218 156 1 0 +218 168 3 100 +218 186 1 0 +218 187 1 0 +218 188 1 0 +218 189 1 0 +218 190 1 0 +218 191 1 0 +218 192 1 0 +218 193 3 100 +219 73 3 100 +219 74 3 100 +219 75 3 100 +219 83 1 0 +219 84 1 0 +219 85 1 0 +219 86 1 0 +219 87 1 0 +219 88 1 0 +219 89 1 0 +219 90 1 0 +219 91 1 0 +219 92 1 0 +219 93 1 0 +219 94 1 0 +219 95 1 0 +219 96 1 0 +219 97 1 0 +219 98 1 0 +219 102 1 0 +219 103 1 0 +219 104 1 0 +219 105 1 0 +219 106 1 0 +219 107 1 0 +219 115 3 100 +219 116 3 100 +219 117 3 100 +219 118 3 100 +219 119 3 100 +219 120 3 100 +219 121 3 100 +219 122 3 100 +219 138 1 0 +219 139 1 0 +219 140 1 0 +219 141 1 0 +219 142 1 0 +219 143 1 0 +219 144 1 0 +219 145 1 0 +219 146 1 0 +219 147 1 0 +219 148 1 0 +219 149 1 0 +219 150 1 0 +219 151 1 0 +219 152 1 0 +219 153 1 0 +219 154 1 0 +219 155 1 0 +219 167 3 100 +219 168 3 100 +219 186 1 0 +219 187 1 0 +219 188 1 0 +219 189 1 0 +219 190 1 0 +219 191 1 0 +219 192 1 0 +219 193 1 0 +220 73 3 100 +220 74 3 100 +220 75 3 100 +220 83 1 0 +220 84 1 0 +220 85 1 0 +220 86 1 0 +220 87 1 0 +220 88 1 0 +220 89 1 0 +220 90 1 0 +220 91 1 0 +220 92 1 0 +220 93 1 0 +220 94 1 0 +220 95 1 0 +220 96 1 0 +220 97 1 0 +220 98 1 0 +220 103 1 0 +220 104 1 0 +220 105 1 0 +220 106 1 0 +220 107 1 0 +220 117 3 100 +220 118 3 100 +220 119 3 100 +220 138 1 0 +220 139 1 0 +220 140 1 0 +220 141 1 0 +220 142 1 0 +220 151 1 0 +220 152 1 0 +220 153 1 0 +220 165 3 100 +220 166 3 100 +220 167 3 100 +220 168 3 100 +220 186 1 0 +220 187 1 0 +220 188 1 0 +220 189 1 0 +220 190 1 0 +220 191 1 0 +220 192 1 0 +220 193 3 100 +221 70 3 100 +221 71 3 100 +221 72 3 100 +221 73 3 100 +221 74 3 100 +221 76 1 0 +221 77 1 0 +221 78 1 0 +221 79 1 0 +221 80 1 0 +221 81 1 0 +221 82 1 0 +221 83 1 0 +221 84 1 0 +221 85 1 0 +221 86 1 0 +221 87 1 0 +221 88 1 0 +221 89 2 100 +221 90 2 100 +221 91 2 100 +221 92 1 0 +221 93 1 0 +221 94 1 0 +221 95 1 0 +221 96 1 0 +221 97 1 0 +221 98 1 0 +221 99 1 0 +221 100 1 0 +221 101 1 0 +221 102 1 0 +221 103 1 0 +221 104 1 0 +221 105 1 0 +221 106 1 0 +221 107 1 0 +221 125 2 100 +221 138 1 0 +221 139 1 0 +221 140 1 0 +221 165 3 100 +221 166 2 100 +221 167 3 100 +221 168 3 100 +221 186 1 0 +221 187 1 0 +221 188 1 0 +221 189 1 0 +221 190 1 0 +221 191 1 0 +221 192 1 0 +221 193 3 100 +222 70 3 100 +222 71 3 100 +222 72 3 100 +222 73 3 100 +222 74 3 100 +222 76 1 0 +222 77 1 0 +222 78 1 0 +222 79 1 0 +222 80 1 0 +222 81 1 0 +222 82 1 0 +222 83 1 0 +222 84 1 0 +222 85 1 0 +222 86 1 0 +222 87 1 0 +222 88 1 0 +222 89 1 0 +222 90 1 0 +222 91 1 0 +222 92 1 0 +222 93 1 0 +222 94 1 0 +222 95 1 0 +222 96 1 0 +222 97 1 0 +222 98 1 0 +222 99 1 0 +222 100 1 0 +222 101 1 0 +222 102 1 0 +222 103 1 0 +222 104 1 0 +222 105 1 0 +222 106 1 0 +222 107 1 0 +222 108 1 0 +222 109 1 0 +222 110 1 0 +222 111 1 0 +222 112 1 0 +222 125 2 100 +222 139 2 100 +222 165 3 100 +222 166 2 0 +222 167 3 100 +222 168 3 100 +222 186 1 0 +222 187 1 0 +222 188 1 0 +222 189 1 0 +222 190 1 0 +222 191 1 0 +222 192 1 0 +222 193 3 100 +223 70 3 100 +223 71 3 100 +223 72 3 100 +223 73 3 100 +223 74 3 100 +223 76 1 0 +223 77 1 0 +223 78 1 0 +223 79 1 0 +223 80 1 0 +223 81 1 0 +223 82 1 0 +223 83 1 0 +223 84 1 0 +223 85 1 0 +223 86 1 0 +223 87 1 0 +223 88 1 0 +223 89 1 0 +223 90 1 0 +223 91 1 0 +223 92 1 0 +223 93 1 0 +223 94 1 0 +223 95 1 0 +223 96 1 0 +223 97 1 0 +223 98 1 0 +223 99 1 0 +223 100 1 0 +223 101 1 0 +223 102 1 0 +223 103 1 0 +223 104 1 0 +223 105 1 0 +223 106 1 0 +223 107 1 0 +223 108 1 0 +223 109 1 0 +223 110 1 0 +223 111 1 0 +223 112 1 0 +223 165 3 100 +223 166 2 100 +223 167 3 100 +223 168 3 100 +223 193 1 0 +224 70 3 100 +224 71 3 100 +224 72 3 100 +224 73 3 100 +224 74 3 100 +224 76 1 0 +224 77 1 0 +224 78 5 0 +224 79 1 0 +224 80 1 0 +224 81 1 0 +224 82 1 0 +224 83 5 0 +224 84 5 0 +224 85 5 0 +224 86 5 0 +224 87 1 0 +224 88 1 0 +224 89 1 0 +224 90 1 0 +224 91 1 0 +224 92 5 0 +224 93 5 0 +224 94 5 0 +224 95 1 0 +224 96 1 0 +224 97 1 0 +224 98 1 0 +224 99 1 0 +224 100 1 0 +224 101 1 0 +224 102 1 0 +224 103 1 0 +224 104 1 0 +224 106 1 0 +224 107 1 0 +224 108 1 0 +224 109 1 0 +224 110 1 0 +224 111 1 0 +224 112 1 0 +224 163 1 0 +224 164 1 0 +224 165 3 100 +224 166 2 0 +224 167 2 100 +224 168 3 100 +225 70 3 100 +225 71 3 100 +225 72 3 100 +225 73 3 100 +225 76 1 0 +225 77 1 0 +225 78 1 0 +225 79 5 0 +225 80 1 0 +225 81 1 0 +225 82 5 0 +225 83 5 0 +225 84 5 0 +225 85 5 0 +225 86 5 0 +225 87 1 0 +225 88 1 0 +225 89 1 0 +225 90 1 0 +225 91 5 0 +225 92 5 0 +225 93 5 0 +225 94 5 0 +225 95 1 0 +225 96 1 0 +225 97 1 0 +225 98 5 0 +225 99 5 0 +225 100 1 0 +225 101 5 0 +225 102 1 0 +225 103 1 0 +225 104 1 0 +225 136 2 100 +225 163 1 0 +225 164 1 0 +225 165 3 100 +225 166 2 100 +225 167 2 100 +225 168 3 100 +226 68 3 100 +226 69 3 100 +226 70 3 100 +226 71 3 100 +226 72 3 100 +226 73 3 100 +226 76 1 0 +226 77 1 0 +226 78 1 0 +226 79 1 0 +226 80 1 0 +226 81 5 0 +226 82 1 0 +226 83 5 0 +226 84 5 0 +226 85 5 0 +226 86 5 0 +226 87 1 0 +226 88 1 0 +226 89 5 0 +226 90 5 0 +226 91 1 0 +226 92 1 0 +226 93 1 0 +226 94 5 0 +226 95 1 0 +226 96 1 0 +226 97 1 0 +226 98 1 0 +226 99 1 0 +226 100 5 0 +226 101 1 0 +226 102 1 0 +226 103 1 0 +226 104 1 0 +226 124 1 0 +226 125 1 0 +226 126 1 0 +226 127 1 0 +226 128 1 0 +226 129 1 0 +226 130 1 0 +226 131 1 0 +226 136 1 0 +226 137 1 0 +226 145 1 0 +226 146 1 0 +226 147 1 0 +226 148 1 0 +226 149 1 0 +226 150 1 0 +226 151 1 0 +226 163 1 0 +226 164 1 0 +226 165 1 0 +226 166 1 0 +226 167 3 100 +226 168 3 100 +227 68 3 100 +227 69 3 100 +227 70 3 100 +227 71 3 100 +227 72 3 100 +227 76 1 0 +227 77 1 0 +227 78 5 0 +227 79 1 0 +227 80 5 0 +227 81 5 0 +227 82 1 0 +227 83 1 0 +227 84 1 0 +227 85 1 0 +227 86 1 0 +227 87 1 0 +227 88 1 0 +227 89 1 0 +227 90 5 0 +227 91 5 0 +227 92 5 0 +227 93 5 0 +227 94 1 0 +227 95 1 0 +227 96 5 0 +227 97 5 0 +227 98 5 0 +227 99 5 0 +227 100 1 0 +227 101 1 0 +227 102 1 0 +227 103 1 0 +227 104 1 0 +227 114 2 100 +227 123 1 0 +227 124 1 0 +227 125 1 0 +227 126 1 0 +227 127 1 0 +227 128 1 0 +227 129 1 0 +227 130 1 0 +227 131 1 0 +227 132 1 0 +227 133 1 0 +227 136 1 0 +227 137 1 0 +227 138 1 0 +227 143 1 0 +227 144 1 0 +227 145 1 0 +227 146 1 0 +227 147 1 0 +227 148 1 0 +227 149 1 0 +227 150 1 0 +227 151 1 0 +227 152 1 0 +227 163 1 0 +227 164 1 0 +227 165 1 0 +227 166 1 0 +227 167 1 0 +227 168 1 0 +227 169 1 0 +227 170 1 0 +227 171 1 0 +228 68 3 100 +228 69 3 100 +228 70 3 100 +228 71 3 100 +228 76 1 0 +228 77 1 0 +228 78 1 0 +228 79 5 0 +228 80 5 0 +228 81 5 0 +228 82 5 0 +228 83 5 0 +228 84 1 0 +228 85 1 0 +228 86 1 0 +228 87 1 0 +228 88 1 0 +228 89 1 0 +228 90 1 0 +228 91 5 0 +228 92 5 0 +228 93 1 0 +228 94 1 0 +228 95 1 0 +228 96 5 0 +228 97 1 0 +228 98 1 0 +228 99 1 0 +228 100 5 0 +228 101 5 0 +228 102 1 0 +228 103 1 0 +228 104 1 0 +228 114 2 100 +228 115 1 0 +228 123 1 0 +228 124 1 0 +228 125 1 0 +228 126 1 0 +228 127 1 0 +228 128 1 0 +228 129 1 0 +228 130 1 0 +228 131 1 0 +228 132 1 0 +228 133 1 0 +228 134 1 0 +228 135 1 0 +228 136 1 0 +228 137 1 0 +228 138 1 0 +228 139 1 0 +228 140 1 0 +228 141 1 0 +228 142 1 0 +228 143 1 0 +228 144 1 0 +228 145 1 0 +228 146 1 0 +228 147 1 0 +228 148 1 0 +228 149 1 0 +228 164 1 0 +228 165 1 0 +228 166 1 0 +228 167 1 0 +228 168 1 0 +228 169 1 0 +228 170 1 0 +228 171 1 0 +229 68 3 100 +229 69 3 100 +229 70 3 100 +229 76 1 0 +229 77 1 0 +229 78 1 0 +229 79 1 0 +229 80 1 0 +229 81 5 0 +229 82 5 0 +229 83 5 0 +229 84 5 0 +229 85 1 0 +229 86 1 0 +229 87 1 0 +229 88 1 0 +229 89 1 0 +229 90 1 0 +229 91 5 0 +229 92 1 0 +229 93 1 0 +229 94 1 0 +229 95 1 0 +229 96 1 0 +229 97 1 0 +229 98 1 0 +229 99 5 0 +229 100 1 0 +229 101 1 0 +229 102 1 0 +229 103 1 0 +229 104 1 0 +229 114 1 0 +229 115 1 0 +229 116 1 0 +229 117 1 0 +229 118 1 0 +229 119 1 0 +229 120 1 0 +229 121 1 0 +229 122 1 0 +229 123 1 0 +229 124 1 0 +229 125 1 0 +229 126 1 0 +229 128 1 0 +229 129 1 0 +229 130 1 0 +229 131 1 0 +229 132 1 0 +229 133 1 0 +229 134 1 0 +229 135 1 0 +229 136 1 0 +229 137 1 0 +229 138 1 0 +229 139 1 0 +229 140 1 0 +229 141 1 0 +229 142 1 0 +229 143 1 0 +229 144 1 0 +229 145 1 0 +229 164 1 0 +229 165 1 0 +229 166 1 0 +229 167 1 0 +229 168 1 0 +229 169 1 0 +229 170 1 0 +229 171 1 0 +229 172 1 0 +230 68 3 100 +230 69 3 100 +230 70 3 100 +230 76 1 0 +230 77 1 0 +230 78 1 0 +230 79 1 0 +230 80 1 0 +230 81 5 0 +230 82 5 0 +230 83 5 0 +230 84 1 0 +230 85 1 0 +230 86 1 0 +230 87 1 0 +230 88 1 0 +230 89 1 0 +230 90 1 0 +230 91 1 0 +230 92 1 0 +230 93 1 0 +230 94 1 0 +230 95 1 0 +230 96 1 0 +230 97 1 0 +230 98 1 0 +230 99 1 0 +230 100 1 0 +230 101 1 0 +230 102 1 0 +230 103 1 0 +230 104 1 0 +230 113 1 0 +230 114 1 0 +230 115 1 0 +230 116 1 0 +230 117 1 0 +230 118 1 0 +230 119 1 0 +230 120 1 0 +230 121 1 0 +230 122 1 0 +230 129 1 0 +230 130 1 0 +230 131 1 0 +230 132 1 0 +230 134 1 0 +230 135 1 0 +230 136 1 0 +230 137 1 0 +230 138 1 0 +230 139 1 0 +230 140 1 0 +230 141 1 0 +230 142 1 0 +230 143 1 0 +230 164 3 100 +230 165 1 0 +230 166 1 0 +230 167 1 0 +230 168 1 0 +230 169 1 0 +230 170 1 0 +230 171 1 0 +230 172 1 0 +231 66 3 100 +231 67 3 100 +231 68 3 100 +231 69 3 100 +231 70 3 100 +231 77 1 0 +231 78 1 0 +231 79 1 0 +231 80 1 0 +231 81 1 0 +231 82 1 0 +231 83 1 0 +231 84 1 0 +231 85 1 0 +231 86 1 0 +231 87 1 0 +231 88 1 0 +231 89 1 0 +231 90 1 0 +231 91 1 0 +231 92 1 0 +231 93 1 0 +231 94 1 0 +231 95 1 0 +231 96 1 0 +231 97 1 0 +231 98 1 0 +231 99 1 0 +231 100 1 0 +231 101 1 0 +231 102 1 0 +231 103 1 0 +231 104 1 0 +231 109 1 0 +231 110 1 0 +231 111 1 0 +231 112 1 0 +231 113 1 0 +231 114 1 0 +231 115 1 0 +231 116 1 0 +231 117 1 0 +231 118 1 0 +231 119 1 0 +231 120 1 0 +231 136 1 0 +231 137 1 0 +231 138 1 0 +231 139 1 0 +231 140 1 0 +231 164 3 100 +231 165 3 100 +231 166 3 100 +231 167 3 100 +231 168 3 100 +231 170 1 0 +231 171 1 0 +231 172 1 0 +231 173 1 0 +231 174 1 0 +231 175 1 0 +231 176 1 0 +231 177 1 0 +231 178 1 0 +232 66 3 100 +232 67 3 100 +232 68 3 100 +232 69 3 100 +232 70 3 100 +232 77 1 0 +232 78 1 0 +232 79 1 0 +232 80 1 0 +232 81 1 0 +232 82 1 0 +232 83 5 0 +232 84 1 0 +232 85 1 0 +232 86 1 0 +232 87 1 0 +232 88 1 0 +232 89 1 0 +232 90 1 0 +232 91 1 0 +232 92 1 0 +232 93 1 0 +232 94 1 0 +232 95 1 0 +232 96 1 0 +232 97 1 0 +232 98 1 0 +232 99 1 0 +232 100 1 0 +232 101 1 0 +232 102 1 0 +232 103 1 0 +232 104 1 0 +232 105 1 0 +232 106 1 0 +232 107 1 0 +232 108 1 0 +232 109 1 0 +232 110 1 0 +232 111 1 0 +232 112 1 0 +232 113 1 0 +232 115 1 0 +232 116 1 0 +232 117 1 0 +232 118 1 0 +232 136 1 0 +232 137 1 0 +232 138 1 0 +232 162 3 100 +232 163 3 100 +232 164 3 100 +232 165 3 100 +232 166 3 100 +232 167 3 100 +232 168 3 100 +232 173 1 0 +232 174 1 0 +232 175 1 0 +232 176 1 0 +232 177 1 0 +232 178 1 0 +233 66 3 100 +233 67 3 100 +233 68 3 100 +233 69 3 100 +233 70 3 100 +233 77 1 0 +233 78 1 0 +233 79 1 0 +233 80 1 0 +233 81 1 0 +233 82 1 0 +233 83 1 0 +233 84 1 0 +233 85 1 0 +233 86 1 0 +233 87 1 0 +233 88 1 0 +233 89 1 0 +233 90 1 0 +233 91 2 100 +233 92 2 100 +233 93 2 100 +233 94 1 0 +233 95 1 0 +233 96 1 0 +233 97 1 0 +233 98 1 0 +233 99 1 0 +233 100 1 0 +233 101 1 0 +233 102 1 0 +233 103 1 0 +233 104 1 0 +233 105 1 0 +233 106 1 0 +233 107 1 0 +233 108 1 0 +233 109 1 0 +233 110 1 0 +233 111 1 0 +233 112 1 0 +233 113 1 0 +233 114 1 0 +233 115 1 0 +233 116 1 0 +233 117 1 0 +233 118 1 0 +233 162 3 100 +233 163 3 100 +233 164 3 100 +233 165 3 100 +233 166 3 100 +233 167 3 100 +233 168 3 100 +233 173 1 0 +233 174 1 0 +233 175 1 0 +233 176 1 0 +233 177 1 0 +233 178 1 0 +233 180 1 0 +234 66 3 100 +234 67 3 100 +234 68 3 100 +234 69 3 100 +234 70 3 100 +234 77 1 0 +234 78 1 0 +234 79 1 0 +234 80 1 0 +234 81 1 0 +234 82 1 0 +234 83 1 0 +234 84 1 0 +234 85 1 0 +234 86 1 0 +234 87 1 0 +234 88 1 0 +234 89 1 0 +234 90 1 0 +234 91 2 100 +234 92 2 100 +234 93 2 100 +234 94 1 0 +234 95 1 0 +234 96 1 0 +234 97 1 0 +234 98 1 0 +234 99 1 0 +234 100 1 0 +234 101 1 0 +234 102 1 0 +234 103 1 0 +234 104 1 0 +234 105 1 0 +234 106 1 0 +234 107 1 0 +234 108 1 0 +234 109 1 0 +234 110 1 0 +234 114 1 0 +234 115 1 0 +234 116 1 0 +234 117 1 0 +234 125 1 0 +234 126 1 0 +234 127 1 0 +234 128 1 0 +234 129 1 0 +234 144 1 0 +234 145 1 0 +234 146 1 0 +234 162 3 100 +234 163 3 100 +234 164 3 100 +234 165 3 100 +234 166 3 100 +234 167 3 100 +234 168 3 100 +234 178 1 0 +234 179 1 0 +235 66 3 100 +235 67 3 100 +235 68 3 100 +235 69 3 100 +235 77 1 0 +235 78 1 0 +235 79 1 0 +235 80 1 0 +235 81 1 0 +235 82 1 0 +235 83 1 0 +235 84 1 0 +235 85 1 0 +235 86 1 0 +235 87 1 0 +235 88 1 0 +235 89 1 0 +235 90 1 0 +235 91 1 0 +235 92 1 0 +235 93 1 0 +235 94 1 0 +235 95 1 0 +235 96 1 0 +235 97 1 0 +235 98 1 0 +235 99 1 0 +235 100 1 0 +235 101 1 0 +235 102 1 0 +235 103 1 0 +235 104 1 0 +235 105 1 0 +235 106 1 0 +235 107 1 0 +235 108 1 0 +235 109 1 0 +235 110 1 0 +235 114 1 0 +235 115 1 0 +235 116 1 0 +235 117 1 0 +235 121 2 100 +235 125 1 0 +235 126 1 0 +235 127 1 0 +235 128 1 0 +235 129 1 0 +235 130 1 0 +235 131 1 0 +235 142 1 0 +235 143 1 0 +235 144 1 0 +235 145 1 0 +235 146 1 0 +235 161 3 100 +235 162 3 100 +235 163 3 100 +235 164 3 100 +235 165 3 100 +235 166 3 100 +235 178 1 0 +235 179 1 0 +235 180 1 0 +235 181 1 0 +236 66 3 100 +236 67 3 100 +236 68 3 100 +236 69 3 100 +236 77 1 0 +236 78 1 0 +236 79 1 0 +236 80 1 0 +236 81 1 0 +236 82 1 0 +236 83 1 0 +236 84 1 0 +236 85 1 0 +236 86 1 0 +236 87 1 0 +236 88 1 0 +236 89 1 0 +236 90 1 0 +236 91 1 0 +236 92 1 0 +236 93 1 0 +236 94 1 0 +236 95 1 0 +236 96 1 0 +236 97 1 0 +236 98 1 0 +236 99 1 0 +236 100 1 0 +236 101 1 0 +236 102 1 0 +236 103 1 0 +236 104 1 0 +236 125 1 0 +236 126 1 0 +236 127 1 0 +236 128 1 0 +236 129 1 0 +236 130 1 0 +236 131 1 0 +236 140 1 0 +236 141 1 0 +236 142 1 0 +236 143 1 0 +236 144 1 0 +236 145 1 0 +236 146 1 0 +236 160 3 100 +236 161 3 100 +236 162 3 100 +236 163 3 100 +236 164 3 100 +236 165 3 100 +236 166 3 100 +236 178 1 0 +236 179 1 0 +236 180 1 0 +236 181 1 0 +237 66 3 100 +237 67 3 100 +237 68 3 100 +237 69 3 100 +237 80 1 0 +237 81 1 0 +237 82 1 0 +237 83 1 0 +237 84 1 0 +237 85 1 0 +237 91 1 0 +237 92 1 0 +237 93 1 0 +237 94 1 0 +237 95 1 0 +237 96 1 0 +237 97 1 0 +237 98 1 0 +237 100 1 0 +237 101 1 0 +237 102 1 0 +237 128 1 0 +237 129 1 0 +237 130 1 0 +237 131 1 0 +237 132 1 0 +237 133 1 0 +237 134 1 0 +237 135 1 0 +237 136 1 0 +237 137 1 0 +237 138 1 0 +237 139 1 0 +237 140 1 0 +237 141 1 0 +237 142 1 0 +237 143 1 0 +237 144 1 0 +237 145 1 0 +237 146 1 0 +237 159 3 100 +237 160 3 100 +237 161 3 100 +237 162 3 100 +237 163 3 100 +237 164 3 100 +237 165 3 100 +237 166 3 100 +237 178 1 0 +237 179 1 0 +237 180 1 0 +237 181 1 0 +238 66 3 100 +238 67 3 100 +238 68 3 100 +238 69 3 100 +238 81 1 0 +238 82 1 0 +238 83 1 0 +238 84 1 0 +238 85 1 0 +238 89 1 0 +238 90 1 0 +238 91 1 0 +238 92 1 0 +238 93 1 0 +238 94 1 0 +238 95 1 0 +238 130 1 0 +238 131 1 0 +238 132 1 0 +238 133 1 0 +238 134 1 0 +238 135 1 0 +238 136 1 0 +238 137 1 0 +238 138 1 0 +238 139 1 0 +238 140 1 0 +238 141 1 0 +238 142 1 0 +238 143 1 0 +238 144 1 0 +238 157 3 100 +238 158 3 100 +238 159 3 100 +238 160 3 100 +238 161 3 100 +238 162 3 100 +238 163 3 100 +238 164 3 100 +238 165 3 100 +238 166 3 100 +238 178 1 0 +238 179 1 0 +238 180 1 0 +238 181 1 0 +239 64 3 100 +239 65 3 100 +239 66 3 100 +239 67 3 100 +239 68 3 100 +239 69 3 100 +239 83 1 0 +239 84 1 0 +239 85 1 0 +239 86 1 0 +239 87 1 0 +239 88 1 0 +239 89 1 0 +239 90 1 0 +239 91 1 0 +239 92 1 0 +239 93 1 0 +239 94 1 0 +239 130 1 0 +239 131 1 0 +239 132 1 0 +239 133 1 0 +239 134 1 0 +239 135 1 0 +239 136 1 0 +239 137 1 0 +239 138 1 0 +239 139 1 0 +239 140 1 0 +239 141 1 0 +239 155 3 100 +239 156 3 100 +239 157 3 100 +239 158 3 100 +239 159 3 100 +239 160 3 100 +239 161 3 100 +239 162 3 100 +239 163 3 100 +239 164 3 100 +239 165 3 100 +239 166 3 100 +239 181 1 0 +239 182 1 0 +239 183 1 0 +239 184 1 0 +239 185 1 0 +240 64 3 100 +240 65 3 100 +240 66 3 100 +240 67 3 100 +240 68 3 100 +240 69 3 100 +240 83 1 0 +240 84 1 0 +240 85 1 0 +240 86 1 0 +240 87 1 0 +240 88 1 0 +240 89 1 0 +240 90 1 0 +240 91 1 0 +240 92 1 0 +240 93 1 0 +240 154 3 100 +240 155 3 100 +240 156 3 100 +240 181 1 0 +240 182 1 0 +240 183 1 0 +240 184 1 0 +240 185 1 0 +241 64 3 100 +241 65 3 100 +241 66 3 100 +241 67 3 100 +241 68 3 100 +241 69 3 100 +241 84 1 0 +241 85 1 0 +241 86 1 0 +241 87 1 0 +241 88 1 0 +241 89 1 0 +241 90 1 0 +241 152 3 100 +241 153 3 100 +241 154 3 100 +241 155 3 100 +241 156 3 100 +241 181 1 0 +241 182 1 0 +241 183 1 0 +241 184 1 0 +241 185 1 0 +242 64 3 100 +242 65 3 100 +242 66 3 100 +242 67 3 100 +242 68 3 100 +242 69 3 100 +242 86 1 0 +242 87 1 0 +242 88 1 0 +242 150 3 100 +242 151 3 100 +242 152 3 100 +242 153 3 100 +242 154 3 100 +242 155 3 100 +242 156 3 100 +242 181 1 0 +242 182 1 0 +242 183 1 0 +242 184 1 0 +242 185 1 0 +243 64 3 100 +243 65 3 100 +243 66 3 100 +243 67 3 100 +243 68 3 100 +243 69 3 100 +243 149 3 100 +243 150 3 100 +243 151 3 100 +243 152 3 100 +243 153 3 100 +243 154 3 100 +243 155 3 100 +243 181 1 0 +243 182 1 0 +243 183 1 0 +243 184 1 0 +243 185 1 0 +244 64 3 100 +244 65 3 100 +244 66 3 100 +244 67 3 100 +244 68 3 100 +244 69 3 100 +244 70 3 100 +244 123 3 100 +244 129 3 100 +244 130 3 100 +244 131 3 100 +244 145 3 100 +244 146 3 100 +244 147 3 100 +244 148 3 100 +244 149 3 100 +244 150 3 100 +244 151 3 100 +244 152 3 100 +244 153 3 100 +244 154 3 100 +244 155 3 100 +244 181 1 0 +244 182 1 0 +244 183 1 0 +244 184 1 0 +245 64 3 100 +245 65 3 100 +245 66 3 100 +245 67 3 100 +245 68 3 100 +245 69 3 100 +245 70 3 100 +245 75 2 100 +245 119 3 100 +245 120 3 100 +245 121 3 100 +245 122 3 100 +245 123 3 100 +245 124 3 100 +245 125 3 100 +245 126 3 100 +245 127 3 100 +245 128 3 100 +245 129 3 100 +245 130 3 100 +245 131 3 100 +245 132 3 100 +245 133 3 100 +245 134 3 100 +245 135 3 100 +245 144 3 100 +245 145 3 100 +245 146 3 100 +245 147 3 100 +245 148 3 100 +245 149 3 100 +245 150 3 100 +245 151 3 100 +245 152 3 100 +245 153 3 100 +245 181 1 0 +245 182 1 0 +245 183 1 0 +245 184 1 0 +246 64 3 100 +246 65 3 100 +246 66 3 100 +246 67 3 100 +246 68 3 100 +246 69 3 100 +246 70 3 100 +246 71 3 100 +246 74 2 100 +246 75 2 100 +246 112 3 100 +246 113 3 100 +246 114 3 100 +246 115 3 100 +246 116 3 100 +246 117 3 100 +246 118 3 100 +246 119 3 100 +246 120 3 100 +246 121 3 100 +246 122 3 100 +246 123 3 100 +246 124 3 100 +246 125 3 100 +246 126 3 100 +246 127 3 100 +246 128 3 100 +246 129 3 100 +246 130 3 100 +246 131 3 100 +246 132 3 100 +246 133 3 100 +246 134 3 100 +246 135 3 100 +246 136 3 100 +246 137 3 100 +246 138 3 100 +246 139 3 100 +246 140 3 100 +246 141 3 100 +246 142 3 100 +246 143 3 100 +246 144 3 100 +246 145 3 100 +246 146 3 100 +246 147 3 100 +246 148 3 100 +246 149 3 100 +246 150 3 100 +246 151 3 100 +247 64 3 100 +247 65 3 100 +247 66 3 100 +247 67 3 100 +247 68 3 100 +247 69 3 100 +247 70 3 100 +247 71 3 100 +247 112 3 100 +247 113 3 100 +247 114 3 100 +247 115 3 100 +247 116 3 100 +247 117 3 100 +247 118 3 100 +247 119 3 100 +247 120 3 100 +247 121 3 100 +247 122 3 100 +247 123 3 100 +247 124 3 100 +247 125 3 100 +247 126 3 100 +247 127 3 100 +247 128 3 100 +247 129 3 100 +247 130 3 100 +247 131 3 100 +247 132 3 100 +247 133 3 100 +247 134 3 100 +247 135 3 100 +247 136 3 100 +247 137 3 100 +247 138 3 100 +247 139 3 100 +247 140 3 100 +247 141 3 100 +247 142 3 100 +247 143 3 100 +247 144 3 100 +247 145 3 100 +247 146 3 100 +247 147 3 100 +247 148 3 100 +247 149 3 100 +247 150 3 100 +247 151 3 100 +248 64 3 100 +248 65 3 100 +248 66 3 100 +248 67 3 100 +248 68 3 100 +248 69 3 100 +248 70 3 100 +248 71 3 100 +248 112 3 100 +248 113 3 100 +248 114 3 100 +248 115 3 100 +248 116 3 100 +248 117 3 100 +248 118 3 100 +248 119 3 100 +248 120 3 100 +248 121 3 100 +248 122 3 100 +248 123 3 100 +248 124 3 100 +248 125 3 100 +248 126 3 100 +248 127 3 100 +248 128 3 100 +248 129 3 100 +248 130 3 100 +248 131 3 100 +248 132 3 100 +248 133 3 100 +248 134 3 100 +248 135 3 100 +248 136 3 100 +248 137 3 100 +248 138 3 100 +248 139 3 100 +248 140 3 100 +248 141 3 100 +248 142 3 100 +248 143 3 100 +248 144 3 100 +248 145 3 100 +248 146 3 100 +248 147 3 100 +248 148 3 100 +248 149 3 100 +249 64 3 100 +249 65 3 100 +249 66 3 100 +249 67 3 100 +249 68 3 100 +249 69 3 100 +249 70 3 100 +249 71 3 100 +249 72 3 100 +249 112 3 100 +249 113 3 100 +249 114 3 100 +249 115 3 100 +249 116 3 100 +249 117 3 100 +249 118 3 100 +249 119 3 100 +249 120 3 100 +249 121 3 100 +249 122 3 100 +249 123 3 100 +249 124 3 100 +249 125 3 100 +249 126 3 100 +249 127 3 100 +249 128 3 100 +249 129 3 100 +249 130 3 100 +249 131 3 100 +249 132 3 100 +249 133 3 100 +249 134 3 100 +249 135 3 100 +249 136 3 100 +249 137 3 100 +249 138 3 100 +249 139 3 100 +249 140 3 100 +249 141 3 100 +249 142 3 100 +249 143 3 100 +249 144 3 100 +249 145 3 100 +249 146 3 100 +249 147 3 100 +249 188 1 0 +249 189 1 0 +249 190 1 0 +250 64 3 100 +250 65 3 100 +250 66 3 100 +250 67 3 100 +250 68 3 100 +250 69 3 100 +250 70 3 100 +250 71 3 100 +250 72 3 100 +250 124 3 100 +250 125 3 100 +250 126 3 100 +250 127 3 100 +250 128 3 100 +250 129 3 100 +250 130 3 100 +250 131 3 100 +250 132 3 100 +250 133 3 100 +250 134 3 100 +250 135 3 100 +250 136 3 100 +250 137 3 100 +250 138 3 100 +250 139 3 100 +250 140 3 100 +250 141 3 100 +250 142 3 100 +250 143 3 100 +250 144 3 100 +250 145 3 100 +250 146 3 100 +250 147 3 100 +250 187 1 0 +250 188 1 0 +250 189 1 0 +250 190 1 0 +250 209 1 0 +250 210 1 0 +250 211 1 0 +250 212 1 0 +250 213 1 0 +250 214 1 0 +251 65 3 100 +251 66 3 100 +251 67 3 100 +251 68 3 100 +251 69 3 100 +251 70 3 100 +251 71 3 100 +251 72 3 100 +251 187 1 0 +251 188 1 0 +251 189 1 0 +251 190 1 0 +251 209 1 0 +251 210 1 0 +251 211 1 0 +251 212 1 0 +251 213 1 0 +251 214 1 0 +251 215 1 0 +252 65 3 100 +252 66 3 100 +252 67 3 100 +252 68 3 100 +252 69 3 100 +252 70 3 100 +252 71 3 100 +252 72 3 100 +252 73 3 100 +252 74 3 100 +252 86 2 100 +252 187 1 0 +252 188 1 0 +252 189 1 0 +252 190 1 0 +252 191 1 0 +252 192 1 0 +252 209 1 0 +252 210 1 0 +252 211 1 0 +252 212 1 0 +252 213 1 0 +252 214 1 0 +252 215 1 0 +252 217 1 0 +252 218 1 0 +252 219 1 0 +252 220 1 0 +252 221 1 0 +252 222 1 0 +252 223 1 0 +253 68 3 100 +253 69 3 100 +253 70 3 100 +253 71 3 100 +253 72 3 100 +253 73 3 100 +253 74 3 100 +253 190 1 0 +253 191 1 0 +253 192 1 0 +253 209 1 0 +253 210 1 0 +253 211 1 0 +253 212 1 0 +253 213 1 0 +253 214 1 0 +253 215 1 0 +253 217 1 0 +253 218 1 0 +253 219 1 0 +253 220 1 0 +253 221 1 0 +253 222 1 0 +253 223 1 0 +254 68 3 100 +254 69 3 100 +254 70 3 100 +254 71 3 100 +254 72 3 100 +254 73 3 100 +254 74 3 100 +254 75 3 100 +254 76 3 100 +254 77 3 100 +254 190 1 0 +254 191 1 0 +254 192 1 0 +254 209 1 0 +254 210 1 0 +254 211 1 0 +254 212 1 0 +254 213 1 0 +254 214 1 0 +254 215 1 0 +254 216 1 0 +254 217 1 0 +254 218 1 0 +254 219 1 0 +254 220 1 0 +254 221 1 0 +254 222 1 0 +254 223 1 0 +255 68 3 100 +255 69 3 100 +255 70 3 100 +255 71 3 100 +255 72 3 100 +255 73 3 100 +255 74 3 100 +255 75 3 100 +255 76 3 100 +255 77 3 100 +255 78 3 100 +255 190 1 0 +255 191 1 0 +255 192 1 0 +255 216 1 0 +255 217 1 0 +255 218 1 0 +255 219 1 0 +255 220 1 0 +255 221 1 0 +255 222 1 0 +255 223 1 0 +256 68 3 100 +256 69 3 100 +256 70 3 100 +256 71 3 100 +256 72 3 100 +256 73 3 100 +256 74 3 100 +256 75 3 100 +256 76 3 100 +256 77 3 100 +256 78 3 100 +256 190 1 0 +256 191 1 0 +256 192 1 0 +256 217 1 0 +256 218 1 0 +256 219 1 0 +256 220 1 0 +256 221 1 0 +256 222 1 0 +256 223 1 0 +257 68 3 100 +257 69 3 100 +257 70 3 100 +257 71 3 100 +257 72 3 100 +257 73 3 100 +257 74 3 100 +257 75 3 100 +257 76 3 100 +257 77 3 100 +257 78 3 100 +257 190 1 0 +257 191 1 0 +257 192 1 0 +257 193 1 0 +257 194 1 0 +257 195 1 0 +257 196 1 0 +257 217 1 0 +257 218 1 0 +257 219 1 0 +257 220 1 0 +257 221 1 0 +257 222 1 0 +257 223 1 0 +258 73 3 100 +258 74 3 100 +258 75 3 100 +258 76 3 100 +258 77 3 100 +258 78 3 100 +258 82 2 100 +258 105 2 100 +258 106 2 100 +258 193 1 0 +258 194 1 0 +258 195 1 0 +258 196 1 0 +258 207 1 0 +258 219 1 0 +258 220 1 0 +259 73 3 100 +259 74 3 100 +259 75 3 100 +259 76 3 100 +259 77 3 100 +259 78 3 100 +259 100 5 0 +259 105 2 100 +259 106 2 100 +259 193 1 0 +259 195 2 100 +259 196 2 100 +259 197 2 100 +259 206 1 0 +259 207 1 0 +259 208 1 0 +259 209 1 0 +259 210 1 0 +259 211 1 0 +259 212 1 0 +259 213 1 0 +259 214 1 0 +259 215 1 0 +259 217 1 0 +259 218 1 0 +259 219 1 0 +259 220 1 0 +259 221 1 0 +259 222 1 0 +259 223 1 0 +260 73 3 100 +260 74 3 100 +260 75 3 100 +260 76 3 100 +260 77 3 100 +260 78 3 100 +260 101 5 0 +260 105 2 100 +260 106 2 100 +260 193 1 0 +260 195 2 100 +260 196 2 100 +260 201 1 0 +260 202 2 100 +260 203 2 100 +260 204 2 100 +260 205 2 100 +260 206 1 0 +260 207 1 0 +260 208 1 0 +260 209 1 0 +260 210 1 0 +260 211 1 0 +260 212 1 0 +260 213 1 0 +260 214 1 0 +260 215 1 0 +260 217 1 0 +260 218 1 0 +260 219 1 0 +260 220 1 0 +260 221 1 0 +260 222 1 0 +260 223 1 0 +261 73 3 100 +261 74 3 100 +261 75 3 100 +261 76 3 100 +261 77 3 100 +261 78 3 100 +261 101 5 0 +261 102 5 0 +261 195 1 0 +261 196 1 0 +261 197 1 0 +261 202 2 100 +261 203 2 100 +261 204 2 100 +261 205 2 100 +261 206 1 0 +261 207 1 0 +261 208 1 0 +261 209 1 0 +261 210 1 0 +261 211 1 0 +261 212 1 0 +261 213 1 0 +261 214 1 0 +261 215 1 0 +261 216 1 0 +261 217 1 0 +261 218 1 0 +261 219 1 0 +261 220 1 0 +261 221 1 0 +261 222 1 0 +261 223 1 0 +262 102 5 0 +262 103 5 0 +262 195 1 0 +262 196 1 0 +262 197 1 0 +262 202 2 100 +262 203 2 100 +262 204 2 100 +262 205 2 100 +262 206 1 0 +262 207 1 0 +262 208 1 0 +262 209 1 0 +262 210 1 0 +262 211 1 0 +262 212 1 0 +262 213 1 0 +262 214 1 0 +262 215 1 0 +262 216 1 0 +262 217 1 0 +262 218 1 0 +262 219 1 0 +262 220 1 0 +262 221 1 0 +262 222 1 0 +262 223 1 0 +263 75 5 0 +263 76 5 0 +263 92 1 0 +263 93 1 0 +263 94 1 0 +263 95 1 0 +263 103 5 0 +263 104 5 0 +263 105 5 0 +263 206 1 0 +263 207 1 0 +263 209 1 0 +263 210 1 0 +263 211 1 0 +263 212 1 0 +263 213 1 0 +263 214 1 0 +263 215 1 0 +263 217 1 0 +263 218 1 0 +263 219 1 0 +263 220 1 0 +263 221 1 0 +263 222 1 0 +263 223 1 0 +264 71 5 0 +264 72 5 0 +264 73 5 0 +264 74 5 0 +264 75 5 0 +264 76 5 0 +264 89 1 0 +264 90 1 0 +264 91 1 0 +264 92 1 0 +264 93 1 0 +264 94 1 0 +264 95 1 0 +264 104 5 0 +264 105 5 0 +264 217 1 0 +264 218 1 0 +264 219 1 0 +264 220 1 0 +264 221 1 0 +264 222 1 0 +264 223 1 0 +265 75 5 0 +265 76 5 0 +265 89 1 0 +265 90 1 0 +265 91 1 0 +265 92 1 0 +265 93 1 0 +265 94 1 0 +265 95 1 0 +265 105 5 0 +265 217 1 0 +265 218 1 0 +265 219 1 0 +265 220 1 0 +265 221 1 0 +265 222 1 0 +265 223 1 0 +266 75 5 0 +266 76 5 0 +266 77 5 0 +266 89 1 0 +266 90 1 0 +266 91 1 0 +266 92 1 0 +266 93 1 0 +266 94 1 0 +266 95 1 0 +266 96 1 0 +266 105 5 0 +267 72 5 0 +267 74 5 0 +267 75 5 0 +267 76 5 0 +267 77 5 0 +267 87 1 0 +267 88 1 0 +267 89 1 0 +267 90 1 0 +267 91 1 0 +267 92 1 0 +267 93 1 0 +267 94 1 0 +267 95 1 0 +267 96 1 0 +267 105 5 0 +268 72 5 0 +268 73 5 0 +268 74 5 0 +268 75 5 0 +268 76 5 0 +268 77 5 0 +268 78 5 0 +268 79 5 0 +268 80 5 0 +268 87 1 0 +268 88 1 0 +268 89 1 0 +268 90 1 0 +268 91 1 0 +268 92 1 0 +268 93 1 0 +268 94 1 0 +268 95 1 0 +268 96 1 0 +269 72 5 0 +269 74 5 0 +269 75 5 0 +269 76 5 0 +269 77 5 0 +269 79 5 0 +269 80 5 0 +269 81 5 0 +269 82 5 0 +269 91 1 0 +269 92 1 0 +269 93 1 0 +269 94 1 0 +270 71 5 0 +270 72 5 0 +270 73 5 0 +270 74 5 0 +270 75 5 0 +270 76 5 0 +270 77 5 0 +270 80 5 0 +270 81 5 0 +270 82 5 0 +270 90 1 0 +270 91 1 0 +270 92 1 0 +270 93 1 0 +270 94 1 0 +271 72 5 0 +271 73 5 0 +271 74 5 0 +271 75 5 0 +271 76 5 0 +271 77 5 0 +271 79 5 0 +271 84 5 0 +271 89 1 0 +271 90 1 0 +271 91 1 0 +271 92 1 0 +271 93 1 0 +271 94 1 0 +271 95 1 0 +271 96 1 0 +271 105 5 0 +271 106 5 0 +272 72 5 0 +272 73 5 0 +272 74 5 0 +272 75 5 0 +272 76 5 0 +272 77 5 0 +272 78 5 0 +272 79 5 0 +272 84 2 100 +272 85 2 100 +272 86 2 100 +272 89 1 0 +272 90 1 0 +272 91 1 0 +272 92 1 0 +272 93 1 0 +272 94 1 0 +272 95 1 0 +272 96 1 0 +272 105 5 0 +272 106 5 0 +273 72 5 0 +273 74 5 0 +273 75 5 0 +273 76 5 0 +273 77 5 0 +273 84 2 100 +273 85 2 100 +273 86 2 100 +273 89 1 0 +273 90 1 0 +273 91 1 0 +273 92 1 0 +273 93 1 0 +273 94 1 0 +273 95 1 0 +273 96 1 0 +273 105 5 0 +274 74 5 0 +274 75 5 0 +274 76 5 0 +274 77 5 0 +274 89 1 0 +274 90 1 0 +274 91 1 0 +274 92 1 0 +274 93 1 0 +274 94 1 0 +274 95 1 0 +274 96 1 0 +274 104 5 0 +274 105 5 0 +275 89 1 0 +275 90 1 0 +275 91 1 0 +275 92 1 0 +275 93 1 0 +275 94 1 0 +275 95 1 0 +275 96 1 0 +275 104 5 0 +276 89 1 0 +276 90 1 0 +276 91 1 0 +276 92 1 0 +276 93 1 0 +276 94 1 0 +276 95 1 0 +276 96 1 0 +276 103 5 0 +276 104 5 0 +277 76 5 0 +277 102 5 0 +277 103 5 0 +278 78 5 0 +278 100 5 0 +278 101 5 0 +278 102 5 0 +279 80 5 0 +279 81 5 0 +279 82 5 0 +279 100 5 0 +280 81 5 0 +280 82 5 0 +280 83 5 0 +280 99 5 0 +281 83 5 0 +281 84 5 0 +281 85 5 0 +281 86 5 0 +281 87 5 0 +281 88 5 0 +281 99 5 0 +282 84 5 0 +282 86 5 0 +282 88 5 0 +282 89 5 0 +282 90 5 0 +282 91 5 0 +282 99 5 0 +283 90 5 0 +283 91 5 0 +283 92 5 0 +283 93 5 0 +283 94 5 0 +283 95 5 0 +284 95 5 0 +[/Tiles] + +[Rooms] +# meshName color NextLine: numTiles Subsequent Lines: tileX tileY +DungeonTemple 1 +25 +193 206 +193 207 +193 208 +193 209 +193 210 +194 206 +194 207 +194 208 +194 209 +194 210 +195 206 +195 207 +195 208 +195 209 +195 210 +196 206 +196 207 +196 208 +196 209 +196 210 +197 206 +197 207 +197 208 +197 209 +197 210 +Treasury 1 +3 +193 205 +194 205 +195 206 +Portal 1 +9 +189 213 +189 214 +189 215 +188 213 +188 214 +188 215 +187 213 +187 214 +187 215 +Portal 2 +9 +254 221 +254 222 +254 223 +255 221 +255 222 +255 223 +256 221 +256 222 +256 223 +Forge 2 +16 +259 209 +259 210 +259 211 +259 212 +260 209 +260 210 +260 211 +260 212 +261 209 +261 210 +261 211 +261 212 +262 209 +262 210 +262 211 +262 212 +Treasury 2 +9 +254 218 +254 219 +254 220 +255 218 +255 219 +255 220 +256 218 +256 219 +256 220 +DungeonTemple 2 +25 +250 210 +250 211 +250 212 +250 213 +250 214 +251 210 +251 211 +251 212 +251 213 +251 214 +252 210 +252 211 +252 212 +252 213 +252 214 +253 210 +253 211 +253 212 +253 213 +253 214 +254 210 +254 211 +254 212 +254 213 +254 214 +DungeonTemple 3 +25 +165 103 +165 104 +165 105 +165 106 +165 107 +166 103 +166 104 +166 105 +166 106 +166 107 +167 103 +167 104 +167 105 +167 106 +167 107 +168 103 +168 104 +168 105 +168 106 +168 107 +169 103 +169 104 +169 105 +169 106 +169 107 +Treasury 3 +5 +165 102 +166 102 +167 102 +168 102 +169 102 +Portal 3 +9 +159 105 +159 106 +159 107 +158 105 +158 106 +158 107 +157 105 +157 106 +157 107 +DungeonTemple 4 +20 +264 91 +264 92 +264 93 +264 94 +264 95 +265 91 +265 92 +265 93 +265 94 +265 95 +266 91 +266 92 +266 93 +266 94 +266 95 +267 91 +267 92 +267 93 +267 94 +267 95 +Portal 4 +9 +271 91 +271 92 +271 93 +272 91 +272 92 +272 93 +273 91 +273 92 +273 93 +Treasury 4 +5 +276 91 +276 92 +276 93 +276 94 +276 95 +[/Rooms] + +[Traps] +# meshName color NextLine: numTiles Subsequent Lines: tileX tileY +[/Traps] + +[Lights] +# posX posY posZ diffuseR diffuseG diffuseB specularR specularG specularB attenRange attenConst attenLin attenQuad +193 205 3.75 0.9 0.8 0.6 0.2 0.2 0.2 50 0.012 0.32 0.0018 +[/Lights] + +# The file containing the creatures definition. +[Creatures_Definition] +levels/creatures.def + +[Creatures] +# className name posX posY posZ color weaponLname damage range defense weaponRname damage range defense HP mana Level +ConstructWorker ConstructWorker1 193 206 0 1 none 1 4 3 none 8 4 0 125 3 1 +Gnome Gnome2 194 311 0 2 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Goblin Goblin3 161 201 0 3 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +PitDemon PitDemon5 159 202 0 5 none 1 4 3 none 8 4 0 125 3 1 +Wizard Wizard7 199 311 0 2 Staff 7 10 3 none 1 4 0 125 3 1 +Tentacle1 Tentacle18 162 198 0 3 none 1 4 3 none 8 4 0 125 3 1 +Tentacle2 Tentacle29 158 201 0 4 none 1 4 3 none 8 4 0 125 3 1 +Troll Troll10 186 235 0 5 none 1 4 3 none 8 4 0 125 3 1 +Knight Knight_c2 192 311 0 2 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c3 192 314 0 3 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c4 196 315 0 4 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c5 194 315 0 5 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +LizardMan LizardMan_001 185 233 0 5 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Kobold Kobold 197 205 0 1 none 5 4 0 none 8 3 0 125 3 1 +Kobold Kobold_012 193 205 0 1 Roundshield 0 0 5 Longsword 14 3 0 125 3 1 +Kobold Kobold_007 195 205 0 1 none 5 4 0 none 8 3 0 125 3 1 +Dwarf1 Dwarf1_001 221 189 0 2 Roundshield 0 0 5 Sabre 10 3 0 145 7 1 +Dwarf2 Dwarf1_002 226 165 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf3 Dwarf1_004 213 157 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf2 Dwarf1_006 214 141 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf3 Dwarf1_007 212 143 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf3 Dwarf2_001 264 221 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf2 Dwarf2_002 216 185 0 2 none 6 4 0 Longsword 14 4 0 145 7 1 +Dwarf1 Dwarf3_001 217 187 0 2 Roundshield 0 0 5 Longsword 14 4 4 145 7 1 +LizardMan LizardMan_002 229 168 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kre 262 220 0 2 none 12 4 0 none 6 4 0 180 10 1 +Orc Orc_0001 228 166 0 2 none 8 4 0 Longsword 14 4 0 165 10 1 +Orc Orc_0002 262 222 0 2 none 8 4 0 Longsword 14 4 0 165 10 1 +Kreatur Kreatur_001 161 113 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_002 159 101 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_003 176 98 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_004 168 99 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_006 162 100 0 3 none 12 4 0 none 6 4 0 180 10 1 +[/Creatures] diff --git a/levels/creatures.def b/levels/creatures.def new file mode 100644 index 000000000..8cbf474a5 --- /dev/null +++ b/levels/creatures.def @@ -0,0 +1,25 @@ +[Creatures_definition] +# className creatureJob meshName bedMeshName bedDim1 bedDim2 scaleX scaleY scaleZ hp/level mana/level maxHP maxMana sightRadius digRate danceRate moveSpeed TilePassability cHumans cCorpars cUndead cConstructs cDenizens cAltruism cOrder cPeace +Wyvern WeakFighter Wyvern.mesh Bed 2 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1.3 flyableTile 1 0 0 0 0 0 1 0 +Knight WeakFighter Knight.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 1 0 0 0 0 1 1 1 +BigKnight StrongFighter Knight.mesh ForgeForgeObject 3 3 0.7 0.7 0.7 5 5 100 100 15 0 0 1.2 walkableTile 1 0 0 0 0 1 1 1 +Kobold BasicWorker Kobold.mesh Bed 1 2 0.06 0.06 0.06 5 5 100 100 15 20 0.42 2.5 walkableTile 0 0 0 0 1 0 0 0 +Dragon StrongFighter Dragon.mesh GoldChest 4 4 0.5 0.5 0.5 5 5 100 100 15 0 0 0.9 flyableTile 1 0 0 0 0 0 1 -1 +Dwarf1 WeakFighter Dwarf1.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +Dwarf2 WeakFighter Dwarf2.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +Dwarf3 StrongFighter Dwarf3.mesh Bed 1 2 1 1 1 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +Orc StrongFighter Orc.mesh Bed 2 3 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 0 -1 +Kreatur StrongFighter Kreatur.mesh Bed 4 4 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 -1 0 -1 +ConstructWorker AdvancedWorker Con_Worker.mesh Bed 4 4 0.6 0.6 0.6 5 5 100 100 15 20 0.8 1 walkableTile 0 0 0 1 0 -1 0 -1 +Gnome WeakFighter Gnome.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +Goblin WeakFighter Goblin.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +PitDemon StrongFighter Pit_demon.mesh Bed 4 4 0.6 0.6 0.6 5 5 100 100 15 0 0 1 flyableTile 0 1 0 0 0 -1 0 -1 +Spider WeakFighter Spider.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 1 0 0 0 0 1 1 1 +Wizard WeakFighter Wizard.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +Tentacle1 WeakFighter Tentacle.mesh ForgeAnvilObject 1 1 1.0 1.0 1.0 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +Tentacle2 WeakFighter Tentacle2.mesh ForgeAnvilObject 1 1 0.8 0.8 0.8 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +Troll StrongFighter Troll.mesh Bed 2 3 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 0 -1 +Adventurer WeakFighter Adventurer.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +LizardMan StrongFighter Lizardman.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 walkableTile 0 1 0 0 0 0 1 0 +CaveHornet StrongFighter Cavehornet.mesh Bed 1 2 0.6 0.6 0.6 5 5 100 100 15 0 0 1 flyableTile 0 1 0 0 0 0 1 0 +[/Creatures_definition] diff --git a/levels/oldTest.level b/levels/oldTest.level new file mode 100644 index 000000000..2c43dbd17 --- /dev/null +++ b/levels/oldTest.level @@ -0,0 +1,6675 @@ +OpenDungeons_Version:0.4.9 # The version of OpenDungeons which created this file (for compatibility reasons). + +[Seats] +# color faction startingX startingY colorR colorG colorB +1 Player 200 200 0 0.4 0 +2 KeeperAI 200 200 0.4 0 0 +3 KeeperAI 200 200 0 0 0.4 +4 none 200 200 0.4 0.4 0.1 +5 none 200 200 0.4 0.1 0.4 +[/Seats] + +[Goals] +# goalName arguments +KillAllEnemies NULL +ProtectCreature King +- 1 +ClaimNTiles 1000 +ClaimNTiles 200 +MineNGold 20 ++ 1 +MineNGold 5000 ++ 1 +MineNGold 10000 +ProtectDungeonTemple NULL +[/Goals] + +[Tiles] +# Map Size +400 # MapSizeX +400 # MapSizeY +# posX posY type fullness +146 102 3 100 +146 103 3 100 +146 104 3 100 +146 105 3 100 +146 106 3 100 +146 107 3 100 +146 108 3 100 +146 109 3 100 +146 110 3 100 +146 111 3 100 +146 112 3 100 +146 113 3 100 +146 114 3 100 +146 115 3 100 +146 116 3 100 +146 117 3 100 +146 118 3 100 +146 119 3 100 +146 120 3 100 +147 102 3 100 +147 103 3 100 +147 104 3 100 +147 105 3 100 +147 106 3 100 +147 107 3 100 +147 108 3 100 +147 109 3 100 +147 110 3 100 +147 111 3 100 +147 112 3 100 +147 113 3 100 +147 114 3 100 +147 115 3 100 +147 116 3 100 +147 117 3 100 +147 118 3 100 +147 119 3 100 +147 120 3 100 +148 102 3 100 +148 103 3 100 +148 104 3 100 +148 105 3 100 +148 106 3 100 +148 107 3 100 +148 108 3 100 +148 109 3 100 +148 110 3 100 +148 111 3 100 +148 112 3 100 +148 113 3 100 +148 114 3 100 +148 115 3 100 +148 116 3 100 +148 117 3 100 +148 118 3 100 +148 119 3 100 +148 120 3 100 +149 102 3 100 +149 103 3 100 +149 104 3 100 +149 107 2 100 +149 108 2 100 +149 109 2 100 +149 110 2 100 +149 114 3 100 +149 115 3 100 +149 116 3 100 +149 117 3 100 +149 118 3 100 +149 119 3 100 +149 120 3 100 +150 101 3 100 +150 102 3 100 +150 103 3 100 +150 104 3 100 +150 107 2 100 +150 108 2 100 +150 109 2 100 +150 110 2 100 +150 116 3 100 +150 117 3 100 +150 118 3 100 +150 119 3 100 +150 120 3 100 +151 101 3 100 +151 102 3 100 +151 107 2 100 +151 108 2 100 +151 109 2 100 +151 110 2 100 +151 116 3 100 +151 117 3 100 +151 118 3 100 +151 119 3 100 +151 120 3 100 +152 99 3 100 +152 100 3 100 +152 101 3 100 +152 109 1 0 +152 110 1 0 +152 111 1 0 +152 114 2 100 +152 115 2 100 +152 117 3 100 +152 118 3 100 +152 119 3 100 +152 120 3 100 +153 97 3 100 +153 98 3 100 +153 99 3 100 +153 100 3 100 +153 107 1 0 +153 108 1 0 +153 109 1 0 +153 110 1 0 +153 111 1 0 +153 112 1 0 +153 113 1 0 +153 117 3 100 +153 118 3 100 +153 119 3 100 +153 120 3 100 +154 97 3 100 +154 98 3 100 +154 99 3 100 +154 104 1 0 +154 105 1 0 +154 106 1 0 +154 107 1 0 +154 108 1 0 +154 109 1 0 +154 110 1 0 +154 111 1 0 +154 112 1 0 +154 113 1 0 +154 114 1 0 +154 118 3 100 +154 119 3 100 +154 120 3 100 +155 95 3 100 +155 96 3 100 +155 97 3 100 +155 98 3 100 +155 103 1 0 +155 104 1 0 +155 105 1 0 +155 106 1 0 +155 107 1 0 +155 108 1 0 +155 109 1 0 +155 110 1 0 +155 111 1 0 +155 112 1 0 +155 113 1 0 +155 114 1 0 +155 115 1 0 +155 118 3 100 +155 119 3 100 +155 120 3 100 +156 95 3 100 +156 96 3 100 +156 97 3 100 +156 98 3 100 +156 102 1 0 +156 103 1 0 +156 104 1 0 +156 105 1 0 +156 106 1 0 +156 107 1 0 +156 108 1 0 +156 109 1 0 +156 110 1 0 +156 111 1 0 +156 112 1 0 +156 113 1 0 +156 114 1 0 +156 115 1 0 +156 118 3 100 +156 119 3 100 +156 120 3 100 +157 93 3 100 +157 94 3 100 +157 95 3 100 +157 96 3 100 +157 97 3 100 +157 101 1 0 +157 102 1 0 +157 103 1 0 +157 104 1 0 +157 105 1 0 +157 106 1 0 +157 107 1 0 +157 108 1 0 +157 109 1 0 +157 110 1 0 +157 111 1 0 +157 112 1 0 +157 113 1 0 +157 114 1 0 +157 115 1 0 +157 118 3 100 +157 119 3 100 +157 120 3 100 +158 93 3 100 +158 94 3 100 +158 95 3 100 +158 96 3 100 +158 97 3 100 +158 99 1 0 +158 100 1 0 +158 101 1 0 +158 102 1 0 +158 103 1 0 +158 104 1 0 +158 105 1 0 +158 106 1 0 +158 107 1 0 +158 108 1 0 +158 109 1 0 +158 110 1 0 +158 111 1 0 +158 112 1 0 +158 113 1 0 +158 114 1 0 +158 115 1 0 +158 118 3 100 +158 119 3 100 +158 120 3 100 +159 91 3 100 +159 92 3 100 +159 93 3 100 +159 94 3 100 +159 95 3 100 +159 96 3 100 +159 99 1 0 +159 100 1 0 +159 101 1 0 +159 102 1 0 +159 103 1 0 +159 104 1 0 +159 105 1 0 +159 106 1 0 +159 107 1 0 +159 108 1 0 +159 109 1 0 +159 110 1 0 +159 111 1 0 +159 112 1 0 +159 113 1 0 +159 114 1 0 +159 115 1 0 +159 118 3 100 +159 119 3 100 +159 120 3 100 +160 90 3 100 +160 91 3 100 +160 92 3 100 +160 93 3 100 +160 94 3 100 +160 95 3 100 +160 96 3 100 +160 98 1 0 +160 99 1 0 +160 100 1 0 +160 101 1 0 +160 102 1 0 +160 103 6 0 +160 104 6 0 +160 105 1 0 +160 106 1 0 +160 107 1 0 +160 108 1 0 +160 109 1 0 +160 110 1 0 +160 111 1 0 +160 112 1 0 +160 113 1 0 +160 114 1 0 +160 115 1 0 +160 116 2 100 +160 117 2 100 +160 118 3 100 +160 119 3 100 +160 120 3 100 +161 90 3 100 +161 91 3 100 +161 92 3 100 +161 93 3 100 +161 94 3 100 +161 98 1 0 +161 99 1 0 +161 100 1 0 +161 101 1 0 +161 102 1 0 +161 103 6 0 +161 104 6 0 +161 105 6 0 +161 106 6 0 +161 107 6 0 +161 108 1 0 +161 109 1 0 +161 110 1 0 +161 111 1 0 +161 112 1 0 +161 113 1 0 +161 114 1 0 +161 115 1 0 +161 116 2 100 +161 117 2 100 +161 118 3 100 +161 119 3 100 +161 120 3 100 +162 90 3 100 +162 91 3 100 +162 92 3 100 +162 93 3 100 +162 94 3 100 +162 97 1 0 +162 98 1 0 +162 99 1 0 +162 100 1 0 +162 101 1 0 +162 102 1 0 +162 103 6 0 +162 104 6 0 +162 105 6 0 +162 106 6 0 +162 107 6 0 +162 108 1 0 +162 109 1 0 +162 110 1 0 +162 111 1 0 +162 112 1 0 +162 113 1 0 +162 114 1 0 +162 115 1 0 +162 118 3 100 +162 119 3 100 +162 120 3 100 +163 88 3 100 +163 89 3 100 +163 90 3 100 +163 91 3 100 +163 92 3 100 +163 93 3 100 +163 97 1 0 +163 98 1 0 +163 99 1 0 +163 100 1 0 +163 101 1 0 +163 102 6 0 +163 103 6 0 +163 104 6 0 +163 105 6 0 +163 106 6 0 +163 107 6 0 +163 108 6 0 +163 109 1 0 +163 110 1 0 +163 111 1 0 +163 112 1 0 +163 113 1 0 +163 114 1 0 +163 115 1 0 +163 118 3 100 +163 119 3 100 +163 120 3 100 +164 86 3 100 +164 87 3 100 +164 88 3 100 +164 89 3 100 +164 90 3 100 +164 91 3 100 +164 92 3 100 +164 93 3 100 +164 96 1 0 +164 97 1 0 +164 98 1 0 +164 99 1 0 +164 100 1 0 +164 101 1 0 +164 102 6 0 +164 103 6 0 +164 104 6 0 +164 105 6 0 +164 106 6 0 +164 107 6 0 +164 108 6 0 +164 109 1 0 +164 110 1 0 +164 111 1 0 +164 112 1 0 +164 113 1 0 +164 114 1 0 +164 115 1 0 +164 118 3 100 +164 119 3 100 +164 120 3 100 +165 85 3 100 +165 86 3 100 +165 87 3 100 +165 88 3 100 +165 89 3 100 +165 90 3 100 +165 91 3 100 +165 92 3 100 +165 93 3 100 +165 96 1 0 +165 97 1 0 +165 98 1 0 +165 99 6 0 +165 100 6 0 +165 101 6 0 +165 102 6 0 +165 103 6 0 +165 104 6 0 +165 105 6 0 +165 106 6 0 +165 107 6 0 +165 108 6 0 +165 109 1 0 +165 110 1 0 +165 111 1 0 +165 112 1 0 +165 113 1 0 +165 114 1 0 +165 118 3 100 +165 119 3 100 +165 120 3 100 +166 83 3 100 +166 84 3 100 +166 85 3 100 +166 86 3 100 +166 87 3 100 +166 88 3 100 +166 89 3 100 +166 90 3 100 +166 91 3 100 +166 92 3 100 +166 93 3 100 +166 96 1 0 +166 97 1 0 +166 98 1 0 +166 99 6 0 +166 100 6 0 +166 101 6 0 +166 102 6 0 +166 103 6 0 +166 104 6 0 +166 105 6 0 +166 106 6 0 +166 107 6 0 +166 108 6 0 +166 109 1 0 +166 110 1 0 +166 111 1 0 +166 112 1 0 +166 113 1 0 +166 114 1 0 +166 118 3 100 +166 119 3 100 +166 120 3 100 +167 83 3 100 +167 84 3 100 +167 85 3 100 +167 86 3 100 +167 87 3 100 +167 88 3 100 +167 89 3 100 +167 90 3 100 +167 96 1 0 +167 97 6 0 +167 98 6 0 +167 99 6 0 +167 100 6 0 +167 101 6 0 +167 102 6 0 +167 103 6 0 +167 104 6 0 +167 105 6 0 +167 106 6 0 +167 107 6 0 +167 108 6 0 +167 109 1 0 +167 110 1 0 +167 111 1 0 +167 112 1 0 +167 113 1 0 +167 114 1 0 +167 118 3 100 +167 119 3 100 +167 120 3 100 +168 82 3 100 +168 83 3 100 +168 84 3 100 +168 85 3 100 +168 86 3 100 +168 87 3 100 +168 88 3 100 +168 89 3 100 +168 96 1 0 +168 97 6 0 +168 98 6 0 +168 99 6 0 +168 100 6 0 +168 101 6 0 +168 102 6 0 +168 103 6 0 +168 104 6 0 +168 105 6 0 +168 106 6 0 +168 107 6 0 +168 108 6 0 +168 109 1 0 +168 110 1 0 +168 111 1 0 +168 112 1 0 +168 113 1 0 +168 118 3 100 +168 119 3 100 +168 120 3 100 +169 80 3 100 +169 81 3 100 +169 82 3 100 +169 83 3 100 +169 84 3 100 +169 85 3 100 +169 86 3 100 +169 87 3 100 +169 88 3 100 +169 89 3 100 +169 93 2 100 +169 94 2 100 +169 95 1 0 +169 96 1 0 +169 97 6 0 +169 98 6 0 +169 99 6 0 +169 100 6 0 +169 101 6 0 +169 102 6 0 +169 103 6 0 +169 104 6 0 +169 105 6 0 +169 106 6 0 +169 107 6 0 +169 108 6 0 +169 109 1 0 +169 110 1 0 +169 111 1 0 +169 112 1 0 +169 113 1 0 +169 118 3 100 +169 119 3 100 +169 120 3 100 +170 80 3 100 +170 81 3 100 +170 82 3 100 +170 83 3 100 +170 84 3 100 +170 85 3 100 +170 86 3 100 +170 87 3 100 +170 88 3 100 +170 95 1 0 +170 96 1 0 +170 97 6 0 +170 98 6 0 +170 99 6 0 +170 100 6 0 +170 101 6 0 +170 102 6 0 +170 103 6 0 +170 104 6 0 +170 105 6 0 +170 106 6 0 +170 107 6 0 +170 108 6 0 +170 109 1 0 +170 110 1 0 +170 111 1 0 +170 117 3 100 +170 118 3 100 +170 119 3 100 +170 200 1 0 +170 201 1 0 +170 202 1 0 +170 203 1 0 +170 204 1 0 +170 205 1 0 +170 206 1 0 +170 207 1 0 +171 79 3 100 +171 80 3 100 +171 81 3 100 +171 82 3 100 +171 83 3 100 +171 84 3 100 +171 85 3 100 +171 86 3 100 +171 87 3 100 +171 88 3 100 +171 95 1 0 +171 96 1 0 +171 97 6 0 +171 98 6 0 +171 99 6 0 +171 100 6 0 +171 101 6 0 +171 102 6 0 +171 103 6 0 +171 104 6 0 +171 105 6 0 +171 106 6 0 +171 107 6 0 +171 108 6 0 +171 109 1 0 +171 110 1 0 +171 111 1 0 +171 117 3 100 +171 118 3 100 +171 119 3 100 +171 196 1 0 +171 197 1 0 +171 198 1 0 +171 199 1 0 +171 200 1 0 +171 201 1 0 +171 202 1 0 +171 203 1 0 +171 204 1 0 +171 205 1 0 +171 206 1 0 +171 207 1 0 +172 77 3 100 +172 78 3 100 +172 79 3 100 +172 80 3 100 +172 81 3 100 +172 82 3 100 +172 83 3 100 +172 84 3 100 +172 85 3 100 +172 86 3 100 +172 87 3 100 +172 92 1 0 +172 93 1 0 +172 95 1 0 +172 96 1 0 +172 97 1 0 +172 98 6 0 +172 99 6 0 +172 100 6 0 +172 101 6 0 +172 102 6 0 +172 103 6 0 +172 104 6 0 +172 105 6 0 +172 106 6 0 +172 107 1 0 +172 108 1 0 +172 109 1 0 +172 110 1 0 +172 111 1 0 +172 117 3 100 +172 118 3 100 +172 119 3 100 +172 191 1 0 +172 192 1 0 +172 193 1 0 +172 194 1 0 +172 195 1 0 +172 196 1 0 +172 197 1 0 +172 198 1 0 +172 199 1 0 +172 200 1 0 +172 201 1 0 +172 202 1 0 +172 203 1 0 +172 204 1 0 +172 205 1 0 +172 206 1 0 +172 207 1 0 +173 76 3 100 +173 77 3 100 +173 78 3 100 +173 79 3 100 +173 80 3 100 +173 81 3 100 +173 82 3 100 +173 83 3 100 +173 84 3 100 +173 85 3 100 +173 86 3 100 +173 91 1 0 +173 92 1 0 +173 96 1 0 +173 97 1 0 +173 98 6 0 +173 99 6 0 +173 100 6 0 +173 101 6 0 +173 102 6 0 +173 103 6 0 +173 104 6 0 +173 105 6 0 +173 106 6 0 +173 107 1 0 +173 108 1 0 +173 109 1 0 +173 110 1 0 +173 116 3 100 +173 117 3 100 +173 118 3 100 +173 119 3 100 +173 191 1 0 +173 192 1 0 +173 193 1 0 +173 194 1 0 +173 195 1 0 +173 196 1 0 +173 197 1 0 +173 198 1 0 +173 199 1 0 +173 200 1 0 +173 201 1 0 +173 202 1 0 +173 203 1 0 +173 204 1 0 +173 205 1 0 +173 206 3 100 +173 207 3 100 +173 208 1 0 +173 209 1 0 +174 76 3 100 +174 77 3 100 +174 78 3 100 +174 79 3 100 +174 80 3 100 +174 81 3 100 +174 82 3 100 +174 83 3 100 +174 84 3 100 +174 85 3 100 +174 91 1 0 +174 92 1 0 +174 96 1 0 +174 97 1 0 +174 98 6 0 +174 99 6 0 +174 100 6 0 +174 101 6 0 +174 102 6 0 +174 103 6 0 +174 104 6 0 +174 105 6 0 +174 106 6 0 +174 107 1 0 +174 108 1 0 +174 109 1 0 +174 110 1 0 +174 116 3 100 +174 117 3 100 +174 118 3 100 +174 189 1 0 +174 190 1 0 +174 191 1 0 +174 192 1 0 +174 193 1 0 +174 194 1 0 +174 195 1 0 +174 196 1 0 +174 197 1 0 +174 198 1 0 +174 199 1 0 +174 200 1 0 +174 201 1 0 +174 202 1 0 +174 203 1 0 +174 204 1 0 +174 205 3 100 +174 206 3 100 +174 207 3 100 +174 208 3 100 +174 209 1 0 +175 76 3 100 +175 77 3 100 +175 78 3 100 +175 79 3 100 +175 80 3 100 +175 81 3 100 +175 82 3 100 +175 83 3 100 +175 84 3 100 +175 85 3 100 +175 90 1 0 +175 91 1 0 +175 92 1 0 +175 96 1 0 +175 97 1 0 +175 98 6 0 +175 99 6 0 +175 100 6 0 +175 101 6 0 +175 102 6 0 +175 103 6 0 +175 104 6 0 +175 105 6 0 +175 106 6 0 +175 107 1 0 +175 108 1 0 +175 109 1 0 +175 116 3 100 +175 117 3 100 +175 118 3 100 +175 189 1 0 +175 190 1 0 +175 191 1 0 +175 192 1 0 +175 193 1 0 +175 194 1 0 +175 195 1 0 +175 196 1 0 +175 197 1 0 +175 198 1 0 +175 199 1 0 +175 200 1 0 +175 201 1 0 +175 202 1 0 +175 203 1 0 +175 204 3 100 +175 205 3 100 +175 208 3 100 +175 209 3 100 +176 76 3 100 +176 77 3 100 +176 78 3 100 +176 79 3 100 +176 80 3 100 +176 81 3 100 +176 82 3 100 +176 83 3 100 +176 89 1 0 +176 90 1 0 +176 91 1 0 +176 92 1 0 +176 96 1 0 +176 97 1 0 +176 98 1 0 +176 99 1 0 +176 100 1 0 +176 101 6 0 +176 102 6 0 +176 103 6 0 +176 104 1 0 +176 105 1 0 +176 106 1 0 +176 107 1 0 +176 108 1 0 +176 109 1 0 +176 115 3 100 +176 116 3 100 +176 117 3 100 +176 118 3 100 +176 189 1 0 +176 190 1 0 +176 191 1 0 +176 192 1 0 +176 193 1 0 +176 194 1 0 +176 195 1 0 +176 196 1 0 +176 197 1 0 +176 198 1 0 +176 199 1 0 +176 200 1 0 +176 201 3 100 +176 202 3 100 +176 203 3 100 +176 204 1 0 +176 209 3 100 +177 76 3 100 +177 77 3 100 +177 78 3 100 +177 79 3 100 +177 80 3 100 +177 81 3 100 +177 89 1 0 +177 90 1 0 +177 91 1 0 +177 92 1 0 +177 93 1 0 +177 96 1 0 +177 97 1 0 +177 98 1 0 +177 99 1 0 +177 100 1 0 +177 101 6 0 +177 102 6 0 +177 103 6 0 +177 104 1 0 +177 105 1 0 +177 106 1 0 +177 107 1 0 +177 108 1 0 +177 109 2 100 +177 110 2 100 +177 115 3 100 +177 116 3 100 +177 117 3 100 +177 186 1 0 +177 187 1 0 +177 188 1 0 +177 189 1 0 +177 190 1 0 +177 191 1 0 +177 192 1 0 +177 193 1 0 +177 194 1 0 +177 195 1 0 +177 196 1 0 +177 197 1 0 +177 198 1 0 +177 199 3 100 +177 200 3 100 +177 201 3 100 +177 202 3 100 +177 203 1 0 +177 204 1 0 +177 205 1 0 +177 209 3 100 +177 210 3 100 +177 211 1 0 +177 212 1 0 +177 213 1 0 +177 214 1 0 +177 215 1 0 +177 216 1 0 +177 217 1 0 +177 218 1 0 +178 76 3 100 +178 77 3 100 +178 78 3 100 +178 79 3 100 +178 80 3 100 +178 88 1 0 +178 89 1 0 +178 90 1 0 +178 91 1 0 +178 96 1 0 +178 97 1 0 +178 102 1 0 +178 103 1 0 +178 104 1 0 +178 105 1 0 +178 106 1 0 +178 107 1 0 +178 109 2 100 +178 110 2 100 +178 115 3 100 +178 116 3 100 +178 117 3 100 +178 186 1 0 +178 187 1 0 +178 188 1 0 +178 189 1 0 +178 190 1 0 +178 191 1 0 +178 192 1 0 +178 193 1 0 +178 194 1 0 +178 195 1 0 +178 196 3 100 +178 197 3 100 +178 198 3 100 +178 199 3 100 +178 200 3 100 +178 203 1 0 +178 204 1 0 +178 205 1 0 +178 206 1 0 +178 209 3 100 +178 210 3 100 +178 211 3 100 +178 212 3 100 +178 213 1 0 +178 214 1 0 +178 215 1 0 +178 216 1 0 +178 217 1 0 +178 218 1 0 +179 76 3 100 +179 77 3 100 +179 78 3 100 +179 79 3 100 +179 80 3 100 +179 86 1 0 +179 87 1 0 +179 88 1 0 +179 89 1 0 +179 90 1 0 +179 91 1 0 +179 96 1 0 +179 97 1 0 +179 102 1 0 +179 103 1 0 +179 104 1 0 +179 105 1 0 +179 109 2 100 +179 110 2 100 +179 114 3 100 +179 115 3 100 +179 116 3 100 +179 117 3 100 +179 186 1 0 +179 187 1 0 +179 188 1 0 +179 189 1 0 +179 190 1 0 +179 191 1 0 +179 192 1 0 +179 193 1 0 +179 194 1 0 +179 195 1 0 +179 196 3 100 +179 202 1 0 +179 203 1 0 +179 204 1 0 +179 205 1 0 +179 206 1 0 +179 207 1 0 +179 208 1 0 +179 210 3 100 +179 211 3 100 +179 212 3 100 +179 213 3 100 +179 214 3 100 +179 215 1 0 +179 216 1 0 +179 217 1 0 +179 218 1 0 +180 76 3 100 +180 77 3 100 +180 78 3 100 +180 79 3 100 +180 80 3 100 +180 85 1 0 +180 86 1 0 +180 87 1 0 +180 88 1 0 +180 89 1 0 +180 90 1 0 +180 91 1 0 +180 96 1 0 +180 97 1 0 +180 102 1 0 +180 103 1 0 +180 104 1 0 +180 105 1 0 +180 114 3 100 +180 115 3 100 +180 186 1 0 +180 187 1 0 +180 188 1 0 +180 189 1 0 +180 190 1 0 +180 191 1 0 +180 192 1 0 +180 193 1 0 +180 194 1 0 +180 195 3 100 +180 196 3 100 +180 202 1 0 +180 203 1 0 +180 204 1 0 +180 205 1 0 +180 206 1 0 +180 207 1 0 +180 208 1 0 +180 209 1 0 +180 213 3 100 +180 214 3 100 +180 215 1 0 +180 216 1 0 +180 217 1 0 +180 218 1 0 +180 219 1 0 +180 220 1 0 +180 221 1 0 +181 75 3 100 +181 76 3 100 +181 77 3 100 +181 78 3 100 +181 79 3 100 +181 84 1 0 +181 85 1 0 +181 86 1 0 +181 87 1 0 +181 88 1 0 +181 89 1 0 +181 90 1 0 +181 95 1 0 +181 96 1 0 +181 102 1 0 +181 103 1 0 +181 104 1 0 +181 105 1 0 +181 106 1 0 +181 114 3 100 +181 115 3 100 +181 178 1 0 +181 179 1 0 +181 180 1 0 +181 181 1 0 +181 182 1 0 +181 183 1 0 +181 184 1 0 +181 185 1 0 +181 186 1 0 +181 187 1 0 +181 188 1 0 +181 189 1 0 +181 190 1 0 +181 191 1 0 +181 192 1 0 +181 193 3 100 +181 194 3 100 +181 198 6 100 +181 199 6 100 +181 200 6 100 +181 201 6 100 +181 202 1 0 +181 203 1 0 +181 204 1 0 +181 205 1 0 +181 206 1 0 +181 207 1 0 +181 208 1 0 +181 209 1 0 +181 210 1 0 +181 211 1 0 +181 214 3 100 +181 215 3 100 +181 216 1 0 +181 217 1 0 +181 218 1 0 +181 219 1 0 +181 220 1 0 +181 221 1 0 +181 223 1 0 +181 224 1 0 +181 225 1 0 +181 226 1 0 +181 227 1 0 +181 228 1 0 +181 229 1 0 +181 230 1 0 +181 231 1 0 +181 232 1 0 +181 233 1 0 +181 234 1 0 +181 235 1 0 +181 236 1 0 +181 237 1 0 +182 75 3 100 +182 76 3 100 +182 77 3 100 +182 78 3 100 +182 79 3 100 +182 84 1 0 +182 85 1 0 +182 86 1 0 +182 87 1 0 +182 89 2 100 +182 90 2 100 +182 94 1 0 +182 95 1 0 +182 96 1 0 +182 102 1 0 +182 103 1 0 +182 104 1 0 +182 105 1 0 +182 106 1 0 +182 107 1 0 +182 113 3 100 +182 114 3 100 +182 115 3 100 +182 178 1 0 +182 179 1 0 +182 180 1 0 +182 181 1 0 +182 182 1 0 +182 183 1 0 +182 184 1 0 +182 185 1 0 +182 186 1 0 +182 187 1 0 +182 188 1 0 +182 189 1 0 +182 190 1 0 +182 191 1 0 +182 192 3 100 +182 193 3 100 +182 196 6 100 +182 197 6 100 +182 198 6 100 +182 199 1 0 +182 200 1 0 +182 201 6 100 +182 202 6 100 +182 203 1 0 +182 204 1 0 +182 205 1 0 +182 206 6 100 +182 207 6 100 +182 208 1 0 +182 209 1 0 +182 210 1 0 +182 211 1 0 +182 214 3 100 +182 215 3 100 +182 216 3 100 +182 217 3 100 +182 218 1 0 +182 219 1 0 +182 220 1 0 +182 223 1 0 +182 224 1 0 +182 225 1 0 +182 226 1 0 +182 227 1 0 +182 228 1 0 +182 229 1 0 +182 230 1 0 +182 231 1 0 +182 232 1 0 +182 233 1 0 +182 234 1 0 +182 235 1 0 +182 236 1 0 +182 237 1 0 +183 75 3 100 +183 76 3 100 +183 77 3 100 +183 78 3 100 +183 79 3 100 +183 84 1 0 +183 85 1 0 +183 86 1 0 +183 94 1 0 +183 95 1 0 +183 96 1 0 +183 103 1 0 +183 104 1 0 +183 105 1 0 +183 106 1 0 +183 107 1 0 +183 113 3 100 +183 114 3 100 +183 115 3 100 +183 178 1 0 +183 179 1 0 +183 180 1 0 +183 181 1 0 +183 182 1 0 +183 183 1 0 +183 184 1 0 +183 185 1 0 +183 186 1 0 +183 187 1 0 +183 188 1 0 +183 189 1 0 +183 190 3 100 +183 191 3 100 +183 192 3 100 +183 195 6 100 +183 196 6 100 +183 197 1 0 +183 198 1 0 +183 199 1 0 +183 200 1 0 +183 201 1 0 +183 202 1 0 +183 203 1 0 +183 204 1 0 +183 205 1 0 +183 206 6 100 +183 207 6 100 +183 208 6 100 +183 209 6 100 +183 210 6 100 +183 211 6 100 +183 212 6 100 +183 213 6 100 +183 214 6 100 +183 215 6 100 +183 216 6 100 +183 217 3 100 +183 218 1 0 +183 219 1 0 +183 220 1 0 +183 223 1 0 +183 224 1 0 +183 225 1 0 +183 226 1 0 +183 227 1 0 +183 228 1 0 +183 229 1 0 +183 230 1 0 +183 231 1 0 +183 232 1 0 +183 233 1 0 +183 234 1 0 +183 235 1 0 +183 236 1 0 +183 237 1 0 +183 239 1 0 +184 71 3 100 +184 72 3 100 +184 73 3 100 +184 74 3 100 +184 75 3 100 +184 76 3 100 +184 77 3 100 +184 78 3 100 +184 84 1 0 +184 85 1 0 +184 86 1 0 +184 104 1 0 +184 105 1 0 +184 106 1 0 +184 107 1 0 +184 113 3 100 +184 114 3 100 +184 115 3 100 +184 178 1 0 +184 179 1 0 +184 180 1 0 +184 181 1 0 +184 182 1 0 +184 183 1 0 +184 184 1 0 +184 185 1 0 +184 186 1 0 +184 187 1 0 +184 188 1 0 +184 189 1 0 +184 190 3 100 +184 191 3 100 +184 192 3 100 +184 193 6 100 +184 194 6 100 +184 195 6 100 +184 196 1 0 +184 197 1 0 +184 198 1 0 +184 199 1 0 +184 200 1 0 +184 201 1 0 +184 202 1 0 +184 203 1 0 +184 204 1 0 +184 205 1 0 +184 206 6 100 +184 207 1 0 +184 208 6 100 +184 209 1 0 +184 210 6 100 +184 211 1 0 +184 212 6 100 +184 213 1 0 +184 214 6 100 +184 215 1 0 +184 216 6 100 +184 217 3 100 +184 218 3 100 +184 219 3 100 +184 220 3 100 +184 223 1 0 +184 224 1 0 +184 225 1 0 +184 226 1 0 +184 227 1 0 +184 228 1 0 +184 229 1 0 +184 230 1 0 +184 231 1 0 +184 232 1 0 +184 233 1 0 +184 234 1 0 +184 235 1 0 +184 236 1 0 +184 237 1 0 +184 239 1 0 +184 240 1 0 +184 241 1 0 +184 242 1 0 +184 243 1 0 +185 71 3 100 +185 72 3 100 +185 73 3 100 +185 74 3 100 +185 75 3 100 +185 76 3 100 +185 77 3 100 +185 78 3 100 +185 84 1 0 +185 85 1 0 +185 86 1 0 +185 113 3 100 +185 114 3 100 +185 115 3 100 +185 178 1 0 +185 179 1 0 +185 180 1 0 +185 181 1 0 +185 182 1 0 +185 183 1 0 +185 184 1 0 +185 185 1 0 +185 186 1 0 +185 187 1 0 +185 188 3 100 +185 189 3 100 +185 190 3 100 +185 191 3 100 +185 192 6 100 +185 193 6 100 +185 194 1 0 +185 195 1 0 +185 196 1 0 +185 197 1 0 +185 198 1 0 +185 199 1 0 +185 200 1 0 +185 201 1 0 +185 202 1 0 +185 203 1 0 +185 204 1 0 +185 205 1 0 +185 206 6 100 +185 207 1 0 +185 208 6 50 +185 209 1 0 +185 210 6 50 +185 211 1 0 +185 212 6 50 +185 213 1 0 +185 214 6 50 +185 215 1 0 +185 216 6 100 +185 218 3 100 +185 219 3 100 +185 220 3 100 +185 221 1 0 +185 222 1 0 +185 223 1 0 +185 224 1 0 +185 225 1 0 +185 226 1 0 +185 227 1 0 +185 228 1 0 +185 229 1 0 +185 230 1 0 +185 231 1 0 +185 232 1 0 +185 233 1 0 +185 234 1 0 +185 235 1 0 +185 236 1 0 +185 237 1 0 +185 239 1 0 +185 240 1 0 +185 241 1 0 +185 242 1 0 +185 243 1 0 +185 244 1 0 +186 71 3 100 +186 72 3 100 +186 73 3 100 +186 74 3 100 +186 75 3 100 +186 76 3 100 +186 77 3 100 +186 78 3 100 +186 84 1 0 +186 85 1 0 +186 86 1 0 +186 112 3 100 +186 113 3 100 +186 178 1 0 +186 179 1 0 +186 180 1 0 +186 181 1 0 +186 182 1 0 +186 183 1 0 +186 184 1 0 +186 185 1 0 +186 186 1 0 +186 187 1 0 +186 188 3 100 +186 189 3 100 +186 190 3 100 +186 191 6 100 +186 192 6 100 +186 193 1 0 +186 194 1 0 +186 195 1 0 +186 196 1 0 +186 197 1 0 +186 198 1 0 +186 199 1 0 +186 200 1 0 +186 201 1 0 +186 202 1 0 +186 203 1 0 +186 204 1 0 +186 205 1 0 +186 206 1 0 +186 207 1 0 +186 208 1 0 +186 209 1 0 +186 210 1 0 +186 211 1 0 +186 212 1 0 +186 213 1 0 +186 214 1 0 +186 215 1 0 +186 216 6 100 +186 217 6 100 +186 218 1 0 +186 219 3 100 +186 220 3 100 +186 221 1 0 +186 222 1 0 +186 223 1 0 +186 224 1 0 +186 225 1 0 +186 226 1 0 +186 227 1 0 +186 228 1 0 +186 229 1 0 +186 230 1 0 +186 231 1 0 +186 232 1 0 +186 233 1 0 +186 234 1 0 +186 235 1 0 +186 236 1 0 +186 237 1 0 +186 239 1 0 +186 240 1 0 +186 241 1 0 +186 242 1 0 +186 243 1 0 +186 244 1 0 +187 71 3 100 +187 72 3 100 +187 73 3 100 +187 74 3 100 +187 75 3 100 +187 76 3 100 +187 77 3 100 +187 84 1 0 +187 85 1 0 +187 86 1 0 +187 112 3 100 +187 113 3 100 +187 177 1 0 +187 178 1 0 +187 179 1 0 +187 180 1 0 +187 181 1 0 +187 182 1 0 +187 183 1 0 +187 184 1 0 +187 185 1 0 +187 186 1 0 +187 187 1 0 +187 188 3 100 +187 189 3 100 +187 190 3 100 +187 191 6 100 +187 192 1 0 +187 193 1 0 +187 194 1 0 +187 197 1 0 +187 198 1 0 +187 199 1 0 +187 200 1 0 +187 201 6 0 +187 202 6 0 +187 203 6 0 +187 204 6 0 +187 205 6 0 +187 206 1 0 +187 207 1 0 +187 208 1 0 +187 209 1 0 +187 210 1 0 +187 211 1 0 +187 212 1 0 +187 213 1 0 +187 214 1 0 +187 215 1 0 +187 216 6 0 +187 217 6 100 +187 218 1 0 +187 219 3 100 +187 220 3 100 +187 221 3 100 +187 222 1 0 +187 223 1 0 +187 224 1 0 +187 225 1 0 +187 226 1 0 +187 227 1 0 +187 228 1 0 +187 229 1 0 +187 230 1 0 +187 231 1 0 +187 232 1 0 +187 233 1 0 +187 234 1 0 +187 235 1 0 +187 236 1 0 +187 237 1 0 +187 239 1 0 +187 240 1 0 +187 241 1 0 +187 242 1 0 +187 243 1 0 +187 244 1 0 +187 245 1 0 +188 71 3 100 +188 72 3 100 +188 73 3 100 +188 74 3 100 +188 75 3 100 +188 76 3 100 +188 77 3 100 +188 99 1 0 +188 100 1 0 +188 101 1 0 +188 112 3 100 +188 113 3 100 +188 165 3 100 +188 166 3 100 +188 167 3 100 +188 168 3 100 +188 177 1 0 +188 178 1 0 +188 179 1 0 +188 180 1 0 +188 181 1 0 +188 182 1 0 +188 183 1 0 +188 184 1 0 +188 185 1 0 +188 186 1 0 +188 187 3 100 +188 188 3 100 +188 189 3 100 +188 190 3 100 +188 191 6 100 +188 192 1 0 +188 193 1 0 +188 194 1 0 +188 195 1 0 +188 196 1 0 +188 197 1 0 +188 198 1 0 +188 199 1 0 +188 200 1 0 +188 201 6 0 +188 202 6 0 +188 203 6 0 +188 204 6 0 +188 205 6 0 +188 206 6 100 +188 207 1 0 +188 208 6 100 +188 209 6 100 +188 210 6 100 +188 211 6 100 +188 212 6 0 +188 213 6 0 +188 214 6 0 +188 215 6 0 +188 216 6 0 +188 217 6 100 +188 220 3 100 +188 221 3 100 +188 222 3 100 +188 239 1 0 +188 240 1 0 +188 241 1 0 +188 242 1 0 +188 243 1 0 +188 244 1 0 +188 245 1 0 +188 246 1 0 +189 71 3 100 +189 72 3 100 +189 73 3 100 +189 74 3 100 +189 75 3 100 +189 76 3 100 +189 77 3 100 +189 94 1 0 +189 95 1 0 +189 96 1 0 +189 97 1 0 +189 98 1 0 +189 99 1 0 +189 100 1 0 +189 101 1 0 +189 111 3 100 +189 112 3 100 +189 113 3 100 +189 156 3 100 +189 157 3 100 +189 158 3 100 +189 159 3 100 +189 160 3 100 +189 161 3 100 +189 162 3 100 +189 163 3 100 +189 164 3 100 +189 165 3 100 +189 166 3 100 +189 167 3 100 +189 168 3 100 +189 177 1 0 +189 178 1 0 +189 179 1 0 +189 180 1 0 +189 181 1 0 +189 182 1 0 +189 183 1 0 +189 184 1 0 +189 185 1 0 +189 186 1 0 +189 187 3 100 +189 188 3 100 +189 189 3 100 +189 190 3 100 +189 191 6 100 +189 192 1 0 +189 193 1 0 +189 194 1 0 +189 195 1 0 +189 196 1 0 +189 197 1 0 +189 198 1 0 +189 199 1 0 +189 200 1 0 +189 201 6 0 +189 202 6 0 +189 203 6 0 +189 204 6 0 +189 205 6 0 +189 206 6 100 +189 207 1 0 +189 208 6 100 +189 209 6 100 +189 210 6 100 +189 211 6 100 +189 212 6 0 +189 213 6 0 +189 214 6 0 +189 215 6 0 +189 216 6 0 +189 217 6 100 +189 219 2 100 +189 220 2 100 +189 221 2 100 +189 222 3 100 +189 225 1 0 +189 226 1 0 +189 227 1 0 +189 228 1 0 +189 229 1 0 +189 230 1 0 +189 231 1 0 +189 232 1 0 +189 233 1 0 +189 234 1 0 +189 235 1 0 +189 236 1 0 +189 237 1 0 +189 239 1 0 +189 240 1 0 +189 241 1 0 +189 242 1 0 +189 243 1 0 +189 244 1 0 +189 245 1 0 +189 246 1 0 +189 247 1 0 +190 71 3 100 +190 72 3 100 +190 73 3 100 +190 74 3 100 +190 75 3 100 +190 91 1 0 +190 92 1 0 +190 93 1 0 +190 94 1 0 +190 95 1 0 +190 96 1 0 +190 97 1 0 +190 98 1 0 +190 99 1 0 +190 100 1 0 +190 101 1 0 +190 111 3 100 +190 112 3 100 +190 113 3 100 +190 153 3 100 +190 154 3 100 +190 155 3 100 +190 156 3 100 +190 157 3 100 +190 158 3 100 +190 159 3 100 +190 160 3 100 +190 161 3 100 +190 162 3 100 +190 163 3 100 +190 164 3 100 +190 165 3 100 +190 166 3 100 +190 167 3 100 +190 168 3 100 +190 169 3 100 +190 171 3 100 +190 172 3 100 +190 173 3 100 +190 174 3 100 +190 175 3 100 +190 176 3 100 +190 177 3 100 +190 178 3 100 +190 179 1 0 +190 180 1 0 +190 181 1 0 +190 182 1 0 +190 183 1 0 +190 184 1 0 +190 185 1 0 +190 186 1 0 +190 187 3 100 +190 188 3 100 +190 189 3 100 +190 190 3 100 +190 191 6 100 +190 192 1 0 +190 193 1 0 +190 194 1 0 +190 195 6 0 +190 196 6 0 +190 197 6 0 +190 198 6 0 +190 199 6 0 +190 200 6 0 +190 201 6 0 +190 202 6 0 +190 203 6 0 +190 204 6 0 +190 205 6 0 +190 206 6 0 +190 207 6 0 +190 208 1 0 +190 209 6 100 +190 210 6 100 +190 211 1 0 +190 212 6 0 +190 213 6 0 +190 214 6 0 +190 215 6 0 +190 216 6 0 +190 217 6 100 +190 219 2 100 +190 220 2 100 +190 223 3 100 +190 224 3 100 +190 225 1 0 +190 226 1 0 +190 227 1 0 +190 228 1 0 +190 229 1 0 +190 230 1 0 +190 231 1 0 +190 232 1 0 +190 233 1 0 +190 234 1 0 +190 235 1 0 +190 236 1 0 +190 237 1 0 +190 239 1 0 +190 240 1 0 +190 241 1 0 +190 242 1 0 +190 243 1 0 +190 244 1 0 +190 245 1 0 +190 246 1 0 +190 247 1 0 +191 71 3 100 +191 72 3 100 +191 73 3 100 +191 74 3 100 +191 75 3 100 +191 90 1 0 +191 91 1 0 +191 92 1 0 +191 93 1 0 +191 94 1 0 +191 95 1 0 +191 96 1 0 +191 97 1 0 +191 98 1 0 +191 99 1 0 +191 100 1 0 +191 101 1 0 +191 111 3 100 +191 112 3 100 +191 151 3 100 +191 152 3 100 +191 153 3 100 +191 154 3 100 +191 155 3 100 +191 156 3 100 +191 157 3 100 +191 158 3 100 +191 159 3 100 +191 160 3 100 +191 161 3 100 +191 162 3 100 +191 163 3 100 +191 164 3 100 +191 165 3 100 +191 166 3 100 +191 167 3 100 +191 168 3 100 +191 169 3 100 +191 170 3 100 +191 171 3 100 +191 172 3 100 +191 173 3 100 +191 174 3 100 +191 175 3 100 +191 176 3 100 +191 177 3 100 +191 178 3 100 +191 179 1 0 +191 180 3 100 +191 181 1 0 +191 182 1 0 +191 183 3 100 +191 184 3 100 +191 185 3 100 +191 186 1 0 +191 187 3 100 +191 188 3 100 +191 189 3 100 +191 190 3 100 +191 191 1 0 +191 192 1 0 +191 193 1 0 +191 194 1 0 +191 195 6 0 +191 196 6 0 +191 197 6 0 +191 198 6 0 +191 199 6 0 +191 200 6 0 +191 201 6 0 +191 202 6 0 +191 203 6 0 +191 204 6 0 +191 205 6 0 +191 206 6 0 +191 207 6 0 +191 208 6 0 +191 209 6 0 +191 210 6 0 +191 211 1 0 +191 212 6 0 +191 213 6 0 +191 214 6 0 +191 215 6 0 +191 216 6 0 +191 218 2 100 +191 219 2 100 +191 220 2 100 +191 223 3 100 +191 224 3 100 +191 225 1 0 +191 226 1 0 +191 227 1 0 +191 228 1 0 +191 229 1 0 +191 230 1 0 +191 231 1 0 +191 232 1 0 +191 233 1 0 +191 234 1 0 +191 235 1 0 +191 236 1 0 +191 237 1 0 +191 239 1 0 +191 240 1 0 +191 241 1 0 +191 242 1 0 +191 243 1 0 +191 244 1 0 +191 245 1 0 +191 246 1 0 +191 247 1 0 +192 71 3 100 +192 72 3 100 +192 73 3 100 +192 74 3 100 +192 75 3 100 +192 90 1 0 +192 91 1 0 +192 92 1 0 +192 93 1 0 +192 94 1 0 +192 95 1 0 +192 98 1 0 +192 99 1 0 +192 100 1 0 +192 101 1 0 +192 111 3 100 +192 112 3 100 +192 149 3 100 +192 150 3 100 +192 151 3 100 +192 152 3 100 +192 153 3 100 +192 154 3 100 +192 155 3 100 +192 156 3 100 +192 157 3 100 +192 158 3 100 +192 159 3 100 +192 160 3 100 +192 161 3 100 +192 162 3 100 +192 163 3 100 +192 164 3 100 +192 165 3 100 +192 166 3 100 +192 167 3 100 +192 168 3 100 +192 169 3 100 +192 170 3 100 +192 171 3 100 +192 172 3 100 +192 173 3 100 +192 174 3 100 +192 175 3 100 +192 176 3 100 +192 177 3 100 +192 178 3 100 +192 179 3 100 +192 180 3 100 +192 181 3 100 +192 182 3 100 +192 183 3 100 +192 184 3 100 +192 185 3 100 +192 186 3 100 +192 187 3 100 +192 188 3 100 +192 189 3 100 +192 190 3 100 +192 191 1 0 +192 192 1 0 +192 193 1 0 +192 194 1 0 +192 195 6 0 +192 196 6 0 +192 197 6 0 +192 198 6 0 +192 199 6 0 +192 200 6 0 +192 201 6 0 +192 202 6 0 +192 203 6 0 +192 204 6 0 +192 205 6 0 +192 206 6 0 +192 207 6 0 +192 208 6 0 +192 209 6 0 +192 210 6 0 +192 211 1 0 +192 212 6 0 +192 213 6 0 +192 214 6 0 +192 215 6 0 +192 216 6 0 +192 217 1 0 +192 218 1 0 +192 219 2 100 +192 220 2 100 +192 223 3 100 +192 224 3 100 +192 225 1 0 +192 226 1 0 +192 227 1 0 +192 228 1 0 +192 229 1 0 +192 230 1 0 +192 231 1 0 +192 232 1 0 +192 233 1 0 +192 234 1 0 +192 235 1 0 +192 236 1 0 +192 237 1 0 +192 239 1 0 +192 240 1 0 +192 241 1 0 +192 242 1 0 +192 243 1 0 +192 244 1 0 +192 245 1 0 +192 246 1 0 +192 247 1 0 +193 71 3 100 +193 72 3 100 +193 73 3 100 +193 74 3 100 +193 87 1 0 +193 88 1 0 +193 89 1 0 +193 90 1 0 +193 91 1 0 +193 92 1 0 +193 98 1 0 +193 99 1 0 +193 100 1 0 +193 101 1 0 +193 110 3 100 +193 111 3 100 +193 112 3 100 +193 148 3 100 +193 149 3 100 +193 150 3 100 +193 151 3 100 +193 152 3 100 +193 153 3 100 +193 154 3 100 +193 155 3 100 +193 156 3 100 +193 157 3 100 +193 158 3 100 +193 159 3 100 +193 160 3 100 +193 161 3 100 +193 162 3 100 +193 163 3 100 +193 164 3 100 +193 165 3 100 +193 166 3 100 +193 167 3 100 +193 168 3 100 +193 169 3 100 +193 170 3 100 +193 171 3 100 +193 172 3 100 +193 173 3 100 +193 174 3 100 +193 175 3 100 +193 176 3 100 +193 180 3 100 +193 181 3 100 +193 182 3 100 +193 183 3 100 +193 184 3 100 +193 185 3 100 +193 186 3 100 +193 187 3 100 +193 188 3 100 +193 189 3 100 +193 190 3 100 +193 191 1 0 +193 192 1 0 +193 193 1 0 +193 194 1 0 +193 195 6 0 +193 196 6 0 +193 197 6 0 +193 198 6 0 +193 199 6 0 +193 200 6 0 +193 201 6 0 +193 202 6 0 +193 203 6 0 +193 204 6 0 +193 205 6 0 +193 206 6 0 +193 207 6 0 +193 208 6 0 +193 209 6 0 +193 210 6 0 +193 211 6 0 +193 212 6 0 +193 213 6 0 +193 214 6 0 +193 215 1 0 +193 216 1 0 +193 217 1 0 +193 218 1 0 +193 220 6 100 +193 224 3 100 +193 225 3 100 +193 226 1 0 +193 227 1 0 +193 228 1 0 +193 229 1 0 +193 230 1 0 +193 231 1 0 +193 232 1 0 +193 233 1 0 +193 234 1 0 +193 235 1 0 +193 236 1 0 +193 237 1 0 +193 239 1 0 +193 240 1 0 +193 241 1 0 +193 242 1 0 +193 243 1 0 +193 244 1 0 +193 245 1 0 +193 246 1 0 +193 247 1 0 +193 248 1 0 +194 69 3 100 +194 70 3 100 +194 71 3 100 +194 72 3 100 +194 73 3 100 +194 74 3 100 +194 79 1 0 +194 80 1 0 +194 81 1 0 +194 86 1 0 +194 87 1 0 +194 88 1 0 +194 89 1 0 +194 90 1 0 +194 91 1 0 +194 98 1 0 +194 99 1 0 +194 100 1 0 +194 101 1 0 +194 109 3 100 +194 110 3 100 +194 111 3 100 +194 145 3 100 +194 146 3 100 +194 147 3 100 +194 148 3 100 +194 149 3 100 +194 150 3 100 +194 151 3 100 +194 152 3 100 +194 153 3 100 +194 154 3 100 +194 155 3 100 +194 156 3 100 +194 157 3 100 +194 158 3 100 +194 159 3 100 +194 160 3 100 +194 161 3 100 +194 162 3 100 +194 163 3 100 +194 168 2 100 +194 169 2 100 +194 172 3 100 +194 173 3 100 +194 174 3 100 +194 175 3 100 +194 176 3 100 +194 182 3 100 +194 183 3 100 +194 184 3 100 +194 185 3 100 +194 186 3 100 +194 187 3 100 +194 188 3 100 +194 189 3 100 +194 190 3 100 +194 191 1 0 +194 192 1 0 +194 193 1 0 +194 194 1 0 +194 195 1 0 +194 196 6 0 +194 197 6 0 +194 198 6 0 +194 199 6 0 +194 200 6 0 +194 201 6 0 +194 202 6 0 +194 203 6 0 +194 204 6 0 +194 205 6 0 +194 206 6 0 +194 207 6 0 +194 208 6 0 +194 209 6 0 +194 210 6 0 +194 211 6 0 +194 212 6 0 +194 213 6 0 +194 214 6 0 +194 215 1 0 +194 216 1 0 +194 217 1 0 +194 218 1 0 +194 219 1 0 +194 220 6 100 +194 221 3 100 +194 224 3 100 +194 225 3 100 +194 239 1 0 +194 240 1 0 +194 241 1 0 +194 242 1 0 +194 243 1 0 +194 244 1 0 +194 245 1 0 +194 246 1 0 +194 247 1 0 +194 248 1 0 +195 69 3 100 +195 70 3 100 +195 71 3 100 +195 72 3 100 +195 73 3 100 +195 79 1 0 +195 80 1 0 +195 81 1 0 +195 82 1 0 +195 83 1 0 +195 84 1 0 +195 85 1 0 +195 86 1 0 +195 87 1 0 +195 88 1 0 +195 89 1 0 +195 90 1 0 +195 91 1 0 +195 98 1 0 +195 99 1 0 +195 100 1 0 +195 101 1 0 +195 109 3 100 +195 110 3 100 +195 111 3 100 +195 143 3 100 +195 144 3 100 +195 145 3 100 +195 146 3 100 +195 147 3 100 +195 148 3 100 +195 149 3 100 +195 150 3 100 +195 151 3 100 +195 152 3 100 +195 153 3 100 +195 154 3 100 +195 155 3 100 +195 184 3 100 +195 185 3 100 +195 186 3 100 +195 187 3 100 +195 188 3 100 +195 189 3 100 +195 190 3 100 +195 191 1 0 +195 192 5 0 +195 193 5 0 +195 194 5 0 +195 195 1 0 +195 196 1 0 +195 197 6 0 +195 198 6 0 +195 199 6 0 +195 200 6 0 +195 201 6 0 +195 202 6 0 +195 203 6 0 +195 204 6 0 +195 205 6 0 +195 206 6 0 +195 207 6 0 +195 208 6 0 +195 209 6 0 +195 210 6 0 +195 211 6 0 +195 212 6 0 +195 213 6 0 +195 214 6 0 +195 215 6 0 +195 216 6 0 +195 217 1 0 +195 218 1 0 +195 219 1 0 +195 220 6 100 +195 221 3 100 +195 225 3 100 +195 226 3 100 +195 227 1 0 +195 228 1 0 +195 229 1 0 +195 230 1 0 +195 231 1 0 +195 232 1 0 +195 233 1 0 +195 234 1 0 +195 235 1 0 +195 236 1 0 +195 237 1 0 +195 239 1 0 +195 240 1 0 +195 241 1 0 +195 242 1 0 +195 243 1 0 +195 244 1 0 +195 245 1 0 +195 246 1 0 +195 247 1 0 +195 248 1 0 +196 69 3 100 +196 70 3 100 +196 71 3 100 +196 72 3 100 +196 73 3 100 +196 79 1 0 +196 80 1 0 +196 81 1 0 +196 82 1 0 +196 83 1 0 +196 84 1 0 +196 85 1 0 +196 86 1 0 +196 87 1 0 +196 88 1 0 +196 98 1 0 +196 99 1 0 +196 100 1 0 +196 101 1 0 +196 108 3 100 +196 109 3 100 +196 110 3 100 +196 111 3 100 +196 143 3 100 +196 144 3 100 +196 145 3 100 +196 146 3 100 +196 147 3 100 +196 148 3 100 +196 149 3 100 +196 150 3 100 +196 151 3 100 +196 152 3 100 +196 153 3 100 +196 154 3 100 +196 155 3 100 +196 177 1 0 +196 178 1 0 +196 179 1 0 +196 184 1 0 +196 185 3 100 +196 186 3 100 +196 187 3 100 +196 188 3 100 +196 189 3 100 +196 190 3 100 +196 191 5 0 +196 192 5 0 +196 193 5 0 +196 194 5 0 +196 195 5 0 +196 196 5 0 +196 197 6 0 +196 198 6 0 +196 199 6 0 +196 200 6 0 +196 201 6 0 +196 202 6 0 +196 203 6 0 +196 204 6 0 +196 205 6 0 +196 206 6 0 +196 207 6 0 +196 208 6 0 +196 209 6 0 +196 210 6 0 +196 211 6 0 +196 212 1 0 +196 213 6 0 +196 214 6 0 +196 215 6 0 +196 216 6 0 +196 217 6 100 +196 218 6 100 +196 219 6 100 +196 220 6 100 +196 221 3 100 +196 226 3 100 +196 227 1 0 +196 228 1 0 +196 229 1 0 +196 230 1 0 +196 231 1 0 +196 232 1 0 +196 233 1 0 +196 234 1 0 +196 235 1 0 +196 236 1 0 +196 237 1 0 +196 239 1 0 +196 240 1 0 +196 241 1 0 +196 242 1 0 +196 243 1 0 +196 244 1 0 +196 245 1 0 +196 246 1 0 +196 247 1 0 +196 248 1 0 +197 69 3 100 +197 70 3 100 +197 71 3 100 +197 72 3 100 +197 73 3 100 +197 79 1 0 +197 80 1 0 +197 81 1 0 +197 82 1 0 +197 83 1 0 +197 84 1 0 +197 85 1 0 +197 86 1 0 +197 87 1 0 +197 98 1 0 +197 99 1 0 +197 100 1 0 +197 107 3 100 +197 108 3 100 +197 109 3 100 +197 110 3 100 +197 143 3 100 +197 144 3 100 +197 145 3 100 +197 146 3 100 +197 147 3 100 +197 148 3 100 +197 149 3 100 +197 150 3 100 +197 151 3 100 +197 152 3 100 +197 153 3 100 +197 154 3 100 +197 167 1 0 +197 175 1 0 +197 176 1 0 +197 177 1 0 +197 178 1 0 +197 179 1 0 +197 184 1 0 +197 185 1 0 +197 186 1 0 +197 188 3 100 +197 189 3 100 +197 190 3 100 +197 191 5 0 +197 192 5 0 +197 193 5 0 +197 194 5 0 +197 195 5 0 +197 196 5 0 +197 197 6 0 +197 198 6 0 +197 199 6 0 +197 200 6 0 +197 201 6 0 +197 202 6 0 +197 203 6 0 +197 204 6 0 +197 205 6 0 +197 206 6 0 +197 207 6 0 +197 208 6 0 +197 209 6 0 +197 210 6 0 +197 211 6 0 +197 212 1 0 +197 213 1 0 +197 214 6 0 +197 215 6 0 +197 216 6 0 +197 217 6 100 +197 218 5 0 +197 219 5 0 +197 220 5 0 +197 221 3 100 +197 226 3 100 +197 227 3 100 +197 228 1 0 +197 229 1 0 +197 230 1 0 +197 231 1 0 +197 232 1 0 +197 233 1 0 +197 234 1 0 +197 235 1 0 +197 236 1 0 +197 237 1 0 +197 239 1 0 +197 240 1 0 +197 241 1 0 +197 242 1 0 +197 243 1 0 +197 244 1 0 +197 245 1 0 +197 246 1 0 +197 247 1 0 +197 248 1 0 +198 69 3 100 +198 70 3 100 +198 71 3 100 +198 72 3 100 +198 73 3 100 +198 82 1 0 +198 83 1 0 +198 84 1 0 +198 98 1 0 +198 99 1 0 +198 100 1 0 +198 107 3 100 +198 108 3 100 +198 109 3 100 +198 110 3 100 +198 142 3 100 +198 143 3 100 +198 144 3 100 +198 145 3 100 +198 146 3 100 +198 147 3 100 +198 148 3 100 +198 149 3 100 +198 150 3 100 +198 151 3 100 +198 152 3 100 +198 153 3 100 +198 167 1 0 +198 173 1 0 +198 174 1 0 +198 175 1 0 +198 176 1 0 +198 177 1 0 +198 178 1 0 +198 179 1 0 +198 184 1 0 +198 185 1 0 +198 188 3 100 +198 189 3 100 +198 190 3 100 +198 193 5 0 +198 194 5 0 +198 195 5 0 +198 196 5 0 +198 197 5 0 +198 198 1 0 +198 199 1 0 +198 200 6 0 +198 201 6 0 +198 202 6 0 +198 203 6 0 +198 204 6 0 +198 205 6 0 +198 206 6 0 +198 207 6 0 +198 208 6 0 +198 209 6 0 +198 210 6 0 +198 211 6 0 +198 212 5 0 +198 213 5 0 +198 214 6 0 +198 215 6 0 +198 216 6 0 +198 217 5 0 +198 218 5 0 +198 219 5 0 +198 220 5 0 +198 221 3 100 +198 226 3 100 +198 227 3 100 +198 228 1 0 +198 229 1 0 +198 230 1 0 +198 231 1 0 +198 232 1 0 +198 233 1 0 +198 234 1 0 +198 235 1 0 +198 236 1 0 +198 237 1 0 +198 239 1 0 +198 240 1 0 +198 241 1 0 +198 242 1 0 +198 243 1 0 +198 244 1 0 +198 245 1 0 +198 246 1 0 +198 247 1 0 +198 248 1 0 +199 69 3 100 +199 70 3 100 +199 71 3 100 +199 72 3 100 +199 73 3 100 +199 97 1 0 +199 98 1 0 +199 99 1 0 +199 100 1 0 +199 107 3 100 +199 108 3 100 +199 109 3 100 +199 142 3 100 +199 143 3 100 +199 144 3 100 +199 145 3 100 +199 146 3 100 +199 147 3 100 +199 148 3 100 +199 149 3 100 +199 165 1 0 +199 166 1 0 +199 167 1 0 +199 168 1 0 +199 169 1 0 +199 170 1 0 +199 171 1 0 +199 172 1 0 +199 173 1 0 +199 174 1 0 +199 175 1 0 +199 176 1 0 +199 177 1 0 +199 178 1 0 +199 179 1 0 +199 184 1 0 +199 185 1 0 +199 190 1 0 +199 191 1 0 +199 195 5 0 +199 196 5 0 +199 197 5 0 +199 198 5 0 +199 199 1 0 +199 200 1 0 +199 201 1 0 +199 202 1 0 +199 203 1 0 +199 204 1 0 +199 205 1 0 +199 206 1 0 +199 207 5 0 +199 208 5 0 +199 209 5 0 +199 210 5 0 +199 211 5 0 +199 212 5 0 +199 213 5 0 +199 214 5 0 +199 215 5 0 +199 216 5 0 +199 217 5 0 +199 218 5 0 +199 219 5 0 +199 220 5 0 +199 221 3 100 +199 222 3 100 +199 225 3 100 +199 226 3 100 +199 227 3 100 +199 228 1 0 +199 229 1 0 +199 230 1 0 +199 231 1 0 +199 232 1 0 +199 233 1 0 +199 234 1 0 +199 235 1 0 +199 236 1 0 +199 237 1 0 +199 239 1 0 +199 240 1 0 +199 241 1 0 +199 242 1 0 +199 243 1 0 +199 244 1 0 +199 245 1 0 +199 246 1 0 +199 247 1 0 +199 248 1 0 +200 69 3 100 +200 70 3 100 +200 71 3 100 +200 72 3 100 +200 73 3 100 +200 97 1 0 +200 98 1 0 +200 99 1 0 +200 100 1 0 +200 107 3 100 +200 108 3 100 +200 109 3 100 +200 140 3 100 +200 141 3 100 +200 142 3 100 +200 143 3 100 +200 144 3 100 +200 145 3 100 +200 146 3 100 +200 147 3 100 +200 157 2 100 +200 165 1 0 +200 169 1 0 +200 170 1 0 +200 171 1 0 +200 172 1 0 +200 173 1 0 +200 174 1 0 +200 175 1 0 +200 176 1 0 +200 177 1 0 +200 178 1 0 +200 184 1 0 +200 185 1 0 +200 190 1 0 +200 191 1 0 +200 192 1 0 +200 193 1 0 +200 195 1 0 +200 196 1 0 +200 197 5 0 +200 198 5 0 +200 199 5 0 +200 200 5 0 +200 201 5 0 +200 202 5 0 +200 203 1 0 +200 204 1 0 +200 205 1 0 +200 206 1 0 +200 207 1 0 +200 208 5 0 +200 209 5 0 +200 210 5 0 +200 211 5 0 +200 212 5 0 +200 213 5 0 +200 214 5 0 +200 215 5 0 +200 216 5 0 +200 217 5 0 +200 218 5 0 +200 219 5 0 +200 220 5 0 +200 221 3 100 +200 225 3 100 +200 239 1 0 +200 240 1 0 +200 241 1 0 +200 242 1 0 +200 243 1 0 +200 244 1 0 +200 245 1 0 +200 246 1 0 +200 247 1 0 +201 69 3 100 +201 70 3 100 +201 71 3 100 +201 72 3 100 +201 73 3 100 +201 97 1 0 +201 98 1 0 +201 99 1 0 +201 100 1 0 +201 106 3 100 +201 107 3 100 +201 108 3 100 +201 109 3 100 +201 138 3 100 +201 139 3 100 +201 140 3 100 +201 141 3 100 +201 142 3 100 +201 143 3 100 +201 144 3 100 +201 145 3 100 +201 156 2 100 +201 157 2 100 +201 169 1 0 +201 170 1 0 +201 171 1 0 +201 172 1 0 +201 173 1 0 +201 174 1 0 +201 175 1 0 +201 183 1 0 +201 184 1 0 +201 185 1 0 +201 189 1 0 +201 190 1 0 +201 191 1 0 +201 192 1 0 +201 193 1 0 +201 196 1 0 +201 197 1 0 +201 198 1 0 +201 199 1 0 +201 200 1 0 +201 201 5 0 +201 202 5 0 +201 220 3 100 +201 221 3 100 +201 222 3 100 +201 223 3 100 +201 224 3 100 +201 225 3 100 +201 227 1 0 +201 228 1 0 +201 229 1 0 +201 230 1 0 +201 231 1 0 +201 232 1 0 +201 233 1 0 +201 234 1 0 +201 235 1 0 +201 236 1 0 +201 237 1 0 +201 239 1 0 +201 240 1 0 +201 241 1 0 +201 242 1 0 +201 243 1 0 +201 244 1 0 +201 245 1 0 +201 246 1 0 +201 247 1 0 +202 69 3 100 +202 70 3 100 +202 71 3 100 +202 72 3 100 +202 73 3 100 +202 95 1 0 +202 96 1 0 +202 97 1 0 +202 98 1 0 +202 99 1 0 +202 106 3 100 +202 107 3 100 +202 108 3 100 +202 138 3 100 +202 139 3 100 +202 140 3 100 +202 141 3 100 +202 142 3 100 +202 143 3 100 +202 144 3 100 +202 145 3 100 +202 182 1 0 +202 183 1 0 +202 184 1 0 +202 185 3 100 +202 186 3 100 +202 189 1 0 +202 190 1 0 +202 191 1 0 +202 192 1 0 +202 193 1 0 +202 194 1 0 +202 196 1 0 +202 197 1 0 +202 198 1 0 +202 199 1 0 +202 200 1 0 +202 201 1 0 +202 202 1 0 +202 203 1 0 +202 204 1 0 +202 205 1 0 +202 206 1 0 +202 208 6 0 +202 209 6 0 +202 210 6 0 +202 211 6 0 +202 212 6 0 +202 213 6 0 +202 214 6 0 +202 215 6 0 +202 216 6 0 +202 217 6 0 +202 218 6 0 +202 219 3 100 +202 220 3 100 +202 221 3 100 +202 223 3 100 +202 224 3 100 +202 227 1 0 +202 228 1 0 +202 229 1 0 +202 230 1 0 +202 231 1 0 +202 232 1 0 +202 233 1 0 +202 234 1 0 +202 235 1 0 +202 236 1 0 +202 237 1 0 +202 239 1 0 +202 240 1 0 +202 241 1 0 +202 242 1 0 +202 243 1 0 +202 244 1 0 +202 245 1 0 +202 246 1 0 +202 247 1 0 +203 69 3 100 +203 70 3 100 +203 71 3 100 +203 72 3 100 +203 73 3 100 +203 94 1 0 +203 95 1 0 +203 96 1 0 +203 97 1 0 +203 98 1 0 +203 99 1 0 +203 100 2 100 +203 106 3 100 +203 107 3 100 +203 108 3 100 +203 138 3 100 +203 139 3 100 +203 140 3 100 +203 141 3 100 +203 142 3 100 +203 143 3 100 +203 182 1 0 +203 183 1 0 +203 184 1 0 +203 185 3 100 +203 186 3 100 +203 189 1 0 +203 190 1 0 +203 191 1 0 +203 192 1 0 +203 193 1 0 +203 194 1 0 +203 197 1 0 +203 198 1 0 +203 199 1 0 +203 200 1 0 +203 202 1 0 +203 203 1 0 +203 204 1 0 +203 205 1 0 +203 206 1 0 +203 208 6 0 +203 209 6 0 +203 210 6 0 +203 211 6 0 +203 212 6 0 +203 213 6 0 +203 214 6 0 +203 215 6 0 +203 216 6 0 +203 217 6 0 +203 218 6 0 +203 219 3 100 +203 223 1 0 +203 227 1 0 +203 228 1 0 +203 229 1 0 +203 230 1 0 +203 231 1 0 +203 232 1 0 +203 233 1 0 +203 234 1 0 +203 235 1 0 +203 236 1 0 +203 237 1 0 +203 239 1 0 +203 240 1 0 +203 241 1 0 +203 242 1 0 +203 243 1 0 +203 244 1 0 +203 245 1 0 +203 246 1 0 +203 247 1 0 +204 69 3 100 +204 70 3 100 +204 71 3 100 +204 72 3 100 +204 73 3 100 +204 92 1 0 +204 93 1 0 +204 94 1 0 +204 95 1 0 +204 96 1 0 +204 97 1 0 +204 98 1 0 +204 106 3 100 +204 107 3 100 +204 108 3 100 +204 138 3 100 +204 139 3 100 +204 140 3 100 +204 141 3 100 +204 149 1 0 +204 150 1 0 +204 151 1 0 +204 152 1 0 +204 153 1 0 +204 154 1 0 +204 155 1 0 +204 156 1 0 +204 157 1 0 +204 165 1 0 +204 166 1 0 +204 167 1 0 +204 168 1 0 +204 169 1 0 +204 170 1 0 +204 171 1 0 +204 182 1 0 +204 183 1 0 +204 184 1 0 +204 185 3 100 +204 189 1 0 +204 190 1 0 +204 191 1 0 +204 192 1 0 +204 193 1 0 +204 194 1 0 +204 195 2 100 +204 197 1 0 +204 198 1 0 +204 199 1 0 +204 200 1 0 +204 201 1 50 +204 202 1 0 +204 203 1 0 +204 204 1 0 +204 205 1 0 +204 206 1 0 +204 208 6 0 +204 209 6 0 +204 210 6 0 +204 211 6 0 +204 212 6 0 +204 213 6 0 +204 214 6 0 +204 215 6 0 +204 216 6 0 +204 217 6 0 +204 218 3 100 +204 219 3 100 +204 222 1 0 +204 223 1 0 +204 227 1 0 +204 228 1 0 +204 229 1 0 +204 230 1 0 +204 231 1 0 +204 232 1 0 +204 233 1 0 +204 234 1 0 +204 235 1 0 +204 236 1 0 +204 237 1 0 +204 239 1 0 +204 240 1 0 +204 241 1 0 +204 242 1 0 +204 243 1 0 +204 244 1 0 +204 245 1 0 +204 246 1 0 +204 247 1 0 +205 69 3 100 +205 70 3 100 +205 71 3 100 +205 72 3 100 +205 73 3 100 +205 92 1 0 +205 93 1 0 +205 94 1 0 +205 95 1 0 +205 96 1 0 +205 105 3 100 +205 106 3 100 +205 107 3 100 +205 108 3 100 +205 134 3 100 +205 135 3 100 +205 136 3 100 +205 137 3 100 +205 138 3 100 +205 139 3 100 +205 140 3 100 +205 141 3 100 +205 148 1 0 +205 149 1 0 +205 150 1 0 +205 151 1 0 +205 152 1 0 +205 153 1 0 +205 154 1 0 +205 155 1 0 +205 156 1 0 +205 157 1 0 +205 158 1 0 +205 165 1 0 +205 166 1 0 +205 167 1 0 +205 168 1 0 +205 169 1 0 +205 170 1 0 +205 171 1 0 +205 172 1 0 +205 173 1 0 +205 183 1 0 +205 184 1 0 +205 185 3 100 +205 186 3 100 +205 190 1 0 +205 191 1 0 +205 192 2 100 +205 193 2 100 +205 194 1 0 +205 195 2 100 +205 197 1 0 +205 198 1 0 +205 199 1 0 +205 200 1 0 +205 202 1 0 +205 203 1 0 +205 204 1 0 +205 205 1 0 +205 206 1 0 +205 208 6 0 +205 209 6 0 +205 210 6 0 +205 211 6 0 +205 212 6 0 +205 213 6 0 +205 214 6 0 +205 215 6 0 +205 216 6 0 +205 217 6 0 +205 218 3 100 +205 222 1 0 +205 223 1 0 +205 227 1 0 +205 228 1 0 +205 229 1 0 +205 230 1 0 +205 231 1 0 +205 232 1 0 +205 233 1 0 +205 234 1 0 +205 235 1 0 +205 236 1 0 +205 237 1 0 +205 239 1 0 +205 240 1 0 +205 241 1 0 +205 242 1 0 +205 243 1 0 +205 244 1 0 +205 245 1 0 +205 246 1 0 +205 247 1 0 +206 69 3 100 +206 70 3 100 +206 71 3 100 +206 72 3 100 +206 73 3 100 +206 92 1 0 +206 93 1 0 +206 94 1 0 +206 95 1 0 +206 106 3 100 +206 107 3 100 +206 108 3 100 +206 134 3 100 +206 135 3 100 +206 136 3 100 +206 137 3 100 +206 138 3 100 +206 139 3 100 +206 147 1 0 +206 148 1 0 +206 149 1 0 +206 150 1 0 +206 151 1 0 +206 152 1 0 +206 153 1 0 +206 154 1 0 +206 155 1 0 +206 156 1 0 +206 157 1 0 +206 158 1 0 +206 165 1 0 +206 166 1 0 +206 167 1 0 +206 168 1 0 +206 169 1 0 +206 170 1 0 +206 171 1 0 +206 172 1 0 +206 173 1 0 +206 174 1 0 +206 183 1 0 +206 184 1 0 +206 185 3 100 +206 186 3 100 +206 191 1 0 +206 192 2 100 +206 193 2 100 +206 194 1 0 +206 195 1 0 +206 198 1 0 +206 199 1 0 +206 200 1 0 +206 201 1 0 +206 202 1 0 +206 203 1 0 +206 204 1 0 +206 205 1 0 +206 206 1 0 +206 208 6 0 +206 209 6 0 +206 210 6 0 +206 211 6 0 +206 212 6 0 +206 213 6 0 +206 214 6 0 +206 215 6 0 +206 216 6 0 +206 217 6 0 +206 218 3 100 +206 221 1 0 +206 222 1 0 +206 223 1 0 +206 239 1 0 +206 240 1 0 +206 241 1 0 +206 242 1 0 +206 243 1 0 +206 244 1 0 +206 245 1 0 +206 246 1 0 +206 247 1 0 +207 69 3 100 +207 70 3 100 +207 71 3 100 +207 72 3 100 +207 73 3 100 +207 89 1 0 +207 90 1 0 +207 91 1 0 +207 92 1 0 +207 93 1 0 +207 94 1 0 +207 106 3 100 +207 107 3 100 +207 108 3 100 +207 109 3 100 +207 134 3 100 +207 135 3 100 +207 136 3 100 +207 137 3 100 +207 147 1 0 +207 148 1 0 +207 149 1 0 +207 150 1 0 +207 151 1 0 +207 152 1 0 +207 153 1 0 +207 154 1 0 +207 155 1 0 +207 156 1 0 +207 157 1 0 +207 158 1 0 +207 165 1 0 +207 166 1 0 +207 167 1 0 +207 168 1 0 +207 169 1 0 +207 170 1 0 +207 171 1 0 +207 172 1 0 +207 173 1 0 +207 174 1 0 +207 175 1 0 +207 183 1 0 +207 184 1 0 +207 185 3 100 +207 186 3 100 +207 192 1 0 +207 193 1 0 +207 194 1 0 +207 195 1 0 +207 198 1 0 +207 199 1 0 +207 200 1 0 +207 201 1 0 +207 202 1 0 +207 203 1 0 +207 204 1 0 +207 205 1 0 +207 206 1 0 +207 208 6 0 +207 209 6 0 +207 210 6 0 +207 211 6 0 +207 212 6 0 +207 213 6 0 +207 214 6 0 +207 215 6 0 +207 216 6 0 +207 217 6 0 +207 218 3 100 +207 221 1 0 +207 222 1 0 +207 223 1 0 +207 227 1 0 +207 228 1 0 +207 229 1 0 +207 230 1 0 +207 231 1 0 +207 232 1 0 +207 233 1 0 +207 234 1 0 +207 235 1 0 +207 236 1 0 +207 237 1 0 +207 239 1 0 +207 240 1 0 +207 241 1 0 +207 242 1 0 +207 243 1 0 +207 244 1 0 +207 245 1 0 +207 246 1 0 +207 247 1 0 +208 69 3 100 +208 70 3 100 +208 71 3 100 +208 72 3 100 +208 73 3 100 +208 87 1 0 +208 88 1 0 +208 89 1 0 +208 90 1 0 +208 91 1 0 +208 92 1 0 +208 93 1 0 +208 94 1 0 +208 100 2 100 +208 101 2 100 +208 106 3 100 +208 107 3 100 +208 108 3 100 +208 109 3 100 +208 110 3 100 +208 129 3 100 +208 130 3 100 +208 131 3 100 +208 132 3 100 +208 133 3 100 +208 134 3 100 +208 135 3 100 +208 136 3 100 +208 145 1 0 +208 146 1 0 +208 147 1 0 +208 148 1 0 +208 149 1 0 +208 150 1 0 +208 156 1 0 +208 157 1 0 +208 158 1 0 +208 159 1 0 +208 165 1 0 +208 166 1 0 +208 167 1 0 +208 168 1 0 +208 169 1 0 +208 170 1 0 +208 171 1 0 +208 172 1 0 +208 173 1 0 +208 174 1 0 +208 175 1 0 +208 180 3 100 +208 181 3 100 +208 182 3 100 +208 183 3 100 +208 184 3 100 +208 185 3 100 +208 186 3 100 +208 192 1 0 +208 193 1 0 +208 194 1 0 +208 195 1 0 +208 196 1 0 +208 197 2 100 +208 198 1 0 +208 199 1 0 +208 200 1 0 +208 201 1 0 +208 202 1 0 +208 203 1 0 +208 204 1 0 +208 205 1 0 +208 206 1 0 +208 208 6 0 +208 209 6 0 +208 210 6 0 +208 211 6 0 +208 212 6 0 +208 213 2 100 +208 214 2 100 +208 215 6 0 +208 216 6 0 +208 217 6 0 +208 218 3 100 +208 220 1 0 +208 221 1 0 +208 222 1 0 +208 223 1 0 +208 227 1 0 +208 228 1 0 +208 229 1 0 +208 230 1 0 +208 231 1 0 +208 232 1 0 +208 233 1 0 +208 234 1 0 +208 235 1 0 +208 236 1 0 +208 237 1 0 +208 239 1 0 +208 240 1 0 +208 241 1 0 +208 242 1 0 +208 243 1 0 +208 244 1 0 +208 245 1 0 +208 246 1 0 +208 247 1 0 +209 69 3 100 +209 70 3 100 +209 71 3 100 +209 72 3 100 +209 73 3 100 +209 86 1 0 +209 87 1 0 +209 88 1 0 +209 89 1 0 +209 90 1 0 +209 91 1 0 +209 100 2 100 +209 101 2 100 +209 107 3 100 +209 108 3 100 +209 109 3 100 +209 110 3 100 +209 128 3 100 +209 129 3 100 +209 130 3 100 +209 131 3 100 +209 132 3 100 +209 133 3 100 +209 134 3 100 +209 135 3 100 +209 136 3 100 +209 145 1 0 +209 146 1 0 +209 147 1 0 +209 148 1 0 +209 149 1 0 +209 156 1 0 +209 157 1 0 +209 158 1 0 +209 159 1 0 +209 172 1 0 +209 173 1 0 +209 174 1 0 +209 175 1 0 +209 179 3 100 +209 180 3 100 +209 181 3 100 +209 182 3 100 +209 183 3 100 +209 184 3 100 +209 185 1 0 +209 186 3 100 +209 187 3 100 +209 192 1 0 +209 193 1 0 +209 194 1 0 +209 195 1 0 +209 196 1 0 +209 198 1 0 +209 199 1 0 +209 200 1 0 +209 202 1 50 +209 204 1 0 +209 205 1 0 +209 206 1 0 +209 208 6 0 +209 209 6 0 +209 210 6 0 +209 211 6 0 +209 212 6 0 +209 213 6 0 +209 214 2 100 +209 215 6 0 +209 216 6 0 +209 217 3 100 +209 220 1 0 +209 221 1 0 +209 222 1 0 +209 223 1 0 +209 227 1 0 +209 228 1 0 +209 229 1 0 +209 230 1 0 +209 231 1 0 +209 232 1 0 +209 233 1 0 +209 234 1 0 +209 235 1 0 +209 236 1 0 +209 237 1 0 +209 239 1 0 +209 240 1 0 +209 241 1 0 +209 242 1 0 +209 243 1 0 +209 244 1 0 +209 245 1 0 +210 69 3 100 +210 70 3 100 +210 71 3 100 +210 72 3 100 +210 73 3 100 +210 85 1 0 +210 86 1 0 +210 87 1 0 +210 88 1 0 +210 89 1 0 +210 107 3 100 +210 108 3 100 +210 109 3 100 +210 110 3 100 +210 128 3 100 +210 129 3 100 +210 130 3 100 +210 131 3 100 +210 132 3 100 +210 133 3 100 +210 134 3 100 +210 135 3 100 +210 143 1 0 +210 144 1 0 +210 145 1 0 +210 146 1 0 +210 147 1 0 +210 155 1 0 +210 156 1 0 +210 157 1 0 +210 158 1 0 +210 159 1 0 +210 179 3 100 +210 180 3 100 +210 181 3 100 +210 182 3 100 +210 183 3 100 +210 184 1 0 +210 185 1 0 +210 186 1 0 +210 187 3 100 +210 188 3 100 +210 193 1 0 +210 194 1 0 +210 195 1 0 +210 196 1 0 +210 198 1 0 +210 199 1 0 +210 200 1 0 +210 201 1 0 +210 202 1 0 +210 203 1 0 +210 204 1 0 +210 205 1 0 +210 206 1 0 +210 209 6 0 +210 210 6 0 +210 211 6 0 +210 212 6 0 +210 213 6 0 +210 214 2 100 +210 215 6 0 +210 216 6 0 +210 217 3 100 +210 218 1 0 +210 219 1 0 +210 220 1 0 +210 221 1 0 +210 222 1 0 +210 223 1 0 +210 227 1 0 +210 228 1 0 +210 229 1 0 +210 230 1 0 +210 231 1 0 +210 232 1 0 +210 233 1 0 +210 234 1 0 +210 235 1 0 +210 236 1 0 +210 237 1 0 +210 239 1 0 +210 240 1 0 +210 241 1 0 +210 242 1 0 +210 243 1 0 +210 244 1 0 +210 245 1 0 +211 69 3 100 +211 70 3 100 +211 71 3 100 +211 72 3 100 +211 73 3 100 +211 85 1 0 +211 86 1 0 +211 87 1 0 +211 88 1 0 +211 100 1 0 +211 101 1 0 +211 102 1 0 +211 108 3 100 +211 109 3 100 +211 110 3 100 +211 111 3 100 +211 128 3 100 +211 129 3 100 +211 130 3 100 +211 131 3 100 +211 132 3 100 +211 133 3 100 +211 142 1 0 +211 143 1 0 +211 144 1 0 +211 145 1 0 +211 146 1 0 +211 147 1 0 +211 154 1 0 +211 155 1 0 +211 156 1 0 +211 157 1 0 +211 158 1 0 +211 159 1 0 +211 177 3 100 +211 178 3 100 +211 179 3 100 +211 180 3 100 +211 181 3 100 +211 182 3 100 +211 183 1 0 +211 184 1 0 +211 185 1 0 +211 186 3 100 +211 187 3 100 +211 188 3 100 +211 195 1 0 +211 198 1 0 +211 199 1 0 +211 200 1 0 +211 201 1 0 +211 202 1 0 +211 203 1 0 +211 204 1 0 +211 205 1 0 +211 206 1 0 +211 209 6 0 +211 210 6 0 +211 211 6 0 +211 212 6 0 +211 213 6 0 +211 214 6 0 +211 215 6 0 +211 216 6 0 +211 217 6 0 +211 218 6 0 +211 219 1 0 +211 220 1 0 +211 221 1 0 +211 222 1 0 +211 223 1 0 +211 227 1 0 +211 228 1 0 +211 229 1 0 +211 230 1 0 +211 231 1 0 +211 232 1 0 +211 233 1 0 +211 234 1 0 +211 235 1 0 +211 236 1 0 +211 237 1 0 +211 239 1 0 +211 240 1 0 +211 241 1 0 +211 242 1 0 +211 243 1 0 +211 244 1 0 +211 245 1 0 +212 69 3 100 +212 70 3 100 +212 71 3 100 +212 72 3 100 +212 73 3 100 +212 85 1 0 +212 86 1 0 +212 87 1 0 +212 90 1 0 +212 91 1 0 +212 92 1 0 +212 93 1 0 +212 94 1 0 +212 95 1 0 +212 96 1 0 +212 97 1 0 +212 100 1 0 +212 101 1 0 +212 102 1 0 +212 108 3 100 +212 109 3 100 +212 110 3 100 +212 111 3 100 +212 125 3 100 +212 126 3 100 +212 127 3 100 +212 128 3 100 +212 129 3 100 +212 130 3 100 +212 131 3 100 +212 132 3 100 +212 141 1 0 +212 142 1 0 +212 143 1 0 +212 144 1 0 +212 145 1 0 +212 154 1 0 +212 155 1 0 +212 156 1 0 +212 157 1 0 +212 158 1 0 +212 159 1 0 +212 163 2 100 +212 176 3 100 +212 177 3 100 +212 178 3 100 +212 179 3 100 +212 180 3 100 +212 182 1 0 +212 183 1 0 +212 184 1 0 +212 185 1 0 +212 186 1 0 +212 187 1 0 +212 188 3 100 +212 189 3 100 +212 198 1 0 +212 199 1 0 +212 200 1 0 +212 201 1 0 +212 202 1 0 +212 209 6 0 +212 210 6 0 +212 211 6 0 +212 212 6 0 +212 213 6 0 +212 214 6 0 +212 215 6 0 +212 216 6 0 +212 217 6 0 +212 218 6 0 +212 219 6 0 +212 220 1 0 +212 221 1 0 +212 222 1 0 +212 223 1 0 +212 227 1 0 +212 228 1 0 +212 229 1 0 +212 230 1 0 +212 231 1 0 +212 232 1 0 +212 233 1 0 +212 234 1 0 +212 235 1 0 +212 236 1 0 +212 237 1 0 +212 239 1 0 +212 240 1 0 +212 241 1 0 +212 242 1 0 +212 243 1 0 +212 244 1 0 +212 245 1 0 +213 73 3 100 +213 74 3 100 +213 84 1 0 +213 85 1 0 +213 86 1 0 +213 87 1 0 +213 90 1 0 +213 91 1 0 +213 92 1 0 +213 93 1 0 +213 94 1 0 +213 95 1 0 +213 96 1 0 +213 97 1 0 +213 100 1 0 +213 101 1 0 +213 102 1 0 +213 103 1 0 +213 110 3 100 +213 111 3 100 +213 112 3 100 +213 113 3 100 +213 123 3 100 +213 124 3 100 +213 125 3 100 +213 126 3 100 +213 127 3 100 +213 128 3 100 +213 129 3 100 +213 130 3 100 +213 131 3 100 +213 132 3 100 +213 140 1 0 +213 141 1 0 +213 142 1 0 +213 143 1 0 +213 144 1 0 +213 145 1 0 +213 147 2 100 +213 154 1 0 +213 155 1 0 +213 156 1 0 +213 157 1 0 +213 158 1 0 +213 159 1 0 +213 163 2 100 +213 164 2 100 +213 172 3 100 +213 173 3 100 +213 174 3 100 +213 176 3 100 +213 177 3 100 +213 178 3 100 +213 179 3 100 +213 180 3 100 +213 182 1 0 +213 183 1 0 +213 184 1 0 +213 185 1 0 +213 186 1 0 +213 187 1 0 +213 188 1 0 +213 189 3 100 +213 190 3 100 +213 209 6 0 +213 210 6 0 +213 211 6 0 +213 212 6 0 +213 213 6 0 +213 214 6 0 +213 215 6 0 +213 216 6 0 +213 217 6 0 +213 218 6 0 +213 219 6 0 +213 220 1 0 +213 221 1 0 +213 222 1 0 +213 223 1 0 +214 73 3 100 +214 74 3 100 +214 75 3 100 +214 82 1 0 +214 83 1 0 +214 84 1 0 +214 85 1 0 +214 86 1 0 +214 87 1 0 +214 88 1 0 +214 89 1 0 +214 90 1 0 +214 91 1 0 +214 92 1 0 +214 93 1 0 +214 94 1 0 +214 95 1 0 +214 96 1 0 +214 97 1 0 +214 100 1 0 +214 101 1 0 +214 102 1 0 +214 103 1 0 +214 104 1 0 +214 110 3 100 +214 111 3 100 +214 112 3 100 +214 113 3 100 +214 123 3 100 +214 124 3 100 +214 125 3 100 +214 126 3 100 +214 127 3 100 +214 128 3 100 +214 129 3 100 +214 138 1 0 +214 139 1 0 +214 140 1 0 +214 141 1 0 +214 142 1 0 +214 143 1 0 +214 144 1 0 +214 154 1 0 +214 155 1 0 +214 156 1 0 +214 157 1 0 +214 158 1 0 +214 163 2 100 +214 164 2 100 +214 168 3 100 +214 169 3 100 +214 170 3 100 +214 171 3 100 +214 172 3 100 +214 173 3 100 +214 174 3 100 +214 175 3 100 +214 176 3 100 +214 177 3 100 +214 178 3 100 +214 182 1 0 +214 183 1 0 +214 184 1 0 +214 185 1 0 +214 186 1 0 +214 187 1 0 +214 188 1 0 +214 189 1 0 +214 190 3 100 +214 191 3 100 +214 209 6 0 +214 210 6 0 +214 211 6 0 +214 212 6 0 +214 213 6 0 +214 214 6 0 +214 215 6 0 +214 216 6 0 +214 217 6 0 +214 218 6 0 +214 219 1 0 +214 220 1 0 +214 221 1 0 +214 222 1 0 +214 223 1 0 +215 73 3 100 +215 74 3 100 +215 75 3 100 +215 82 1 0 +215 83 1 0 +215 84 1 0 +215 85 1 0 +215 86 1 0 +215 87 1 0 +215 88 1 0 +215 89 1 0 +215 90 1 0 +215 91 1 0 +215 92 1 0 +215 93 1 0 +215 94 1 0 +215 95 1 0 +215 96 1 0 +215 97 1 0 +215 101 1 0 +215 102 1 0 +215 103 1 0 +215 104 1 0 +215 112 3 100 +215 113 3 100 +215 114 3 100 +215 123 3 100 +215 124 3 100 +215 125 3 100 +215 126 3 100 +215 127 3 100 +215 128 3 100 +215 138 1 0 +215 139 1 0 +215 140 1 0 +215 141 1 0 +215 142 1 0 +215 143 1 0 +215 145 2 100 +215 154 1 0 +215 155 1 0 +215 156 1 0 +215 157 1 0 +215 168 3 100 +215 169 3 100 +215 170 3 100 +215 171 3 100 +215 172 3 100 +215 173 3 100 +215 174 3 100 +215 175 3 100 +215 176 3 100 +215 177 3 100 +215 178 3 100 +215 183 1 0 +215 184 1 0 +215 185 1 0 +215 186 1 0 +215 187 1 0 +215 188 1 0 +215 189 1 0 +215 190 1 0 +215 191 3 100 +215 192 3 100 +215 202 3 100 +215 203 3 100 +215 204 3 100 +215 205 3 100 +215 206 3 100 +215 207 3 100 +215 208 3 100 +215 209 6 0 +215 210 6 0 +215 211 6 0 +215 212 6 0 +215 213 6 0 +215 214 6 0 +215 215 6 0 +215 216 6 0 +215 217 6 0 +215 218 1 0 +215 219 1 0 +215 220 1 0 +215 221 1 0 +215 222 1 0 +215 223 1 0 +216 73 3 100 +216 74 3 100 +216 75 3 100 +216 82 1 0 +216 83 1 0 +216 84 1 0 +216 85 1 0 +216 86 1 0 +216 87 1 0 +216 88 1 0 +216 89 1 0 +216 90 1 0 +216 91 1 0 +216 92 1 0 +216 93 1 0 +216 94 1 0 +216 95 1 0 +216 96 1 0 +216 97 1 0 +216 101 1 0 +216 102 1 0 +216 103 1 0 +216 104 1 0 +216 112 3 100 +216 113 3 100 +216 114 3 100 +216 115 3 100 +216 116 3 100 +216 117 3 100 +216 118 3 100 +216 119 3 100 +216 120 3 100 +216 121 3 100 +216 122 3 100 +216 123 3 100 +216 124 3 100 +216 125 3 100 +216 126 3 100 +216 127 3 100 +216 137 1 0 +216 138 1 0 +216 139 1 0 +216 140 1 0 +216 141 1 0 +216 142 1 0 +216 145 1 0 +216 146 1 0 +216 147 1 0 +216 148 1 0 +216 149 1 0 +216 150 1 0 +216 154 1 0 +216 155 1 0 +216 156 1 0 +216 168 3 100 +216 169 3 100 +216 170 3 100 +216 171 3 100 +216 172 3 100 +216 173 3 100 +216 174 3 100 +216 175 3 100 +216 176 3 100 +216 177 3 100 +216 184 1 0 +216 185 1 0 +216 186 1 0 +216 187 1 0 +216 188 1 0 +216 189 1 0 +216 190 1 0 +216 191 3 100 +216 192 3 100 +216 193 3 100 +216 194 3 100 +216 195 3 100 +216 196 3 100 +216 199 3 100 +216 200 3 100 +216 201 3 100 +216 202 3 100 +216 203 3 100 +216 204 3 100 +216 205 1 0 +216 206 3 100 +216 207 3 100 +216 208 3 100 +216 209 6 0 +216 210 6 0 +216 211 6 0 +216 212 6 0 +216 213 6 0 +216 214 6 0 +216 215 6 0 +216 216 6 0 +216 217 6 0 +216 218 1 0 +216 219 1 0 +216 220 1 0 +216 221 1 0 +216 222 1 0 +216 223 1 0 +216 224 1 0 +217 73 3 100 +217 74 3 100 +217 75 3 100 +217 83 1 0 +217 84 1 0 +217 85 1 0 +217 86 1 0 +217 87 1 0 +217 88 1 0 +217 89 1 0 +217 90 1 0 +217 91 1 0 +217 92 1 0 +217 93 1 0 +217 94 1 0 +217 95 1 0 +217 96 1 0 +217 97 1 0 +217 98 1 0 +217 102 1 0 +217 103 1 0 +217 104 1 0 +217 105 1 0 +217 114 3 100 +217 115 3 100 +217 116 3 100 +217 117 3 100 +217 118 3 100 +217 119 3 100 +217 120 3 100 +217 121 3 100 +217 122 3 100 +217 123 3 100 +217 124 3 100 +217 125 3 100 +217 137 1 0 +217 138 1 0 +217 139 1 0 +217 140 1 0 +217 141 1 0 +217 142 1 0 +217 143 1 0 +217 144 1 0 +217 145 1 0 +217 146 1 0 +217 147 1 0 +217 148 1 0 +217 149 1 0 +217 150 1 0 +217 151 1 0 +217 152 1 0 +217 153 1 0 +217 154 1 0 +217 155 1 0 +217 156 1 0 +217 168 3 100 +217 184 1 0 +217 185 1 0 +217 186 1 0 +217 187 1 0 +217 188 1 0 +217 189 1 0 +217 190 1 0 +217 191 1 0 +217 192 1 0 +217 193 3 100 +217 194 1 0 +217 195 1 0 +217 196 1 0 +217 197 3 100 +217 198 3 100 +217 199 3 100 +217 200 1 0 +217 201 1 0 +217 202 3 100 +217 203 1 0 +217 204 1 0 +217 205 1 0 +217 206 1 0 +217 207 1 0 +217 208 1 0 +217 209 6 0 +217 210 6 0 +217 211 6 0 +217 212 6 0 +217 213 6 0 +217 214 6 0 +217 215 6 0 +217 216 6 0 +217 217 6 0 +217 218 6 0 +217 219 1 0 +217 220 1 0 +217 221 1 0 +217 222 1 0 +217 223 1 0 +217 224 1 0 +218 73 3 100 +218 74 3 100 +218 75 3 100 +218 83 1 0 +218 84 1 0 +218 85 1 0 +218 86 1 0 +218 87 1 0 +218 88 1 0 +218 89 1 0 +218 90 1 0 +218 91 1 0 +218 92 1 0 +218 93 1 0 +218 94 1 0 +218 95 1 0 +218 96 1 0 +218 97 1 0 +218 98 1 0 +218 102 1 0 +218 103 1 0 +218 104 1 0 +218 105 1 0 +218 106 1 0 +218 115 3 100 +218 116 3 100 +218 117 3 100 +218 118 3 100 +218 119 3 100 +218 120 3 100 +218 121 3 100 +218 122 3 100 +218 123 3 100 +218 137 1 0 +218 138 1 0 +218 139 1 0 +218 140 1 0 +218 141 1 0 +218 142 1 0 +218 143 1 0 +218 144 1 0 +218 145 1 0 +218 146 1 0 +218 147 1 0 +218 148 1 0 +218 149 1 0 +218 150 1 0 +218 151 1 0 +218 152 1 0 +218 153 1 0 +218 154 1 0 +218 155 1 0 +218 156 1 0 +218 168 3 100 +218 186 1 0 +218 187 1 0 +218 188 1 0 +218 189 1 0 +218 190 1 0 +218 191 1 0 +218 192 1 0 +218 193 3 100 +218 194 3 100 +218 195 1 0 +218 196 1 0 +218 197 1 0 +218 198 1 0 +218 199 1 0 +218 200 1 0 +218 201 1 0 +218 202 1 0 +218 203 1 0 +218 204 1 0 +218 205 1 0 +218 206 1 0 +218 207 1 0 +218 208 6 0 +218 209 6 0 +218 210 6 0 +218 211 6 0 +218 212 6 0 +218 213 6 0 +218 214 6 0 +218 215 6 0 +218 216 6 0 +218 217 6 0 +218 218 6 0 +218 219 1 0 +218 220 1 0 +219 73 3 100 +219 74 3 100 +219 75 3 100 +219 83 1 0 +219 84 1 0 +219 85 1 0 +219 86 1 0 +219 87 1 0 +219 88 1 0 +219 89 1 0 +219 90 1 0 +219 91 1 0 +219 92 1 0 +219 93 1 0 +219 94 1 0 +219 95 1 0 +219 96 1 0 +219 97 1 0 +219 98 1 0 +219 102 1 0 +219 103 1 0 +219 104 1 0 +219 105 1 0 +219 106 1 0 +219 107 1 0 +219 115 3 100 +219 116 3 100 +219 117 3 100 +219 118 3 100 +219 119 3 100 +219 120 3 100 +219 121 3 100 +219 122 3 100 +219 138 1 0 +219 139 1 0 +219 140 1 0 +219 141 1 0 +219 142 1 0 +219 143 1 0 +219 144 1 0 +219 145 1 0 +219 146 1 0 +219 147 1 0 +219 148 1 0 +219 149 1 0 +219 150 1 0 +219 151 1 0 +219 152 1 0 +219 153 1 0 +219 154 1 0 +219 155 1 0 +219 167 3 100 +219 168 3 100 +219 186 1 0 +219 187 1 0 +219 188 1 0 +219 189 1 0 +219 190 1 0 +219 191 1 0 +219 192 1 0 +219 193 1 0 +219 194 3 100 +219 195 1 0 +219 196 1 0 +219 197 1 0 +219 198 1 0 +219 199 1 0 +219 200 1 0 +219 201 1 0 +219 202 1 0 +219 203 1 0 +219 204 1 0 +219 205 1 0 +219 206 1 0 +219 207 6 0 +219 208 6 0 +219 209 6 0 +219 210 6 0 +219 211 6 0 +219 212 6 0 +219 213 6 0 +219 214 6 0 +219 215 6 0 +219 216 6 0 +219 217 6 0 +219 218 6 0 +219 219 1 0 +219 220 1 0 +220 73 3 100 +220 74 3 100 +220 75 3 100 +220 83 1 0 +220 84 1 0 +220 85 1 0 +220 86 1 0 +220 87 1 0 +220 88 1 0 +220 89 1 0 +220 90 1 0 +220 91 1 0 +220 92 1 0 +220 93 1 0 +220 94 1 0 +220 95 1 0 +220 96 1 0 +220 97 1 0 +220 98 1 0 +220 103 1 0 +220 104 1 0 +220 105 1 0 +220 106 1 0 +220 107 1 0 +220 117 3 100 +220 118 3 100 +220 119 3 100 +220 138 1 0 +220 139 1 0 +220 140 1 0 +220 141 1 0 +220 142 1 0 +220 151 1 0 +220 152 1 0 +220 153 1 0 +220 165 3 100 +220 166 3 100 +220 167 3 100 +220 168 3 100 +220 186 1 0 +220 187 1 0 +220 188 1 0 +220 189 1 0 +220 190 1 0 +220 191 1 0 +220 192 1 0 +220 193 3 100 +220 194 3 100 +220 195 3 100 +220 196 1 0 +220 197 1 0 +220 198 1 0 +220 199 1 0 +220 200 1 0 +220 201 1 0 +220 202 1 0 +220 203 1 0 +220 204 1 0 +220 205 1 0 +220 206 1 0 +220 207 6 0 +220 208 6 0 +220 209 6 0 +220 210 6 0 +220 211 6 0 +220 212 6 0 +220 213 6 0 +220 214 6 0 +220 215 6 0 +220 216 6 0 +220 217 6 0 +220 218 1 0 +220 219 1 0 +220 220 1 0 +221 70 3 100 +221 71 3 100 +221 72 3 100 +221 73 3 100 +221 74 3 100 +221 76 1 0 +221 77 1 0 +221 78 1 0 +221 79 1 0 +221 80 1 0 +221 81 1 0 +221 82 1 0 +221 83 1 0 +221 84 1 0 +221 85 1 0 +221 86 1 0 +221 87 1 0 +221 88 1 0 +221 89 1 0 +221 90 1 0 +221 91 1 0 +221 92 1 0 +221 93 1 0 +221 94 1 0 +221 95 1 0 +221 96 1 0 +221 97 1 0 +221 98 1 0 +221 99 1 0 +221 100 1 0 +221 101 1 0 +221 102 1 0 +221 103 1 0 +221 104 1 0 +221 105 1 0 +221 106 1 0 +221 107 1 0 +221 125 2 100 +221 138 1 0 +221 139 1 0 +221 140 1 0 +221 165 3 100 +221 166 3 100 +221 167 3 100 +221 168 3 100 +221 186 1 0 +221 187 1 0 +221 188 1 0 +221 189 1 0 +221 190 1 0 +221 191 1 0 +221 192 1 0 +221 193 3 100 +221 194 3 100 +221 195 3 100 +221 196 1 0 +221 197 1 0 +221 198 1 0 +221 199 1 0 +221 200 1 0 +221 201 1 0 +221 202 1 0 +221 203 1 0 +221 204 1 0 +221 205 1 0 +221 206 1 0 +221 207 1 0 +221 208 6 0 +221 209 6 0 +221 210 6 0 +221 211 6 0 +221 212 6 0 +221 213 6 0 +221 214 6 0 +221 215 6 0 +221 216 6 0 +221 217 1 0 +221 218 1 0 +221 219 1 0 +221 220 1 0 +222 70 3 100 +222 71 3 100 +222 72 3 100 +222 73 3 100 +222 74 3 100 +222 76 1 0 +222 77 1 0 +222 78 1 0 +222 79 1 0 +222 80 1 0 +222 81 1 0 +222 82 1 0 +222 83 1 0 +222 84 1 0 +222 85 1 0 +222 86 1 0 +222 87 1 0 +222 88 1 0 +222 89 1 0 +222 90 1 0 +222 91 1 0 +222 92 1 0 +222 93 1 0 +222 94 1 0 +222 95 1 0 +222 96 1 0 +222 97 1 0 +222 98 1 0 +222 99 1 0 +222 100 1 0 +222 101 1 0 +222 102 1 0 +222 103 1 0 +222 104 1 0 +222 105 1 0 +222 106 1 0 +222 107 1 0 +222 108 1 0 +222 109 1 0 +222 110 1 0 +222 111 1 0 +222 112 1 0 +222 125 2 100 +222 165 3 100 +222 166 3 100 +222 167 3 100 +222 168 3 100 +222 186 1 0 +222 187 1 0 +222 188 1 0 +222 189 1 0 +222 190 1 0 +222 191 1 0 +222 192 1 0 +222 193 3 100 +222 194 3 100 +222 195 3 100 +222 196 1 0 +222 197 1 0 +222 198 1 0 +222 199 1 0 +222 200 1 0 +222 201 1 0 +222 202 1 0 +222 203 1 0 +222 204 1 0 +222 205 1 0 +222 206 1 0 +222 207 1 0 +222 208 1 0 +222 209 1 0 +222 210 6 0 +222 211 6 0 +222 212 6 0 +222 213 1 0 +222 214 1 0 +222 215 1 0 +222 216 1 0 +222 217 1 0 +222 218 1 0 +222 219 1 0 +223 70 3 100 +223 71 3 100 +223 72 3 100 +223 73 3 100 +223 74 3 100 +223 76 1 0 +223 77 1 0 +223 78 1 0 +223 79 1 0 +223 80 1 0 +223 81 1 0 +223 82 1 0 +223 83 1 0 +223 84 1 0 +223 85 1 0 +223 86 1 0 +223 87 1 0 +223 88 1 0 +223 89 1 0 +223 90 1 0 +223 91 1 0 +223 92 1 0 +223 93 1 0 +223 94 1 0 +223 95 1 0 +223 96 1 0 +223 97 1 0 +223 98 1 0 +223 99 1 0 +223 100 1 0 +223 101 1 0 +223 102 1 0 +223 103 1 0 +223 104 1 0 +223 105 1 0 +223 106 1 0 +223 107 1 0 +223 108 1 0 +223 109 1 0 +223 110 1 0 +223 111 1 0 +223 112 1 0 +223 165 3 100 +223 166 3 100 +223 167 3 100 +223 168 3 100 +223 193 1 0 +223 194 3 100 +223 195 3 100 +223 196 1 0 +223 197 1 0 +223 198 1 0 +223 199 1 0 +223 200 1 0 +223 201 1 0 +223 202 1 0 +223 203 1 0 +223 204 1 0 +223 205 1 0 +223 206 1 0 +223 207 1 0 +223 208 1 0 +223 209 1 0 +223 210 1 0 +223 211 1 0 +223 212 1 0 +223 213 1 0 +223 214 1 0 +223 215 1 0 +223 216 1 0 +223 217 1 0 +223 218 1 0 +224 70 3 100 +224 71 3 100 +224 72 3 100 +224 73 3 100 +224 74 3 100 +224 76 1 0 +224 77 1 0 +224 78 1 0 +224 79 1 0 +224 80 1 0 +224 81 1 0 +224 82 1 0 +224 83 1 0 +224 84 1 0 +224 85 1 0 +224 86 1 0 +224 87 1 0 +224 88 1 0 +224 89 1 0 +224 90 1 0 +224 91 1 0 +224 92 1 0 +224 93 1 0 +224 94 1 0 +224 95 1 0 +224 96 1 0 +224 97 1 0 +224 98 1 0 +224 99 1 0 +224 100 1 0 +224 101 1 0 +224 102 1 0 +224 103 1 0 +224 104 1 0 +224 106 1 0 +224 107 1 0 +224 108 1 0 +224 109 1 0 +224 110 1 0 +224 111 1 0 +224 112 1 0 +224 164 3 100 +224 165 3 100 +224 166 3 100 +224 167 3 100 +224 168 3 100 +224 195 3 100 +224 196 1 0 +224 197 1 0 +224 198 1 0 +224 199 1 0 +224 200 1 0 +224 201 1 0 +224 202 1 0 +224 203 1 0 +224 204 1 0 +224 205 1 0 +224 206 1 0 +224 207 1 0 +224 208 1 0 +224 209 1 0 +224 210 1 0 +224 211 1 0 +224 212 1 0 +224 213 1 0 +224 214 1 0 +225 70 3 100 +225 71 3 100 +225 72 3 100 +225 73 3 100 +225 76 1 0 +225 77 1 0 +225 78 1 0 +225 79 1 0 +225 80 1 0 +225 81 1 0 +225 82 1 0 +225 83 1 0 +225 84 1 0 +225 85 1 0 +225 86 1 0 +225 87 1 0 +225 88 1 0 +225 89 1 0 +225 90 1 0 +225 91 1 0 +225 92 1 0 +225 93 1 0 +225 94 1 0 +225 95 1 0 +225 96 1 0 +225 97 1 0 +225 98 1 0 +225 99 1 0 +225 100 1 0 +225 101 1 0 +225 102 1 0 +225 103 1 0 +225 104 1 0 +225 136 2 100 +225 164 3 100 +225 165 3 100 +225 166 3 100 +225 167 3 100 +225 168 3 100 +225 197 1 0 +225 198 1 0 +225 199 1 0 +225 200 1 0 +225 201 1 0 +225 202 1 0 +225 203 1 0 +225 204 1 0 +225 205 1 0 +225 206 1 0 +226 68 3 100 +226 69 3 100 +226 70 3 100 +226 71 3 100 +226 72 3 100 +226 73 3 100 +226 76 1 0 +226 77 1 0 +226 78 1 0 +226 79 1 0 +226 80 1 0 +226 81 1 0 +226 82 1 0 +226 83 1 0 +226 84 1 0 +226 85 1 0 +226 86 1 0 +226 87 1 0 +226 88 1 0 +226 89 1 0 +226 90 1 0 +226 91 1 0 +226 92 1 0 +226 93 1 0 +226 94 1 0 +226 95 1 0 +226 96 1 0 +226 97 1 0 +226 98 1 0 +226 99 1 0 +226 100 1 0 +226 101 1 0 +226 102 1 0 +226 103 1 0 +226 104 1 0 +226 124 1 0 +226 125 1 0 +226 126 1 0 +226 127 1 0 +226 128 1 0 +226 129 1 0 +226 130 1 0 +226 131 1 0 +226 145 1 0 +226 146 1 0 +226 147 1 0 +226 148 1 0 +226 149 1 0 +226 164 3 100 +226 165 3 100 +226 166 3 100 +226 167 3 100 +226 168 3 100 +227 68 3 100 +227 69 3 100 +227 70 3 100 +227 71 3 100 +227 72 3 100 +227 76 1 0 +227 77 1 0 +227 78 1 0 +227 79 1 0 +227 80 1 0 +227 81 1 0 +227 82 1 0 +227 83 1 0 +227 84 1 0 +227 85 1 0 +227 86 1 0 +227 87 1 0 +227 88 1 0 +227 89 1 0 +227 90 1 0 +227 91 1 0 +227 92 1 0 +227 93 1 0 +227 94 1 0 +227 95 1 0 +227 96 1 0 +227 97 1 0 +227 98 1 0 +227 99 1 0 +227 100 1 0 +227 101 1 0 +227 102 1 0 +227 103 1 0 +227 104 1 0 +227 114 2 100 +227 123 1 0 +227 124 1 0 +227 125 1 0 +227 126 1 0 +227 127 1 0 +227 128 1 0 +227 129 1 0 +227 130 1 0 +227 131 1 0 +227 132 1 0 +227 133 1 0 +227 136 1 0 +227 137 1 0 +227 138 1 0 +227 143 1 0 +227 144 1 0 +227 145 1 0 +227 146 1 0 +227 147 1 0 +227 148 1 0 +227 149 1 0 +227 164 3 100 +227 165 3 100 +227 166 3 100 +227 167 3 100 +227 168 3 100 +228 68 3 100 +228 69 3 100 +228 70 3 100 +228 71 3 100 +228 76 1 0 +228 77 1 0 +228 78 1 0 +228 79 1 0 +228 80 1 0 +228 81 1 0 +228 82 1 0 +228 83 1 0 +228 84 1 0 +228 85 1 0 +228 86 1 0 +228 87 1 0 +228 88 1 0 +228 89 1 0 +228 90 1 0 +228 91 1 0 +228 92 1 0 +228 93 1 0 +228 94 1 0 +228 95 1 0 +228 96 1 0 +228 97 1 0 +228 98 1 0 +228 99 1 0 +228 100 1 0 +228 101 1 0 +228 102 1 0 +228 103 1 0 +228 104 1 0 +228 114 2 100 +228 123 1 0 +228 124 1 0 +228 125 1 0 +228 126 1 0 +228 127 1 0 +228 128 1 0 +228 129 1 0 +228 130 1 0 +228 131 1 0 +228 132 1 0 +228 133 1 0 +228 134 1 0 +228 135 1 0 +228 136 1 0 +228 137 1 0 +228 138 1 0 +228 139 1 0 +228 140 1 0 +228 141 1 0 +228 142 1 0 +228 143 1 0 +228 144 1 0 +228 145 1 0 +228 146 1 0 +228 147 1 0 +228 148 1 0 +228 149 1 0 +228 164 3 100 +228 165 3 100 +228 166 3 100 +228 167 3 100 +228 168 3 100 +229 68 3 100 +229 69 3 100 +229 70 3 100 +229 76 1 0 +229 77 1 0 +229 78 1 0 +229 79 1 0 +229 80 1 0 +229 81 1 0 +229 82 1 0 +229 83 1 0 +229 84 1 0 +229 85 1 0 +229 86 1 0 +229 87 1 0 +229 88 1 0 +229 89 1 0 +229 90 1 0 +229 91 1 0 +229 92 1 0 +229 93 1 0 +229 94 1 0 +229 95 1 0 +229 96 1 0 +229 97 1 0 +229 98 1 0 +229 99 1 0 +229 100 1 0 +229 101 1 0 +229 102 1 0 +229 103 1 0 +229 104 1 0 +229 116 1 0 +229 117 1 0 +229 118 1 0 +229 119 1 0 +229 120 1 0 +229 123 1 0 +229 124 1 0 +229 125 1 0 +229 126 1 0 +229 128 1 0 +229 129 1 0 +229 130 1 0 +229 131 1 0 +229 132 1 0 +229 133 1 0 +229 134 1 0 +229 135 1 0 +229 136 1 0 +229 137 1 0 +229 138 1 0 +229 139 1 0 +229 140 1 0 +229 141 1 0 +229 142 1 0 +229 143 1 0 +229 144 1 0 +229 145 1 0 +229 164 3 100 +229 165 3 100 +229 166 3 100 +229 167 3 100 +229 168 3 100 +230 68 3 100 +230 69 3 100 +230 70 3 100 +230 76 1 0 +230 77 1 0 +230 78 1 0 +230 79 1 0 +230 80 1 0 +230 81 1 0 +230 82 1 0 +230 83 1 0 +230 84 1 0 +230 85 1 0 +230 86 1 0 +230 87 1 0 +230 88 1 0 +230 89 1 0 +230 90 1 0 +230 91 1 0 +230 92 1 0 +230 93 1 0 +230 94 1 0 +230 95 1 0 +230 96 1 0 +230 97 1 0 +230 98 1 0 +230 99 1 0 +230 100 1 0 +230 101 1 0 +230 102 1 0 +230 103 1 0 +230 104 1 0 +230 115 1 0 +230 116 1 0 +230 117 1 0 +230 118 1 0 +230 119 1 0 +230 120 1 0 +230 129 1 0 +230 130 1 0 +230 131 1 0 +230 132 1 0 +230 134 1 0 +230 135 1 0 +230 136 1 0 +230 137 1 0 +230 138 1 0 +230 139 1 0 +230 140 1 0 +230 141 1 0 +230 142 1 0 +230 143 1 0 +230 164 3 100 +230 165 3 100 +230 166 3 100 +230 167 3 100 +230 168 3 100 +231 66 3 100 +231 67 3 100 +231 68 3 100 +231 69 3 100 +231 70 3 100 +231 77 1 0 +231 78 1 0 +231 79 1 0 +231 80 1 0 +231 81 1 0 +231 82 1 0 +231 83 1 0 +231 84 1 0 +231 85 1 0 +231 86 1 0 +231 87 1 0 +231 88 1 0 +231 89 1 0 +231 90 1 0 +231 91 1 0 +231 92 1 0 +231 93 1 0 +231 94 1 0 +231 95 1 0 +231 96 1 0 +231 97 1 0 +231 98 1 0 +231 99 1 0 +231 100 1 0 +231 101 1 0 +231 102 1 0 +231 103 1 0 +231 104 1 0 +231 109 1 0 +231 110 1 0 +231 111 1 0 +231 112 1 0 +231 113 1 0 +231 115 1 0 +231 116 1 0 +231 117 1 0 +231 118 1 0 +231 119 1 0 +231 120 1 0 +231 136 1 0 +231 137 1 0 +231 138 1 0 +231 139 1 0 +231 140 1 0 +231 164 3 100 +231 165 3 100 +231 166 3 100 +231 167 3 100 +231 168 3 100 +232 66 3 100 +232 67 3 100 +232 68 3 100 +232 69 3 100 +232 70 3 100 +232 77 1 0 +232 78 1 0 +232 79 1 0 +232 80 1 0 +232 81 1 0 +232 82 1 0 +232 83 1 0 +232 84 1 0 +232 85 1 0 +232 86 1 0 +232 87 1 0 +232 88 1 0 +232 89 1 0 +232 90 1 0 +232 91 1 0 +232 92 1 0 +232 93 1 0 +232 94 1 0 +232 95 1 0 +232 96 1 0 +232 97 1 0 +232 98 1 0 +232 99 1 0 +232 100 1 0 +232 101 1 0 +232 102 1 0 +232 103 1 0 +232 104 1 0 +232 105 1 0 +232 106 1 0 +232 107 1 0 +232 108 1 0 +232 109 1 0 +232 110 1 0 +232 111 1 0 +232 112 1 0 +232 113 1 0 +232 115 1 0 +232 116 1 0 +232 117 1 0 +232 118 1 0 +232 136 1 0 +232 137 1 0 +232 138 1 0 +232 162 3 100 +232 163 3 100 +232 164 3 100 +232 165 3 100 +232 166 3 100 +232 167 3 100 +232 168 3 100 +233 66 3 100 +233 67 3 100 +233 68 3 100 +233 69 3 100 +233 70 3 100 +233 77 1 0 +233 78 1 0 +233 79 1 0 +233 80 1 0 +233 81 1 0 +233 82 1 0 +233 83 1 0 +233 84 1 0 +233 85 1 0 +233 86 1 0 +233 87 1 0 +233 88 1 0 +233 89 1 0 +233 90 1 0 +233 91 1 0 +233 92 1 0 +233 93 1 0 +233 94 1 0 +233 95 1 0 +233 96 1 0 +233 97 1 0 +233 98 1 0 +233 99 1 0 +233 100 1 0 +233 101 1 0 +233 102 1 0 +233 103 1 0 +233 104 1 0 +233 105 1 0 +233 106 1 0 +233 107 1 0 +233 108 1 0 +233 109 1 0 +233 110 1 0 +233 111 1 0 +233 112 1 0 +233 113 1 0 +233 114 1 0 +233 115 1 0 +233 116 1 0 +233 117 1 0 +233 118 1 0 +233 162 3 100 +233 163 3 100 +233 164 3 100 +233 165 3 100 +233 166 3 100 +233 167 3 100 +233 168 3 100 +234 66 3 100 +234 67 3 100 +234 68 3 100 +234 69 3 100 +234 70 3 100 +234 77 1 0 +234 78 1 0 +234 79 1 0 +234 80 1 0 +234 81 1 0 +234 82 1 0 +234 83 1 0 +234 84 1 0 +234 85 1 0 +234 86 1 0 +234 87 1 0 +234 88 1 0 +234 89 1 0 +234 90 1 0 +234 91 1 0 +234 92 1 0 +234 93 1 0 +234 94 1 0 +234 95 1 0 +234 96 1 0 +234 97 1 0 +234 98 1 0 +234 99 1 0 +234 100 1 0 +234 101 1 0 +234 102 1 0 +234 103 1 0 +234 104 1 0 +234 105 1 0 +234 106 1 0 +234 107 1 0 +234 108 1 0 +234 109 1 0 +234 110 1 0 +234 114 1 0 +234 115 1 0 +234 116 1 0 +234 117 1 0 +234 125 1 0 +234 126 1 0 +234 127 1 0 +234 128 1 0 +234 129 1 0 +234 144 1 0 +234 145 1 0 +234 146 1 0 +234 162 3 100 +234 163 3 100 +234 164 3 100 +234 165 3 100 +234 166 3 100 +234 167 3 100 +234 168 3 100 +235 66 3 100 +235 67 3 100 +235 68 3 100 +235 69 3 100 +235 77 1 0 +235 78 1 0 +235 79 1 0 +235 80 1 0 +235 81 1 0 +235 82 1 0 +235 83 1 0 +235 84 1 0 +235 85 1 0 +235 86 1 0 +235 87 1 0 +235 88 1 0 +235 89 1 0 +235 90 1 0 +235 91 1 0 +235 92 1 0 +235 93 1 0 +235 94 1 0 +235 95 1 0 +235 96 1 0 +235 97 1 0 +235 98 1 0 +235 99 1 0 +235 100 1 0 +235 101 1 0 +235 102 1 0 +235 103 1 0 +235 104 1 0 +235 105 1 0 +235 106 1 0 +235 107 1 0 +235 108 1 0 +235 109 1 0 +235 110 1 0 +235 114 1 0 +235 115 1 0 +235 116 1 0 +235 117 1 0 +235 125 1 0 +235 126 1 0 +235 127 1 0 +235 128 1 0 +235 129 1 0 +235 130 1 0 +235 131 1 0 +235 142 1 0 +235 143 1 0 +235 144 1 0 +235 145 1 0 +235 146 1 0 +235 161 3 100 +235 162 3 100 +235 163 3 100 +235 164 3 100 +235 165 3 100 +235 166 3 100 +236 66 3 100 +236 67 3 100 +236 68 3 100 +236 69 3 100 +236 77 1 0 +236 78 1 0 +236 79 1 0 +236 80 1 0 +236 81 1 0 +236 82 1 0 +236 83 1 0 +236 84 1 0 +236 85 1 0 +236 86 1 0 +236 87 1 0 +236 88 1 0 +236 89 1 0 +236 90 1 0 +236 91 1 0 +236 92 1 0 +236 93 1 0 +236 94 1 0 +236 95 1 0 +236 96 1 0 +236 97 1 0 +236 98 1 0 +236 99 1 0 +236 100 1 0 +236 101 1 0 +236 102 1 0 +236 103 1 0 +236 104 1 0 +236 125 1 0 +236 126 1 0 +236 127 1 0 +236 128 1 0 +236 129 1 0 +236 130 1 0 +236 131 1 0 +236 140 1 0 +236 141 1 0 +236 142 1 0 +236 143 1 0 +236 144 1 0 +236 145 1 0 +236 146 1 0 +236 160 3 100 +236 161 3 100 +236 162 3 100 +236 163 3 100 +236 164 3 100 +236 165 3 100 +236 166 3 100 +237 66 3 100 +237 67 3 100 +237 68 3 100 +237 69 3 100 +237 80 1 0 +237 81 1 0 +237 82 1 0 +237 83 1 0 +237 84 1 0 +237 85 1 0 +237 91 1 0 +237 92 1 0 +237 93 1 0 +237 94 1 0 +237 95 1 0 +237 96 1 0 +237 97 1 0 +237 98 1 0 +237 100 1 0 +237 101 1 0 +237 102 1 0 +237 128 1 0 +237 129 1 0 +237 130 1 0 +237 131 1 0 +237 132 1 0 +237 133 1 0 +237 134 1 0 +237 135 1 0 +237 136 1 0 +237 137 1 0 +237 138 1 0 +237 139 1 0 +237 140 1 0 +237 141 1 0 +237 142 1 0 +237 143 1 0 +237 144 1 0 +237 145 1 0 +237 146 1 0 +237 159 3 100 +237 160 3 100 +237 161 3 100 +237 162 3 100 +237 163 3 100 +237 164 3 100 +237 165 3 100 +237 166 3 100 +238 66 3 100 +238 67 3 100 +238 68 3 100 +238 69 3 100 +238 81 1 0 +238 82 1 0 +238 83 1 0 +238 84 1 0 +238 85 1 0 +238 89 1 0 +238 90 1 0 +238 91 1 0 +238 92 1 0 +238 93 1 0 +238 94 1 0 +238 95 1 0 +238 130 1 0 +238 131 1 0 +238 132 1 0 +238 133 1 0 +238 134 1 0 +238 135 1 0 +238 136 1 0 +238 137 1 0 +238 138 1 0 +238 139 1 0 +238 140 1 0 +238 141 1 0 +238 142 1 0 +238 143 1 0 +238 144 1 0 +238 157 3 100 +238 158 3 100 +238 159 3 100 +238 160 3 100 +238 161 3 100 +238 162 3 100 +238 163 3 100 +238 164 3 100 +238 165 3 100 +238 166 3 100 +239 64 3 100 +239 65 3 100 +239 66 3 100 +239 67 3 100 +239 68 3 100 +239 69 3 100 +239 83 1 0 +239 84 1 0 +239 85 1 0 +239 86 1 0 +239 87 1 0 +239 88 1 0 +239 89 1 0 +239 90 1 0 +239 91 1 0 +239 92 1 0 +239 93 1 0 +239 94 1 0 +239 130 1 0 +239 131 1 0 +239 132 1 0 +239 133 1 0 +239 134 1 0 +239 135 1 0 +239 136 1 0 +239 137 1 0 +239 138 1 0 +239 139 1 0 +239 140 1 0 +239 141 1 0 +239 155 3 100 +239 156 3 100 +239 157 3 100 +239 158 3 100 +239 159 3 100 +239 160 3 100 +239 161 3 100 +239 162 3 100 +239 163 3 100 +239 164 3 100 +239 165 3 100 +239 166 3 100 +240 64 3 100 +240 65 3 100 +240 66 3 100 +240 67 3 100 +240 68 3 100 +240 69 3 100 +240 83 1 0 +240 84 1 0 +240 85 1 0 +240 86 1 0 +240 87 1 0 +240 88 1 0 +240 89 1 0 +240 90 1 0 +240 91 1 0 +240 92 1 0 +240 93 1 0 +240 154 3 100 +240 155 3 100 +240 156 3 100 +241 64 3 100 +241 65 3 100 +241 66 3 100 +241 67 3 100 +241 68 3 100 +241 69 3 100 +241 84 1 0 +241 85 1 0 +241 86 1 0 +241 87 1 0 +241 88 1 0 +241 89 1 0 +241 90 1 0 +241 152 3 100 +241 153 3 100 +241 154 3 100 +241 155 3 100 +241 156 3 100 +242 64 3 100 +242 65 3 100 +242 66 3 100 +242 67 3 100 +242 68 3 100 +242 69 3 100 +242 86 1 0 +242 87 1 0 +242 88 1 0 +242 150 3 100 +242 151 3 100 +242 152 3 100 +242 153 3 100 +242 154 3 100 +242 155 3 100 +242 156 3 100 +243 64 3 100 +243 65 3 100 +243 66 3 100 +243 67 3 100 +243 68 3 100 +243 69 3 100 +243 149 3 100 +243 150 3 100 +243 151 3 100 +243 152 3 100 +243 153 3 100 +243 154 3 100 +243 155 3 100 +244 64 3 100 +244 65 3 100 +244 66 3 100 +244 67 3 100 +244 68 3 100 +244 69 3 100 +244 70 3 100 +244 123 3 100 +244 129 3 100 +244 130 3 100 +244 131 3 100 +244 145 3 100 +244 146 3 100 +244 147 3 100 +244 148 3 100 +244 149 3 100 +244 150 3 100 +244 151 3 100 +244 152 3 100 +244 153 3 100 +244 154 3 100 +244 155 3 100 +245 64 3 100 +245 65 3 100 +245 66 3 100 +245 67 3 100 +245 68 3 100 +245 69 3 100 +245 70 3 100 +245 119 3 100 +245 120 3 100 +245 121 3 100 +245 122 3 100 +245 123 3 100 +245 124 3 100 +245 125 3 100 +245 126 3 100 +245 127 3 100 +245 128 3 100 +245 129 3 100 +245 130 3 100 +245 131 3 100 +245 132 3 100 +245 133 3 100 +245 134 3 100 +245 135 3 100 +245 144 3 100 +245 145 3 100 +245 146 3 100 +245 147 3 100 +245 148 3 100 +245 149 3 100 +245 150 3 100 +245 151 3 100 +245 152 3 100 +245 153 3 100 +246 64 3 100 +246 65 3 100 +246 66 3 100 +246 67 3 100 +246 68 3 100 +246 69 3 100 +246 70 3 100 +246 71 3 100 +246 112 3 100 +246 113 3 100 +246 114 3 100 +246 115 3 100 +246 116 3 100 +246 117 3 100 +246 118 3 100 +246 119 3 100 +246 120 3 100 +246 121 3 100 +246 122 3 100 +246 123 3 100 +246 124 3 100 +246 125 3 100 +246 126 3 100 +246 127 3 100 +246 128 3 100 +246 129 3 100 +246 130 3 100 +246 131 3 100 +246 132 3 100 +246 133 3 100 +246 134 3 100 +246 135 3 100 +246 136 3 100 +246 137 3 100 +246 138 3 100 +246 139 3 100 +246 140 3 100 +246 141 3 100 +246 142 3 100 +246 143 3 100 +246 144 3 100 +246 145 3 100 +246 146 3 100 +246 147 3 100 +246 148 3 100 +246 149 3 100 +246 150 3 100 +246 151 3 100 +247 64 3 100 +247 65 3 100 +247 66 3 100 +247 67 3 100 +247 68 3 100 +247 69 3 100 +247 70 3 100 +247 71 3 100 +247 109 3 100 +247 110 3 100 +247 111 3 100 +247 112 3 100 +247 113 3 100 +247 114 3 100 +247 115 3 100 +247 116 3 100 +247 117 3 100 +247 118 3 100 +247 119 3 100 +247 120 3 100 +247 121 3 100 +247 122 3 100 +247 123 3 100 +247 124 3 100 +247 125 3 100 +247 126 3 100 +247 127 3 100 +247 128 3 100 +247 129 3 100 +247 130 3 100 +247 131 3 100 +247 132 3 100 +247 133 3 100 +247 134 3 100 +247 135 3 100 +247 136 3 100 +247 137 3 100 +247 138 3 100 +247 139 3 100 +247 140 3 100 +247 141 3 100 +247 142 3 100 +247 143 3 100 +247 144 3 100 +247 145 3 100 +247 146 3 100 +247 147 3 100 +247 148 3 100 +247 149 3 100 +247 150 3 100 +247 151 3 100 +248 64 3 100 +248 65 3 100 +248 66 3 100 +248 67 3 100 +248 68 3 100 +248 69 3 100 +248 70 3 100 +248 71 3 100 +248 105 3 100 +248 106 3 100 +248 107 3 100 +248 108 3 100 +248 109 3 100 +248 110 3 100 +248 111 3 100 +248 112 3 100 +248 113 3 100 +248 114 3 100 +248 115 3 100 +248 116 3 100 +248 117 3 100 +248 118 3 100 +248 119 3 100 +248 120 3 100 +248 121 3 100 +248 122 3 100 +248 123 3 100 +248 124 3 100 +248 125 3 100 +248 126 3 100 +248 127 3 100 +248 128 3 100 +248 129 3 100 +248 130 3 100 +248 131 3 100 +248 132 3 100 +248 133 3 100 +248 134 3 100 +248 135 3 100 +248 136 3 100 +248 137 3 100 +248 138 3 100 +248 139 3 100 +248 140 3 100 +248 141 3 100 +248 142 3 100 +248 143 3 100 +248 144 3 100 +248 145 3 100 +248 146 3 100 +248 147 3 100 +248 148 3 100 +248 149 3 100 +249 64 3 100 +249 65 3 100 +249 66 3 100 +249 67 3 100 +249 68 3 100 +249 69 3 100 +249 70 3 100 +249 71 3 100 +249 72 3 100 +249 103 3 100 +249 104 3 100 +249 105 3 100 +249 106 3 100 +249 107 3 100 +249 108 3 100 +249 109 3 100 +249 110 3 100 +249 111 3 100 +249 112 3 100 +249 113 3 100 +249 114 3 100 +249 115 3 100 +249 116 3 100 +249 117 3 100 +249 118 3 100 +249 119 3 100 +249 120 3 100 +249 121 3 100 +249 122 3 100 +249 123 3 100 +249 124 3 100 +249 125 3 100 +249 126 3 100 +249 127 3 100 +249 128 3 100 +249 129 3 100 +249 130 3 100 +249 131 3 100 +249 132 3 100 +249 133 3 100 +249 134 3 100 +249 135 3 100 +249 136 3 100 +249 137 3 100 +249 138 3 100 +249 139 3 100 +249 140 3 100 +249 141 3 100 +249 142 3 100 +249 143 3 100 +249 144 3 100 +249 145 3 100 +249 146 3 100 +249 147 3 100 +250 64 3 100 +250 65 3 100 +250 66 3 100 +250 67 3 100 +250 68 3 100 +250 69 3 100 +250 70 3 100 +250 71 3 100 +250 72 3 100 +250 99 3 100 +250 100 3 100 +250 101 3 100 +250 102 3 100 +250 103 3 100 +250 104 3 100 +250 105 3 100 +250 106 3 100 +250 107 3 100 +250 108 3 100 +250 124 3 100 +250 125 3 100 +250 126 3 100 +250 127 3 100 +250 128 3 100 +250 129 3 100 +250 130 3 100 +250 131 3 100 +250 132 3 100 +250 133 3 100 +250 134 3 100 +250 135 3 100 +250 136 3 100 +250 137 3 100 +250 138 3 100 +250 139 3 100 +250 140 3 100 +250 141 3 100 +250 142 3 100 +250 143 3 100 +250 144 3 100 +250 145 3 100 +250 146 3 100 +250 147 3 100 +251 65 3 100 +251 66 3 100 +251 67 3 100 +251 68 3 100 +251 69 3 100 +251 70 3 100 +251 71 3 100 +251 72 3 100 +251 96 3 100 +251 97 3 100 +251 98 3 100 +251 99 3 100 +251 100 3 100 +251 101 3 100 +251 102 3 100 +251 103 3 100 +251 104 3 100 +251 105 3 100 +251 106 3 100 +251 107 3 100 +251 108 3 100 +252 65 3 100 +252 66 3 100 +252 67 3 100 +252 68 3 100 +252 69 3 100 +252 70 3 100 +252 71 3 100 +252 72 3 100 +252 73 3 100 +252 74 3 100 +252 94 3 100 +252 95 3 100 +252 96 3 100 +252 97 3 100 +252 98 3 100 +252 99 3 100 +252 100 3 100 +252 101 3 100 +252 102 3 100 +252 103 3 100 +252 104 3 100 +252 105 3 100 +252 106 3 100 +252 107 3 100 +252 108 3 100 +253 68 3 100 +253 69 3 100 +253 70 3 100 +253 71 3 100 +253 72 3 100 +253 73 3 100 +253 74 3 100 +253 89 3 100 +253 90 3 100 +253 91 3 100 +253 92 3 100 +253 93 3 100 +253 94 3 100 +253 95 3 100 +253 96 3 100 +253 97 3 100 +253 98 3 100 +253 99 3 100 +254 68 3 100 +254 69 3 100 +254 70 3 100 +254 71 3 100 +254 72 3 100 +254 73 3 100 +254 74 3 100 +254 75 3 100 +254 76 3 100 +254 77 3 100 +254 86 3 100 +254 87 3 100 +254 88 3 100 +254 89 3 100 +254 90 3 100 +254 91 3 100 +254 92 3 100 +254 93 3 100 +254 94 3 100 +254 95 3 100 +254 96 3 100 +254 97 3 100 +255 68 3 100 +255 69 3 100 +255 70 3 100 +255 71 3 100 +255 72 3 100 +255 73 3 100 +255 74 3 100 +255 75 3 100 +255 76 3 100 +255 77 3 100 +255 78 3 100 +255 79 3 100 +255 80 3 100 +255 81 3 100 +255 82 3 100 +255 83 3 100 +255 84 3 100 +255 85 3 100 +255 86 3 100 +255 87 3 100 +255 88 3 100 +255 89 3 100 +255 90 3 100 +255 91 3 100 +255 92 3 100 +255 93 3 100 +255 94 3 100 +256 68 3 100 +256 69 3 100 +256 70 3 100 +256 71 3 100 +256 72 3 100 +256 73 3 100 +256 74 3 100 +256 75 3 100 +256 76 3 100 +256 77 3 100 +256 78 3 100 +256 79 3 100 +256 80 3 100 +256 81 3 100 +256 82 3 100 +256 83 3 100 +256 84 3 100 +256 85 3 100 +256 86 3 100 +256 87 3 100 +256 88 3 100 +256 89 3 100 +256 90 3 100 +256 91 3 100 +256 92 3 100 +256 93 3 100 +256 94 3 100 +257 68 3 100 +257 69 3 100 +257 70 3 100 +257 71 3 100 +257 72 3 100 +257 73 3 100 +257 74 3 100 +257 75 3 100 +257 76 3 100 +257 77 3 100 +257 78 3 100 +257 79 3 100 +257 80 3 100 +257 81 3 100 +257 82 3 100 +257 83 3 100 +257 84 3 100 +257 85 3 100 +257 86 3 100 +257 87 3 100 +257 88 3 100 +257 89 3 100 +258 73 3 100 +258 74 3 100 +258 75 3 100 +258 76 3 100 +258 77 3 100 +258 78 3 100 +258 79 3 100 +258 80 3 100 +258 81 3 100 +258 82 3 100 +258 83 3 100 +258 84 3 100 +258 85 3 100 +258 86 3 100 +259 73 3 100 +259 74 3 100 +259 75 3 100 +259 76 3 100 +259 77 3 100 +259 78 3 100 +259 79 3 100 +259 80 3 100 +259 81 3 100 +259 82 3 100 +259 83 3 100 +259 84 3 100 +259 85 3 100 +259 86 3 100 +260 73 3 100 +260 74 3 100 +260 75 3 100 +260 76 3 100 +260 77 3 100 +260 78 3 100 +260 79 3 100 +260 80 3 100 +260 81 3 100 +261 73 3 100 +261 74 3 100 +261 75 3 100 +261 76 3 100 +261 77 3 100 +261 78 3 100 +261 79 3 100 +261 80 3 100 +261 81 3 100 +[/Tiles] + +[Rooms] +# meshName color NextLine: numTiles Subsequent Lines: tileX tileY +DungeonTemple 1 +25 +193 206 +193 207 +193 208 +193 209 +193 210 +194 206 +194 207 +194 208 +194 209 +194 210 +195 206 +195 207 +195 208 +195 209 +195 210 +196 206 +196 207 +196 208 +196 209 +196 210 +197 206 +197 207 +197 208 +197 209 +197 210 +Forge 1 +16 +191 201 +191 202 +191 203 +191 204 +190 201 +190 202 +190 203 +190 204 +189 201 +189 202 +189 203 +189 204 +188 201 +188 202 +188 203 +188 204 +Quarters 1 +2 +195 213 +194 213 +Treasury 1 +1 +196 215 +Treasury 1 +4 +193 213 +192 213 +193 214 +192 214 +Portal 1 +9 +189 213 +189 214 +189 215 +188 213 +188 214 +188 215 +187 213 +187 214 +187 215 +Quarters 2 +9 +204 209 +204 210 +204 211 +205 209 +205 210 +205 211 +206 209 +206 210 +206 211 +Portal 2 +9 +204 213 +204 214 +204 215 +205 213 +205 214 +205 215 +206 213 +206 214 +206 215 +Forge 2 +16 +209 209 +209 210 +209 211 +209 212 +210 209 +210 210 +210 211 +210 212 +211 209 +211 210 +211 211 +211 212 +212 209 +212 210 +212 211 +212 212 +Treasury 2 +9 +213 214 +213 215 +213 216 +211 216 +212 216 +211 214 +211 215 +212 214 +212 215 +DungeonTemple 2 +25 +215 210 +215 211 +215 212 +215 213 +215 214 +216 210 +216 211 +216 212 +216 213 +216 214 +217 210 +217 211 +217 212 +217 213 +217 214 +218 210 +218 211 +218 212 +218 213 +218 214 +219 210 +219 211 +219 212 +219 213 +219 214 +DungeonTemple 3 +25 +165 103 +165 104 +165 105 +165 106 +165 107 +166 103 +166 104 +166 105 +166 106 +166 107 +167 103 +167 104 +167 105 +167 106 +167 107 +168 103 +168 104 +168 105 +168 106 +168 107 +169 103 +169 104 +169 105 +169 106 +169 107 +Quarters 3 +9 +172 100 +172 101 +172 102 +173 100 +173 101 +173 102 +174 100 +174 101 +174 102 +Quarters 3 +16 +167 97 +167 98 +167 99 +167 100 +168 97 +168 98 +168 99 +168 100 +169 97 +169 98 +169 99 +169 100 +170 97 +170 98 +170 99 +170 100 +Dojo 1 +16 +190 195 +190 196 +190 197 +190 198 +191 195 +191 196 +191 197 +191 198 +192 195 +192 196 +192 197 +192 198 +193 195 +193 196 +193 197 +193 198 +[/Rooms] + +[Traps] +# meshName color NextLine: numTiles Subsequent Lines: tileX tileY +Cannon 1 +1 +186 199 +[/Traps] + +[Lights] +# posX posY posZ diffuseR diffuseG diffuseB specularR specularG specularB attenRange attenConst attenLin attenQuad +193 205 3.75 0.9 0.8 0.6 0.2 0.2 0.2 50 0.012 0.32 0.0018 +[/Lights] + +# The file containing the creatures definition. +[Creatures_Definition] +levels/creatures.def + +[Creatures] +# className name posX posY posZ color weaponLname damage range defense weaponRname damage range defense HP mana Level +Adventurer Adventurer_001 196 200 0 1 Shield_small 7 4 0 Shortsword 8 3 0 155 2 1 +ConstructWorker ConstructWorker1 196 230 0 1 none 1 4 3 none 8 4 0 125 3 1 +Gnome Gnome2 192 229 0 2 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Goblin Goblin3 183 229 0 3 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +PitDemon PitDemon5 210 236 0 5 none 1 4 3 none 8 4 0 125 3 1 +Spider Spider6 198 231 0 1 none 1 4 3 none 8 4 0 125 3 1 +CaveHornet Hornet1 198 231 0 1 none 1 4 3 none 8 4 0 125 3 1 +Wizard Wizard7 190 229 0 2 Staff 7 10 3 none 1 4 0 125 3 1 +Tentacle1 Tentacle18 186 229 0 3 none 1 4 3 none 8 4 0 125 3 1 +Tentacle2 Tentacle29 203 230 0 4 none 1 4 3 none 8 4 0 125 3 1 +Troll Troll10 209 231 0 5 none 1 4 3 none 8 4 0 125 3 1 +Troll Troll11 193 214 0 1 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c1 198 233 0 1 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c2 192 233 0 2 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c3 184 233 0 3 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c4 204 233 0 4 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Knight Knight_c5 210 233 0 5 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +LizardMan LizardMan_001 210 233 0 5 Roundshield 1 4 3 Longsword 8 4 0 125 3 1 +Kobold Kobold 195 202 0 1 none 5 4 0 none 8 3 0 125 3 1 +Kobold Kobold_012 188 200 0 1 Roundshield 0 0 5 Longsword 14 3 0 125 3 1 +Kobold Kobold_007 193 218 0 1 none 5 4 0 none 8 3 0 125 3 1 +Wizard Mage 193 213 0 1 Staff 7 9 0 none 8 3 0 80 50 1 +Wizard Wiz 193 213 0 1 Staff 7 9 0 none 8 3 0 80 50 1 +BigKnight King 191 216 0 1 Roundshield 0 0 5 Staff 10 3 7 180 10 1 +Knight Knight_005 229 138 0 1 Roundshield 0 0 5 Longsword 14 3 0 155 2 1 +Knight Knight_004 196 200 0 1 Longsword 7 4 0 none 8 3 0 155 2 1 +Knight Knight_006 199 204 0 1 Longsword 14 4 0 Sabre 10 3 0 155 2 1 +Knight Knight 188 198 0 1 none 8 4 0 Sabre 10 3 0 155 2 1 +Knight Knight_007 191 207 0 1 none 8 4 0 Sabre 10 3 0 155 2 1 +Knight Knight_003 184 201 0 1 none 14 4 0 Longsword 14 3 0 155 2 1 +Dragon Dragon_001 159 108 0 1 none 10 4 0 none 8 3 0 200 25 1 +Dragon Dragon_002 191 193 0 1 none 10 4 0 none 8 3 0 200 25 1 +Dragon Dragon_003 195 204 0 1 none 10 4 0 none 8 3 0 200 25 1 +Dragon Dragon_004 196 214 0 1 none 10 4 0 none 8 3 0 200 25 1 +Wyvern Wyvern_001 177 90 0 1 none 8 3 0 none 6 3 0 150 5 1 +Wyvern Wyvern_002 186 85 0 1 none 8 3 0 none 6 3 0 150 5 1 +Wyvern Wyvern_003 183 105 0 1 none 8 3 0 none 6 3 0 150 5 1 +Dwarf1 Dwarf1_001 201 192 0 2 Roundshield 0 0 5 Sabre 10 3 0 145 7 1 +Dwarf2 Dwarf1_002 206 168 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf3 Dwarf1_004 213 157 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf2 Dwarf1_006 214 141 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf3 Dwarf1_007 212 143 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf3 Dwarf2_001 213 213 0 2 none 8 4 0 none 6 3 0 145 7 1 +Dwarf2 Dwarf2_002 202 191 0 2 none 6 4 0 Longsword 14 4 0 145 7 1 +Dwarf1 Dwarf3_001 201 192 0 2 Roundshield 0 0 5 Longsword 14 4 4 145 7 1 +LizardMan LizardMan_002 206 172 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kre 215 216 0 2 none 12 4 0 none 6 4 0 180 10 1 +Orc Orc_0001 203 199 0 2 none 8 4 0 Longsword 14 4 0 165 10 1 +Orc Orc_0002 207 212 0 2 none 8 4 0 Longsword 14 4 0 165 10 1 +Kreatur Kreatur_001 155 110 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_002 159 112 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_003 158 103 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_004 156 106 0 3 none 12 4 0 none 6 4 0 180 10 1 +Kreatur Kreatur_006 163 112 0 3 none 12 4 0 none 6 4 0 180 10 1 +[/Creatures] diff --git a/licenses/CC-BY-SA_3.0 b/licenses/CC-BY-SA_3.0 new file mode 100644 index 000000000..8a9e460d4 --- /dev/null +++ b/licenses/CC-BY-SA_3.0 @@ -0,0 +1,64 @@ +Creative Commons Attribution-ShareAlike 3.0 Unported + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + 1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. + 2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. + 3. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. + 4. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. + 5. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. + 6. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. + 7. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. + 8. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. + 9. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + 10. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. + 11. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + 1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; + 2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; + 3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, + 4. to Distribute and Publicly Perform Adaptations. + 5. + + For the avoidance of doubt: + 1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; + 2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, + 3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + 1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. + 2. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. + 3. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. + 4. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + + 1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + 6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. + diff --git a/licenses/GPL_3.0 b/licenses/GPL_3.0 new file mode 100644 index 000000000..10926e87f --- /dev/null +++ b/licenses/GPL_3.0 @@ -0,0 +1,675 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + diff --git a/licenses/libs/AngelScript-License b/licenses/libs/AngelScript-License new file mode 100644 index 000000000..4715f146d --- /dev/null +++ b/licenses/libs/AngelScript-License @@ -0,0 +1,21 @@ +AngelCode Scripting Library +Copyright (c) 2003-2006 Andreas Jönsson + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you use + this software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and + must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source + distribution. diff --git a/licenses/libs/CEGUI-license b/licenses/libs/CEGUI-license new file mode 100644 index 000000000..74ccc7875 --- /dev/null +++ b/licenses/libs/CEGUI-license @@ -0,0 +1,20 @@ +The MIT License + +Copyright (c) 2004 - 2010 Paul D Turner & The CEGUI Development Team + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/libs/LGPL-2.1 b/licenses/libs/LGPL-2.1 new file mode 100644 index 000000000..c396169ee --- /dev/null +++ b/licenses/libs/LGPL-2.1 @@ -0,0 +1,503 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + diff --git a/licenses/libs/LGPL-3 b/licenses/libs/LGPL-3 new file mode 100644 index 000000000..341c30bda --- /dev/null +++ b/licenses/libs/LGPL-3 @@ -0,0 +1,166 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + diff --git a/licenses/libs/Ogre-License b/licenses/libs/Ogre-License new file mode 100644 index 000000000..d532b045b --- /dev/null +++ b/licenses/libs/Ogre-License @@ -0,0 +1,21 @@ +OGRE (www.ogre3d.org) is made available under the MIT License. + +Copyright (c) 2000-2009 Torus Knot Software Ltd + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/licenses/libs/SFML-License b/licenses/libs/SFML-License new file mode 100644 index 000000000..0defe355a --- /dev/null +++ b/licenses/libs/SFML-License @@ -0,0 +1,21 @@ +SFML - Copyright (c) 2007-2008 Laurent Gomila + +This software is provided 'as-is', without any express or +implied warranty. In no event will the authors be held +liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute +it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; + you must not claim that you wrote the original software. + If you use this software in a product, an acknowledgment + in the product documentation would be appreciated but + is not required. + +2. Altered source versions must be plainly marked as such, + and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any + source distribution. diff --git a/licenses/libs/boost-License b/licenses/libs/boost-License new file mode 100644 index 000000000..7925d62e6 --- /dev/null +++ b/licenses/libs/boost-License @@ -0,0 +1,24 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + diff --git a/licenses/libs/freeimage.txt b/licenses/libs/freeimage.txt new file mode 100644 index 000000000..479fb4d51 --- /dev/null +++ b/licenses/libs/freeimage.txt @@ -0,0 +1,142 @@ +FreeImage Public License - Version 1.0 +--------------------------------------------- + +1. Definitions. + +1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + +1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + +1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. + +1.5. "Executable" means Covered Code in any form other than Source Code. + +1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + +1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + +1.8. "License" means this document. + +1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a +Modification is: + +A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + +B. Any new file that contains any part of the Original Code or previous Modifications. + +1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + +1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control +compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + +1.12. "You" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity. + +2. Source Code License. + +2.1. The Initial Developer Grant. +The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + +(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and + +(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("Utilize") the Original Code (or portions thereof), but solely to the extent that +any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or +combinations. + +2.2. Contributor Grant. +Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + +(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and + +(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that +may be necessary to Utilize further Modifications or combinations. + +3. Distribution Obligations. + +3.1. Application of License. +The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or +restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + +3.2. Availability of Source Code. +Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + +3.3. Description of Modifications. +You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + +3.4. Intellectual Property Matters + +(a) Third Party Claims. +If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make +available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + +(b) Contributor APIs. +If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file. + +3.5. Required Notices. +You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its +structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or +liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of +warranty, support, indemnity or liability terms You offer. + +3.6. Distribution of Executable Versions. +You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You +describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License, +provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. + +3.7. Larger Works. +You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + +5. Application of this License. + +This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code. + +6. Versions of the License. + +6.1. New Versions. +Floris van den Berg may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + +6.2. Effect of New Versions. +Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Floris van den Berg +No one other than Floris van den Berg has the right to modify the terms applicable to Covered Code created under this License. + +6.3. Derivative Works. +If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases "FreeImage", `FreeImage Public License", "FIPL", or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the FreeImage Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + +7. DISCLAIMER OF WARRANTY. + +COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + +This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + +9. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + +The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + +11. MISCELLANEOUS. + +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Dutch law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the The Netherlands: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Almelo, The Netherlands; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the court of Almelo, The Netherlands with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + +12. RESPONSIBILITY FOR CLAIMS. + +Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based +on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute +responsibility on an equitable basis. + +EXHIBIT A. + +"The contents of this file are subject to the FreeImage Public License Version 1.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://home.wxs.nl/~flvdberg/freeimage-license.txt + +Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. \ No newline at end of file diff --git a/licenses/libs/libsndfile-License b/licenses/libs/libsndfile-License new file mode 100644 index 000000000..c396169ee --- /dev/null +++ b/licenses/libs/libsndfile-License @@ -0,0 +1,503 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + diff --git a/licenses/libs/linonly/Libogg-License b/licenses/libs/linonly/Libogg-License new file mode 100644 index 000000000..f4135db60 --- /dev/null +++ b/licenses/libs/linonly/Libogg-License @@ -0,0 +1,28 @@ +Copyright (c) 2002-2004, Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- 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. + +- Neither the name of the Xiph.Org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``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 THE REGENTS 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. diff --git a/licenses/libs/linonly/PCRE-LICENSE b/licenses/libs/linonly/PCRE-LICENSE new file mode 100644 index 000000000..03fabc6ae --- /dev/null +++ b/licenses/libs/linonly/PCRE-LICENSE @@ -0,0 +1,68 @@ +PCRE LICENCE +------------ + +PCRE is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + +Release 7 of PCRE is distributed under the terms of the "BSD" licence, as +specified below. The documentation for PCRE, supplied in the "doc" +directory, is distributed under the same terms as the software itself. + +The basic library functions are written in C and are freestanding. Also +included in the distribution is a set of C++ wrapper functions. + + +THE BASIC LIBRARY FUNCTIONS +--------------------------- + +Written by: Philip Hazel +Email local part: ph10 +Email domain: cam.ac.uk + +University of Cambridge Computing Service, +Cambridge, England. + +Copyright (c) 1997-2008 University of Cambridge +All rights reserved. + + +THE C++ WRAPPER FUNCTIONS +------------------------- + +Contributed by: Google Inc. + +Copyright (c) 2007-2008, Google Inc. +All rights reserved. + + +THE "BSD" LICENCE +----------------- + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of the University of Cambridge nor the name of Google + Inc. nor the names of their contributors may be used to endorse or + promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT OWNER 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. + +End diff --git a/licenses/libs/linonly/libFLAC-License b/licenses/libs/linonly/libFLAC-License new file mode 100644 index 000000000..56f9ce200 --- /dev/null +++ b/licenses/libs/linonly/libFLAC-License @@ -0,0 +1,29 @@ +libFLAC - Free Lossless Audio Codec library +Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- 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. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``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 THE FOUNDATION 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. diff --git a/licenses/libs/linonly/libvorbis-License b/licenses/libs/linonly/libvorbis-License new file mode 100644 index 000000000..2441e31d7 --- /dev/null +++ b/licenses/libs/linonly/libvorbis-License @@ -0,0 +1,30 @@ +Copyright: + + Copyright (c) 2002, Xiph.org Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - 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. + + - Neither the name of the Xiph.org Foundation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``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 THE REGENTS 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. diff --git a/licenses/libs/linonly/libvorbisenc-License b/licenses/libs/linonly/libvorbisenc-License new file mode 100644 index 000000000..cd7b465f6 --- /dev/null +++ b/licenses/libs/linonly/libvorbisenc-License @@ -0,0 +1,28 @@ + Copyright (c) 2002, Xiph.org Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - 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. + + - Neither the name of the Xiph.org Foundation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``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 THE REGENTS 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. diff --git a/licenses/libs/linonly/libzzip-License b/licenses/libs/linonly/libzzip-License new file mode 100644 index 000000000..48759eb2d --- /dev/null +++ b/licenses/libs/linonly/libzzip-License @@ -0,0 +1,123 @@ +Copyright (c) 1999,2000,2001,2002,2003 Guido Draheim + + + THE ZZIP LICENSE + +All rights on the project sources are reserved. + +use freely under the restrictions of the Lesser GNU General Public License +or the exceptions described in the following sections that offer additional +rules foremost for static linking of the library into other software parts. + +* LGPL clarifications + +The project material has not been cross licensed with the +Free Software Foundation (FSF) and it will not do at any point. + +The FSF has written the original Lesser GNU General Public +License (LGPL) which is the main opensource license used by +this project. The FSF has no copyright on the sources. + +All rights to the project sources are reserved and the +copyright holders are entitled to negotiate other licenses +with interested parties. The LGPL is used as the General +Public License that can be used without any special +license agreement with the copyright holders. + +The license holders feel that sometimes the LGPL is a bit +too restrictive but nonetheless good to protect the freedom +of this software. Feel free to contact us on any special +permission you need for your opensource project or some +form of commercial software. + +In general, special license agreements will only be made if +they benefit the creation of free software including donations +to projects and non-profit organization promoting free software +(from which one can generally get a tax reduction offer). + +Regarding example programs you will find a notice in the source +header that they are not under LGPL but the ZLIB license to allow +you to derive your own programs freely from these source code parts. + +* additional static linking + +1) Static Linking Exception + + The LGPL describes ways to combine the project sources with + other work not under the same license - the programmers do + generally call it linking and separate it by their link + time into dynamic linking and static linking. The LGPL + ensures that the final recipient of a combined work can + relink a combined work, including a rule in section 6 + to allow shipping of static linked program binaries. + + The rules in section 6 of the LGPL are often inconvenient and + not useful to promote and protect the opensource character of + this project. The recepient relinking freedom can be dropped as + an extension to the LGPL rules, provided the following rules + apply. Note that these rules only apply to static linking and + as an extension to section 6 and do not touch any other part + of the LGPL. + +2) OSI-approved Opensource Projects + + You may static link with any opensource project material + which is under an OSI-approved license. (general-opensource). + + You may static link with any project material under a + license derived from an OSI-approved license by + removing restrictions including the removal of + restrictions under certain explicit conditions + that can be fulfilled by all possible licensees + in a way that the license can be possibly OSI-approved + later on. (opensource-like). + + A project that applies to these rules can even ship + with modified sources of the project provided that + the modifications are still under LGPL and these + exceptions. (merge-back-acceptance). + + This rule is made under the assumption that relinking is + not required if the combined work can be derived from + their pristine sources made available to the final + recipient. (i-am-no-lawyer). + +3) Published And Supported Derivative Work + + Any software, including commercial applications, may + static link with a modified derivate of this project + when ALL of the following conditions are met which + are extracted from the Mozilla Public License 1.0, and + called section 3.2 and 3.3. over there - these will + require you to redistribute the modified sources. You + may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version + of this License or the recipients' rights hereunder. + + 3.2. Availability of Source Code. + + Any Modification which You create or to which You contribute + must be made available in Source Code form under the terms of + this License either on the same media as an Executable version + or via an accepted Electronic Distribution Mechanism to anyone + to whom you made an Executable version available; and if made + available via Electronic Distribution Mechanism, must remain + available for at least twelve (12) months after the date it + initially became available, or at least six (6) months after + a subsequent version of that particular Modification has been + made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even + if the Electronic Distribution Mechanism is maintained by a + third party. + + 3.3. Description of Modifications. + + You must cause all Covered Code to which you contribute to + contain a file documenting the changes You made to create that + Covered Code and the date of any change. You must include a + prominent statement that the Modification is derived, directly + or indirectly, from Original Code provided by the Initial + Developer and including the name of the Initial Developer in + (a) the Source Code, and (b) in any notice in an Executable + version or related documentation in which You describe the + origin or ownership of the Covered Code. diff --git a/licenses/libs/nVidia-cg-toolkit-License b/licenses/libs/nVidia-cg-toolkit-License new file mode 100644 index 000000000..8a0d73932 --- /dev/null +++ b/licenses/libs/nVidia-cg-toolkit-License @@ -0,0 +1,142 @@ +nVidia cg toolkit + +Copyright: 2004-2010 NVIDIA Corporation. +Licence: Other + License For Customer Use of NVIDIA Software + . + IMPORTANT NOTICE -- READ CAREFULLY: This License For Customer Use of + NVIDIA Software ("LICENSE") is the agreement which governs use of the + software of NVIDIA Corporation and its subsidiaries ("NVIDIA") downloadable + herefrom, including computer software and associated printed materials + ("SOFTWARE"). By downloading, installing, copying, or otherwise using the + SOFTWARE, you agree to be bound by the terms of this LICENSE. If you do + not agree to the terms of this LICENSE, do not download the SOFTWARE. + . + RECITALS + . + Use of NVIDIA's products requires three elements: the SOFTWARE, the hardware + on a graphics controller board, and a personal computer. The SOFTWARE is + protected by copyright laws and international copyright treaties, as well as + other intellectual property laws and treaties. The SOFTWARE is not sold, and + instead is only licensed for use, strictly in accordance with this document. + The hardware is protected by various patents, and is sold, but this agreement + does not cover that sale, since it may not necessarily be sold as a package + with the SOFTWARE. This agreement sets forth the terms and conditions of the + SOFTWARE LICENSE only. + . + 1. DEFINITIONS + . + 1.1 Customer. Customer means the entity or individual that downloads the + SOFTWARE. + . + 2. GRANT OF LICENSE + . + 2.1 Rights and Limitations of Grant. NVIDIA hereby grants Customer the + following non-exclusive, worldwide, royalty-free, non-transferable right + to use the SOFTWARE, with the following limitations: + . + 2.1.1 Rights. Customer may use, reproduce, distribute, publicly display + and publicly perform the SOFTWARE. + . + 2.1.2 Limitations. + . + No Reverse Engineering. Customer may not reverse engineer, decompile, or + disassemble the SOFTWARE, nor attempt in any other manner to obtain the + source code. + . + No Modification. The SOFTWARE may be redistributed providing that distributed + Cg compiler and runtime binaries are unmodified, except for decompression and + compression. + . + No Rental. Customer may not rent or lease the SOFTWARE to someone else. + . + No Support. NVIDIA will not be responsible for providing maintenance and + support to Customer or any other end users for the Software distributed by + Customer or others. + . + 3. TERMINATION + . + This LICENSE will automatically terminate if Customer fails to comply with + any of the terms and conditions hereof. In such event, Customer must destroy + all copies of the SOFTWARE and all of its component parts. + . + 4. COPYRIGHT + . + All title and copyrights in and to the SOFTWARE (including but not limited to + all images, photographs, animations, video, audio, music, text, and other + information incorporated into the SOFTWARE), the accompanying printed + materials, and any copies of the SOFTWARE, are owned by NVIDIA, or its + suppliers. The SOFTWARE is protected by copyright laws and international + treaty provisions. Accordingly, Customer is required to treat the SOFTWARE + like any other copyrighted material. + . + Customer agrees that the Software is proprietary information of NVIDIA and + that NVIDIA owns all right, title and interest therein. There are no implied + licenses under this License, and any rights not expressly granted are reserved + by NVIDIA. The Software is not sold, and instead is only licensed for use, + strictly in accordance with this License. All copies of the Software shall + contain NVIDIA's proprietary rights notices as provided therein. Customer + shall not remove or modify any such proprietary rights notices of NVIDIA. This + License will automatically terminate if Customer fails to comply with any of + the terms and conditions hereof. In such event, Customer must cease + reproducing, distributing, or otherwise using the Software and destroy all + copies thereof. + . + 5. APPLICABLE LAW + . + This agreement shall be deemed to have been made in, and shall be construed + pursuant to, the laws of the State of Delaware. Any suit or controversy + arising hereunder shall be brought in the federal or state courts located in + Santa Clara County, California, and each party submits to the venue and + jurisdiction thereof. + . + 6. DISCLAIMER OF WARRANTIES AND LIMITATION ON LIABILITY + . + 6.1 No Warranties. TO THE MAXIMUM EXTENT PERMITTED BY + APPLICABLE LAW, THE SOFTWARE IS PROVIDED "AS IS" AND NVIDIA + AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. + . + 6.2 No Liability for Consequential Damages. TO THE MAXIMUM + EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL + NVIDIA OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, + INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER + (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF + BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS + INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF + THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF NVIDIA + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THESE + LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF + ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. NVIDIA SHALL HAVE + NO CONTRACTUAL OBLIGATION TO INDEMNIFY CUSTOMER UNDER + THIS LICENSE. CUSTOMER AND/OR END-USERS OF THE SOFTWARE + DISTRIBUTED BY CUSTOMER ASSUME THE ENTIRE COST OF ANY + DAMAGE, LOSS, OR EXPENSE RESULTING FROM THEIR USE OR + EXPLOITATION OF THE SOFTWARE. + . + 7. MISCELLANEOUS + . + The United Nations Convention on Contracts for the International Sale of + Goods is specifically disclaimed. This agreement is the final, complete + and exclusive agreement between the parties relating to the subject matter + hereof, and supersedes all prior or contemporaneous understandings and + agreements relating to such subject matter, whether oral or written. + Customer agrees that it will not ship, transfer or export the SOFTWARE + into any country, or use the SOFTWARE in any manner, prohibited by the + United States Bureau of Export Administration or any export laws, + restrictions or regulations. + . + If any provision of this License is held to be invalid or unenforceable + for any reason, the remaining provisions will continue in full force + without being impaired or invalidated in any way. + . + No term or provisions hereof shall be deemed waived, and no breach excused, + unless such waiver or consent is in writing and signed by the party claimed + to have waived or consented. The waiver by either party of a breach of any + provision of this License will not operate or be interpreted as a waiver of + any other or subsequent breach. + . + This License may be changed only by mutual agreement in writing of the + authorized representatives of the parties. diff --git a/licenses/libs/openal-soft-License b/licenses/libs/openal-soft-License new file mode 100644 index 000000000..f5d9b94ae --- /dev/null +++ b/licenses/libs/openal-soft-License @@ -0,0 +1,39 @@ +OpenAL Soft is Copyright © 1999-2008 by the OpenAL team + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + +Alc/bs2b.c and OpenAL32/Include/bs2b.h: + +These files are Copyright © 2005 by Boris Mikhaylov + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/libs/winonly/SILLY-License b/licenses/libs/winonly/SILLY-License new file mode 100644 index 000000000..541f8a904 --- /dev/null +++ b/licenses/libs/winonly/SILLY-License @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2004 - 2006 Paul D Turner & The CEGUI Development Team + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/licenses/libs/winonly/libpthread-License b/licenses/libs/winonly/libpthread-License new file mode 100644 index 000000000..425f5be3f --- /dev/null +++ b/licenses/libs/winonly/libpthread-License @@ -0,0 +1,150 @@ +pthreads-win32 - a POSIX threads library for Microsoft Windows + + +This file is Copyrighted +------------------------ + + This file is covered under the following Copyright: + + Copyright (C) 2001,2006 Ross P. Johnson + All rights reserved. + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +Pthreads-win32 is covered by the GNU Lesser General Public License +------------------------------------------------------------------ + + Pthreads-win32 is open software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation version 2.1 of the + License. + + Pthreads-win32 is several binary link libraries, several modules, + associated interface definition files and scripts used to control + its compilation and installation. + + Pthreads-win32 is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + A copy of the GNU Lesser General Public License is distributed with + pthreads-win32 under the filename: + + COPYING.LIB + + You should have received a copy of the version 2.1 GNU Lesser General + Public License with pthreads-win32; if not, write to: + + Free Software Foundation, Inc. + 59 Temple Place + Suite 330 + Boston, MA 02111-1307 + USA + + The contact addresses for pthreads-win32 is as follows: + + Web: http://sources.redhat.com/pthreads-win32 + Email: Ross Johnson + Please use: Firstname.Lastname@homemail.com.au + + + +Pthreads-win32 copyrights and exception files +--------------------------------------------- + + With the exception of the files listed below, Pthreads-win32 + is covered under the following GNU Lesser General Public License + Copyrights: + + Pthreads-win32 - POSIX Threads Library for Win32 + Copyright(C) 1998 John E. Bossom + Copyright(C) 1999,2006 Pthreads-win32 contributors + + The current list of contributors is contained + in the file CONTRIBUTORS included with the source + code distribution. The current list of CONTRIBUTORS + can also be seen at the following WWW location: + http://sources.redhat.com/pthreads-win32/contributors.html + + Contact Email: Ross Johnson + Please use: Firstname.Lastname@homemail.com.au + + These files are not covered under one of the Copyrights listed above: + + COPYING + COPYING.LIB + tests/rwlock7.c + + This file, COPYING, is distributed under the Copyright found at the + top of this file. It is important to note that you may distribute + verbatim copies of this file but you may not modify this file. + + The file COPYING.LIB, which contains a copy of the version 2.1 + GNU Lesser General Public License, is itself copyrighted by the + Free Software Foundation, Inc. Please note that the Free Software + Foundation, Inc. does NOT have a copyright over Pthreads-win32, + only the COPYING.LIB that is supplied with pthreads-win32. + + The file tests/rwlock7.c is derived from code written by + Dave Butenhof for his book 'Programming With POSIX(R) Threads'. + The original code was obtained by free download from his website + http://home.earthlink.net/~anneart/family/Threads/source.html + and did not contain a copyright or author notice. It is assumed to + be freely distributable. + + In all cases one may use and distribute these exception files freely. + And because one may freely distribute the LGPL covered files, the + entire pthreads-win32 source may be freely used and distributed. + + + +General Copyleft and License info +--------------------------------- + + For general information on Copylefts, see: + + http://www.gnu.org/copyleft/ + + For information on GNU Lesser General Public Licenses, see: + + http://www.gnu.org/copyleft/lesser.html + http://www.gnu.org/copyleft/lesser.txt + + +Why pthreads-win32 did not use the GNU General Public License +------------------------------------------------------------- + + The goal of the pthreads-win32 project has been to + provide a quality and complete implementation of the POSIX + threads API for Microsoft Windows within the limits imposed + by virtue of it being a stand-alone library and not + linked directly to other POSIX compliant libraries. For + example, some functions and features, such as those based + on POSIX signals, are missing. + + Pthreads-win32 is a library, available in several different + versions depending on supported compilers, and may be used + as a dynamically linked module or a statically linked set of + binary modules. It is not an application on it's own. + + It was fully intended that pthreads-win32 be usable with + commercial software not covered by either the GPL or the LGPL + licenses. Pthreads-win32 has many contributors to it's + code base, many of whom have done so because they have + used the library in commercial or proprietry software + projects. + + Releasing pthreads-win32 under the LGPL ensures that the + library can be used widely, while at the same time ensures + that bug fixes and improvements to the pthreads-win32 code + itself is returned to benefit all current and future users + of the library. + + Although pthreads-win32 makes it possible for applications + that use POSIX threads to be ported to Win32 platforms, the + broader goal of the project is to encourage the use of open + standards, and in particular, to make it just a little easier + for developers writing Win32 applications to consider + widening the potential market for their products. diff --git a/materials/RTShaderLib/FFPLib_Common.cg b/materials/RTShaderLib/FFPLib_Common.cg new file mode 100644 index 000000000..87949018c --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Common.cg @@ -0,0 +1,227 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Common +// Program Desc: Common functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: CG +// Notes: Common functions needed by all FFP implementation classes. +//----------------------------------------------------------------------------- +void FFP_Assign(in unsigned int iColor_0, out float4 oColor_0) +{ + oColor_0.w = ((iColor_0 >> 24) & 0xFF) / 255.0f; + oColor_0.x = ((iColor_0 >> 16) & 0xFF) / 255.0f; + oColor_0.y = ((iColor_0 >> 8) & 0xFF) / 255.0f; + oColor_0.z = (iColor_0 & 0xFF) / 255.0f; + +} +//----------------------------------------------------------------------------- +void FFP_Assign(in float vIn, out float vOut) +{ + vOut = vIn; +} +//----------------------------------------------------------------------------- +void FFP_Assign(in float2 vIn, out float2 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Assign(in float3 vIn, out float3 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Assign(in float4 vIn, out float4 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + in float b, + in float a, + out float4 vOut) +{ + vOut = float4(r,g,b,a); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + out float2 vOut) +{ + vOut = float2(r,g); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + in float b, + out float3 vOut) +{ + vOut = float3(r,g,b); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + out float4 vOut) +{ + vOut = float4(r,r,r,r); +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float vIn0, in float vIn1, float T, out float vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float2 vIn0, in float2 vIn1, float T, out float2 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float3 vIn0, in float3 vIn1, float T, out float3 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float4 vIn0, in float4 vIn1, float T, out float4 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float4 vIn0, in float4 vIn1, float4 T, out float4 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float vIn0, in float vIn1, out float vOut) +{ + vOut = dot(vIn0, vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = dot(vIn0, vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = dot(vIn0, vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = dot(vIn0, vIn1); +} + + + diff --git a/materials/RTShaderLib/FFPLib_Common.glsl b/materials/RTShaderLib/FFPLib_Common.glsl new file mode 100644 index 000000000..5a12d10d6 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Common.glsl @@ -0,0 +1,231 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Common +// Program Desc: Common functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: GLSL +// Notes: Common functions needed by all FFP implementation classes. +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void FFP_Assign(in float vIn, out float vOut) +{ + vOut = vIn; +} +//----------------------------------------------------------------------------- +void FFP_Assign(in vec2 vIn, out vec2 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Assign(in vec3 vIn, out vec3 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Assign(in vec4 vIn, out vec4 vOut) +{ + vOut = vIn; +} +//----------------------------------------------------------------------------- +void FFP_Assign(in vec4 vIn, out vec2 vOut) +{ + vOut = vIn.xy; +} +//----------------------------------------------------------------------------- +void FFP_Assign(in vec4 vIn, out vec3 vOut) +{ + vOut = vIn.xyz; +} +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + in float b, + in float a, + out vec4 vOut) +{ + vOut = vec4(r,g,b,a); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + in float b, + out vec3 vOut) +{ + vOut = vec3(r,g,b); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + out vec4 vOut) +{ + vOut = vec4(r,r,r,r); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + out vec2 vOut) +{ + vOut = vec2(r,g); +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float vIn0, in float vIn1, float T, out float vOut) +{ + vOut = mix(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in vec2 vIn0, in vec2 vIn1, float T, out vec2 vOut) +{ + vOut = mix(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in vec3 vIn0, in vec3 vIn1, float T, out vec3 vOut) +{ + vOut = mix(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in vec4 vIn0, in vec4 vIn1, float T, out vec4 vOut) +{ + vOut = mix(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in vec4 vIn0, in vec4 vIn1, vec4 T, out vec4 vOut) +{ + vOut = mix(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float vIn0, in float vIn1, out float vOut) +{ + vOut = dot(vIn0, vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vec2(dot(vIn0, vIn1), 1.0); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vec3(dot(vIn0, vIn1), 1.0, 1.0); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vec4(dot(vIn0, vIn1), 1.0, 1.0, 1.0); +} + + + + diff --git a/materials/RTShaderLib/FFPLib_Common.hlsl b/materials/RTShaderLib/FFPLib_Common.hlsl new file mode 100644 index 000000000..fcaded99e --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Common.hlsl @@ -0,0 +1,228 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Common +// Program Desc: Common functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: CG +// Notes: Common functions needed by all FFP implementation classes. +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void FFP_Assign(in unsigned int iColor_0, out float4 oColor_0) +{ + oColor_0.w = ((iColor_0 >> 24) & 0xFF) / 255.0f; + oColor_0.x = ((iColor_0 >> 16) & 0xFF) / 255.0f; + oColor_0.y = ((iColor_0 >> 8) & 0xFF) / 255.0f; + oColor_0.z = (iColor_0 & 0xFF) / 255.0f; + +} +//----------------------------------------------------------------------------- +void FFP_Assign(in float vIn, out float vOut) +{ + vOut = vIn; +} +//----------------------------------------------------------------------------- +void FFP_Assign(in float2 vIn, out float2 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Assign(in float3 vIn, out float3 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Assign(in float4 vIn, out float4 vOut) +{ + vOut = vIn; +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + in float b, + in float a, + out float4 vOut) +{ + vOut = float4(r,g,b,a); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + out float2 vOut) +{ + vOut = float2(r,g); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + in float g, + in float b, + out float3 vOut) +{ + vOut = float3(r,g,b); +} + +//----------------------------------------------------------------------------- +void FFP_Construct(in float r, + out float4 vOut) +{ + vOut = float4(r,r,r,r); +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Modulate(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Add(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 + vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Subtract(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 - vIn1; +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float vIn0, in float vIn1, float T, out float vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float2 vIn0, in float2 vIn1, float T, out float2 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float3 vIn0, in float3 vIn1, float T, out float3 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float4 vIn0, in float4 vIn1, float T, out float4 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_Lerp(in float4 vIn0, in float4 vIn1, float4 T, out float4 vOut) +{ + vOut = lerp(vIn0, vIn1, T); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float vIn0, in float vIn1, out float vOut) +{ + vOut = dot(vIn0, vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = dot(vIn0, vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = dot(vIn0, vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_DotProduct(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = dot(vIn0, vIn1); +} + + + diff --git a/materials/RTShaderLib/FFPLib_Fog.cg b/materials/RTShaderLib/FFPLib_Fog.cg new file mode 100644 index 000000000..12d08c63a --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Fog.cg @@ -0,0 +1,138 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Fog +// Program Desc: Fog functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: CG +// Notes: Implements cor functions needed by FFPFog class. +// Based on fog engine. +// See http://msdn.microsoft.com/en-us/library/ee418582.aspx +// Vertex based fog: the w component of the out position is used +// as the distance parameter to fog formulas. This is basically the z coordinate +// in world space. See pixel fog under D3D docs. The fog factor is computed according +// to each formula, then clamped and output to the pixel shader. +// Pixel based fog: the w component of the out position is passed to pixel shader +// that computes the fog factor based on it. +// Both techniques use the fog factor in the end of the pixel shader to blend +// the output color with the fog color. +//----------------------------------------------------------------------------- + + + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Linear(in float4x4 mWorldViewProj, + in float4 pos, + in float4 fogParams, + out float oFogFactor) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + float distance = abs(vOutPos.w); + float fogFactor = (fogParams.z - distance) * fogParams.w; + + oFogFactor = saturate(fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Exp(in float4x4 mWorldViewProj, + in float4 pos, + in float4 fogParams, + out float oFogFactor) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + float distance = abs(vOutPos.w); + float exp = distance*fogParams.x; + float fogFactor = 1 / pow(2.71828, exp); + + oFogFactor = saturate(fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Exp2(in float4x4 mWorldViewProj, + in float4 pos, + in float4 fogParams, + out float oFogFactor) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + float distance = abs(vOutPos.w); + float exp = (distance*fogParams.x*distance*fogParams.x); + float fogFactor = 1 / pow(2.71828, exp); + + oFogFactor = saturate(fogFactor); +} + + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Depth(in float4x4 mWorldViewProj, + in float4 pos, + out float oDepth) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + oDepth = vOutPos.w; +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Linear(in float depth, + in float4 fogParams, + in float4 fogColor, + in float4 baseColor, + out float4 oColor) +{ + float distance = abs(depth); + float fogFactor = saturate((fogParams.z - distance) * fogParams.w); + + oColor = lerp(fogColor, baseColor, fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Exp(in float depth, + in float4 fogParams, + in float4 fogColor, + in float4 baseColor, + out float4 oColor) +{ + float distance = abs(depth); + float exp = (distance*fogParams.x); + float fogFactor = saturate(1 / pow(2.71828, exp)); + + oColor = lerp(fogColor, baseColor, fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Exp2(in float depth, + in float4 fogParams, + in float4 fogColor, + in float4 baseColor, + out float4 oColor) +{ + float distance = abs(depth); + float exp = (distance*fogParams.x*distance*fogParams.x); + float fogFactor = saturate(1 / pow(2.71828, exp)); + + oColor = lerp(fogColor, baseColor, fogFactor); +} \ No newline at end of file diff --git a/materials/RTShaderLib/FFPLib_Fog.glsl b/materials/RTShaderLib/FFPLib_Fog.glsl new file mode 100644 index 000000000..5d55da6c9 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Fog.glsl @@ -0,0 +1,139 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Fog +// Program Desc: Fog functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: GLSL +// Notes: Implements cor functions needed by FFPFog class. +// Based on fog engine. +// See http://msdn.microsoft.com/en-us/library/ee418582.aspx +// Vertex based fog: the w component of the out position is used +// as the distance parameter to fog formulas. This is basically the z coordinate +// in world space. See pixel fog under D3D docs. The fog factor is computed according +// to each formula, then clamped and output to the pixel shader. +// Pixel based fog: the w component of the out position is passed to pixel shader +// that computes the fog factor based on it. +// Both techniques use the fog factor in the end of the pixel shader to blend +// the output color with the fog color. +//----------------------------------------------------------------------------- + + + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Linear(in mat4 mWorldViewProj, + in vec4 pos, + in vec4 fogParams, + out float oFogFactor) +{ + vec4 vOutPos = mWorldViewProj * pos; + float distance = abs(vOutPos.w); + float fogFactor = (fogParams.z - distance) * fogParams.w; + + oFogFactor = clamp(fogFactor, 0.0, 1.0); +} + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Exp(in mat4 mWorldViewProj, + in vec4 pos, + in vec4 fogParams, + out float oFogFactor) +{ + vec4 vOutPos = mWorldViewProj * pos; + float distance = abs(vOutPos.w); + float exp = distance*fogParams.x; + float fogFactor = 1.0 / pow(2.71828, exp); + + oFogFactor = clamp(fogFactor, 0.0, 1.0); +} + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Exp2(in mat4 mWorldViewProj, + in vec4 pos, + in vec4 fogParams, + out float oFogFactor) +{ + vec4 vOutPos = mWorldViewProj * pos; + float distance = abs(vOutPos.w); + float exp = (distance*fogParams.x*distance*fogParams.x); + float fogFactor = 1.0 / pow(2.71828, exp); + + oFogFactor = clamp(fogFactor, 0.0, 1.0); +} + + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Depth(in mat4 mWorldViewProj, + in vec4 pos, + out float oDepth) +{ + vec4 vOutPos = mWorldViewProj * pos; + oDepth = vOutPos.w; +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Linear(in float depth, + in vec4 fogParams, + in vec4 fogColor, + in vec4 baseColor, + out vec4 oColor) +{ + float distance = abs(depth); + float fogFactor = clamp((fogParams.z - distance) * fogParams.w, 0.0, 1.0); + + oColor = mix(fogColor, baseColor, fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Exp(in float depth, + in vec4 fogParams, + in vec4 fogColor, + in vec4 baseColor, + out vec4 oColor) +{ + float distance = abs(depth); + float exp = (distance*fogParams.x); + float fogFactor = clamp(1.0 / pow(2.71828, exp), 0.0, 1.0); + + oColor = mix(fogColor, baseColor, fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Exp2(in float depth, + in vec4 fogParams, + in vec4 fogColor, + in vec4 baseColor, + out vec4 oColor) +{ + float distance = abs(depth); + float exp = (distance*fogParams.x*distance*fogParams.x); + float fogFactor = clamp(1.0 / pow(2.71828, exp), 0.0, 1.0); + + oColor = mix(fogColor, baseColor, fogFactor); +} diff --git a/materials/RTShaderLib/FFPLib_Fog.hlsl b/materials/RTShaderLib/FFPLib_Fog.hlsl new file mode 100644 index 000000000..7391002b0 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Fog.hlsl @@ -0,0 +1,138 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Fog +// Program Desc: Fog functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: HLSL +// Notes: Implements cor functions needed by FFPFog class. +// Based on fog engine. +// See http://msdn.microsoft.com/en-us/library/ee418582.aspx +// Vertex based fog: the w component of the out position is used +// as the distance parameter to fog formulas. This is basically the z coordinate +// in world space. See pixel fog under D3D docs. The fog factor is computed according +// to each formula, then clamped and output to the pixel shader. +// Pixel based fog: the w component of the out position is passed to pixel shader +// that computes the fog factor based on it. +// Both techniques use the fog factor in the end of the pixel shader to blend +// the output color with the fog color. +//----------------------------------------------------------------------------- + + + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Linear(in float4x4 mWorldViewProj, + in float4 pos, + in float4 fogParams, + out float oFogFactor) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + float distance = abs(vOutPos.w); + float fogFactor = (fogParams.z - distance) * fogParams.w; + + oFogFactor = saturate(fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Exp(in float4x4 mWorldViewProj, + in float4 pos, + in float4 fogParams, + out float oFogFactor) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + float distance = abs(vOutPos.w); + float exp = distance*fogParams.x; + float fogFactor = 1 / pow(2.71828, exp); + + oFogFactor = saturate(fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_VertexFog_Exp2(in float4x4 mWorldViewProj, + in float4 pos, + in float4 fogParams, + out float oFogFactor) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + float distance = abs(vOutPos.w); + float exp = (distance*fogParams.x*distance*fogParams.x); + float fogFactor = 1 / pow(2.71828, exp); + + oFogFactor = saturate(fogFactor); +} + + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Depth(in float4x4 mWorldViewProj, + in float4 pos, + out float oDepth) +{ + float4 vOutPos = mul(mWorldViewProj, pos); + oDepth = vOutPos.w; +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Linear(in float depth, + in float4 fogParams, + in float4 fogColor, + in float4 baseColor, + out float4 oColor) +{ + float distance = abs(depth); + float fogFactor = saturate((fogParams.z - distance) * fogParams.w); + + oColor = lerp(fogColor, baseColor, fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Exp(in float depth, + in float4 fogParams, + in float4 fogColor, + in float4 baseColor, + out float4 oColor) +{ + float distance = abs(depth); + float exp = (distance*fogParams.x); + float fogFactor = saturate(1 / pow(2.71828, exp)); + + oColor = lerp(fogColor, baseColor, fogFactor); +} + +//----------------------------------------------------------------------------- +void FFP_PixelFog_Exp2(in float depth, + in float4 fogParams, + in float4 fogColor, + in float4 baseColor, + out float4 oColor) +{ + float distance = abs(depth); + float exp = (distance*fogParams.x*distance*fogParams.x); + float fogFactor = saturate(1 / pow(2.71828, exp)); + + oColor = lerp(fogColor, baseColor, fogFactor); +} diff --git a/materials/RTShaderLib/FFPLib_Lighting.cg b/materials/RTShaderLib/FFPLib_Lighting.cg new file mode 100644 index 000000000..144a4ed40 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Lighting.cg @@ -0,0 +1,225 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Lighting +// Program Desc: Lighting functions of the FFP. +// Program Type: Vertex shader +// Language: CG +// Notes: Implements core functions for FFPLighting class. +// based on lighting engine. +// See http://msdn.microsoft.com/en-us/library/ee422035.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_Light_Directional_Diffuse(in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vNegLightDirView); + + vOut = vBaseColour + vDiffuseColour * saturate(nDotL); +} + + +//----------------------------------------------------------------------------- +void FFP_Light_Directional_DiffuseSpecular(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vNegLightDirView); + float3 vView = -normalize(mul(mWorldView, vPos).xyz); + float3 vHalfWay = normalize(vView + vNegLightDirView); + float nDotH = dot(vNormalView, vHalfWay); + + if (nDotL > 0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower); + } +} + + +//----------------------------------------------------------------------------- +void FFP_Light_Point_Diffuse(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, normalize(vLightView)); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Point_DiffuseSpecular(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + + vLightView = normalize(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Spot_Diffuse(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Spot_DiffuseSpecular(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vLightView); + + + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten * fSpotT; + } +} \ No newline at end of file diff --git a/materials/RTShaderLib/FFPLib_Lighting.glsl b/materials/RTShaderLib/FFPLib_Lighting.glsl new file mode 100644 index 000000000..85831225e --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Lighting.glsl @@ -0,0 +1,226 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Lighting +// Program Desc: Lighting functions of the FFP. +// Program Type: Vertex shader +// Language: CG +// Notes: Implements core functions for FFPLighting class. +// based on lighting engine. +// See http://msdn.microsoft.com/en-us/library/ee422035.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_Light_Directional_Diffuse(in mat4 mWorldViewIT, + in vec3 vNormal, + in vec3 vNegLightDirView, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vec3 vNormalView = normalize((mWorldViewIT * vec4(vNormal.xyz, 1.0)).xyz); + float nDotL = dot(vNormalView, vNegLightDirView); + + vOut = vBaseColour + vDiffuseColour * clamp(nDotL, 0.0, 1.0); +} + + +//----------------------------------------------------------------------------- +void FFP_Light_Directional_DiffuseSpecular(in mat4 mWorldView, + in vec4 vPos, + in mat4 mWorldViewIT, + in vec3 vNormal, + in vec3 vNegLightDirView, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + vec3 vNormalView = normalize((mWorldViewIT * vec4(vNormal.xyz, 1.0)).xyz); + float nDotL = dot(vNormalView, vNegLightDirView); + vec3 vView = -normalize((mWorldView* vPos).xyz); + vec3 vHalfWay = normalize(vView + vNegLightDirView); + float nDotH = dot(vNormalView, vHalfWay); + + if (nDotL > 0.0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower); + } +} + + +//----------------------------------------------------------------------------- +void FFP_Light_Point_Diffuse(in mat4 mWorldView, + in vec4 vPos, + in mat4 mWorldViewIT, + in vec3 vNormal, + in vec3 vLightPosView, + in vec4 vAttParams, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vOut = vBaseColour; + + vec3 vViewPos = (mWorldView * vPos).xyz; + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vec3 vNormalView = normalize((mWorldViewIT * vec4(vNormal.xyz, 1.0)).xyz); + float nDotL = dot(vNormalView, normalize(vLightView)); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Point_DiffuseSpecular(in mat4 mWorldView, + in vec4 vPos, + in mat4 mWorldViewIT, + in vec3 vNormal, + in vec3 vLightPosView, + in vec4 vAttParams, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + vec3 vViewPos = (mWorldView * vPos).xyz; + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + + vLightView = normalize(vLightView); + vec3 vNormalView = normalize((mWorldViewIT * vec4(vNormal.xyz, 1.0)).xyz); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + vec3 vView = -normalize(vViewPos); + vec3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Spot_Diffuse(in mat4 mWorldView, + in vec4 vPos, + in mat4 mWorldViewIT, + in vec3 vNormal, + in vec3 vLightPosView, + in vec3 vNegLightDirView, + in vec4 vAttParams, + in vec3 vSpotParams, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vOut = vBaseColour; + + vec3 vViewPos = (mWorldView * vPos).xyz; + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + vec3 vNormalView = normalize((mWorldViewIT * vec4(vNormal.xyz, 1.0)).xyz); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = clamp((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y), 0.0, 1.0); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Spot_DiffuseSpecular(in mat4 mWorldView, + in vec4 vPos, + in mat4 mWorldViewIT, + in vec3 vNormal, + in vec3 vLightPosView, + in vec3 vNegLightDirView, + in vec4 vAttParams, + in vec3 vSpotParams, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + vec3 vViewPos = (mWorldView * vPos).xyz; + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + vec3 vNormalView = normalize((mWorldViewIT * vec4(vNormal.xyz, 1.0)).xyz); + float nDotL = dot(vNormalView, vLightView); + + + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + vec3 vView = -normalize(vViewPos); + vec3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = clamp((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y), 0.0, 1.0); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower) * fAtten * fSpotT; + } +} diff --git a/materials/RTShaderLib/FFPLib_Lighting.hlsl b/materials/RTShaderLib/FFPLib_Lighting.hlsl new file mode 100644 index 000000000..10c91f956 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Lighting.hlsl @@ -0,0 +1,225 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Lighting +// Program Desc: Lighting functions of the FFP. +// Program Type: Vertex shader +// Language: HLSL +// Notes: Implements core functions for FFPLighting class. +// based on lighting engine. +// See http://msdn.microsoft.com/en-us/library/ee422035.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_Light_Directional_Diffuse(in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vNegLightDirView); + + vOut = vBaseColour + vDiffuseColour * saturate(nDotL); +} + + +//----------------------------------------------------------------------------- +void FFP_Light_Directional_DiffuseSpecular(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vNegLightDirView); + float3 vView = -normalize(mul(mWorldView, vPos).xyz); + float3 vHalfWay = normalize(vView + vNegLightDirView); + float nDotH = dot(vNormalView, vHalfWay); + + if (nDotL > 0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower); + } +} + + +//----------------------------------------------------------------------------- +void FFP_Light_Point_Diffuse(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, normalize(vLightView)); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Point_DiffuseSpecular(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + + vLightView = normalize(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Spot_Diffuse(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void FFP_Light_Spot_DiffuseSpecular(in float4x4 mWorldView, + in float4 vPos, + in float4x4 mWorldViewIT, + in float3 vNormal, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vViewPos = mul(mWorldView, vPos).xyz; + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(mul((float3x3)mWorldViewIT, vNormal)); + float nDotL = dot(vNormalView, vLightView); + + + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten * fSpotT; + } +} diff --git a/materials/RTShaderLib/FFPLib_Texturing.cg b/materials/RTShaderLib/FFPLib_Texturing.cg new file mode 100644 index 000000000..ea57f614c --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Texturing.cg @@ -0,0 +1,319 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_TextureStage +// Program Desc: Texture functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: CG +// Notes: Implements core functions for FFPTexturing class. +// based on texturing operations needed by render system. +// Implements texture coordinate processing: +// see http://msdn.microsoft.com/en-us/library/ee422494.aspx +// Implements texture blending operation: +// see http://msdn.microsoft.com/en-us/library/ee422488.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_TransformTexCoord(in float4x4 m, in float2 v, out float2 vOut) +{ + vOut = mul(m, float4(v, 0, 1)).xy; +} + +//----------------------------------------------------------------------------- +void FFP_TransformTexCoord(in float4x4 m, in float3 v, out float3 vOut) +{ + vOut = mul(m, float4(v, 1)).xyz; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Normal(in float4x4 mWorldIT, + in float4x4 mView, + in float3 vNormal, + out float3 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + + vOut = vViewNormal; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Normal(in float4x4 mWorldIT, + in float4x4 mView, + in float4x4 mTexture, + in float3 vNormal, + out float3 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + + vOut = mul(mTexture, float4(vViewNormal, 1)).xyz; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Sphere(in float4x4 mWorld, + in float4x4 mView, + in float3 vNormal, + out float2 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorld, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + + vOut.x = vViewNormal.x/2 + 0.5; + vOut.y = -vViewNormal.y/2 + 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Sphere(in float4x4 mWorld, + in float4x4 mView, + in float4x4 mTexture, + in float3 vNormal, + out float2 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorld, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + float2 vSphereCoords; + + vSphereCoords.x = vViewNormal.x/2 + 0.5; + vSphereCoords.y = -vViewNormal.y/2 + 0.5; + + vOut = mul(mTexture, float4(vSphereCoords, 0, 0)).xy; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Reflect(in float4x4 mWorld, + in float4x4 mWorldIT, + in float4x4 mView, + in float3 vNormal, + in float4 vPos, + out float3 vOut) +{ + mView[2][0] = -mView[2][0]; + mView[2][1] = -mView[2][1]; + mView[2][2] = -mView[2][2]; + mView[2][3] = -mView[2][3]; + + float4x4 matViewT = transpose(mView); + + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + float4 vWorldPos = mul(mWorld, vPos); + float3 vNormViewPos = normalize(mul(mView, vWorldPos).xyz); + + float3 vReflect = reflect(vNormViewPos, vViewNormal); + + matViewT[2][0] = -matViewT[2][0]; + matViewT[2][1] = -matViewT[2][1]; + matViewT[2][2] = -matViewT[2][2]; + vReflect = mul((float3x3)matViewT, vReflect); + + vOut = vReflect; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Reflect(in float4x4 mWorld, + in float4x4 mWorldIT, + in float4x4 mView, + in float4x4 mTexture, + in float3 vNormal, + in float4 vPos, + out float3 vOut) +{ + mView[2][0] = -mView[2][0]; + mView[2][1] = -mView[2][1]; + mView[2][2] = -mView[2][2]; + mView[2][3] = -mView[2][3]; + + float4x4 matViewT = transpose(mView); + + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + float4 vWorldPos = mul(mWorld, vPos); + float3 vNormViewPos = normalize(mul(mView, vWorldPos).xyz); + + float3 vReflect = reflect(vNormViewPos, vViewNormal); + + matViewT[2][0] = -matViewT[2][0]; + matViewT[2][1] = -matViewT[2][1]; + matViewT[2][2] = -matViewT[2][2]; + vReflect = mul((float3x3)matViewT, vReflect); + + vReflect = mul(mTexture, float4(vReflect,1)).xyz; + + vOut = vReflect; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_Projection(in float4x4 mWorld, + in float4x4 mTexViewProjImage, + in float4 vPos, + out float3 vOut) +{ + float4 vWorldPos = mul(mWorld, vPos); + float4 vTexturePos = mul(mTexViewProjImage, vWorldPos); + + vOut = float3(vTexturePos.xy, vTexturePos.w); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler1D s, + in float f, + out float4 t) +{ + t = tex1D(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler2D s, + in float2 f, + out float4 t) +{ + t = tex2D(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTextureProj(in sampler2D s, + in float3 f, + out float4 t) +{ + t = tex2D(s, f.xy/f.z); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler3D s, + in float3 f, + out float4 t) +{ + t = tex3D(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in samplerCUBE s, + in float3 f, + out float4 t) +{ + t = texCUBE(s, f); +} + + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} diff --git a/materials/RTShaderLib/FFPLib_Texturing.glsl b/materials/RTShaderLib/FFPLib_Texturing.glsl new file mode 100644 index 000000000..07616ed3f --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Texturing.glsl @@ -0,0 +1,334 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_TextureStage +// Program Desc: Texture functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: GLSL +// Notes: Implements core functions for FFPTexturing class. +// based on texturing operations needed by render system. +// Implements texture coordinate processing: +// see http://msdn.microsoft.com/en-us/library/ee422494.aspx +// Implements texture blending operation: +// see http://msdn.microsoft.com/en-us/library/ee422488.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_TransformTexCoord(in mat4 m, in vec2 v, out vec2 vOut) +{ + vOut = (m * vec4(v, 1.0, 1.0)).xy; +} +//----------------------------------------------------------------------------- +void FFP_TransformTexCoord(in mat4 m, in vec4 v, out vec2 vOut) +{ + vOut = (m * v).xy; +} + +//----------------------------------------------------------------------------- +void FFP_TransformTexCoord(in mat4 m, in vec3 v, out vec3 vOut) +{ + vOut = (m * vec4(v, 1.0)).xyz; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Normal(in mat4 mWorldIT, + in mat4 mView, + in vec3 vNormal, + out vec3 vOut) +{ + vec3 vWorldNormal = (mWorldIT * vec4(vNormal, 1.0)).xyz; + vec3 vViewNormal = (mView * vec4(vWorldNormal, 1.0)).xyz; + + vOut = vViewNormal; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Normal(in mat4 mWorldIT, + in mat4 mView, + in mat4 mTexture, + in vec3 vNormal, + out vec3 vOut) +{ + vec3 vWorldNormal = (mWorldIT * vec4(vNormal, 1.0)).xyz; + vec3 vViewNormal = (mView * vec4(vWorldNormal, 1.0)).xyz; + + vOut = (mTexture * vec4(vViewNormal, 1.0)).xyz; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Sphere(in mat4 mWorld, + in mat4 mView, + in vec3 vNormal, + out vec2 vOut) +{ + vec3 vWorldNormal = (mWorld * vec4(vNormal, 1.0)).xyz; + vec3 vViewNormal = (mView * vec4(vWorldNormal, 1.0)).xyz; + + vOut.x = vViewNormal.x/2.0 + 0.5; + vOut.y = -vViewNormal.y/2.0 + 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Sphere(in mat4 mWorld, + in mat4 mView, + in mat4 mTexture, + in vec3 vNormal, + out vec2 vOut) +{ + vec3 vWorldNormal = (mWorld* vec4(vNormal, 1.0)).xyz; + vec3 vViewNormal = (mView * vec4(vWorldNormal, 1.0)).xyz; + + vec2 vSphereCoords; + + vSphereCoords.x = vViewNormal.x/2.0 + 0.5; + vSphereCoords.y = -vViewNormal.y/2.0 + 0.5; + + vOut = (mTexture * vec4(vSphereCoords, 0.0, 0.0)).xy; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Reflect(in mat4 mWorld, + in mat4 mWorldIT, + in mat4 mView, + in vec3 vNormal, + in vec4 vPos, + out vec3 vOut) +{ + mView[0][2] = -mView[0][2]; + mView[1][2] = -mView[1][2]; + mView[2][2] = -mView[2][2]; + mView[3][2] = -mView[3][2]; + + mat4 matViewT = transpose(mView); + + vec3 vWorldNormal = (mWorldIT * vec4(vNormal, 0.0)).xyz; + vec3 vViewNormal = (mView * vec4(vWorldNormal, 0.0)).xyz; + vec4 vWorldPos = mWorld * vPos; + vec3 vNormViewPos = normalize((mView * vWorldPos).xyz); + + vec3 vReflect = reflect(vNormViewPos, vViewNormal); + + matViewT[0][2] = -matViewT[0][2]; + matViewT[1][2] = -matViewT[1][2]; + matViewT[2][2] = -matViewT[2][2]; + vReflect = (matViewT * vec4(vReflect, 1.0)).xyz; + + vOut = vReflect; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Reflect(in mat4 mWorld, + in mat4 mWorldIT, + in mat4 mView, + in mat4 mTexture, + in vec3 vNormal, + in vec4 vPos, + out vec3 vOut) +{ + mView[0][2] = -mView[0][2]; + mView[1][2] = -mView[1][2]; + mView[2][2] = -mView[2][2]; + mView[3][2] = -mView[3][2]; + + mat4 matViewT = transpose(mView); + + vec3 vWorldNormal = (mWorldIT * vec4(vNormal, 0.0)).xyz; + vec3 vViewNormal = (mView * vec4(vWorldNormal, 0.0)).xyz; + vec4 vWorldPos = mWorld * vPos; + vec3 vNormViewPos = normalize((mView * vWorldPos).xyz); + + vec3 vReflect = reflect(vNormViewPos, vViewNormal); + + matViewT[0][2] = -matViewT[0][2]; + matViewT[1][2] = -matViewT[1][2]; + matViewT[2][2] = -matViewT[2][2]; + vReflect = (matViewT * vec4(vReflect, 1.0)).xyz; + + vReflect = (mTexture * vec4(vReflect, 1.0)).xyz; + + vOut = vReflect; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_Projection(in mat4 mWorld, + in mat4 mTexViewProjImage, + in vec4 vPos, + out vec3 vOut) +{ + vec4 vWorldPos = mWorld * vPos; + vec4 vTexturePos = mTexViewProjImage * vWorldPos; + + vOut = vTexturePos.xyw; +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler1D s, + in float f, + out vec4 t) +{ + t = texture(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler2D s, + in vec2 f, + out vec4 t) +{ + t = texture (s, f); +} +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler2D s, + in vec4 f, + out vec4 t) +{ + t = texture (s, vec2(f.xy)); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTextureProj(in sampler2D s, + in vec3 f, + out vec4 t) +{ + t = texture(s, f.xy/f.z); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler3D s, + in vec3 f, + out vec4 t) +{ + t = texture(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in samplerCube s, + in vec3 f, + out vec4 t) +{ + t = texture(s, f); +} + + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1 * 2.0; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vIn0 * vIn1 * 2.0; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vIn0 * vIn1 * 2.0; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 * vIn1 * 2.0; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1 * 4.0; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vIn0 * vIn1 * 4.0; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vIn0 * vIn1 * 4.0; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 * vIn1 * 4.0; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in vec2 vIn0, in vec2 vIn1, out vec2 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in vec3 vIn0, in vec3 vIn1, out vec3 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in vec4 vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + diff --git a/materials/RTShaderLib/FFPLib_Texturing.hlsl b/materials/RTShaderLib/FFPLib_Texturing.hlsl new file mode 100644 index 000000000..08de4c00b --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Texturing.hlsl @@ -0,0 +1,319 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_TextureStage +// Program Desc: Texture functions of the FFP. +// Program Type: Vertex/Pixel shader +// Language: HLSL +// Notes: Implements core functions for FFPTexturing class. +// based on texturing operations needed by render system. +// Implements texture coordinate processing: +// see http://msdn.microsoft.com/en-us/library/ee422494.aspx +// Implements texture blending operation: +// see http://msdn.microsoft.com/en-us/library/ee422488.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_TransformTexCoord(in float4x4 m, in float2 v, out float2 vOut) +{ + vOut = mul(m, float4(v, 0, 1)).xy; +} + +//----------------------------------------------------------------------------- +void FFP_TransformTexCoord(in float4x4 m, in float3 v, out float3 vOut) +{ + vOut = mul(m, float4(v, 1)).xyz; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Normal(in float4x4 mWorldIT, + in float4x4 mView, + in float3 vNormal, + out float3 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + + vOut = vViewNormal; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Normal(in float4x4 mWorldIT, + in float4x4 mView, + in float4x4 mTexture, + in float3 vNormal, + out float3 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + + vOut = mul(mTexture, float4(vViewNormal, 1)).xyz; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Sphere(in float4x4 mWorld, + in float4x4 mView, + in float3 vNormal, + out float2 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorld, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + + vOut.x = vViewNormal.x/2 + 0.5; + vOut.y = -vViewNormal.y/2 + 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Sphere(in float4x4 mWorld, + in float4x4 mView, + in float4x4 mTexture, + in float3 vNormal, + out float2 vOut) +{ + float3 vWorldNormal = mul((float3x3)mWorld, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + float2 vSphereCoords; + + vSphereCoords.x = vViewNormal.x/2 + 0.5; + vSphereCoords.y = -vViewNormal.y/2 + 0.5; + + vOut = mul(mTexture, float4(vSphereCoords, 0, 0)).xy; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Reflect(in float4x4 mWorld, + in float4x4 mWorldIT, + in float4x4 mView, + in float3 vNormal, + in float4 vPos, + out float3 vOut) +{ + mView[2][0] = -mView[2][0]; + mView[2][1] = -mView[2][1]; + mView[2][2] = -mView[2][2]; + mView[2][3] = -mView[2][3]; + + float4x4 matViewT = transpose(mView); + + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + float4 vWorldPos = mul(mWorld, vPos); + float3 vNormViewPos = normalize(mul(mView, vWorldPos).xyz); + + float3 vReflect = reflect(vNormViewPos, vViewNormal); + + matViewT[2][0] = -matViewT[2][0]; + matViewT[2][1] = -matViewT[2][1]; + matViewT[2][2] = -matViewT[2][2]; + vReflect = mul((float3x3)matViewT, vReflect); + + vOut = vReflect; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_EnvMap_Reflect(in float4x4 mWorld, + in float4x4 mWorldIT, + in float4x4 mView, + in float4x4 mTexture, + in float3 vNormal, + in float4 vPos, + out float3 vOut) +{ + mView[2][0] = -mView[2][0]; + mView[2][1] = -mView[2][1]; + mView[2][2] = -mView[2][2]; + mView[2][3] = -mView[2][3]; + + float4x4 matViewT = transpose(mView); + + float3 vWorldNormal = mul((float3x3)mWorldIT, vNormal); + float3 vViewNormal = mul((float3x3)mView, vWorldNormal); + float4 vWorldPos = mul(mWorld, vPos); + float3 vNormViewPos = normalize(mul(mView, vWorldPos).xyz); + + float3 vReflect = reflect(vNormViewPos, vViewNormal); + + matViewT[2][0] = -matViewT[2][0]; + matViewT[2][1] = -matViewT[2][1]; + matViewT[2][2] = -matViewT[2][2]; + vReflect = mul((float3x3)matViewT, vReflect); + + vReflect = mul(mTexture, float4(vReflect,1)).xyz; + + vOut = vReflect; +} + +//----------------------------------------------------------------------------- +void FFP_GenerateTexCoord_Projection(in float4x4 mWorld, + in float4x4 mTexViewProjImage, + in float4 vPos, + out float3 vOut) +{ + float4 vWorldPos = mul(mWorld, vPos); + float4 vTexturePos = mul(mTexViewProjImage, vWorldPos); + + vOut = float3(vTexturePos.xy, vTexturePos.w); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler1D s, + in float f, + out float4 t) +{ + t = tex1D(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler2D s, + in float2 f, + out float4 t) +{ + t = tex2D(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTextureProj(in sampler2D s, + in float3 f, + out float4 t) +{ + t = tex2D(s, f.xy/f.z); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in sampler3D s, + in float3 f, + out float4 t) +{ + t = tex3D(s, f); +} + +//----------------------------------------------------------------------------- +void FFP_SampleTexture(in samplerCUBE s, + in float3 f, + out float4 t) +{ + t = texCUBE(s, f); +} + + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX2(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1 * 2; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_ModulateX4(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1 * 4; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSigned(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 + vIn1 - 0.5; +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float vIn0, in float vIn1, out float vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float2 vIn0, in float2 vIn1, out float2 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float3 vIn0, in float3 vIn1, out float3 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} + +//----------------------------------------------------------------------------- +void FFP_AddSmooth(in float4 vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 + vIn1 - (vIn0 * vIn1); +} diff --git a/materials/RTShaderLib/FFPLib_Transform.cg b/materials/RTShaderLib/FFPLib_Transform.cg new file mode 100644 index 000000000..1bf2190d7 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Transform.cg @@ -0,0 +1,45 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Transform +// Program Desc: Transform functions of the FFP. +// Program Type: Vertex shader +// Language: CG +// Notes: Implements core functions for FFPTransform class. +// based on transform engine. +// See http://msdn.microsoft.com/en-us/library/ee422511.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_Transform(in float4x4 m, + in float4 v, + out float4 vOut) +{ + vOut = mul(m, v); +} diff --git a/materials/RTShaderLib/FFPLib_Transform.glsl b/materials/RTShaderLib/FFPLib_Transform.glsl new file mode 100644 index 000000000..2f1c32068 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Transform.glsl @@ -0,0 +1,47 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Transform +// Program Desc: Transform functions of the FFP. +// Program Type: Vertex shader +// Language: GLSL +// Notes: Implements core functions for FFPTransform class. +// based on transform engine. +// See http://msdn.microsoft.com/en-us/library/ee422511.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_Transform(in mat4 m, + in vec4 v, + out vec4 vOut) +{ + vOut = m * v; +} + diff --git a/materials/RTShaderLib/FFPLib_Transform.hlsl b/materials/RTShaderLib/FFPLib_Transform.hlsl new file mode 100644 index 000000000..99f376480 --- /dev/null +++ b/materials/RTShaderLib/FFPLib_Transform.hlsl @@ -0,0 +1,45 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: FFPLib_Transform +// Program Desc: Transform functions of the FFP. +// Program Type: Vertex shader +// Language: HLSL +// Notes: Implements core functions for FFPTransform class. +// based on transform engine. +// See http://msdn.microsoft.com/en-us/library/ee422511.aspx +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +void FFP_Transform(in float4x4 m, + in float4 v, + out float4 vOut) +{ + vOut = mul(m, v); +} diff --git a/materials/RTShaderLib/SGXLib_IntegratedPSSM.cg b/materials/RTShaderLib/SGXLib_IntegratedPSSM.cg new file mode 100644 index 000000000..dbbae0c60 --- /dev/null +++ b/materials/RTShaderLib/SGXLib_IntegratedPSSM.cg @@ -0,0 +1,81 @@ +//----------------------------------------------------------------------------- +// Program Name: SGXLib_IntegratedPSSM +// Program Desc: Integrated PSSM functions. +// Program Type: Vertex/Pixel shader +// Language: CG +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_CopyDepth(in float4 clipSpacePos, + out float oDepth) +{ + oDepth = clipSpacePos.z; +} + +//----------------------------------------------------------------------------- +void SGX_ModulateScalar(in float vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void SGX_ApplyShadowFactor_Diffuse(in float4 ambient, + in float4 lightSum, + in float fShadowFactor, + out float4 oLight) +{ + oLight.rgb = ambient.rgb + (lightSum.rgb - ambient.rgb) * fShadowFactor; + oLight.a = lightSum.a; +} + +//----------------------------------------------------------------------------- +float _SGX_ShadowPCF4(sampler2D shadowMap, float4 shadowMapPos, float2 offset) +{ + shadowMapPos = shadowMapPos / shadowMapPos.w; + float2 uv = shadowMapPos.xy; + float3 o = float3(offset, -offset.x) * 0.3f; + + // Note: We using 2x2 PCF. Good enough and is alot faster. + float c = (shadowMapPos.z <= tex2D(shadowMap, uv.xy - o.xy).r) ? 1 : 0; // top left + c += (shadowMapPos.z <= tex2D(shadowMap, uv.xy + o.xy).r) ? 1 : 0; // bottom right + c += (shadowMapPos.z <= tex2D(shadowMap, uv.xy + o.zy).r) ? 1 : 0; // bottom left + c += (shadowMapPos.z <= tex2D(shadowMap, uv.xy - o.zy).r) ? 1 : 0; // top right + + return c / 4; +} + +//----------------------------------------------------------------------------- +void SGX_ComputeShadowFactor_PSSM3(in float fDepth, + in float4 vSplitPoints, + in float4 lightPosition0, + in float4 lightPosition1, + in float4 lightPosition2, + in sampler2D shadowMap0, + in sampler2D shadowMap1, + in sampler2D shadowMap2, + in float4 invShadowMapSize0, + in float4 invShadowMapSize1, + in float4 invShadowMapSize2, + out float oShadowFactor) +{ + float shadowFactor0; + float shadowFactor1; + float shadowFactor2; + + shadowFactor0 = _SGX_ShadowPCF4(shadowMap0, lightPosition0, invShadowMapSize0.xy); + shadowFactor1 = _SGX_ShadowPCF4(shadowMap1, lightPosition1, invShadowMapSize1.xy); + shadowFactor2 = _SGX_ShadowPCF4(shadowMap2, lightPosition2, invShadowMapSize2.xy); + + if (fDepth <= vSplitPoints.x) + { + oShadowFactor = shadowFactor0; + } + else if (fDepth <= vSplitPoints.y) + { + oShadowFactor = shadowFactor1; + } + else + { + oShadowFactor = shadowFactor2; + } +} diff --git a/materials/RTShaderLib/SGXLib_IntegratedPSSM.glsl b/materials/RTShaderLib/SGXLib_IntegratedPSSM.glsl new file mode 100644 index 000000000..1c31f7687 --- /dev/null +++ b/materials/RTShaderLib/SGXLib_IntegratedPSSM.glsl @@ -0,0 +1,82 @@ +//----------------------------------------------------------------------------- +// Program Name: SGXLib_IntegratedPSSM +// Program Desc: Integrated PSSM functions. +// Program Type: Vertex/Pixel shader +// Language: GLSL +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_CopyDepth(in vec4 clipSpacePos, + out float oDepth) +{ + oDepth = clipSpacePos.z; +} + +//----------------------------------------------------------------------------- +void SGX_ModulateScalar(in float vIn0, in vec4 vIn1, out vec4 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void SGX_ApplyShadowFactor_Diffuse(in vec4 ambient, + in vec4 lightSum, + in float fShadowFactor, + out vec4 oLight) +{ + oLight.rgb = ambient.rgb + (lightSum.rgb - ambient.rgb) * fShadowFactor; + oLight.a = lightSum.a; +} + +//----------------------------------------------------------------------------- +float _SGX_ShadowPCF4(sampler2D shadowMap, vec4 shadowMapPos, vec2 offset) +{ + shadowMapPos = shadowMapPos / shadowMapPos.w; + vec2 uv = shadowMapPos.xy; + vec3 o = vec3(offset, -offset.x) * 0.3; + + // Note: We using 2x2 PCF. Good enough and is alot faster. + float c = (shadowMapPos.z <= texture(shadowMap, uv.xy - o.xy).r) ? 1.0 : 0.0; // top left + c += (shadowMapPos.z <= texture(shadowMap, uv.xy + o.xy).r) ? 1.0 : 0.0; // bottom right + c += (shadowMapPos.z <= texture(shadowMap, uv.xy + o.zy).r) ? 1.0 : 0.0; // bottom left + c += (shadowMapPos.z <= texture(shadowMap, uv.xy - o.zy).r) ? 1.0 : 0.0; // top right + + return c / 4.0; +} + +//----------------------------------------------------------------------------- +void SGX_ComputeShadowFactor_PSSM3(in float fDepth, + in vec4 vSplitPoints, + in vec4 lightPosition0, + in vec4 lightPosition1, + in vec4 lightPosition2, + in sampler2D shadowMap0, + in sampler2D shadowMap1, + in sampler2D shadowMap2, + in vec4 invShadowMapSize0, + in vec4 invShadowMapSize1, + in vec4 invShadowMapSize2, + out float oShadowFactor) +{ + float shadowFactor0; + float shadowFactor1; + float shadowFactor2; + + shadowFactor0 = _SGX_ShadowPCF4(shadowMap0, lightPosition0, invShadowMapSize0.xy); + shadowFactor1 = _SGX_ShadowPCF4(shadowMap1, lightPosition1, invShadowMapSize1.xy); + shadowFactor2 = _SGX_ShadowPCF4(shadowMap2, lightPosition2, invShadowMapSize2.xy); + + if (fDepth <= vSplitPoints.x) + { + oShadowFactor = shadowFactor0; + } + else if (fDepth <= vSplitPoints.y) + { + oShadowFactor = shadowFactor1; + } + else + { + oShadowFactor = shadowFactor2; + } +} + diff --git a/materials/RTShaderLib/SGXLib_IntegratedPSSM.hlsl b/materials/RTShaderLib/SGXLib_IntegratedPSSM.hlsl new file mode 100644 index 000000000..3c69a0ffc --- /dev/null +++ b/materials/RTShaderLib/SGXLib_IntegratedPSSM.hlsl @@ -0,0 +1,81 @@ +//----------------------------------------------------------------------------- +// Program Name: SGXLib_IntegratedPSSM +// Program Desc: Integrated PSSM functions. +// Program Type: Vertex/Pixel shader +// Language: HLSL +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_CopyDepth(in float4 clipSpacePos, + out float oDepth) +{ + oDepth = clipSpacePos.z; +} + +//----------------------------------------------------------------------------- +void SGX_ModulateScalar(in float vIn0, in float4 vIn1, out float4 vOut) +{ + vOut = vIn0 * vIn1; +} + +//----------------------------------------------------------------------------- +void SGX_ApplyShadowFactor_Diffuse(in float4 ambient, + in float4 lightSum, + in float fShadowFactor, + out float4 oLight) +{ + oLight.rgb = ambient.rgb + (lightSum.rgb - ambient.rgb) * fShadowFactor; + oLight.a = lightSum.a; +} + +//----------------------------------------------------------------------------- +float _SGX_ShadowPCF4(sampler2D shadowMap, float4 shadowMapPos, float2 offset) +{ + shadowMapPos = shadowMapPos / shadowMapPos.w; + float2 uv = shadowMapPos.xy; + float3 o = float3(offset, -offset.x) * 0.3f; + + // Note: We using 2x2 PCF. Good enough and is alot faster. + float c = (shadowMapPos.z <= tex2D(shadowMap, uv.xy - o.xy).r) ? 1 : 0; // top left + c += (shadowMapPos.z <= tex2D(shadowMap, uv.xy + o.xy).r) ? 1 : 0; // bottom right + c += (shadowMapPos.z <= tex2D(shadowMap, uv.xy + o.zy).r) ? 1 : 0; // bottom left + c += (shadowMapPos.z <= tex2D(shadowMap, uv.xy - o.zy).r) ? 1 : 0; // top right + + return c / 4; +} + +//----------------------------------------------------------------------------- +void SGX_ComputeShadowFactor_PSSM3(in float fDepth, + in float4 vSplitPoints, + in float4 lightPosition0, + in float4 lightPosition1, + in float4 lightPosition2, + in sampler2D shadowMap0, + in sampler2D shadowMap1, + in sampler2D shadowMap2, + in float4 invShadowMapSize0, + in float4 invShadowMapSize1, + in float4 invShadowMapSize2, + out float oShadowFactor) +{ + float shadowFactor0; + float shadowFactor1; + float shadowFactor2; + + shadowFactor0 = _SGX_ShadowPCF4(shadowMap0, lightPosition0, invShadowMapSize0.xy); + shadowFactor1 = _SGX_ShadowPCF4(shadowMap1, lightPosition1, invShadowMapSize1.xy); + shadowFactor2 = _SGX_ShadowPCF4(shadowMap2, lightPosition2, invShadowMapSize2.xy); + + if (fDepth <= vSplitPoints.x) + { + oShadowFactor = shadowFactor0; + } + else if (fDepth <= vSplitPoints.y) + { + oShadowFactor = shadowFactor1; + } + else + { + oShadowFactor = shadowFactor2; + } +} diff --git a/materials/RTShaderLib/SGXLib_NormalMapLighting.cg b/materials/RTShaderLib/SGXLib_NormalMapLighting.cg new file mode 100644 index 000000000..ea2a9d70c --- /dev/null +++ b/materials/RTShaderLib/SGXLib_NormalMapLighting.cg @@ -0,0 +1,257 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: SGXLib_NormalMapLighting +// Program Desc: Normal map lighting functions. +// Program Type: Vertex/Pixel shader +// Language: CG +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_ConstructTBNMatrix(in float3 vNormal, + in float3 vTangent, + out float3x3 vOut) +{ + float3 vBinormal = cross(vTangent, vNormal); + + vOut = float3x3(vTangent, vBinormal, vNormal); +} + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in float3x3 m, + in float3 v, + out float3 vOut) +{ + vOut = mul(m, v); +} + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in float4x4 m, + in float3 v, + out float3 vOut) +{ + vOut = mul((float3x3)m, v); +} + +//----------------------------------------------------------------------------- +void SGX_TransformPosition(in float4x4 m, + in float4 v, + out float3 vOut) +{ + vOut = mul(m, v).xyz; +} + +//----------------------------------------------------------------------------- +void SGX_FetchNormal(in sampler2D s, + in float2 uv, + out float4 vOut) +{ + vOut = 2 * tex2D(s, uv).xyzw - 1; +} + +//----------------------------------------------------------------------------- +void SGX_Generate_Parallax_Texcoord(in sampler2D normalHeightMap, + in float2 texCoord, + in float3 eyeVec, + in float2 scaleBias, + out float2 newTexCoord) +{ + eyeVec = normalize(eyeVec); + float height = tex2D(normalHeightMap, texCoord).a; + float displacement = (height * scaleBias.x) + scaleBias.y; + float3 scaledEyeDir = eyeVec * displacement; + newTexCoord = (scaledEyeDir + float3(texCoord, 1.0)).xy; +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_Diffuse( + in float3 vTSNormal, + in float3 vTSNegLightDir, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + + vOut = vBaseColour + vDiffuseColour * saturate(nDotL); +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_DiffuseSpecular( + in float3 vTSNormal, + in float3 vTSView, + in float3 vTSNegLightDir, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + float3 vTSViewNorm = normalize(vTSView); + float3 vHalfWay = normalize(vTSView + vTSNegLightDir); + float nDotH = dot(vTSNormal, vHalfWay); + + if (nDotL > 0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower); + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Point_Diffuse( + in float3 vTSNormal, + in float3 vTSToLight, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float fLightD = length(vTSToLight); + float nDotL = dot(vTSNormal, normalize(vTSToLight)); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + + + +//----------------------------------------------------------------------------- +void SGX_Light_Point_DiffuseSpecular( + in float3 vTSNormal, + in float3 vTSView, + in float3 vTSToLight, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float fLightD = length(vTSToLight); + float3 vTSNegLightDirNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vTSViewNorm = normalize(vTSView); + float3 vHalfWay = normalize(vTSViewNorm + vTSNegLightDirNorm); + float nDotH = dot(vTSNormal, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_Diffuse( + in float3 vTSNormal, + in float3 vTSToLight, + in float3 vTSNegLightDir, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float fLightD = length(vTSToLight); + float3 vTSToLightNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSToLightNorm); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vTSNegLightDirNorm, vTSToLightNorm); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_DiffuseSpecular( + in float3 vTSNormal, + in float3 vTSView, + in float3 vTSToLight, + in float3 vTSNegLightDir, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float fLightD = length(vTSToLight); + float3 vTSToLightNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSToLightNorm); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float3 vTSViewNorm = normalize(vTSView); + float3 vHalfWay = normalize(vTSViewNorm + vTSNegLightDirNorm); + float nDotH = dot(vTSNormal, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vTSNegLightDirNorm, vTSToLightNorm); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten * fSpotT; + } +} diff --git a/materials/RTShaderLib/SGXLib_NormalMapLighting.glsl b/materials/RTShaderLib/SGXLib_NormalMapLighting.glsl new file mode 100644 index 000000000..09c098f73 --- /dev/null +++ b/materials/RTShaderLib/SGXLib_NormalMapLighting.glsl @@ -0,0 +1,269 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: SGXLib_NormalMapLighting +// Program Desc: Normal map lighting functions. +// Program Type: Vertex/Pixel shader +// Language: GLSL +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_ConstructTBNMatrix(in vec3 vNormal, + in vec3 vTangent, + out mat3 vOut) +{ + vec3 vBinormal = cross(vTangent, vNormal); + + vOut[0][0] = vTangent.x; + vOut[1][0] = vTangent.y; + vOut[2][0] = vTangent.z; + + vOut[0][1] = vBinormal.x; + vOut[1][1] = vBinormal.y; + vOut[2][1] = vBinormal.z; + + vOut[0][2] = vNormal.x; + vOut[1][2] = vNormal.y; + vOut[2][2] = vNormal.z; +} + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in mat3 m, + in vec3 v, + out vec3 vOut) +{ + vOut = (m * v) ; +} + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in mat4 m, + in vec3 v, + out vec3 vOut) +{ + vOut = (m * vec4(v, 1.0)).xyz ; +} + +//----------------------------------------------------------------------------- +void SGX_TransformPosition(in mat4 m, + in vec4 v, + out vec3 vOut) +{ + vOut = (m * v).xyz; +} + +//----------------------------------------------------------------------------- +void SGX_FetchNormal(in sampler2D s, + in vec2 uv, + out vec3 vOut) +{ + vOut = 2.0 * texture(s, uv).xyz - 1.0; +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_Diffuse( + in vec3 vTSNormal, + in vec3 vTSNegLightDir, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vec3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + + vOut = vBaseColour + vDiffuseColour * clamp(nDotL, 0.0, 1.0); +} + +//----------------------------------------------------------------------------- +void SGX_Generate_Parallax_Texcoord(in sampler2D normalHeightMap, + in vec2 texCoord, + in vec3 eyeVec, + in vec2 scaleBias, + out vec2 newTexCoord) +{ + eyeVec = normalize(eyeVec); + float height = texture(normalHeightMap, texCoord).a; + float displacement = (height * scaleBias.x) + scaleBias.y; + vec3 scaledEyeDir = eyeVec * displacement; + newTexCoord = (scaledEyeDir + vec3(texCoord, 1.0)).xy; +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_DiffuseSpecular( + in vec3 vTSNormal, + in vec3 vTSView, + in vec3 vTSNegLightDir, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + vec3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + vec3 vTSViewNorm = normalize(vTSView); + vec3 vHalfWay = normalize(vTSView + vTSNegLightDir); + float nDotH = dot(vTSNormal, vHalfWay); + + if (nDotL > 0.0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower); + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Point_Diffuse( + in vec3 vTSNormal, + in vec3 vTSToLight, + in vec4 vAttParams, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vOut = vBaseColour; + + float fLightD = length(vTSToLight); + float nDotL = dot(vTSNormal, normalize(vTSToLight)); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + + + +//----------------------------------------------------------------------------- +void SGX_Light_Point_DiffuseSpecular( + in vec3 vTSNormal, + in vec3 vTSView, + in vec3 vTSToLight, + in vec4 vAttParams, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float fLightD = length(vTSToLight); + vec3 vTSNegLightDirNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + vec3 vTSViewNorm = normalize(vTSView); + vec3 vHalfWay = normalize(vTSViewNorm + vTSNegLightDirNorm); + float nDotH = dot(vTSNormal, vHalfWay); + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_Diffuse( + in vec3 vTSNormal, + in vec3 vTSToLight, + in vec3 vTSNegLightDir, + in vec4 vAttParams, + in vec3 vSpotParams, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vOut = vBaseColour; + + float fLightD = length(vTSToLight); + vec3 vTSToLightNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSToLightNorm); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + vec3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vTSNegLightDirNorm, vTSToLightNorm); + float fSpotE = clamp((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y), 0.0, 1.0); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_DiffuseSpecular( + in vec3 vTSNormal, + in vec3 vTSView, + in vec3 vTSToLight, + in vec3 vTSNegLightDir, + in vec4 vAttParams, + in vec3 vSpotParams, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float fLightD = length(vTSToLight); + vec3 vTSToLightNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSToLightNorm); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + vec3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + vec3 vTSViewNorm = normalize(vTSView); + vec3 vHalfWay = normalize(vTSViewNorm + vTSNegLightDirNorm); + float nDotH = dot(vTSNormal, vHalfWay); + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vTSNegLightDirNorm, vTSToLightNorm); + float fSpotE = clamp((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y), 0.0, 1.0); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower) * fAtten * fSpotT; + } +} + diff --git a/materials/RTShaderLib/SGXLib_NormalMapLighting.hlsl b/materials/RTShaderLib/SGXLib_NormalMapLighting.hlsl new file mode 100644 index 000000000..03f59d95d --- /dev/null +++ b/materials/RTShaderLib/SGXLib_NormalMapLighting.hlsl @@ -0,0 +1,257 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: SGXLib_NormalMapLighting +// Program Desc: Normal map lighting functions. +// Program Type: Vertex/Pixel shader +// Language: HLSL +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_ConstructTBNMatrix(in float3 vNormal, + in float3 vTangent, + out float3x3 vOut) +{ + float3 vBinormal = cross(vTangent, vNormal); + + vOut = float3x3(vTangent, vBinormal, vNormal); +} + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in float3x3 m, + in float3 v, + out float3 vOut) +{ + vOut = mul(m, v); +} + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in float4x4 m, + in float3 v, + out float3 vOut) +{ + vOut = mul((float3x3)m, v); +} + +//----------------------------------------------------------------------------- +void SGX_TransformPosition(in float4x4 m, + in float4 v, + out float3 vOut) +{ + vOut = mul(m, v).xyz; +} + +//----------------------------------------------------------------------------- +void SGX_FetchNormal(in sampler2D s, + in float2 uv, + out float3 vOut) +{ + vOut = 2 * tex2D(s, uv).xyz - 1; +} + +//----------------------------------------------------------------------------- +void SGX_Generate_Parallax_Texcoord(in sampler2D normalHeightMap, + in float2 texCoord, + in float3 eyeVec, + in float2 scaleBias, + out float2 newTexCoord) +{ + eyeVec = normalize(eyeVec); + float height = tex2D(normalHeightMap, texCoord).a; + float displacement = (height * scaleBias.x) + scaleBias.y; + float3 scaledEyeDir = eyeVec * displacement; + newTexCoord = (scaledEyeDir + float3(texCoord, 1.0)).xy; +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_Diffuse( + in float3 vTSNormal, + in float3 vTSNegLightDir, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + + vOut = vBaseColour + vDiffuseColour * saturate(nDotL); +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_DiffuseSpecular( + in float3 vTSNormal, + in float3 vTSView, + in float3 vTSNegLightDir, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + float3 vTSViewNorm = normalize(vTSView); + float3 vHalfWay = normalize(vTSView + vTSNegLightDir); + float nDotH = dot(vTSNormal, vHalfWay); + + if (nDotL > 0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower); + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Point_Diffuse( + in float3 vTSNormal, + in float3 vTSToLight, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float fLightD = length(vTSToLight); + float nDotL = dot(vTSNormal, normalize(vTSToLight)); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + + + +//----------------------------------------------------------------------------- +void SGX_Light_Point_DiffuseSpecular( + in float3 vTSNormal, + in float3 vTSView, + in float3 vTSToLight, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float fLightD = length(vTSToLight); + float3 vTSNegLightDirNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSNegLightDirNorm); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vTSViewNorm = normalize(vTSView); + float3 vHalfWay = normalize(vTSViewNorm + vTSNegLightDirNorm); + float nDotH = dot(vTSNormal, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_Diffuse( + in float3 vTSNormal, + in float3 vTSToLight, + in float3 vTSNegLightDir, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float fLightD = length(vTSToLight); + float3 vTSToLightNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSToLightNorm); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vTSNegLightDirNorm, vTSToLightNorm); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_DiffuseSpecular( + in float3 vTSNormal, + in float3 vTSView, + in float3 vTSToLight, + in float3 vTSNegLightDir, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float fLightD = length(vTSToLight); + float3 vTSToLightNorm = normalize(vTSToLight); + float nDotL = dot(vTSNormal, vTSToLightNorm); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vTSNegLightDirNorm = normalize(vTSNegLightDir); + float3 vTSViewNorm = normalize(vTSView); + float3 vHalfWay = normalize(vTSViewNorm + vTSNegLightDirNorm); + float nDotH = dot(vTSNormal, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vTSNegLightDirNorm, vTSToLightNorm); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten * fSpotT; + } +} diff --git a/materials/RTShaderLib/SGXLib_PerPixelLighting.cg b/materials/RTShaderLib/SGXLib_PerPixelLighting.cg new file mode 100644 index 000000000..347670203 --- /dev/null +++ b/materials/RTShaderLib/SGXLib_PerPixelLighting.cg @@ -0,0 +1,226 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: SGXLib_Lighting +// Program Desc: Per pixel lighting functions. +// Program Type: Vertex/Pixel shader +// Language: CG +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in float4x4 m, + in float3 v, + out float3 vOut) +{ + vOut = mul((float3x3)m, v); +} + +//----------------------------------------------------------------------------- +void SGX_TransformPosition(in float4x4 mWorldView, + in float4 vPos, + out float3 vOut) +{ + vOut = mul(mWorldView, vPos).xyz; +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_Diffuse( + in float3 vNormal, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vNegLightDirView); + + vOut = vBaseColour + vDiffuseColour * saturate(nDotL); +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_DiffuseSpecular( + in float3 vNormal, + in float3 vViewPos, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vNegLightDirView); + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vNegLightDirView); + float nDotH = dot(vNormalView, vHalfWay); + + if (nDotL > 0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower); + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Point_Diffuse( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, normalize(vLightView)); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + + + +//----------------------------------------------------------------------------- +void SGX_Light_Point_DiffuseSpecular( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_Diffuse( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_DiffuseSpecular( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten * fSpotT; + } +} diff --git a/materials/RTShaderLib/SGXLib_PerPixelLighting.glsl b/materials/RTShaderLib/SGXLib_PerPixelLighting.glsl new file mode 100644 index 000000000..2659ffedf --- /dev/null +++ b/materials/RTShaderLib/SGXLib_PerPixelLighting.glsl @@ -0,0 +1,228 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: SGXLib_Lighting +// Program Desc: Per pixel lighting functions. +// Program Type: Vertex/Pixel shader +// Language: GLSL +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in mat4 m, + in vec3 v, + out vec3 vOut) +{ + vOut = (m * vec4(v, 1.0)).xyz; +} + +//----------------------------------------------------------------------------- +void SGX_TransformPosition(in mat4 mWorldView, + in vec4 vPos, + out vec3 vOut) +{ + vOut = (mWorldView * vPos).xyz; +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_Diffuse( + in vec3 vNormal, + in vec3 vNegLightDirView, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vec3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vNegLightDirView); + + vOut = vBaseColour + vDiffuseColour * clamp(nDotL, 0.0, 1.0); +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_DiffuseSpecular( + in vec3 vNormal, + in vec3 vViewPos, + in vec3 vNegLightDirView, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + vec3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vNegLightDirView); + vec3 vView = -normalize(vViewPos); + vec3 vHalfWay = normalize(vView + vNegLightDirView); + float nDotH = dot(vNormalView, vHalfWay); + + if (nDotL > 0.0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower); + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Point_Diffuse( + in vec3 vNormal, + in vec3 vViewPos, + in vec3 vLightPosView, + in vec4 vAttParams, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vOut = vBaseColour; + + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vec3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, normalize(vLightView)); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + + + +//----------------------------------------------------------------------------- +void SGX_Light_Point_DiffuseSpecular( + in vec3 vNormal, + in vec3 vViewPos, + in vec3 vLightPosView, + in vec4 vAttParams, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + vec3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + vec3 vView = -normalize(vViewPos); + vec3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_Diffuse( + in vec3 vNormal, + in vec3 vViewPos, + in vec3 vLightPosView, + in vec3 vNegLightDirView, + in vec4 vAttParams, + in vec3 vSpotParams, + in vec3 vDiffuseColour, + in vec3 vBaseColour, + out vec3 vOut) +{ + vOut = vBaseColour; + + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + vec3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = clamp((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y), 0.0, 1.0); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_DiffuseSpecular( + in vec3 vNormal, + in vec3 vViewPos, + in vec3 vLightPosView, + in vec3 vNegLightDirView, + in vec4 vAttParams, + in vec3 vSpotParams, + in vec3 vDiffuseColour, + in vec3 vSpecularColour, + in float fSpecularPower, + in vec3 vBaseDiffuseColour, + in vec3 vBaseSpecularColour, + out vec3 vOutDiffuse, + out vec3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + vec3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + vec3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + + if (nDotL > 0.0 && fLightD <= vAttParams.x) + { + vec3 vView = -normalize(vViewPos); + vec3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1.0 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = clamp((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y), 0.0, 1.0); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(clamp(nDotH, 0.0, 1.0), fSpecularPower) * fAtten * fSpotT; + } +} + diff --git a/materials/RTShaderLib/SGXLib_PerPixelLighting.hlsl b/materials/RTShaderLib/SGXLib_PerPixelLighting.hlsl new file mode 100644 index 000000000..9f543277a --- /dev/null +++ b/materials/RTShaderLib/SGXLib_PerPixelLighting.hlsl @@ -0,0 +1,226 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + +//----------------------------------------------------------------------------- +// Program Name: SGXLib_Lighting +// Program Desc: Per pixel lighting functions. +// Program Type: Vertex/Pixel shader +// Language: HLSL +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_TransformNormal(in float4x4 m, + in float3 v, + out float3 vOut) +{ + vOut = mul((float3x3)m, v); +} + +//----------------------------------------------------------------------------- +void SGX_TransformPosition(in float4x4 mWorldView, + in float4 vPos, + out float3 vOut) +{ + vOut = mul(mWorldView, vPos).xyz; +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_Diffuse( + in float3 vNormal, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vNegLightDirView); + + vOut = vBaseColour + vDiffuseColour * saturate(nDotL); +} + +//----------------------------------------------------------------------------- +void SGX_Light_Directional_DiffuseSpecular( + in float3 vNormal, + in float3 vViewPos, + in float3 vNegLightDirView, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vNegLightDirView); + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vNegLightDirView); + float nDotH = dot(vNormalView, vHalfWay); + + if (nDotL > 0) + { + vOutDiffuse += vDiffuseColour * nDotL; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower); + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Point_Diffuse( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, normalize(vLightView)); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOut += vDiffuseColour * nDotL * fAtten; + } +} + + + +//----------------------------------------------------------------------------- +void SGX_Light_Point_DiffuseSpecular( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float4 vAttParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_Diffuse( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vBaseColour, + out float3 vOut) +{ + vOut = vBaseColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOut += vDiffuseColour * nDotL * fAtten * fSpotT; + } +} + +//----------------------------------------------------------------------------- +void SGX_Light_Spot_DiffuseSpecular( + in float3 vNormal, + in float3 vViewPos, + in float3 vLightPosView, + in float3 vNegLightDirView, + in float4 vAttParams, + in float3 vSpotParams, + in float3 vDiffuseColour, + in float3 vSpecularColour, + in float fSpecularPower, + in float3 vBaseDiffuseColour, + in float3 vBaseSpecularColour, + out float3 vOutDiffuse, + out float3 vOutSpecular) +{ + vOutDiffuse = vBaseDiffuseColour; + vOutSpecular = vBaseSpecularColour; + + float3 vLightView = vLightPosView - vViewPos; + float fLightD = length(vLightView); + vLightView = normalize(vLightView); + float3 vNormalView = normalize(vNormal); + float nDotL = dot(vNormalView, vLightView); + + + if (nDotL > 0 && fLightD <= vAttParams.x) + { + float3 vView = -normalize(vViewPos); + float3 vHalfWay = normalize(vView + vLightView); + float nDotH = dot(vNormalView, vHalfWay); + float fAtten = 1 / (vAttParams.y + vAttParams.z*fLightD + vAttParams.w*fLightD*fLightD); + float rho = dot(vNegLightDirView, vLightView); + float fSpotE = saturate((rho - vSpotParams.y) / (vSpotParams.x - vSpotParams.y)); + float fSpotT = pow(fSpotE, vSpotParams.z); + + vOutDiffuse += vDiffuseColour * nDotL * fAtten * fSpotT; + vOutSpecular += vSpecularColour * pow(saturate(nDotH), fSpecularPower) * fAtten * fSpotT; + } +} diff --git a/materials/RTShaderLib/SampleLib_ReflectionMap.cg b/materials/RTShaderLib/SampleLib_ReflectionMap.cg new file mode 100644 index 000000000..e2215ead6 --- /dev/null +++ b/materials/RTShaderLib/SampleLib_ReflectionMap.cg @@ -0,0 +1,62 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + + +//----------------------------------------------------------------------------- +// Simple masked reflection map effect. +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_ApplyReflectionMap(in sampler2D maskSampler, + in float2 maskSamplerTexCoord, + in sampler2D reflectionSampler, + in float2 reflectionSamplerTexCoord, + in float3 baseColor, + in float reflectionPower, + out float3 vOut) +{ + float3 maskTexel = tex2D(maskSampler, maskSamplerTexCoord).xyz; + float3 reflectionTexel = tex2D(reflectionSampler, reflectionSamplerTexCoord).xyz; + + vOut = baseColor + reflectionTexel.xyz*maskTexel.xyz*reflectionPower; +} + +//----------------------------------------------------------------------------- +void SGX_ApplyReflectionMap(in sampler2D maskSampler, + in float2 maskSamplerTexCoord, + in samplerCUBE reflectionSampler, + in float3 reflectionSamplerTexCoord, + in float3 baseColor, + in float reflectionPower, + out float3 vOut) +{ + float3 maskTexel = tex2D(maskSampler, maskSamplerTexCoord).xyz; + float3 reflectionTexel = texCUBE(reflectionSampler, reflectionSamplerTexCoord).xyz; + + vOut = baseColor + reflectionTexel.xyz*maskTexel.xyz*reflectionPower; +} + \ No newline at end of file diff --git a/materials/RTShaderLib/SampleLib_ReflectionMap.glsl b/materials/RTShaderLib/SampleLib_ReflectionMap.glsl new file mode 100644 index 000000000..b9cea580d --- /dev/null +++ b/materials/RTShaderLib/SampleLib_ReflectionMap.glsl @@ -0,0 +1,65 @@ +#version 120 +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + + +//----------------------------------------------------------------------------- +// Simple masked reflection map effect. +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_ApplyReflectionMap(in sampler2D maskSampler, + in vec2 maskSamplerTexCoord, + in sampler2D reflectionSampler, + in vec2 reflectionSamplerTexCoord, + in vec3 baseColor, + in float reflectionPower, + out vec3 vOut) +{ + vec3 maskTexel = texture(maskSampler, maskSamplerTexCoord).xyz; + reflectionSamplerTexCoord.y = -reflectionSamplerTexCoord.y; // Hack for gl + vec3 reflectionTexel = texture(reflectionSampler, reflectionSamplerTexCoord).xyz; + + vOut = baseColor + reflectionTexel.xyz*maskTexel.xyz*reflectionPower; +} + +//----------------------------------------------------------------------------- +void SGX_ApplyReflectionMap(in sampler2D maskSampler, + in vec2 maskSamplerTexCoord, + in samplerCube reflectionSampler, + in vec3 reflectionSamplerTexCoord, + in vec3 baseColor, + in float reflectionPower, + out vec3 vOut) +{ + vec3 maskTexel = texture(maskSampler, maskSamplerTexCoord).xyz; + reflectionSamplerTexCoord.z = -reflectionSamplerTexCoord.z; // Hack for gl + vec3 reflectionTexel = texture(reflectionSampler, reflectionSamplerTexCoord).xyz; + + vOut = baseColor + reflectionTexel.xyz*maskTexel.xyz*reflectionPower; +} + diff --git a/materials/RTShaderLib/SampleLib_ReflectionMap.hlsl b/materials/RTShaderLib/SampleLib_ReflectionMap.hlsl new file mode 100644 index 000000000..e2215ead6 --- /dev/null +++ b/materials/RTShaderLib/SampleLib_ReflectionMap.hlsl @@ -0,0 +1,62 @@ +/* +----------------------------------------------------------------------------- +This source file is part of OGRE +(Object-oriented Graphics Rendering Engine) +For the latest info, see http://www.ogre3d.org + +Copyright (c) 2000-2009 Torus Knot Software Ltd +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +----------------------------------------------------------------------------- +*/ + + +//----------------------------------------------------------------------------- +// Simple masked reflection map effect. +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void SGX_ApplyReflectionMap(in sampler2D maskSampler, + in float2 maskSamplerTexCoord, + in sampler2D reflectionSampler, + in float2 reflectionSamplerTexCoord, + in float3 baseColor, + in float reflectionPower, + out float3 vOut) +{ + float3 maskTexel = tex2D(maskSampler, maskSamplerTexCoord).xyz; + float3 reflectionTexel = tex2D(reflectionSampler, reflectionSamplerTexCoord).xyz; + + vOut = baseColor + reflectionTexel.xyz*maskTexel.xyz*reflectionPower; +} + +//----------------------------------------------------------------------------- +void SGX_ApplyReflectionMap(in sampler2D maskSampler, + in float2 maskSamplerTexCoord, + in samplerCUBE reflectionSampler, + in float3 reflectionSamplerTexCoord, + in float3 baseColor, + in float reflectionPower, + out float3 vOut) +{ + float3 maskTexel = tex2D(maskSampler, maskSamplerTexCoord).xyz; + float3 reflectionTexel = texCUBE(reflectionSampler, reflectionSamplerTexCoord).xyz; + + vOut = baseColor + reflectionTexel.xyz*maskTexel.xyz*reflectionPower; +} + \ No newline at end of file diff --git a/materials/RTShaderLib/materials/RTShaderSystem.material b/materials/RTShaderLib/materials/RTShaderSystem.material new file mode 100644 index 000000000..3da919478 --- /dev/null +++ b/materials/RTShaderLib/materials/RTShaderSystem.material @@ -0,0 +1,195 @@ + +// RTShader System materials. + +// This is a single pass per pixel lighting based material. +// All scene lights will be applied within a single rendering pass. +// It saves geometry overdraw but it consumes more instructions during vertex and pixel shaders. +// Use this method when your scene uses small amount of lights. (1-3). +material RTSS/PerPixel_SinglePass +{ + technique + { + pass + { + // Turn off specular in order to use only diffuse based bump map technique. + specular 1.0 1.0 1.0 32 + + texture_unit + { + texture Panels_Diffuse.png + } + + // RT Shader system section. + rtshader_system + { + // Override lighting stage with per pixel lighting. + lighting_stage per_pixel + } + } + } +} + +// This is a single pass normal map lighting based material. +// All scene lights will be applied within a single rendering pass. +// Supports all kind of lights - directional, point and spot. +// It saves geometry overdraw but it consumes more instructions during vertex and pixel shaders. +// Use this method when your scene uses small amount of lights. (1-3). +material RTSS/NormalMapping_SinglePass +{ + technique + { + pass + { + // Comment the specular in order to use only diffuse based normal map technique. + specular 1.0 1.0 1.0 32 + + texture_unit + { + texture Panels_Diffuse.png + } + + // RT Shader system section. + rtshader_system + { + // Override lighting stage with normal map lighting. + lighting_stage normal_map Panels_Normal_Tangent.png tangent_space 0 bilinear 1 -1.0 + //lighting_stage per_pixel + } + } + } +} + +// This is a multi pass nroaml map lighting based material. +// It acts as any other multi light material. +// This material defined to use only one type of light per lighting pass because the RTSS need to +// know what code to produce for the iterative lighting pass, otherwise it will throw an exception. +// It support any number of lights drawing but it uses more geometery drawing. +// Use this method when your scene uses large amount of lights. (3-8). +material RTSS/NormalMapping_MultiPass +{ + technique + { + // Base ambient pass + pass ambient + { + // base colours, not needed for rendering, but as information + // to lighting pass categorisation routine + ambient 1 1 1 + diffuse 0 0 0 + specular 0 0 0 0 + + // RT Shader system section. + rtshader_system + { + // Override dynamic light count with zero light count. + // Doing this will cause the RTSS to create + // ambient lighting shaders. + // If not doing that the RTSS it will use the current scene light count + // which will result in full lighting calculation in this pass. + light_count 0 0 0 + } + } + + // Lighting pass. + pass lighting + { + // Comment the specular in order to use only diffuse based normal map technique. + specular 1.0 1.0 1.0 32 + + // base colours, not needed for rendering, but as information + // to lighting pass categorisation routine + ambient 0 0 0 + + // do this for each point light + // You MUST specify the light type when working with the RT Shader System in iterative lighting method. + // otherwise an exception will be thrown. + iteration once_per_light point + + scene_blend add + + // RT Shader system section. + rtshader_system + { + // Override lighting stage with normal map lighting. + lighting_stage normal_map Claimed6Nor.png tangent_space 0 bilinear 1 -1.0 + } + } + + // Decal pass + pass decal + { + + lighting off + + scene_blend dest_colour zero + texture_unit decalmap + { + texture White.png + } + } + } +} + +// Athene single multi pass material override. +material RTSS/Athene/NormalMapping_SinglePass : RTSS/NormalMapping_SinglePass +{ + technique + { + pass + { + // Override the diffuse map. + texture_unit + { + texture egyptrockyfull.jpg + } + + // Override the normal map. + rtshader_system + { + lighting_stage normal_map atheneNormalMap.png tangent_space 0 bilinear 1 -1.0 + } + } + } +} + +// Athene model multi pass material override. +material RTSS/Athene/NormalMapping_MultiPass : RTSS/NormalMapping_MultiPass +{ + technique + { + pass lighting + { + // Override the normal map. + rtshader_system + { + lighting_stage normal_map atheneNormalMap.png tangent_space 0 bilinear 1 -1.0 + } + } + + // Decal pass + pass decal + { + // Override the decal map. + texture_unit decalmap + { + texture egyptrockyfull.jpg + } + } + } +} + +// This material derive from the multi pass normal map material. +// The only difference is that it process 2 point lights at each lighting pass. +material RTSS/NormalMapping_MultiPass_2lights : RTSS/NormalMapping_MultiPass +{ + technique + { + pass lighting + { + // Override light iteration definition. + iteration 1 per_n_lights 2 point + } + } +} + + diff --git a/materials/scripts/Adventurer.material b/materials/scripts/Adventurer.material new file mode 100644 index 000000000..e9ad48da4 --- /dev/null +++ b/materials/scripts/Adventurer.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Adventurer : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Adventurer.png + } + } + } + + set_texture_alias diffuseMap Adventurer.png + set_texture_alias specMap Adventurer.png + //set_texture_alias normalMap Adventurer.png +} \ No newline at end of file diff --git a/materials/scripts/Axe1.material b/materials/scripts/Axe1.material new file mode 100644 index 000000000..b5b392b97 --- /dev/null +++ b/materials/scripts/Axe1.material @@ -0,0 +1,14 @@ +material axt +{ + technique + { + pass + { + texture_unit + { + texture Panels_Diffuse.png + } + + } + } +} diff --git a/materials/scripts/Bed.material b/materials/scripts/Bed.material new file mode 100644 index 000000000..dddec5c04 --- /dev/null +++ b/materials/scripts/Bed.material @@ -0,0 +1,42 @@ +import RTSS/PerPixel_SinglePass from "RTShaderSystem.material" +material Wood : RTSS/PerPixel_SinglePass +{ + technique + { + pass + { + texture_unit + { + texture pine_green.png + } + } + } +} + +material WhiteCloth : RTSS/PerPixel_SinglePass +{ + technique + { + pass + { + texture_unit + { + texture White.png + } + } + } +} + +material Blanket : RTSS/PerPixel_SinglePass +{ + technique + { + pass + { + texture_unit + { + texture shirtblack.png + } + } + } +} diff --git a/materials/scripts/BeetleGolem_mat.material b/materials/scripts/BeetleGolem_mat.material new file mode 100644 index 000000000..d9ab6d93f --- /dev/null +++ b/materials/scripts/BeetleGolem_mat.material @@ -0,0 +1,49 @@ +// Material.002 genrated by blender2ogre 0.5.9 + +material Material.002 +{ + receive_shadows on + + technique + { + pass Material.002 + { + ambient 0.4777965545654297 0.0 1.0 1.0 + diffuse 0.4777965545654297 0.0 1.0 1.0 + specular 0.5 0.5 0.5 1.0 12.5 + emissive 0.0 0.0 0.0 1.0 + + alpha_to_coverage off + colour_write on + cull_hardware clockwise + depth_check on + depth_func less_equal + depth_write on + illumination_stage + light_clip_planes off + light_scissor off + lighting on + normalise_normals off + polygon_mode solid + scene_blend one zero + scene_blend_op add + shading gouraud + transparent_sorting on + + texture_unit + { + texture BeetleGolem_spec.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + texture_unit + { + texture BeetleGolem_colour.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op_ex modulate src_texture src_current + } + } + } +} diff --git a/materials/scripts/Cannon.material b/materials/scripts/Cannon.material new file mode 100644 index 000000000..d6622419e --- /dev/null +++ b/materials/scripts/Cannon.material @@ -0,0 +1,42 @@ +material Cannon_Metal +{ + receive_shadows on + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 1.000000 + diffuse 0.077809 0.078673 0.084759 1.000000 + specular 0.153537 0.188124 0.207497 1.000000 5.000000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Cannon_col.png + tex_address_mode wrap + filtering trilinear + colour_op alpha_blend + } + } + } +} +material Cannon_Wood +{ + receive_shadows on + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 1.000000 + diffuse 0.327811 0.288622 0.224130 1.000000 + specular 0.126270 0.119226 0.102900 1.000000 4.000000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Cannon_col.png + tex_address_mode wrap + filtering trilinear + colour_op alpha_blend + } + } + } +} diff --git a/materials/scripts/Cannonball.material b/materials/scripts/Cannonball.material new file mode 100644 index 000000000..d77bc84b1 --- /dev/null +++ b/materials/scripts/Cannonball.material @@ -0,0 +1,16 @@ +import RTSS/PerPixel_SinglePass from "RTShaderSystem.material" +material Cannonball : RTSS/PerPixel_SinglePass +{ + technique + { + pass + { + specular 1.0 1.0 1.0 128 + + texture_unit + { + texture Black.png + } + } + } +} diff --git a/materials/scripts/Cavehornet.material b/materials/scripts/Cavehornet.material new file mode 100644 index 000000000..5be409368 --- /dev/null +++ b/materials/scripts/Cavehornet.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Insect_low : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Cavehornet_col.png + } + } + } + + set_texture_alias diffuseMap Cavehornet_col.png + set_texture_alias specMap Cavehornet_spec.png + set_texture_alias normalMap Cavehornet_nor.png +} \ No newline at end of file diff --git a/materials/scripts/Chair.material b/materials/scripts/Chair.material new file mode 100644 index 000000000..5d3b62147 --- /dev/null +++ b/materials/scripts/Chair.material @@ -0,0 +1,7 @@ +import base_material from "general.material" +material Chair : base_material +{ + set_texture_alias diffuseMap Chair_col.png + set_texture_alias specMap Chair_spec.png + set_texture_alias normalMap Chair_nor.png +} diff --git a/materials/scripts/Chicken.material b/materials/scripts/Chicken.material new file mode 100644 index 000000000..350c57209 --- /dev/null +++ b/materials/scripts/Chicken.material @@ -0,0 +1,7 @@ +import base_material from "general.material" +material Chicken : base_material +{ + set_texture_alias diffuseMap ChickenE.png + set_texture_alias specMap ChickenE_spec.png + set_texture_alias normalMap ChickenE_nor.png +} diff --git a/materials/scripts/Claimed.material b/materials/scripts/Claimed.material new file mode 100644 index 000000000..520329a2a --- /dev/null +++ b/materials/scripts/Claimed.material @@ -0,0 +1,14 @@ +material Claimed +{ + technique + { + pass + { + specular 1.000000 1.000000 1.000000 1.000000 64 + texture_unit + { + texture Claimed6c.png + } + } + } +} diff --git a/materials/scripts/Claimedwall.material b/materials/scripts/Claimedwall.material new file mode 100644 index 000000000..ef3317c4d --- /dev/null +++ b/materials/scripts/Claimedwall.material @@ -0,0 +1,13 @@ +material Claimedwall +{ + technique + { + pass + { + texture_unit + { + texture Claimedwall2B.png + } + } + } +} diff --git a/materials/scripts/Con_Worker.material b/materials/scripts/Con_Worker.material new file mode 100644 index 000000000..ad1152fb8 --- /dev/null +++ b/materials/scripts/Con_Worker.material @@ -0,0 +1,44 @@ +import RTSS/PerPixel_SinglePass from "RTShaderSystem.material" +material Zahnradbild/TWOSIDE : RTSS/PerPixel_SinglePass +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.30000 0.90000 0.30000 1.000000 + specular 0.100000 0.100000 0.100000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + scene_blend alpha_blend + lighting on + texture_unit + { + texture Con_gear.png + } + } + } +} + +material Halo/TWOSIDE +{ + receive_shadows off + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 1.000000 + diffuse 0.151868 0.800000 0.190481 1.000000 + specular 0.680480 0.680480 0.680480 1.000000 55.000000 + emissive 0.000000 0.000000 0.000000 1.000000 + scene_blend alpha_blend + lighting off + texture_unit + { + anim_texture Halo2.png 4 1.1 + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/Construct_ReflGold.material b/materials/scripts/Construct_ReflGold.material new file mode 100644 index 000000000..109ca5b97 --- /dev/null +++ b/materials/scripts/Construct_ReflGold.material @@ -0,0 +1,39 @@ +material ReflGold/TWOSIDE +{ + technique + { + pass + { + ambient 0.0 0.0 0.0 + diffuse 0.9 0.9 0.9 + specular 0.1 0.1 0.1 9800.0 + emissive 0.0 0.0 0.0 1 + texture_unit + { + texture Env_gold.png + color_op_ex blend_manual src_texture src_current 0.5 + env_map spherical + } + } + } +} + +material ReflGold +{ + technique + { + pass + { + ambient 0.0 0.0 0.0 + diffuse 0.9 0.9 0.9 + specular 0.1 0.1 0.1 9800.0 + emissive 0.0 0.0 0.0 1 + texture_unit + { + texture Env_gold.png + color_op_ex blend_manual src_texture src_current 0.5 + env_map spherical + } + } + } +} \ No newline at end of file diff --git a/materials/scripts/Dirt.material b/materials/scripts/Dirt.material new file mode 100644 index 000000000..9091efcec --- /dev/null +++ b/materials/scripts/Dirt.material @@ -0,0 +1,15 @@ +material Dirt +{ + technique + { + pass + { + specular 0.3 0.3 0.3 1 20 + texture_unit + { + texture Dirt_darkE.png + } + } + } +} + diff --git a/materials/scripts/Dragon.material b/materials/scripts/Dragon.material new file mode 100644 index 000000000..5f360bffd --- /dev/null +++ b/materials/scripts/Dragon.material @@ -0,0 +1,20 @@ +import RTSS/PerPixel_SinglePass from "RTShaderSystem.material" +material Dragon : RTSS/PerPixel_SinglePass +{ + technique + { + pass + { + + ambient 1.0 1.0 1.0 + diffuse 1.0 1.0 1.0 + specular 0.8 0.8 0.8 128 + emissive 0.6 0.6 0.6 0.6 + + texture_unit + { + texture Dragon.png + } + } + } +} diff --git a/materials/scripts/DungeonTemple.material b/materials/scripts/DungeonTemple.material new file mode 100644 index 000000000..10e7c1288 --- /dev/null +++ b/materials/scripts/DungeonTemple.material @@ -0,0 +1,56 @@ +material Sphere2 +{ + receive_shadows off + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.008133 0.378788 0.800000 1.000000 + specular 0.500000 0.500000 0.500000 1.000000 12.500000 + emissive 0.009408 0.438219 0.925520 1.000000 + } + } +} +material Sphere +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.713004 0.253170 0.000506 1.000000 + specular 0.000000 0.000000 0.000000 1.000000 12.500000 + emissive 0.957918 0.340133 0.000680 1.000000 + + } + } +} +material Stacheln +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.409290 0.409290 0.409290 1.000000 + specular 0.000000 0.000000 0.000000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture DungeonTemple2.png + tex_address_mode wrap + filtering trilinear + colour_op alpha_blend + } + texture_unit + { + texture buvneurt_env5.png + colour_op_ex blend_manual src_texture src_current 0.3 + env_map spherical + } + } + } +} diff --git a/materials/scripts/Dwarf1.material b/materials/scripts/Dwarf1.material new file mode 100644 index 000000000..3c84b00f4 --- /dev/null +++ b/materials/scripts/Dwarf1.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Dwarf1 : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Dwarf1.png + } + } + } + + set_texture_alias diffuseMap Dwarf1.png + set_texture_alias specMap Dwarf1.png + //set_texture_alias normalMap Dwarf1.png +} \ No newline at end of file diff --git a/materials/scripts/Dwarf2.material b/materials/scripts/Dwarf2.material new file mode 100644 index 000000000..c3f2384c1 --- /dev/null +++ b/materials/scripts/Dwarf2.material @@ -0,0 +1,37 @@ +import base_material from "general.material" +material Dwarf2 : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Dwarf2.png + } + } + } + + set_texture_alias diffuseMap Dwarf2.png + set_texture_alias specMap Dwarf2.png + //set_texture_alias normalMap Dwarf2.png +} + +import base_material from "general.material" +material Dwarf2/TWOSIDE : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Dwarf2.png + } + } + } + + set_texture_alias diffuseMap Dwarf2.png + set_texture_alias specMap Dwarf2.png + //set_texture_alias normalMap Dwarf2.png +} \ No newline at end of file diff --git a/materials/scripts/Dwarf3.material b/materials/scripts/Dwarf3.material new file mode 100644 index 000000000..87b2d1b3e --- /dev/null +++ b/materials/scripts/Dwarf3.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Dwarf : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Dwarf_col.png + } + } + } + + set_texture_alias diffuseMap Dwarf_col.png + set_texture_alias specMap Dwarf_spec.png + set_texture_alias normalMap Dwarf_nor.png +} diff --git a/materials/scripts/Fire.material b/materials/scripts/Fire.material new file mode 100644 index 000000000..8d41389b5 --- /dev/null +++ b/materials/scripts/Fire.material @@ -0,0 +1,22 @@ +material Fire/TWOSIDE +{ + receive_shadows off + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 0.000000 + diffuse 0.800000 0.740002 0.030828 0.000000 + specular 0.500000 0.500000 0.500000 0.000000 12.500000 + emissive 0.000000 0.000000 0.000000 0.000000 + scene_blend alpha_blend + lighting off + texture_unit + { + anim_texture Fire2.png 5 1.0 + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/ForgeForgeObject.material b/materials/scripts/ForgeForgeObject.material new file mode 100644 index 000000000..6721c3589 --- /dev/null +++ b/materials/scripts/ForgeForgeObject.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Material : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Forge_base_texture.png + } + } + } + + set_texture_alias diffuseMap Forge_base_texture.png + set_texture_alias specMap Forge_base_texture.png + set_texture_alias normalMap Forge_normalmap.png +} diff --git a/materials/scripts/Gnome.material b/materials/scripts/Gnome.material new file mode 100644 index 000000000..b8fa242bc --- /dev/null +++ b/materials/scripts/Gnome.material @@ -0,0 +1,35 @@ +import base_material from "general.material" +material Gnome : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Gnome.png + } + } + } + + set_texture_alias diffuseMap Gnome.png + set_texture_alias specMap Gnome.png + //set_texture_alias normalMap Gnome.png +} + +material Gnome/TWOSIDE : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Gnome.png + } + } + } + set_texture_alias diffuseMap Gnome.png + set_texture_alias specMap Gnome.png + //set_texture_alias normalMap Gnome.png +} \ No newline at end of file diff --git a/materials/scripts/Goblin.material b/materials/scripts/Goblin.material new file mode 100644 index 000000000..eafcecb4e --- /dev/null +++ b/materials/scripts/Goblin.material @@ -0,0 +1,35 @@ +import base_material from "general.material" +material Goblin : base_material +{ + technique + { + pass + { + texture_unit + { + texture Goblin.png + } + } + } +} + +material Goblin_old +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.8 0.8 0.8 1.000000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Goblin.png + tex_address_mode wrap + filtering bilinear + colour_op alpha_blend + } + } + } +} diff --git a/materials/scripts/Gold.material b/materials/scripts/Gold.material new file mode 100644 index 000000000..80c959590 --- /dev/null +++ b/materials/scripts/Gold.material @@ -0,0 +1,20 @@ +material Gold +{ + receive_shadows on + technique + { + pass + { + ambient 0.000000 0.000000 0.000000 1.000000 + diffuse 0.8 0.8 0.8 1.000000 + specular 0.05 0.05 0.05 1.000000 20.000000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Gold.png + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/GoldBag.material b/materials/scripts/GoldBag.material new file mode 100644 index 000000000..65babfaea --- /dev/null +++ b/materials/scripts/GoldBag.material @@ -0,0 +1,20 @@ +material GoldBag +{ + receive_shadows on + technique + { + pass + { + ambient 0.000000 0.000000 0.000000 1.000000 + diffuse 0.80000 0.80000 0.80000 1.000000 + specular 0.066938 0.066938 0.066938 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture GoldBag.png + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/GoldChest.material b/materials/scripts/GoldChest.material new file mode 100644 index 000000000..17ffa6833 --- /dev/null +++ b/materials/scripts/GoldChest.material @@ -0,0 +1,20 @@ +material GoldChest +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.80000 0.80000 0.80000 1.000000 + specular 0.000000 0.000000 0.000000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture GoldChest.png + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/Keeperhand.material b/materials/scripts/Keeperhand.material new file mode 100644 index 000000000..4d6f3240b --- /dev/null +++ b/materials/scripts/Keeperhand.material @@ -0,0 +1,7 @@ +import base_material from "general.material" +material Keeperhand : base_material +{ + set_texture_alias diffuseMap Keeperhand_colC.png + set_texture_alias specMap Keeperhand_spec.png + set_texture_alias normalMap Keeperhand_nor.png +} diff --git a/materials/scripts/Knight.material b/materials/scripts/Knight.material new file mode 100644 index 000000000..102dc1dda --- /dev/null +++ b/materials/scripts/Knight.material @@ -0,0 +1,37 @@ +import base_material from "general.material" +material Knight : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Knight.png + } + } + } + + set_texture_alias diffuseMap Knight.png + set_texture_alias specMap Knight.png + //set_texture_alias normalMap Knight.png +} + +import base_material from "general.material" +material Knight/TWOSIDE : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Knight.png + } + } + } + + set_texture_alias diffuseMap Knight.png + set_texture_alias specMap Knight.png + //set_texture_alias normalMap Knight.png +} \ No newline at end of file diff --git a/materials/scripts/Kobold.material b/materials/scripts/Kobold.material new file mode 100644 index 000000000..ca5bffc8f --- /dev/null +++ b/materials/scripts/Kobold.material @@ -0,0 +1,36 @@ +import base_material from "general.material" +material Kobold_skin/TEXFACE/kobold_skin6.png : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture kobold_skin6.png + } + } + } + + set_texture_alias diffuseMap kobold_skin6.png + set_texture_alias specMap kobold_skin6.png + //set_texture_alias normalMap kobold_skin6.png +} + +material Kobold_skin/TWOSIDE/TEXFACE/kobold_skin6.png : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture kobold_skin6.png + } + } + } + + set_texture_alias diffuseMap kobold_skin6.png + set_texture_alias specMap kobold_skin6.png + //set_texture_alias normalMap kobold_skin6.png +} \ No newline at end of file diff --git a/materials/scripts/Kreatur.material b/materials/scripts/Kreatur.material new file mode 100644 index 000000000..2e630357e --- /dev/null +++ b/materials/scripts/Kreatur.material @@ -0,0 +1,21 @@ +import base_material from "general.material" +material Kreatur : base_material +{ + technique + { + pass 0 + { + // No diffuse to remove the metallic effect + diffuse 0.0 0.0 0.0 + + texture_unit + { + texture KreaturE.png + } + } + } + + set_texture_alias diffuseMap KreaturE.png + set_texture_alias specMap KreaturE.png + //set_texture_alias normalMap Kreatur_nor2.png +} diff --git a/materials/scripts/Lava.material b/materials/scripts/Lava.material new file mode 100644 index 000000000..74b7732f8 --- /dev/null +++ b/materials/scripts/Lava.material @@ -0,0 +1,24 @@ +material Lava +{ + receive_shadows on + technique + { + pass + { + ambient 0.0 0.0 0.0 1.000000 + diffuse 0.8 0.8 0.8 1.000000 + specular 0.0 0.0 0.0 1.000000 0.250000 + emissive 0.99 0.99 0.99 1.000000 + texture_unit + { + texture Lava_anim_0.png + wave_xform scroll_x sine 0.1 0.2 0.0 0.1 + wave_xform scroll_y sine 0.01 0.22 0.0 0.18 + scroll_anim 0.1 0.2 + scale_anim 0.7 0.9 + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/LavaGolem_mat.material b/materials/scripts/LavaGolem_mat.material new file mode 100644 index 000000000..65e627c76 --- /dev/null +++ b/materials/scripts/LavaGolem_mat.material @@ -0,0 +1,63 @@ +// golem_mat genrated by blender2ogre 0.5.9 + +material golem_mat +{ + receive_shadows on + + technique + { + pass golem_mat + { + ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0 + diffuse 0.800000011920929 0.800000011920929 0.800000011920929 1.0 + specular 0.05000000074505806 0.05000000074505806 0.05000000074505806 1.0 25.0 + emissive 0.0 0.0 0.0 1.0 + + alpha_to_coverage off + colour_write on + cull_hardware clockwise + depth_check on + depth_func less_equal + depth_write on + illumination_stage + light_clip_planes off + light_scissor off + lighting on + normalise_normals off + polygon_mode solid + scene_blend one zero + scene_blend_op add + shading gouraud + transparent_sorting on + + texture_unit + { + texture LavaGolem_diffuse.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + texture_unit + { + texture LavaGolem_normal.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + texture_unit + { + texture LavaGolem_spec.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + texture_unit + { + texture LavaGolem_emit.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + } + } +} diff --git a/materials/scripts/Light.material b/materials/scripts/Light.material new file mode 100644 index 000000000..1bdb01438 --- /dev/null +++ b/materials/scripts/Light.material @@ -0,0 +1,14 @@ +material Light +{ + receive_shadows on + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 1.000000 + diffuse 0.072487 0.071029 0.627049 1.000000 + specular 0.500000 0.500000 0.500000 1.000000 12.500000 + emissive 0.041621 0.040784 0.360038 1.000000 + } + } +} diff --git a/materials/scripts/Lizardman.material b/materials/scripts/Lizardman.material new file mode 100644 index 000000000..c07675346 --- /dev/null +++ b/materials/scripts/Lizardman.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Lizardman : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Lizardman_col.png + } + } + } + + set_texture_alias diffuseMap Lizardman_col.png + set_texture_alias specMap Lizardman_spec.png + set_texture_alias normalMap Lizardman_nor3.png +} diff --git a/materials/scripts/Longsword.material b/materials/scripts/Longsword.material new file mode 100644 index 000000000..5e0662f7a --- /dev/null +++ b/materials/scripts/Longsword.material @@ -0,0 +1,20 @@ +material Longsword +{ + receive_shadows on + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 1.000000 + diffuse 0.559743 0.559743 0.559743 1.000000 + specular 0.024500 0.035985 0.044454 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Longsword.png + tex_address_mode wrap + filtering trilinear + } + } + } +} \ No newline at end of file diff --git a/materials/scripts/Orc.material b/materials/scripts/Orc.material new file mode 100644 index 000000000..cbc8ce014 --- /dev/null +++ b/materials/scripts/Orc.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Orc : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Orc_col.png + } + } + } + + set_texture_alias diffuseMap Orc_col.png + set_texture_alias specMap Orc_spec.png + set_texture_alias normalMap Orc_nor.png +} diff --git a/materials/scripts/Pit_demon.material b/materials/scripts/Pit_demon.material new file mode 100644 index 000000000..d4679bec4 --- /dev/null +++ b/materials/scripts/Pit_demon.material @@ -0,0 +1,18 @@ +material Pit_demon +{ + receive_shadows on + technique + { + pass + { + ambient 0.0 0.0 0.0 1.000000 + diffuse 0.7 0.7 0.7 1.0 + specular 0.155866 0.149445 0.146546 1.000000 61.750000 + emissive 0.6 0.6 0.6 0.6 + texture_unit + { + texture Pit_Demon.png + } + } + } +} diff --git a/materials/scripts/Portal.material b/materials/scripts/Portal.material new file mode 100644 index 000000000..a7741c90a --- /dev/null +++ b/materials/scripts/Portal.material @@ -0,0 +1,52 @@ +material Portal +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.7 0.7 0.7 1.000000 + specular 0.000000 0.000000 0.000000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Obsidian.png + tex_address_mode wrap + filtering trilinear + colour_op alpha_blend + } + texture_unit + { + texture buvneurt_env5.png + colour_op_ex blend_manual src_texture src_current 0.3 + env_map spherical + } + } + } +} +material Portalvortex/TWOSIDE +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.640000 0.640000 0.640000 1.000000 + specular 0.500000 0.500000 0.500000 1.000000 12.500000 + emissive 1.0 1.0 1.0 1.000000 + scene_blend alpha_blend + depth_write off + cull_hardware none + cull_software none + texture_unit + { + texture Portalvortex.png + tex_address_mode wrap + filtering trilinear + colour_op alpha_blend + } + } + } +} diff --git a/materials/scripts/Quarters.material b/materials/scripts/Quarters.material new file mode 100644 index 000000000..56af504e5 --- /dev/null +++ b/materials/scripts/Quarters.material @@ -0,0 +1,15 @@ +material Quarters +{ + technique + { + pass + { + diffuse 0.8 0.8 0.8 1.000000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Quarters.png + } + } + } +} diff --git a/materials/scripts/Refl.material b/materials/scripts/Refl.material new file mode 100644 index 000000000..e61fed4f6 --- /dev/null +++ b/materials/scripts/Refl.material @@ -0,0 +1,19 @@ +material Refl +{ + technique + { + pass + { + ambient 0.0 0.0 0.0 + diffuse 1.0 1.0 1.0 + specular 0.2 0.2 0.2 9800.0 + emissive 0.0 0.0 0.0 1 + texture_unit + { + texture Envmap_metal2B.png + color_op_ex blend_manual src_texture src_current 0.5 + env_map spherical + } + } + } +} diff --git a/materials/scripts/Rock.material b/materials/scripts/Rock.material new file mode 100644 index 000000000..cf2bc026f --- /dev/null +++ b/materials/scripts/Rock.material @@ -0,0 +1,20 @@ +material Rock +{ + receive_shadows on + technique + { + pass + { + ambient 0.000000 0.000000 0.000000 1.000000 + diffuse 0.640000 0.640000 0.640000 1.000000 + specular 0.000000 0.000000 0.000000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Rockc.png + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/Roundshield.material b/materials/scripts/Roundshield.material new file mode 100644 index 000000000..a6e36090a --- /dev/null +++ b/materials/scripts/Roundshield.material @@ -0,0 +1,20 @@ +material Roundshield +{ + receive_shadows on + technique + { + pass + { + ambient 0.00000 0.00000 0.00000 1.000000 + diffuse 0.363058 0.336236 0.985255 1.000000 + specular 0.023475 0.025074 0.116076 1.000000 3.250000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Roundshield.tga + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/RuinEntrance_01_mat.material b/materials/scripts/RuinEntrance_01_mat.material new file mode 100644 index 000000000..25e87d893 --- /dev/null +++ b/materials/scripts/RuinEntrance_01_mat.material @@ -0,0 +1,49 @@ +// sucio1 genrated by blender2ogre 0.5.9 + +material sucio1 +{ + receive_shadows on + + technique + { + pass sucio1 + { + ambient 0.34117648005485535 0.27843138575553894 0.21960784494876862 1.0 + diffuse 0.27294118811102486 0.22274511192359192 0.1756862785769444 1.0 + specular 0.16470588743686676 0.16470588743686676 0.16470588743686676 1.0 12.5 + emissive 0.0 0.0 0.0 1.0 + + alpha_to_coverage off + colour_write on + cull_hardware clockwise + depth_check on + depth_func less_equal + depth_write on + illumination_stage + light_clip_planes off + light_scissor off + lighting on + normalise_normals off + polygon_mode solid + scene_blend one zero + scene_blend_op add + shading gouraud + transparent_sorting on + + texture_unit + { + texture RuinEntrance_01.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + /* texture_unit + { + texture difuse3_NRM.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alha_blend + }*/ + } + } +} diff --git a/materials/scripts/RuinEntrance_02_mat.material b/materials/scripts/RuinEntrance_02_mat.material new file mode 100644 index 000000000..83d73b15f --- /dev/null +++ b/materials/scripts/RuinEntrance_02_mat.material @@ -0,0 +1,49 @@ +// sucio2 genrated by blender2ogre 0.5.9 + +material sucio2 +{ + receive_shadows on + + technique + { + pass sucio2 + { + ambient 0.5254902243614197 0.4431372582912445 0.3607843220233917 1.0 + diffuse 0.4203921857534674 0.3545098119156034 0.28862746191959765 1.0 + specular 0.16470588743686676 0.16470588743686676 0.16470588743686676 1.0 12.5 + emissive 0.0 0.0 0.0 1.0 + + alpha_to_coverage off + colour_write on + cull_hardware clockwise + depth_check on + depth_func less_equal + depth_write on + illumination_stage + light_clip_planes off + light_scissor off + lighting on + normalise_normals off + polygon_mode solid + scene_blend one zero + scene_blend_op add + shading gouraud + transparent_sorting on + + texture_unit + { + texture RuinEntrance_02.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + //texture_unit + // { + // texture sucio2_NRM.png + // tex_address_mode wrap + // scale 1.0 1.0 + // colour_op none + //} + } + } +} diff --git a/materials/scripts/RuinEntrance_Pilar_mat.material b/materials/scripts/RuinEntrance_Pilar_mat.material new file mode 100644 index 000000000..2e9e5bd31 --- /dev/null +++ b/materials/scripts/RuinEntrance_Pilar_mat.material @@ -0,0 +1,42 @@ +// pilar1 genrated by blender2ogre 0.5.9 + +material pilar1 +{ + receive_shadows on + + technique + { + pass pilar1 + { + ambient 0.6509804129600525 0.6039215922355652 0.5411764979362488 1.0 + diffuse 0.5207843381283332 0.48313728098775854 0.4329412048003256 1.0 + specular 0.16470588743686676 0.16470588743686676 0.16470588743686676 1.0 12.5 + emissive 0.0 0.0 0.0 1.0 + + alpha_to_coverage off + colour_write on + cull_hardware clockwise + depth_check on + depth_func less_equal + depth_write on + illumination_stage + light_clip_planes off + light_scissor off + lighting on + normalise_normals off + polygon_mode solid + scene_blend one zero + scene_blend_op add + shading gouraud + transparent_sorting on + + texture_unit + { + texture RuinEntrance_Pilar.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + } + } +} diff --git a/materials/scripts/RuinEntrance_rew_mat.material b/materials/scripts/RuinEntrance_rew_mat.material new file mode 100644 index 000000000..2b3c01547 --- /dev/null +++ b/materials/scripts/RuinEntrance_rew_mat.material @@ -0,0 +1,49 @@ +// texturew genrated by blender2ogre 0.5.9 + +material texturew +{ + receive_shadows on + + technique + { + pass texturew + { + ambient 0.6039215922355652 0.5098039507865906 0.4117647111415863 1.0 + diffuse 0.48313728098775854 0.40784316670660914 0.3294117738218869 1.0 + specular 0.16470588743686676 0.16470588743686676 0.16470588743686676 1.0 12.5 + emissive 0.0 0.0 0.0 1.0 + + alpha_to_coverage off + colour_write on + cull_hardware clockwise + depth_check on + depth_func less_equal + depth_write on + illumination_stage + light_clip_planes off + light_scissor off + lighting on + normalise_normals off + polygon_mode solid + scene_blend one zero + scene_blend_op add + shading gouraud + transparent_sorting on + + texture_unit + { + texture RuinEntrance_rew.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op alpha_blend + } + /* texture_unit + { + texture texturewall_NRM.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op none + }*/ + } + } +} diff --git a/materials/scripts/Sabre.material b/materials/scripts/Sabre.material new file mode 100644 index 000000000..66b1ea694 --- /dev/null +++ b/materials/scripts/Sabre.material @@ -0,0 +1,19 @@ +material Refl2 +{ + technique + { + pass + { + ambient 0.0 0.0 0.0 + diffuse 1.0 1.0 1.0 + specular 1.0 1.0 1.0 9800.0 + emissive 0.0 0.0 0.0 1 + texture_unit + { + texture buvneurt_env5.png +// color_op_ex blend_manual src_texture src_current 0.1 + env_map planar + } + } + } +} diff --git a/materials/scripts/Shelf.material b/materials/scripts/Shelf.material new file mode 100644 index 000000000..9f906fbca --- /dev/null +++ b/materials/scripts/Shelf.material @@ -0,0 +1,7 @@ +import base_material from "general.material" +material Shelf : base_material +{ + set_texture_alias diffuseMap Shelf_col.png + set_texture_alias specMap Shelf_spec.png + set_texture_alias normalMap Shelf_nor.png +} diff --git a/materials/scripts/Spider.material b/materials/scripts/Spider.material new file mode 100644 index 000000000..3241c49ce --- /dev/null +++ b/materials/scripts/Spider.material @@ -0,0 +1,21 @@ +material Spider +{ + receive_shadows on + technique + { + pass + { + ambient 0.000000 0.000000 0.000000 1.000000 + diffuse 0.640000 0.640000 0.640000 1.000000 + specular 0.100000 0.100000 0.100000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Spider.png + tex_address_mode wrap + filtering trilinear + colour_op alpha_blend + } + } + } +} diff --git a/materials/scripts/Staff.material b/materials/scripts/Staff.material new file mode 100644 index 000000000..4df1a8b27 --- /dev/null +++ b/materials/scripts/Staff.material @@ -0,0 +1,20 @@ +material Staff +{ + receive_shadows on + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 1.000000 + diffuse 0.640000 0.640000 0.640000 1.000000 + specular 0.500000 0.500000 0.500000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Staff.tga + tex_address_mode wrap + filtering trilinear + } + } + } +} diff --git a/materials/scripts/Stool.material b/materials/scripts/Stool.material new file mode 100644 index 000000000..9dfc7b0f9 --- /dev/null +++ b/materials/scripts/Stool.material @@ -0,0 +1,7 @@ +import base_material from "general.material" +material Stool : base_material +{ + set_texture_alias diffuseMap Stool_col.png + set_texture_alias specMap Stool_spec.png + set_texture_alias normalMap Stool_nor.png +} diff --git a/materials/scripts/Table.material b/materials/scripts/Table.material new file mode 100644 index 000000000..52daaea92 --- /dev/null +++ b/materials/scripts/Table.material @@ -0,0 +1,7 @@ +import base_material from "general.material" +material Table : base_material +{ + set_texture_alias diffuseMap Table_col.png + set_texture_alias specMap Table_spec.png + set_texture_alias normalMap Table_nor.png +} diff --git a/materials/scripts/Tentacle.material b/materials/scripts/Tentacle.material new file mode 100644 index 000000000..8ee8d76f0 --- /dev/null +++ b/materials/scripts/Tentacle.material @@ -0,0 +1,19 @@ +import base_material from "general.material" +material Tentacle : base_material +{ + receive_shadows on + technique + { + pass + { + texture_unit + { + texture Tentakel_diff_yellow7.png + } + } + } + + set_texture_alias DiffuseMap Tentakel_diff_yellow7.png + set_texture_alias SpecMap Tentakel_diff_yellow7.png + set_texture_alias NormalMap Tentakel_diff_nor.png +} diff --git a/materials/scripts/Tentacle2.material b/materials/scripts/Tentacle2.material new file mode 100644 index 000000000..193b0754d --- /dev/null +++ b/materials/scripts/Tentacle2.material @@ -0,0 +1,20 @@ +import base_material from "general.material" +material Tentacle2 : base_material +{ + receive_shadows on + technique + { + pass + { + texture_unit + { + texture Tentakel_diff_green.png + } + } + } + + set_texture_alias DiffuseMap Tentakel_diff_green.png + set_texture_alias SpecMap Tentakel_diff_green.png + set_texture_alias NormalMap Tentakel_diff_nor.png +} + diff --git a/materials/scripts/Torch.material b/materials/scripts/Torch.material new file mode 100644 index 000000000..40ab7dbde --- /dev/null +++ b/materials/scripts/Torch.material @@ -0,0 +1,21 @@ +material Torch +{ + receive_shadows on + technique + { + pass + { + ambient 0.500000 0.500000 0.500000 1.000000 + diffuse 0.126420 0.134454 0.138668 1.000000 + specular 1.000000 1.000000 1.000000 1.000000 12.500000 + emissive 0.000000 0.000000 0.000000 1.000000 + texture_unit + { + texture Torch1_col.png + tex_address_mode wrap + filtering trilinear + colour_op alpha_blend + } + } + } +} diff --git a/materials/scripts/TrainingDummy.material b/materials/scripts/TrainingDummy.material new file mode 100644 index 000000000..058070d10 --- /dev/null +++ b/materials/scripts/TrainingDummy.material @@ -0,0 +1,27 @@ +import base_material from "general.material" + +#TODO - fix this typo +material TrainingDummmy : base_material +{ + technique + { + pass 0 + { + // No diffuse to remove the metallic effect + ambient 1.0 1.0 1.0 + diffuse 0.0 0.0 0.0 + specular 0.1 0.1 0.1 + emissive 0.6 0.6 0.6 0.6 + + texture_unit + { + texture leatherdummy2.png + } + } + } + + set_texture_alias DiffuseMap leatherdummy2.png + set_texture_alias SpecMap leatherdummy2.png + //set_texture_alias NormalMap leatherdummy2-nm.png +} + diff --git a/materials/scripts/Trainingpole.material b/materials/scripts/Trainingpole.material new file mode 100644 index 000000000..1c1798db5 --- /dev/null +++ b/materials/scripts/Trainingpole.material @@ -0,0 +1,15 @@ +material TrainingPole +{ + technique + { + pass + { + specular 0.3 0.3 0.3 1 20 + texture_unit + { + texture trainingpole-tex.png + } + } + } +} + diff --git a/materials/scripts/Treasury.material b/materials/scripts/Treasury.material new file mode 100644 index 000000000..46aa780b7 --- /dev/null +++ b/materials/scripts/Treasury.material @@ -0,0 +1,14 @@ +import RTSS/NormalMapping_MultiPass from "RTShaderSystem.material" +material Treasury RTSS/NormalMapping_MultiPass +{ + technique + { + pass + { + texture_unit decalmap + { + texture Treasury.png + } + } + } +} diff --git a/materials/scripts/Troll.material b/materials/scripts/Troll.material new file mode 100644 index 000000000..c673b04bf --- /dev/null +++ b/materials/scripts/Troll.material @@ -0,0 +1,17 @@ +import base_material from "general.material" +material Troll2 : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Troll2_col3.png + } + } + } + set_texture_alias diffuseMap Troll2_col3.png + set_texture_alias specMap Troll2_spec2.png + set_texture_alias normalMap Troll2_nor3.png +} diff --git a/materials/scripts/Water.material b/materials/scripts/Water.material new file mode 100644 index 000000000..e18b6edfa --- /dev/null +++ b/materials/scripts/Water.material @@ -0,0 +1,26 @@ +material Water +{ + receive_shadows on + technique + { + pass + { + ambient 0.000000 0.000000 0.000000 0.3 + diffuse 0.8 0.8 0.8 0.4 + specular 0.124594 0.124594 0.124594 0.337499 0.250000 + emissive 0 0 0 0.3 + scene_blend alpha_blend + depth_write off + texture_unit + { + texture Water4.png + tex_address_mode wrap + wave_xform scroll_x sine 0.3 0.2 0.0 0.1 + wave_xform scroll_y sine 0.01 0.22 0.0 0.18 + scroll_anim 0.1 0.2 +// scale_anim 0.7 0.9 + filtering trilinear + } + } + } +} diff --git a/materials/scripts/Wizard.material b/materials/scripts/Wizard.material new file mode 100644 index 000000000..757bd904a --- /dev/null +++ b/materials/scripts/Wizard.material @@ -0,0 +1,37 @@ +import base_material from "general.material" +material Wizard : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Wizard.png + } + } + } + + set_texture_alias DiffuseMap Wizard.png + set_texture_alias SpecMap Wizard.png + set_texture_alias NormalMap Wizard_nor.png +} + +import base_material from "general.material" +material Wizard/TWOSIDE : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Wizard.png + } + } + } + + set_texture_alias DiffuseMap Wizard.png + set_texture_alias SpecMap Wizard.png + set_texture_alias NormalMap Wizard_nor.png +} diff --git a/materials/scripts/WoodWatchTower_mat.material b/materials/scripts/WoodWatchTower_mat.material new file mode 100644 index 000000000..2ae4a2909 --- /dev/null +++ b/materials/scripts/WoodWatchTower_mat.material @@ -0,0 +1,42 @@ +// pskmat1 genrated by blender2ogre 0.5.9 + +material pskmat1 +{ + receive_shadows on + + technique + { + pass pskmat1 + { + ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0 + diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0 + specular 0.5 0.5 0.5 1.0 12.5 + emissive 0.0 0.0 0.0 1.0 + + alpha_to_coverage off + colour_write on + cull_hardware clockwise + depth_check on + depth_func less_equal + depth_write on + illumination_stage + light_clip_planes off + light_scissor off + lighting on + normalise_normals off + polygon_mode solid + scene_blend one zero + scene_blend_op add + shading gouraud + transparent_sorting on + + texture_unit + { + texture WoodWatchTower_colour.png + tex_address_mode wrap + scale 1.0 1.0 + colour_op modulate + } + } + } +} diff --git a/materials/scripts/Wyvern.material b/materials/scripts/Wyvern.material new file mode 100644 index 000000000..fffb151df --- /dev/null +++ b/materials/scripts/Wyvern.material @@ -0,0 +1,18 @@ +import base_material from "general.material" +material Wyvern : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture Wyvern_red_col5.png + } + } + } + + set_texture_alias DiffuseMap Wyvern_red_col5.png + set_texture_alias SpecMap Wyvern_red_col5.png + set_texture_alias NormalMap Wyvern_red_normalmap.png +} \ No newline at end of file diff --git a/materials/scripts/big_barrel.material b/materials/scripts/big_barrel.material new file mode 100644 index 000000000..4ad4dfcd9 --- /dev/null +++ b/materials/scripts/big_barrel.material @@ -0,0 +1,17 @@ +import base_material from "general.material" +material big_wood_barrel : base_material +{ + technique + { + pass 0 + { + texture_unit + { + texture big_diffus.png + } + } + } + set_texture_alias diffuseMap big_diffus.tga + set_texture_alias specMap big_specular.tga + set_texture_alias normalMap big_normal.tga +} diff --git a/materials/scripts/console.material b/materials/scripts/console.material new file mode 100644 index 000000000..804e45952 --- /dev/null +++ b/materials/scripts/console.material @@ -0,0 +1,18 @@ +material console/background +{ + technique + { + pass + { + scene_blend alpha_blend + lighting off + depth_write off + texture_unit + { + colour_op_ex source1 src_manual src_current 0.2 0.2 0.2 + alpha_op_ex source1 src_manual src_current 0.6 + } + } + + } +} diff --git a/materials/scripts/general.material b/materials/scripts/general.material new file mode 100644 index 000000000..fbc1bdf12 --- /dev/null +++ b/materials/scripts/general.material @@ -0,0 +1,18 @@ +material base_material +{ + technique + { + pass + { + ambient 0.9 0.9 0.9 + diffuse 0.9 0.9 0.9 + specular 0.9 0.9 0.9 + emissive 0.6 0.6 0.6 0.6 + + texture_unit + { + texture White.png + } + } + } +} diff --git a/materials/scripts/mini_barrel.material b/materials/scripts/mini_barrel.material new file mode 100644 index 000000000..c0c0fcb77 --- /dev/null +++ b/materials/scripts/mini_barrel.material @@ -0,0 +1,8 @@ +mini_wood_barrel +import base_material from "general.material" +material mini_wood_barrel : base_material +{ + set_texture_alias diffuseMap mini_diffus.tga + set_texture_alias specMap mini_specular.tga + set_texture_alias normalMap mini_normal.tga +} diff --git a/materials/textures/Adventurer.png b/materials/textures/Adventurer.png new file mode 100644 index 000000000..1c0412a26 Binary files /dev/null and b/materials/textures/Adventurer.png differ diff --git a/materials/textures/Axe.tga b/materials/textures/Axe.tga new file mode 100644 index 000000000..f2e48c8c0 Binary files /dev/null and b/materials/textures/Axe.tga differ diff --git a/materials/textures/BeetleGolem_colour.png b/materials/textures/BeetleGolem_colour.png new file mode 100644 index 000000000..bf7b02f94 Binary files /dev/null and b/materials/textures/BeetleGolem_colour.png differ diff --git a/materials/textures/BeetleGolem_spec.png b/materials/textures/BeetleGolem_spec.png new file mode 100644 index 000000000..73aa4b644 Binary files /dev/null and b/materials/textures/BeetleGolem_spec.png differ diff --git a/materials/textures/Black.png b/materials/textures/Black.png new file mode 100644 index 000000000..160e57260 Binary files /dev/null and b/materials/textures/Black.png differ diff --git a/materials/textures/Cannon_col.png b/materials/textures/Cannon_col.png new file mode 100644 index 000000000..6fdd9eb7a Binary files /dev/null and b/materials/textures/Cannon_col.png differ diff --git a/materials/textures/Cavehornet_col.png b/materials/textures/Cavehornet_col.png new file mode 100644 index 000000000..861180eeb Binary files /dev/null and b/materials/textures/Cavehornet_col.png differ diff --git a/materials/textures/Cavehornet_nor.png b/materials/textures/Cavehornet_nor.png new file mode 100644 index 000000000..67a8b0b56 Binary files /dev/null and b/materials/textures/Cavehornet_nor.png differ diff --git a/materials/textures/Cavehornet_spec.png b/materials/textures/Cavehornet_spec.png new file mode 100644 index 000000000..470f4478c Binary files /dev/null and b/materials/textures/Cavehornet_spec.png differ diff --git a/materials/textures/Chair_col.png b/materials/textures/Chair_col.png new file mode 100644 index 000000000..9eec4d6b9 Binary files /dev/null and b/materials/textures/Chair_col.png differ diff --git a/materials/textures/Chair_nor.png b/materials/textures/Chair_nor.png new file mode 100644 index 000000000..0190577e1 Binary files /dev/null and b/materials/textures/Chair_nor.png differ diff --git a/materials/textures/Chair_spec.png b/materials/textures/Chair_spec.png new file mode 100644 index 000000000..0fe5c70e9 Binary files /dev/null and b/materials/textures/Chair_spec.png differ diff --git a/materials/textures/ChickenE.png b/materials/textures/ChickenE.png new file mode 100644 index 000000000..889fa6213 Binary files /dev/null and b/materials/textures/ChickenE.png differ diff --git a/materials/textures/ChickenE_nor.png b/materials/textures/ChickenE_nor.png new file mode 100644 index 000000000..12d2cfcf6 Binary files /dev/null and b/materials/textures/ChickenE_nor.png differ diff --git a/materials/textures/ChickenE_spec.png b/materials/textures/ChickenE_spec.png new file mode 100644 index 000000000..ce5b0d79c Binary files /dev/null and b/materials/textures/ChickenE_spec.png differ diff --git a/materials/textures/Claimed6Nor.png b/materials/textures/Claimed6Nor.png new file mode 100644 index 000000000..b5fbac68c Binary files /dev/null and b/materials/textures/Claimed6Nor.png differ diff --git a/materials/textures/Claimed6c.png b/materials/textures/Claimed6c.png new file mode 100644 index 000000000..2de00b65f Binary files /dev/null and b/materials/textures/Claimed6c.png differ diff --git a/materials/textures/Claimedwall2B.png b/materials/textures/Claimedwall2B.png new file mode 100644 index 000000000..7939c8862 Binary files /dev/null and b/materials/textures/Claimedwall2B.png differ diff --git a/materials/textures/Claimedwall2_nor3.png b/materials/textures/Claimedwall2_nor3.png new file mode 100644 index 000000000..83589f60d Binary files /dev/null and b/materials/textures/Claimedwall2_nor3.png differ diff --git a/materials/textures/Claimedwall3.png b/materials/textures/Claimedwall3.png new file mode 100644 index 000000000..eaa5312c7 Binary files /dev/null and b/materials/textures/Claimedwall3.png differ diff --git a/materials/textures/Con_Worker.png b/materials/textures/Con_Worker.png new file mode 100644 index 000000000..cf39f93bc Binary files /dev/null and b/materials/textures/Con_Worker.png differ diff --git a/materials/textures/Con_gear.png b/materials/textures/Con_gear.png new file mode 100644 index 000000000..e61637714 Binary files /dev/null and b/materials/textures/Con_gear.png differ diff --git a/materials/textures/Dirt.png b/materials/textures/Dirt.png new file mode 100644 index 000000000..3df398d62 Binary files /dev/null and b/materials/textures/Dirt.png differ diff --git a/materials/textures/Dirt_darkE.png b/materials/textures/Dirt_darkE.png new file mode 100644 index 000000000..a7437e5fa Binary files /dev/null and b/materials/textures/Dirt_darkE.png differ diff --git a/materials/textures/Dirt_dark_nor3.png b/materials/textures/Dirt_dark_nor3.png new file mode 100644 index 000000000..391120027 Binary files /dev/null and b/materials/textures/Dirt_dark_nor3.png differ diff --git a/materials/textures/Dragon.png b/materials/textures/Dragon.png new file mode 100644 index 000000000..bc28e2115 Binary files /dev/null and b/materials/textures/Dragon.png differ diff --git a/materials/textures/DungeonTemple2.png b/materials/textures/DungeonTemple2.png new file mode 100644 index 000000000..346647a70 Binary files /dev/null and b/materials/textures/DungeonTemple2.png differ diff --git a/materials/textures/DungeonTemple_glow.png b/materials/textures/DungeonTemple_glow.png new file mode 100644 index 000000000..e492f93a2 Binary files /dev/null and b/materials/textures/DungeonTemple_glow.png differ diff --git a/materials/textures/Dwarf1.png b/materials/textures/Dwarf1.png new file mode 100644 index 000000000..686df028b Binary files /dev/null and b/materials/textures/Dwarf1.png differ diff --git a/materials/textures/Dwarf2.png b/materials/textures/Dwarf2.png new file mode 100644 index 000000000..db2045e13 Binary files /dev/null and b/materials/textures/Dwarf2.png differ diff --git a/materials/textures/Dwarf_col.png b/materials/textures/Dwarf_col.png new file mode 100644 index 000000000..b7640faa3 Binary files /dev/null and b/materials/textures/Dwarf_col.png differ diff --git a/materials/textures/Dwarf_nor.png b/materials/textures/Dwarf_nor.png new file mode 100644 index 000000000..2bb334a96 Binary files /dev/null and b/materials/textures/Dwarf_nor.png differ diff --git a/materials/textures/Dwarf_spec.png b/materials/textures/Dwarf_spec.png new file mode 100644 index 000000000..70bc21d37 Binary files /dev/null and b/materials/textures/Dwarf_spec.png differ diff --git "a/materials/textures/Env-blaugr\303\274nF.png" "b/materials/textures/Env-blaugr\303\274nF.png" new file mode 100644 index 000000000..81c257b89 Binary files /dev/null and "b/materials/textures/Env-blaugr\303\274nF.png" differ diff --git a/materials/textures/Env_gold.png b/materials/textures/Env_gold.png new file mode 100644 index 000000000..dadffef66 Binary files /dev/null and b/materials/textures/Env_gold.png differ diff --git a/materials/textures/Envmap_metal2.png b/materials/textures/Envmap_metal2.png new file mode 100644 index 000000000..978c3c116 Binary files /dev/null and b/materials/textures/Envmap_metal2.png differ diff --git a/materials/textures/Fire2_0.png b/materials/textures/Fire2_0.png new file mode 100644 index 000000000..6c074899e Binary files /dev/null and b/materials/textures/Fire2_0.png differ diff --git a/materials/textures/Fire2_1.png b/materials/textures/Fire2_1.png new file mode 100644 index 000000000..b0ed402ea Binary files /dev/null and b/materials/textures/Fire2_1.png differ diff --git a/materials/textures/Fire2_2.png b/materials/textures/Fire2_2.png new file mode 100644 index 000000000..36c56fa99 Binary files /dev/null and b/materials/textures/Fire2_2.png differ diff --git a/materials/textures/Fire2_3.png b/materials/textures/Fire2_3.png new file mode 100644 index 000000000..5727018c8 Binary files /dev/null and b/materials/textures/Fire2_3.png differ diff --git a/materials/textures/Fire2_4.png b/materials/textures/Fire2_4.png new file mode 100644 index 000000000..67838f607 Binary files /dev/null and b/materials/textures/Fire2_4.png differ diff --git a/materials/textures/Flat_n.png b/materials/textures/Flat_n.png new file mode 100644 index 000000000..f7374c082 Binary files /dev/null and b/materials/textures/Flat_n.png differ diff --git a/materials/textures/Forge_base_texture.png b/materials/textures/Forge_base_texture.png new file mode 100644 index 000000000..77de47fba Binary files /dev/null and b/materials/textures/Forge_base_texture.png differ diff --git a/materials/textures/Forge_normalmap.png b/materials/textures/Forge_normalmap.png new file mode 100644 index 000000000..d48839ac3 Binary files /dev/null and b/materials/textures/Forge_normalmap.png differ diff --git a/materials/textures/Gnome.png b/materials/textures/Gnome.png new file mode 100644 index 000000000..a84c41843 Binary files /dev/null and b/materials/textures/Gnome.png differ diff --git a/materials/textures/Goblin.png b/materials/textures/Goblin.png new file mode 100644 index 000000000..33fd82772 Binary files /dev/null and b/materials/textures/Goblin.png differ diff --git a/materials/textures/Gold.png b/materials/textures/Gold.png new file mode 100644 index 000000000..1c9c9d1c1 Binary files /dev/null and b/materials/textures/Gold.png differ diff --git a/materials/textures/GoldBag.png b/materials/textures/GoldBag.png new file mode 100644 index 000000000..de81de54c Binary files /dev/null and b/materials/textures/GoldBag.png differ diff --git a/materials/textures/GoldChest.png b/materials/textures/GoldChest.png new file mode 100644 index 000000000..07a41244a Binary files /dev/null and b/materials/textures/GoldChest.png differ diff --git a/materials/textures/Grey.png b/materials/textures/Grey.png new file mode 100644 index 000000000..d3afa971c Binary files /dev/null and b/materials/textures/Grey.png differ diff --git a/materials/textures/Halo2_0.png b/materials/textures/Halo2_0.png new file mode 100644 index 000000000..a73e23eb0 Binary files /dev/null and b/materials/textures/Halo2_0.png differ diff --git a/materials/textures/Halo2_1.png b/materials/textures/Halo2_1.png new file mode 100644 index 000000000..d860a2a4d Binary files /dev/null and b/materials/textures/Halo2_1.png differ diff --git a/materials/textures/Halo2_2.png b/materials/textures/Halo2_2.png new file mode 100644 index 000000000..4a1ff8c5d Binary files /dev/null and b/materials/textures/Halo2_2.png differ diff --git a/materials/textures/Halo2_3.png b/materials/textures/Halo2_3.png new file mode 100644 index 000000000..afe36d9de Binary files /dev/null and b/materials/textures/Halo2_3.png differ diff --git a/materials/textures/Keeperhand_colC.png b/materials/textures/Keeperhand_colC.png new file mode 100644 index 000000000..45f8a5da0 Binary files /dev/null and b/materials/textures/Keeperhand_colC.png differ diff --git a/materials/textures/Keeperhand_colD.png b/materials/textures/Keeperhand_colD.png new file mode 100644 index 000000000..f8400ecab Binary files /dev/null and b/materials/textures/Keeperhand_colD.png differ diff --git a/materials/textures/Keeperhand_nor.PNG b/materials/textures/Keeperhand_nor.PNG new file mode 100644 index 000000000..ae1280e7b Binary files /dev/null and b/materials/textures/Keeperhand_nor.PNG differ diff --git a/materials/textures/Keeperhand_spec.png b/materials/textures/Keeperhand_spec.png new file mode 100644 index 000000000..bd033bdb0 Binary files /dev/null and b/materials/textures/Keeperhand_spec.png differ diff --git a/materials/textures/Knight.png b/materials/textures/Knight.png new file mode 100644 index 000000000..54bca1c7c Binary files /dev/null and b/materials/textures/Knight.png differ diff --git a/materials/textures/KreaturE.png b/materials/textures/KreaturE.png new file mode 100644 index 000000000..27da9bc9e Binary files /dev/null and b/materials/textures/KreaturE.png differ diff --git a/materials/textures/Kreatur_nor2.png b/materials/textures/Kreatur_nor2.png new file mode 100644 index 000000000..2d4fc7e42 Binary files /dev/null and b/materials/textures/Kreatur_nor2.png differ diff --git a/materials/textures/LavaGolem_diffuse.png b/materials/textures/LavaGolem_diffuse.png new file mode 100644 index 000000000..1aeb2ac59 Binary files /dev/null and b/materials/textures/LavaGolem_diffuse.png differ diff --git a/materials/textures/LavaGolem_emit.png b/materials/textures/LavaGolem_emit.png new file mode 100644 index 000000000..a10863656 Binary files /dev/null and b/materials/textures/LavaGolem_emit.png differ diff --git a/materials/textures/LavaGolem_normal.png b/materials/textures/LavaGolem_normal.png new file mode 100644 index 000000000..d85e6a607 Binary files /dev/null and b/materials/textures/LavaGolem_normal.png differ diff --git a/materials/textures/LavaGolem_spec.png b/materials/textures/LavaGolem_spec.png new file mode 100644 index 000000000..65157e58e Binary files /dev/null and b/materials/textures/LavaGolem_spec.png differ diff --git a/materials/textures/Lava_anim_0.png b/materials/textures/Lava_anim_0.png new file mode 100644 index 000000000..83657ea86 Binary files /dev/null and b/materials/textures/Lava_anim_0.png differ diff --git a/materials/textures/Lava_anim_1.png b/materials/textures/Lava_anim_1.png new file mode 100644 index 000000000..4fcd19fb5 Binary files /dev/null and b/materials/textures/Lava_anim_1.png differ diff --git a/materials/textures/Lava_anim_2.png b/materials/textures/Lava_anim_2.png new file mode 100644 index 000000000..eda75da16 Binary files /dev/null and b/materials/textures/Lava_anim_2.png differ diff --git a/materials/textures/Lava_anim_3.png b/materials/textures/Lava_anim_3.png new file mode 100644 index 000000000..d4181e0b0 Binary files /dev/null and b/materials/textures/Lava_anim_3.png differ diff --git a/materials/textures/Lava_anim_4.png b/materials/textures/Lava_anim_4.png new file mode 100644 index 000000000..6accc1f0b Binary files /dev/null and b/materials/textures/Lava_anim_4.png differ diff --git a/materials/textures/Lizardman_col.png b/materials/textures/Lizardman_col.png new file mode 100644 index 000000000..b70d2c946 Binary files /dev/null and b/materials/textures/Lizardman_col.png differ diff --git a/materials/textures/Lizardman_nor3.png b/materials/textures/Lizardman_nor3.png new file mode 100644 index 000000000..35c7e362c Binary files /dev/null and b/materials/textures/Lizardman_nor3.png differ diff --git a/materials/textures/Lizardman_spec.png b/materials/textures/Lizardman_spec.png new file mode 100644 index 000000000..3615f6c6d Binary files /dev/null and b/materials/textures/Lizardman_spec.png differ diff --git a/materials/textures/Longsword.png b/materials/textures/Longsword.png new file mode 100644 index 000000000..093d125b0 Binary files /dev/null and b/materials/textures/Longsword.png differ diff --git a/materials/textures/Obsidian.png b/materials/textures/Obsidian.png new file mode 100644 index 000000000..12d179884 Binary files /dev/null and b/materials/textures/Obsidian.png differ diff --git a/materials/textures/Orc_col.png b/materials/textures/Orc_col.png new file mode 100644 index 000000000..51e4c03cd Binary files /dev/null and b/materials/textures/Orc_col.png differ diff --git a/materials/textures/Orc_nor.png b/materials/textures/Orc_nor.png new file mode 100644 index 000000000..71a899288 Binary files /dev/null and b/materials/textures/Orc_nor.png differ diff --git a/materials/textures/Orc_spec.png b/materials/textures/Orc_spec.png new file mode 100644 index 000000000..35cf8bb23 Binary files /dev/null and b/materials/textures/Orc_spec.png differ diff --git a/materials/textures/Pit_Demon.png b/materials/textures/Pit_Demon.png new file mode 100644 index 000000000..7ea3629d1 Binary files /dev/null and b/materials/textures/Pit_Demon.png differ diff --git a/materials/textures/Pit_Demon_nor.tga b/materials/textures/Pit_Demon_nor.tga new file mode 100644 index 000000000..b3ea287d0 Binary files /dev/null and b/materials/textures/Pit_Demon_nor.tga differ diff --git a/materials/textures/Portalvortex.png b/materials/textures/Portalvortex.png new file mode 100644 index 000000000..7d092f26b Binary files /dev/null and b/materials/textures/Portalvortex.png differ diff --git a/materials/textures/Quarters.png b/materials/textures/Quarters.png new file mode 100644 index 000000000..045c5240f Binary files /dev/null and b/materials/textures/Quarters.png differ diff --git a/materials/textures/Rockc.png b/materials/textures/Rockc.png new file mode 100644 index 000000000..9a3b46113 Binary files /dev/null and b/materials/textures/Rockc.png differ diff --git a/materials/textures/Roundshield.tga b/materials/textures/Roundshield.tga new file mode 100644 index 000000000..1c443d79d Binary files /dev/null and b/materials/textures/Roundshield.tga differ diff --git a/materials/textures/RuinEntrance_01.png b/materials/textures/RuinEntrance_01.png new file mode 100644 index 000000000..2bb8da339 Binary files /dev/null and b/materials/textures/RuinEntrance_01.png differ diff --git a/materials/textures/RuinEntrance_02.png b/materials/textures/RuinEntrance_02.png new file mode 100644 index 000000000..83ea45174 Binary files /dev/null and b/materials/textures/RuinEntrance_02.png differ diff --git a/materials/textures/RuinEntrance_Pilar.png b/materials/textures/RuinEntrance_Pilar.png new file mode 100644 index 000000000..68ad8cf71 Binary files /dev/null and b/materials/textures/RuinEntrance_Pilar.png differ diff --git a/materials/textures/RuinEntrance_rew.png b/materials/textures/RuinEntrance_rew.png new file mode 100644 index 000000000..83f503764 Binary files /dev/null and b/materials/textures/RuinEntrance_rew.png differ diff --git a/materials/textures/Shelf_col.png b/materials/textures/Shelf_col.png new file mode 100644 index 000000000..43fc8e1af Binary files /dev/null and b/materials/textures/Shelf_col.png differ diff --git a/materials/textures/Shelf_nor.png b/materials/textures/Shelf_nor.png new file mode 100644 index 000000000..f7d3c77ce Binary files /dev/null and b/materials/textures/Shelf_nor.png differ diff --git a/materials/textures/Shelf_spec.png b/materials/textures/Shelf_spec.png new file mode 100644 index 000000000..85c1fe0f4 Binary files /dev/null and b/materials/textures/Shelf_spec.png differ diff --git a/materials/textures/Spider.png b/materials/textures/Spider.png new file mode 100644 index 000000000..b661b8d09 Binary files /dev/null and b/materials/textures/Spider.png differ diff --git a/materials/textures/Staff.tga b/materials/textures/Staff.tga new file mode 100644 index 000000000..3f4aef7d9 Binary files /dev/null and b/materials/textures/Staff.tga differ diff --git a/materials/textures/Stool_col.png b/materials/textures/Stool_col.png new file mode 100644 index 000000000..a0ea9918d Binary files /dev/null and b/materials/textures/Stool_col.png differ diff --git a/materials/textures/Stool_nor.png b/materials/textures/Stool_nor.png new file mode 100644 index 000000000..825ecc416 Binary files /dev/null and b/materials/textures/Stool_nor.png differ diff --git a/materials/textures/Stool_spec.png b/materials/textures/Stool_spec.png new file mode 100644 index 000000000..ca474c6b2 Binary files /dev/null and b/materials/textures/Stool_spec.png differ diff --git a/materials/textures/Table_col.png b/materials/textures/Table_col.png new file mode 100644 index 000000000..95ad70785 Binary files /dev/null and b/materials/textures/Table_col.png differ diff --git a/materials/textures/Table_nor.png b/materials/textures/Table_nor.png new file mode 100644 index 000000000..7462a82a7 Binary files /dev/null and b/materials/textures/Table_nor.png differ diff --git a/materials/textures/Table_spec.png b/materials/textures/Table_spec.png new file mode 100644 index 000000000..087c9f125 Binary files /dev/null and b/materials/textures/Table_spec.png differ diff --git a/materials/textures/Tentakel_diff_green.png b/materials/textures/Tentakel_diff_green.png new file mode 100644 index 000000000..832a06e60 Binary files /dev/null and b/materials/textures/Tentakel_diff_green.png differ diff --git a/materials/textures/Tentakel_diff_yellow7.png b/materials/textures/Tentakel_diff_yellow7.png new file mode 100644 index 000000000..04a060e55 Binary files /dev/null and b/materials/textures/Tentakel_diff_yellow7.png differ diff --git a/materials/textures/Tentakel_nor.png b/materials/textures/Tentakel_nor.png new file mode 100644 index 000000000..0e9134c58 Binary files /dev/null and b/materials/textures/Tentakel_nor.png differ diff --git a/materials/textures/Torch1_col.png b/materials/textures/Torch1_col.png new file mode 100644 index 000000000..9250937cd Binary files /dev/null and b/materials/textures/Torch1_col.png differ diff --git a/materials/textures/Treasury.png b/materials/textures/Treasury.png new file mode 100644 index 000000000..844852407 Binary files /dev/null and b/materials/textures/Treasury.png differ diff --git a/materials/textures/Troll2_col3.png b/materials/textures/Troll2_col3.png new file mode 100644 index 000000000..7a6aa4e91 Binary files /dev/null and b/materials/textures/Troll2_col3.png differ diff --git a/materials/textures/Troll2_nor2.png b/materials/textures/Troll2_nor2.png new file mode 100644 index 000000000..df5fa0cd6 Binary files /dev/null and b/materials/textures/Troll2_nor2.png differ diff --git a/materials/textures/Troll2_spec2.png b/materials/textures/Troll2_spec2.png new file mode 100644 index 000000000..e26952b5c Binary files /dev/null and b/materials/textures/Troll2_spec2.png differ diff --git a/materials/textures/Water4.png b/materials/textures/Water4.png new file mode 100644 index 000000000..178099685 Binary files /dev/null and b/materials/textures/Water4.png differ diff --git a/materials/textures/White.png b/materials/textures/White.png new file mode 100644 index 000000000..862e8a731 Binary files /dev/null and b/materials/textures/White.png differ diff --git a/materials/textures/Wizard.png b/materials/textures/Wizard.png new file mode 100644 index 000000000..b423d4436 Binary files /dev/null and b/materials/textures/Wizard.png differ diff --git a/materials/textures/Wizard_nor.png b/materials/textures/Wizard_nor.png new file mode 100644 index 000000000..7e5afdc7e Binary files /dev/null and b/materials/textures/Wizard_nor.png differ diff --git a/materials/textures/WoodWatchTower_colour.png b/materials/textures/WoodWatchTower_colour.png new file mode 100644 index 000000000..55309ad44 Binary files /dev/null and b/materials/textures/WoodWatchTower_colour.png differ diff --git a/materials/textures/Wyvern_red_col5.png b/materials/textures/Wyvern_red_col5.png new file mode 100644 index 000000000..78fa0b583 Binary files /dev/null and b/materials/textures/Wyvern_red_col5.png differ diff --git a/materials/textures/Wyvern_red_normalmap.png b/materials/textures/Wyvern_red_normalmap.png new file mode 100644 index 000000000..df00acb64 Binary files /dev/null and b/materials/textures/Wyvern_red_normalmap.png differ diff --git a/materials/textures/big_diffus.png b/materials/textures/big_diffus.png new file mode 100644 index 000000000..4735ac999 Binary files /dev/null and b/materials/textures/big_diffus.png differ diff --git a/materials/textures/big_normal.png b/materials/textures/big_normal.png new file mode 100644 index 000000000..236efd31d Binary files /dev/null and b/materials/textures/big_normal.png differ diff --git a/materials/textures/big_specular.png b/materials/textures/big_specular.png new file mode 100644 index 000000000..d2a08c4d6 Binary files /dev/null and b/materials/textures/big_specular.png differ diff --git a/materials/textures/buvneurt_env5.png b/materials/textures/buvneurt_env5.png new file mode 100644 index 000000000..13101b19f Binary files /dev/null and b/materials/textures/buvneurt_env5.png differ diff --git a/materials/textures/kobold_skin6.png b/materials/textures/kobold_skin6.png new file mode 100644 index 000000000..612adf39c Binary files /dev/null and b/materials/textures/kobold_skin6.png differ diff --git a/materials/textures/leatherdummy2-nm.png b/materials/textures/leatherdummy2-nm.png new file mode 100644 index 000000000..e32b9503b Binary files /dev/null and b/materials/textures/leatherdummy2-nm.png differ diff --git a/materials/textures/leatherdummy2.png b/materials/textures/leatherdummy2.png new file mode 100644 index 000000000..98f86ba11 Binary files /dev/null and b/materials/textures/leatherdummy2.png differ diff --git a/materials/textures/mini_diffus.png b/materials/textures/mini_diffus.png new file mode 100644 index 000000000..fac6562f4 Binary files /dev/null and b/materials/textures/mini_diffus.png differ diff --git a/materials/textures/mini_normal.png b/materials/textures/mini_normal.png new file mode 100644 index 000000000..d0e1ab704 Binary files /dev/null and b/materials/textures/mini_normal.png differ diff --git a/materials/textures/mini_specular.png b/materials/textures/mini_specular.png new file mode 100644 index 000000000..d52161e6b Binary files /dev/null and b/materials/textures/mini_specular.png differ diff --git a/materials/textures/pine_green.png b/materials/textures/pine_green.png new file mode 100644 index 000000000..e73ace41a Binary files /dev/null and b/materials/textures/pine_green.png differ diff --git a/materials/textures/shirtblack.png b/materials/textures/shirtblack.png new file mode 100644 index 000000000..143c89b39 Binary files /dev/null and b/materials/textures/shirtblack.png differ diff --git a/materials/textures/trainingpole-tex-nm.png b/materials/textures/trainingpole-tex-nm.png new file mode 100644 index 000000000..b1b205caf Binary files /dev/null and b/materials/textures/trainingpole-tex-nm.png differ diff --git a/materials/textures/trainingpole-tex.png b/materials/textures/trainingpole-tex.png new file mode 100644 index 000000000..ca2d6e898 Binary files /dev/null and b/materials/textures/trainingpole-tex.png differ diff --git a/models/Adventurer.mesh b/models/Adventurer.mesh new file mode 100644 index 000000000..7fc0df4c4 Binary files /dev/null and b/models/Adventurer.mesh differ diff --git a/models/Adventurer.skeleton b/models/Adventurer.skeleton new file mode 100644 index 000000000..0a59d7e03 Binary files /dev/null and b/models/Adventurer.skeleton differ diff --git a/models/Axe1.mesh b/models/Axe1.mesh new file mode 100644 index 000000000..5b00d7d58 Binary files /dev/null and b/models/Axe1.mesh differ diff --git a/models/Bed.mesh b/models/Bed.mesh new file mode 100644 index 000000000..ab5b20f8f Binary files /dev/null and b/models/Bed.mesh differ diff --git a/models/BeetleGolem.mesh b/models/BeetleGolem.mesh new file mode 100644 index 000000000..37a44c46e Binary files /dev/null and b/models/BeetleGolem.mesh differ diff --git a/models/Cannon.mesh b/models/Cannon.mesh new file mode 100644 index 000000000..4437fc802 Binary files /dev/null and b/models/Cannon.mesh differ diff --git a/models/Cannonball.mesh b/models/Cannonball.mesh new file mode 100644 index 000000000..3f4d10b7d Binary files /dev/null and b/models/Cannonball.mesh differ diff --git a/models/Cavehornet.mesh b/models/Cavehornet.mesh new file mode 100644 index 000000000..e0d487e20 Binary files /dev/null and b/models/Cavehornet.mesh differ diff --git a/models/Cavehornet.skeleton b/models/Cavehornet.skeleton new file mode 100644 index 000000000..78b81fbab Binary files /dev/null and b/models/Cavehornet.skeleton differ diff --git a/models/Chair.mesh b/models/Chair.mesh new file mode 100644 index 000000000..e024c633a Binary files /dev/null and b/models/Chair.mesh differ diff --git a/models/Chicken.mesh b/models/Chicken.mesh new file mode 100644 index 000000000..e98396b92 Binary files /dev/null and b/models/Chicken.mesh differ diff --git a/models/Chicken.skeleton b/models/Chicken.skeleton new file mode 100644 index 000000000..ed46e13d4 Binary files /dev/null and b/models/Chicken.skeleton differ diff --git a/models/Claimed0.mesh b/models/Claimed0.mesh new file mode 100644 index 000000000..bcb173f86 Binary files /dev/null and b/models/Claimed0.mesh differ diff --git a/models/Claimed100.mesh b/models/Claimed100.mesh new file mode 100644 index 000000000..024ed58b3 Binary files /dev/null and b/models/Claimed100.mesh differ diff --git a/models/Claimed101.mesh b/models/Claimed101.mesh new file mode 100644 index 000000000..684ff3fe6 Binary files /dev/null and b/models/Claimed101.mesh differ diff --git a/models/Claimed102.mesh b/models/Claimed102.mesh new file mode 100644 index 000000000..328750605 Binary files /dev/null and b/models/Claimed102.mesh differ diff --git a/models/Claimed103.mesh b/models/Claimed103.mesh new file mode 100644 index 000000000..9a9638bee Binary files /dev/null and b/models/Claimed103.mesh differ diff --git a/models/Claimed104.mesh b/models/Claimed104.mesh new file mode 100644 index 000000000..4e8b24d8b Binary files /dev/null and b/models/Claimed104.mesh differ diff --git a/models/Claimed105.mesh b/models/Claimed105.mesh new file mode 100644 index 000000000..2cfcc9c34 Binary files /dev/null and b/models/Claimed105.mesh differ diff --git a/models/Claimed25.mesh b/models/Claimed25.mesh new file mode 100644 index 000000000..c7526273f Binary files /dev/null and b/models/Claimed25.mesh differ diff --git a/models/Claimed50.mesh b/models/Claimed50.mesh new file mode 100644 index 000000000..bd8a826f3 Binary files /dev/null and b/models/Claimed50.mesh differ diff --git a/models/Claimed51.mesh b/models/Claimed51.mesh new file mode 100644 index 000000000..dd889fa21 Binary files /dev/null and b/models/Claimed51.mesh differ diff --git a/models/Claimed52.mesh b/models/Claimed52.mesh new file mode 100644 index 000000000..5af8598d0 Binary files /dev/null and b/models/Claimed52.mesh differ diff --git a/models/Claimed75.mesh b/models/Claimed75.mesh new file mode 100644 index 000000000..3126f7924 Binary files /dev/null and b/models/Claimed75.mesh differ diff --git a/models/Claimed_0.mesh b/models/Claimed_0.mesh new file mode 100644 index 000000000..89fc6346c Binary files /dev/null and b/models/Claimed_0.mesh differ diff --git a/models/Claimed_00000000.mesh b/models/Claimed_00000000.mesh new file mode 100644 index 000000000..a6c4c0454 Binary files /dev/null and b/models/Claimed_00000000.mesh differ diff --git a/models/Claimed_00000010.mesh b/models/Claimed_00000010.mesh new file mode 100644 index 000000000..4b3edc408 Binary files /dev/null and b/models/Claimed_00000010.mesh differ diff --git a/models/Claimed_00001000.mesh b/models/Claimed_00001000.mesh new file mode 100644 index 000000000..f42d236c3 Binary files /dev/null and b/models/Claimed_00001000.mesh differ diff --git a/models/Claimed_00001010.mesh b/models/Claimed_00001010.mesh new file mode 100644 index 000000000..87ce136d2 Binary files /dev/null and b/models/Claimed_00001010.mesh differ diff --git a/models/Claimed_00001110.mesh b/models/Claimed_00001110.mesh new file mode 100644 index 000000000..16c98e02a Binary files /dev/null and b/models/Claimed_00001110.mesh differ diff --git a/models/Claimed_00100000.mesh b/models/Claimed_00100000.mesh new file mode 100644 index 000000000..97dcb35a7 Binary files /dev/null and b/models/Claimed_00100000.mesh differ diff --git a/models/Claimed_00100010.mesh b/models/Claimed_00100010.mesh new file mode 100644 index 000000000..2f53b69b2 Binary files /dev/null and b/models/Claimed_00100010.mesh differ diff --git a/models/Claimed_00101000.mesh b/models/Claimed_00101000.mesh new file mode 100644 index 000000000..bef2655ff Binary files /dev/null and b/models/Claimed_00101000.mesh differ diff --git a/models/Claimed_00101010.mesh b/models/Claimed_00101010.mesh new file mode 100644 index 000000000..231577d93 Binary files /dev/null and b/models/Claimed_00101010.mesh differ diff --git a/models/Claimed_00101110.mesh b/models/Claimed_00101110.mesh new file mode 100644 index 000000000..6324bbcec Binary files /dev/null and b/models/Claimed_00101110.mesh differ diff --git a/models/Claimed_00111000.mesh b/models/Claimed_00111000.mesh new file mode 100644 index 000000000..b9efd4e05 Binary files /dev/null and b/models/Claimed_00111000.mesh differ diff --git a/models/Claimed_00111010.mesh b/models/Claimed_00111010.mesh new file mode 100644 index 000000000..1c8f1d88f Binary files /dev/null and b/models/Claimed_00111010.mesh differ diff --git a/models/Claimed_00111110.mesh b/models/Claimed_00111110.mesh new file mode 100644 index 000000000..804378309 Binary files /dev/null and b/models/Claimed_00111110.mesh differ diff --git a/models/Claimed_10000000.mesh b/models/Claimed_10000000.mesh new file mode 100644 index 000000000..662cc02a3 Binary files /dev/null and b/models/Claimed_10000000.mesh differ diff --git a/models/Claimed_10000010.mesh b/models/Claimed_10000010.mesh new file mode 100644 index 000000000..310008e1c Binary files /dev/null and b/models/Claimed_10000010.mesh differ diff --git a/models/Claimed_10000011.mesh b/models/Claimed_10000011.mesh new file mode 100644 index 000000000..f92b140b6 Binary files /dev/null and b/models/Claimed_10000011.mesh differ diff --git a/models/Claimed_10001000.mesh b/models/Claimed_10001000.mesh new file mode 100644 index 000000000..209be11e5 Binary files /dev/null and b/models/Claimed_10001000.mesh differ diff --git a/models/Claimed_10001010.mesh b/models/Claimed_10001010.mesh new file mode 100644 index 000000000..89868dfa3 Binary files /dev/null and b/models/Claimed_10001010.mesh differ diff --git a/models/Claimed_10001011.mesh b/models/Claimed_10001011.mesh new file mode 100644 index 000000000..a209692ac Binary files /dev/null and b/models/Claimed_10001011.mesh differ diff --git a/models/Claimed_10001110.mesh b/models/Claimed_10001110.mesh new file mode 100644 index 000000000..3693f0f8e Binary files /dev/null and b/models/Claimed_10001110.mesh differ diff --git a/models/Claimed_10001111.mesh b/models/Claimed_10001111.mesh new file mode 100644 index 000000000..64667f606 Binary files /dev/null and b/models/Claimed_10001111.mesh differ diff --git a/models/Claimed_10100000.mesh b/models/Claimed_10100000.mesh new file mode 100644 index 000000000..7cd964c11 Binary files /dev/null and b/models/Claimed_10100000.mesh differ diff --git a/models/Claimed_10100010.mesh b/models/Claimed_10100010.mesh new file mode 100644 index 000000000..aca399ed1 Binary files /dev/null and b/models/Claimed_10100010.mesh differ diff --git a/models/Claimed_10100011.mesh b/models/Claimed_10100011.mesh new file mode 100644 index 000000000..f9c87f988 Binary files /dev/null and b/models/Claimed_10100011.mesh differ diff --git a/models/Claimed_10101000.mesh b/models/Claimed_10101000.mesh new file mode 100644 index 000000000..9a8d0ecab Binary files /dev/null and b/models/Claimed_10101000.mesh differ diff --git a/models/Claimed_10101010.mesh b/models/Claimed_10101010.mesh new file mode 100644 index 000000000..85bb0bd81 Binary files /dev/null and b/models/Claimed_10101010.mesh differ diff --git a/models/Claimed_10101011.mesh b/models/Claimed_10101011.mesh new file mode 100644 index 000000000..08917c490 Binary files /dev/null and b/models/Claimed_10101011.mesh differ diff --git a/models/Claimed_10101110.mesh b/models/Claimed_10101110.mesh new file mode 100644 index 000000000..8b8e39a98 Binary files /dev/null and b/models/Claimed_10101110.mesh differ diff --git a/models/Claimed_10101111.mesh b/models/Claimed_10101111.mesh new file mode 100644 index 000000000..6a41b22e9 Binary files /dev/null and b/models/Claimed_10101111.mesh differ diff --git a/models/Claimed_10111000.mesh b/models/Claimed_10111000.mesh new file mode 100644 index 000000000..cb3bf2db7 Binary files /dev/null and b/models/Claimed_10111000.mesh differ diff --git a/models/Claimed_10111010.mesh b/models/Claimed_10111010.mesh new file mode 100644 index 000000000..c51fcb9e7 Binary files /dev/null and b/models/Claimed_10111010.mesh differ diff --git a/models/Claimed_10111011.mesh b/models/Claimed_10111011.mesh new file mode 100644 index 000000000..9f53dda6b Binary files /dev/null and b/models/Claimed_10111011.mesh differ diff --git a/models/Claimed_10111110.mesh b/models/Claimed_10111110.mesh new file mode 100644 index 000000000..3f68de264 Binary files /dev/null and b/models/Claimed_10111110.mesh differ diff --git a/models/Claimed_10111111.mesh b/models/Claimed_10111111.mesh new file mode 100644 index 000000000..668ea72c0 Binary files /dev/null and b/models/Claimed_10111111.mesh differ diff --git a/models/Claimed_11100000.mesh b/models/Claimed_11100000.mesh new file mode 100644 index 000000000..a9f09f80e Binary files /dev/null and b/models/Claimed_11100000.mesh differ diff --git a/models/Claimed_11100010.mesh b/models/Claimed_11100010.mesh new file mode 100644 index 000000000..0c67af839 Binary files /dev/null and b/models/Claimed_11100010.mesh differ diff --git a/models/Claimed_11100011.mesh b/models/Claimed_11100011.mesh new file mode 100644 index 000000000..9a9f307da Binary files /dev/null and b/models/Claimed_11100011.mesh differ diff --git a/models/Claimed_11101000.mesh b/models/Claimed_11101000.mesh new file mode 100644 index 000000000..f51aab9df Binary files /dev/null and b/models/Claimed_11101000.mesh differ diff --git a/models/Claimed_11101010.mesh b/models/Claimed_11101010.mesh new file mode 100644 index 000000000..863d06f12 Binary files /dev/null and b/models/Claimed_11101010.mesh differ diff --git a/models/Claimed_11101011.mesh b/models/Claimed_11101011.mesh new file mode 100644 index 000000000..cea1cd812 Binary files /dev/null and b/models/Claimed_11101011.mesh differ diff --git a/models/Claimed_11101110.mesh b/models/Claimed_11101110.mesh new file mode 100644 index 000000000..a55d0d468 Binary files /dev/null and b/models/Claimed_11101110.mesh differ diff --git a/models/Claimed_11101111.mesh b/models/Claimed_11101111.mesh new file mode 100644 index 000000000..8672b8601 Binary files /dev/null and b/models/Claimed_11101111.mesh differ diff --git a/models/Claimed_11111000.mesh b/models/Claimed_11111000.mesh new file mode 100644 index 000000000..594f22888 Binary files /dev/null and b/models/Claimed_11111000.mesh differ diff --git a/models/Claimed_11111010.mesh b/models/Claimed_11111010.mesh new file mode 100644 index 000000000..049f0712c Binary files /dev/null and b/models/Claimed_11111010.mesh differ diff --git a/models/Claimed_11111011.mesh b/models/Claimed_11111011.mesh new file mode 100644 index 000000000..cdc7cb043 Binary files /dev/null and b/models/Claimed_11111011.mesh differ diff --git a/models/Claimed_11111110.mesh b/models/Claimed_11111110.mesh new file mode 100644 index 000000000..132d8b9f8 Binary files /dev/null and b/models/Claimed_11111110.mesh differ diff --git a/models/Claimed_11111111.mesh b/models/Claimed_11111111.mesh new file mode 100644 index 000000000..e69e12323 Binary files /dev/null and b/models/Claimed_11111111.mesh differ diff --git a/models/Con_Worker.mesh b/models/Con_Worker.mesh new file mode 100644 index 000000000..8d0a6e008 Binary files /dev/null and b/models/Con_Worker.mesh differ diff --git a/models/Con_Worker.skeleton b/models/Con_Worker.skeleton new file mode 100644 index 000000000..58f05daae Binary files /dev/null and b/models/Con_Worker.skeleton differ diff --git a/models/Cre_vision_indicator.mesh b/models/Cre_vision_indicator.mesh new file mode 100644 index 000000000..635b519da Binary files /dev/null and b/models/Cre_vision_indicator.mesh differ diff --git a/models/DigSelector.mesh b/models/DigSelector.mesh new file mode 100644 index 000000000..db80102fd Binary files /dev/null and b/models/DigSelector.mesh differ diff --git a/models/Dirt0.mesh b/models/Dirt0.mesh new file mode 100644 index 000000000..a270ee4a6 Binary files /dev/null and b/models/Dirt0.mesh differ diff --git a/models/Dirt100.mesh b/models/Dirt100.mesh new file mode 100644 index 000000000..140f5c9cf Binary files /dev/null and b/models/Dirt100.mesh differ diff --git a/models/Dirt101.mesh b/models/Dirt101.mesh new file mode 100644 index 000000000..c92251df4 Binary files /dev/null and b/models/Dirt101.mesh differ diff --git a/models/Dirt102.mesh b/models/Dirt102.mesh new file mode 100644 index 000000000..32096b313 Binary files /dev/null and b/models/Dirt102.mesh differ diff --git a/models/Dirt103.mesh b/models/Dirt103.mesh new file mode 100644 index 000000000..de3110911 Binary files /dev/null and b/models/Dirt103.mesh differ diff --git a/models/Dirt104.mesh b/models/Dirt104.mesh new file mode 100644 index 000000000..0290d079a Binary files /dev/null and b/models/Dirt104.mesh differ diff --git a/models/Dirt105.mesh b/models/Dirt105.mesh new file mode 100644 index 000000000..0290d079a Binary files /dev/null and b/models/Dirt105.mesh differ diff --git a/models/Dirt25.mesh b/models/Dirt25.mesh new file mode 100644 index 000000000..a93f92169 Binary files /dev/null and b/models/Dirt25.mesh differ diff --git a/models/Dirt50.mesh b/models/Dirt50.mesh new file mode 100644 index 000000000..3486bad80 Binary files /dev/null and b/models/Dirt50.mesh differ diff --git a/models/Dirt51.mesh b/models/Dirt51.mesh new file mode 100644 index 000000000..413acf3e5 Binary files /dev/null and b/models/Dirt51.mesh differ diff --git a/models/Dirt52.mesh b/models/Dirt52.mesh new file mode 100644 index 000000000..7387f18c8 Binary files /dev/null and b/models/Dirt52.mesh differ diff --git a/models/Dirt75.mesh b/models/Dirt75.mesh new file mode 100644 index 000000000..2a42dc11d Binary files /dev/null and b/models/Dirt75.mesh differ diff --git a/models/Dirt_0.mesh b/models/Dirt_0.mesh new file mode 100644 index 000000000..5ac0b488f Binary files /dev/null and b/models/Dirt_0.mesh differ diff --git a/models/Dirt_00000000.mesh b/models/Dirt_00000000.mesh new file mode 100644 index 000000000..e90d1abc6 Binary files /dev/null and b/models/Dirt_00000000.mesh differ diff --git a/models/Dirt_00000010.mesh b/models/Dirt_00000010.mesh new file mode 100644 index 000000000..89a39341f Binary files /dev/null and b/models/Dirt_00000010.mesh differ diff --git a/models/Dirt_00001000.mesh b/models/Dirt_00001000.mesh new file mode 100644 index 000000000..540f5bad0 Binary files /dev/null and b/models/Dirt_00001000.mesh differ diff --git a/models/Dirt_00001010.mesh b/models/Dirt_00001010.mesh new file mode 100644 index 000000000..02aa2d2cc Binary files /dev/null and b/models/Dirt_00001010.mesh differ diff --git a/models/Dirt_00001011.mesh b/models/Dirt_00001011.mesh new file mode 100644 index 000000000..02aa2d2cc Binary files /dev/null and b/models/Dirt_00001011.mesh differ diff --git a/models/Dirt_00001110.mesh b/models/Dirt_00001110.mesh new file mode 100644 index 000000000..d38cd44b7 Binary files /dev/null and b/models/Dirt_00001110.mesh differ diff --git a/models/Dirt_00100000.mesh b/models/Dirt_00100000.mesh new file mode 100644 index 000000000..40cc849a1 Binary files /dev/null and b/models/Dirt_00100000.mesh differ diff --git a/models/Dirt_00100010.mesh b/models/Dirt_00100010.mesh new file mode 100644 index 000000000..405555ac5 Binary files /dev/null and b/models/Dirt_00100010.mesh differ diff --git a/models/Dirt_00101000.mesh b/models/Dirt_00101000.mesh new file mode 100644 index 000000000..ee221b098 Binary files /dev/null and b/models/Dirt_00101000.mesh differ diff --git a/models/Dirt_00101010.mesh b/models/Dirt_00101010.mesh new file mode 100644 index 000000000..c6c683aa6 Binary files /dev/null and b/models/Dirt_00101010.mesh differ diff --git a/models/Dirt_00101011.mesh b/models/Dirt_00101011.mesh new file mode 100644 index 000000000..c6c683aa6 Binary files /dev/null and b/models/Dirt_00101011.mesh differ diff --git a/models/Dirt_00101110.mesh b/models/Dirt_00101110.mesh new file mode 100644 index 000000000..c55c07e8c Binary files /dev/null and b/models/Dirt_00101110.mesh differ diff --git a/models/Dirt_00101111.mesh b/models/Dirt_00101111.mesh new file mode 100644 index 000000000..c55c07e8c Binary files /dev/null and b/models/Dirt_00101111.mesh differ diff --git a/models/Dirt_00111000.mesh b/models/Dirt_00111000.mesh new file mode 100644 index 000000000..f2bea5ae9 Binary files /dev/null and b/models/Dirt_00111000.mesh differ diff --git a/models/Dirt_00111010.mesh b/models/Dirt_00111010.mesh new file mode 100644 index 000000000..aa3637357 Binary files /dev/null and b/models/Dirt_00111010.mesh differ diff --git a/models/Dirt_00111011.mesh b/models/Dirt_00111011.mesh new file mode 100644 index 000000000..aa3637357 Binary files /dev/null and b/models/Dirt_00111011.mesh differ diff --git a/models/Dirt_00111110.mesh b/models/Dirt_00111110.mesh new file mode 100644 index 000000000..aa3637357 Binary files /dev/null and b/models/Dirt_00111110.mesh differ diff --git a/models/Dirt_10000000.mesh b/models/Dirt_10000000.mesh new file mode 100644 index 000000000..ab9a6f02e Binary files /dev/null and b/models/Dirt_10000000.mesh differ diff --git a/models/Dirt_10000010.mesh b/models/Dirt_10000010.mesh new file mode 100644 index 000000000..041397d05 Binary files /dev/null and b/models/Dirt_10000010.mesh differ diff --git a/models/Dirt_10000011.mesh b/models/Dirt_10000011.mesh new file mode 100644 index 000000000..f9072dd5e Binary files /dev/null and b/models/Dirt_10000011.mesh differ diff --git a/models/Dirt_10001000.mesh b/models/Dirt_10001000.mesh new file mode 100644 index 000000000..ac3f60a7c Binary files /dev/null and b/models/Dirt_10001000.mesh differ diff --git a/models/Dirt_10001010.mesh b/models/Dirt_10001010.mesh new file mode 100644 index 000000000..1c8435210 Binary files /dev/null and b/models/Dirt_10001010.mesh differ diff --git a/models/Dirt_10001011.mesh b/models/Dirt_10001011.mesh new file mode 100644 index 000000000..5421570f3 Binary files /dev/null and b/models/Dirt_10001011.mesh differ diff --git a/models/Dirt_10001110.mesh b/models/Dirt_10001110.mesh new file mode 100644 index 000000000..abb727bb3 Binary files /dev/null and b/models/Dirt_10001110.mesh differ diff --git a/models/Dirt_10001111.mesh b/models/Dirt_10001111.mesh new file mode 100644 index 000000000..5968ae5c4 Binary files /dev/null and b/models/Dirt_10001111.mesh differ diff --git a/models/Dirt_10100000.mesh b/models/Dirt_10100000.mesh new file mode 100644 index 000000000..a64b0189a Binary files /dev/null and b/models/Dirt_10100000.mesh differ diff --git a/models/Dirt_10100010.mesh b/models/Dirt_10100010.mesh new file mode 100644 index 000000000..2a94aa316 Binary files /dev/null and b/models/Dirt_10100010.mesh differ diff --git a/models/Dirt_10100011.mesh b/models/Dirt_10100011.mesh new file mode 100644 index 000000000..86ed8c967 Binary files /dev/null and b/models/Dirt_10100011.mesh differ diff --git a/models/Dirt_10101010.mesh b/models/Dirt_10101010.mesh new file mode 100644 index 000000000..2271d86fe Binary files /dev/null and b/models/Dirt_10101010.mesh differ diff --git a/models/Dirt_10101011.mesh b/models/Dirt_10101011.mesh new file mode 100644 index 000000000..a485d6321 Binary files /dev/null and b/models/Dirt_10101011.mesh differ diff --git a/models/Dirt_10101110.mesh b/models/Dirt_10101110.mesh new file mode 100644 index 000000000..4bd35f14f Binary files /dev/null and b/models/Dirt_10101110.mesh differ diff --git a/models/Dirt_10101111.mesh b/models/Dirt_10101111.mesh new file mode 100644 index 000000000..e7d5638f3 Binary files /dev/null and b/models/Dirt_10101111.mesh differ diff --git a/models/Dirt_10110011.mesh b/models/Dirt_10110011.mesh new file mode 100644 index 000000000..86ed8c967 Binary files /dev/null and b/models/Dirt_10110011.mesh differ diff --git a/models/Dirt_10111000.mesh b/models/Dirt_10111000.mesh new file mode 100644 index 000000000..ac4c46f31 Binary files /dev/null and b/models/Dirt_10111000.mesh differ diff --git a/models/Dirt_10111001.mesh b/models/Dirt_10111001.mesh new file mode 100644 index 000000000..ac4c46f31 Binary files /dev/null and b/models/Dirt_10111001.mesh differ diff --git a/models/Dirt_10111010.mesh b/models/Dirt_10111010.mesh new file mode 100644 index 000000000..c0965873f Binary files /dev/null and b/models/Dirt_10111010.mesh differ diff --git a/models/Dirt_10111011.mesh b/models/Dirt_10111011.mesh new file mode 100644 index 000000000..8cadf3f7c Binary files /dev/null and b/models/Dirt_10111011.mesh differ diff --git a/models/Dirt_10111101.mesh b/models/Dirt_10111101.mesh new file mode 100644 index 000000000..ac4c46f31 Binary files /dev/null and b/models/Dirt_10111101.mesh differ diff --git a/models/Dirt_10111110.mesh b/models/Dirt_10111110.mesh new file mode 100644 index 000000000..dc26deb11 Binary files /dev/null and b/models/Dirt_10111110.mesh differ diff --git a/models/Dirt_10111111.mesh b/models/Dirt_10111111.mesh new file mode 100644 index 000000000..e11e0a54a Binary files /dev/null and b/models/Dirt_10111111.mesh differ diff --git a/models/Dirt_11100000.mesh b/models/Dirt_11100000.mesh new file mode 100644 index 000000000..78a1f7b08 Binary files /dev/null and b/models/Dirt_11100000.mesh differ diff --git a/models/Dirt_11100011.mesh b/models/Dirt_11100011.mesh new file mode 100644 index 000000000..7df590b18 Binary files /dev/null and b/models/Dirt_11100011.mesh differ diff --git a/models/Dirt_11101010.mesh b/models/Dirt_11101010.mesh new file mode 100644 index 000000000..0e2ef3d11 Binary files /dev/null and b/models/Dirt_11101010.mesh differ diff --git a/models/Dirt_11101011.mesh b/models/Dirt_11101011.mesh new file mode 100644 index 000000000..d51f6792d Binary files /dev/null and b/models/Dirt_11101011.mesh differ diff --git a/models/Dirt_11101110.mesh b/models/Dirt_11101110.mesh new file mode 100644 index 000000000..365da74d2 Binary files /dev/null and b/models/Dirt_11101110.mesh differ diff --git a/models/Dirt_11101111.mesh b/models/Dirt_11101111.mesh new file mode 100644 index 000000000..09bb36b3b Binary files /dev/null and b/models/Dirt_11101111.mesh differ diff --git a/models/Dirt_11111000.mesh b/models/Dirt_11111000.mesh new file mode 100644 index 000000000..5968ae5c4 Binary files /dev/null and b/models/Dirt_11111000.mesh differ diff --git a/models/Dirt_11111010.mesh b/models/Dirt_11111010.mesh new file mode 100644 index 000000000..d8cf69d73 Binary files /dev/null and b/models/Dirt_11111010.mesh differ diff --git a/models/Dirt_11111011.mesh b/models/Dirt_11111011.mesh new file mode 100644 index 000000000..2265e6433 Binary files /dev/null and b/models/Dirt_11111011.mesh differ diff --git a/models/Dirt_11111110.mesh b/models/Dirt_11111110.mesh new file mode 100644 index 000000000..a904d957c Binary files /dev/null and b/models/Dirt_11111110.mesh differ diff --git a/models/Dirt_11111111.mesh b/models/Dirt_11111111.mesh new file mode 100644 index 000000000..77542f3b2 Binary files /dev/null and b/models/Dirt_11111111.mesh differ diff --git a/models/Dojo.mesh b/models/Dojo.mesh new file mode 100644 index 000000000..0d3e7945a Binary files /dev/null and b/models/Dojo.mesh differ diff --git a/models/DojoRockObject.mesh b/models/DojoRockObject.mesh new file mode 100644 index 000000000..5b00d7d58 Binary files /dev/null and b/models/DojoRockObject.mesh differ diff --git a/models/Dragon.mesh b/models/Dragon.mesh new file mode 100644 index 000000000..70dc90916 Binary files /dev/null and b/models/Dragon.mesh differ diff --git a/models/Dragon.skeleton b/models/Dragon.skeleton new file mode 100644 index 000000000..14d8eb5c3 Binary files /dev/null and b/models/Dragon.skeleton differ diff --git a/models/DungeonTemple.mesh b/models/DungeonTemple.mesh new file mode 100644 index 000000000..0d3e7945a Binary files /dev/null and b/models/DungeonTemple.mesh differ diff --git a/models/DungeonTempleObject.mesh b/models/DungeonTempleObject.mesh new file mode 100644 index 000000000..47df665a3 Binary files /dev/null and b/models/DungeonTempleObject.mesh differ diff --git a/models/DungeonTempleObject.skeleton b/models/DungeonTempleObject.skeleton new file mode 100644 index 000000000..c459828a9 Binary files /dev/null and b/models/DungeonTempleObject.skeleton differ diff --git a/models/Dwarf1.mesh b/models/Dwarf1.mesh new file mode 100644 index 000000000..849b9e559 Binary files /dev/null and b/models/Dwarf1.mesh differ diff --git a/models/Dwarf1.skeleton b/models/Dwarf1.skeleton new file mode 100644 index 000000000..92b54e23f Binary files /dev/null and b/models/Dwarf1.skeleton differ diff --git a/models/Dwarf2.mesh b/models/Dwarf2.mesh new file mode 100644 index 000000000..beeb24787 Binary files /dev/null and b/models/Dwarf2.mesh differ diff --git a/models/Dwarf2.skeleton b/models/Dwarf2.skeleton new file mode 100644 index 000000000..92b54e23f Binary files /dev/null and b/models/Dwarf2.skeleton differ diff --git a/models/Dwarf3.mesh b/models/Dwarf3.mesh new file mode 100644 index 000000000..d83979902 Binary files /dev/null and b/models/Dwarf3.mesh differ diff --git a/models/Dwarf3.skeleton b/models/Dwarf3.skeleton new file mode 100644 index 000000000..a8a9cf613 Binary files /dev/null and b/models/Dwarf3.skeleton differ diff --git a/models/Field_indicator.mesh b/models/Field_indicator.mesh new file mode 100644 index 000000000..f746aa4f8 Binary files /dev/null and b/models/Field_indicator.mesh differ diff --git a/models/Fire.mesh b/models/Fire.mesh new file mode 100644 index 000000000..68ba0e7d7 Binary files /dev/null and b/models/Fire.mesh differ diff --git a/models/Forge.mesh b/models/Forge.mesh new file mode 100644 index 000000000..0d3e7945a Binary files /dev/null and b/models/Forge.mesh differ diff --git a/models/ForgeAnvilObject.mesh b/models/ForgeAnvilObject.mesh new file mode 100644 index 000000000..695808969 Binary files /dev/null and b/models/ForgeAnvilObject.mesh differ diff --git a/models/ForgeForgeObject.mesh b/models/ForgeForgeObject.mesh new file mode 100644 index 000000000..4dcd0cb3e Binary files /dev/null and b/models/ForgeForgeObject.mesh differ diff --git a/models/ForgeTableObject.mesh b/models/ForgeTableObject.mesh new file mode 100644 index 000000000..05998d1dd Binary files /dev/null and b/models/ForgeTableObject.mesh differ diff --git a/models/Gnome.mesh b/models/Gnome.mesh new file mode 100644 index 000000000..1ab5280e2 Binary files /dev/null and b/models/Gnome.mesh differ diff --git a/models/Gnome.skeleton b/models/Gnome.skeleton new file mode 100644 index 000000000..5187b417b Binary files /dev/null and b/models/Gnome.skeleton differ diff --git a/models/Goblin.mesh b/models/Goblin.mesh new file mode 100644 index 000000000..7daa7cfc2 Binary files /dev/null and b/models/Goblin.mesh differ diff --git a/models/Goblin.skeleton b/models/Goblin.skeleton new file mode 100644 index 000000000..962f109e9 Binary files /dev/null and b/models/Goblin.skeleton differ diff --git a/models/Gold0.mesh b/models/Gold0.mesh new file mode 100644 index 000000000..aa95b5cfd Binary files /dev/null and b/models/Gold0.mesh differ diff --git a/models/Gold100.mesh b/models/Gold100.mesh new file mode 100644 index 000000000..029080966 Binary files /dev/null and b/models/Gold100.mesh differ diff --git a/models/Gold101.mesh b/models/Gold101.mesh new file mode 100644 index 000000000..a758ed2d3 Binary files /dev/null and b/models/Gold101.mesh differ diff --git a/models/Gold102.mesh b/models/Gold102.mesh new file mode 100644 index 000000000..7a8bd5371 Binary files /dev/null and b/models/Gold102.mesh differ diff --git a/models/Gold103.mesh b/models/Gold103.mesh new file mode 100644 index 000000000..3783da30c Binary files /dev/null and b/models/Gold103.mesh differ diff --git a/models/Gold104.mesh b/models/Gold104.mesh new file mode 100644 index 000000000..ee918c3de Binary files /dev/null and b/models/Gold104.mesh differ diff --git a/models/Gold105.mesh b/models/Gold105.mesh new file mode 100644 index 000000000..ee918c3de Binary files /dev/null and b/models/Gold105.mesh differ diff --git a/models/Gold25.mesh b/models/Gold25.mesh new file mode 100644 index 000000000..e7db87010 Binary files /dev/null and b/models/Gold25.mesh differ diff --git a/models/Gold50.mesh b/models/Gold50.mesh new file mode 100644 index 000000000..103bc5844 Binary files /dev/null and b/models/Gold50.mesh differ diff --git a/models/Gold51.mesh b/models/Gold51.mesh new file mode 100644 index 000000000..92c3145af Binary files /dev/null and b/models/Gold51.mesh differ diff --git a/models/Gold52.mesh b/models/Gold52.mesh new file mode 100644 index 000000000..bc5844590 Binary files /dev/null and b/models/Gold52.mesh differ diff --git a/models/Gold75.mesh b/models/Gold75.mesh new file mode 100644 index 000000000..c666ab8a0 Binary files /dev/null and b/models/Gold75.mesh differ diff --git a/models/GoldBag.mesh b/models/GoldBag.mesh new file mode 100644 index 000000000..0c0dee2a4 Binary files /dev/null and b/models/GoldBag.mesh differ diff --git a/models/GoldChest.mesh b/models/GoldChest.mesh new file mode 100644 index 000000000..b00331d93 Binary files /dev/null and b/models/GoldChest.mesh differ diff --git a/models/GoldChest.skeleton b/models/GoldChest.skeleton new file mode 100644 index 000000000..4d53e1523 Binary files /dev/null and b/models/GoldChest.skeleton differ diff --git a/models/Keeperhand.mesh b/models/Keeperhand.mesh new file mode 100644 index 000000000..24a7eaf2d Binary files /dev/null and b/models/Keeperhand.mesh differ diff --git a/models/Keeperhand.skeleton b/models/Keeperhand.skeleton new file mode 100644 index 000000000..66b9c15d0 Binary files /dev/null and b/models/Keeperhand.skeleton differ diff --git a/models/Knight.mesh b/models/Knight.mesh new file mode 100644 index 000000000..07a0df3e0 Binary files /dev/null and b/models/Knight.mesh differ diff --git a/models/Knight.skeleton b/models/Knight.skeleton new file mode 100644 index 000000000..790810119 Binary files /dev/null and b/models/Knight.skeleton differ diff --git a/models/Kobold.mesh b/models/Kobold.mesh new file mode 100644 index 000000000..9e4aed489 Binary files /dev/null and b/models/Kobold.mesh differ diff --git a/models/Kobold.skeleton b/models/Kobold.skeleton new file mode 100644 index 000000000..5b46c5583 Binary files /dev/null and b/models/Kobold.skeleton differ diff --git a/models/Kreatur.mesh b/models/Kreatur.mesh new file mode 100644 index 000000000..9f2ec0745 Binary files /dev/null and b/models/Kreatur.mesh differ diff --git a/models/Kreatur.skeleton b/models/Kreatur.skeleton new file mode 100644 index 000000000..0f6d34ee8 Binary files /dev/null and b/models/Kreatur.skeleton differ diff --git a/models/Lava0.mesh b/models/Lava0.mesh new file mode 100644 index 000000000..d5a3cf2b3 Binary files /dev/null and b/models/Lava0.mesh differ diff --git a/models/Lava100.mesh b/models/Lava100.mesh new file mode 100644 index 000000000..bfa0dcd31 Binary files /dev/null and b/models/Lava100.mesh differ diff --git a/models/Lava101.mesh b/models/Lava101.mesh new file mode 100644 index 000000000..9761222bb Binary files /dev/null and b/models/Lava101.mesh differ diff --git a/models/Lava102.mesh b/models/Lava102.mesh new file mode 100644 index 000000000..f56f27951 Binary files /dev/null and b/models/Lava102.mesh differ diff --git a/models/Lava103.mesh b/models/Lava103.mesh new file mode 100644 index 000000000..b8a267f50 Binary files /dev/null and b/models/Lava103.mesh differ diff --git a/models/Lava104.mesh b/models/Lava104.mesh new file mode 100644 index 000000000..7ee9b5ef3 Binary files /dev/null and b/models/Lava104.mesh differ diff --git a/models/Lava105.mesh b/models/Lava105.mesh new file mode 100644 index 000000000..7ee9b5ef3 Binary files /dev/null and b/models/Lava105.mesh differ diff --git a/models/Lava25.mesh b/models/Lava25.mesh new file mode 100644 index 000000000..30a8579d2 Binary files /dev/null and b/models/Lava25.mesh differ diff --git a/models/Lava50.mesh b/models/Lava50.mesh new file mode 100644 index 000000000..cff8c5837 Binary files /dev/null and b/models/Lava50.mesh differ diff --git a/models/Lava51.mesh b/models/Lava51.mesh new file mode 100644 index 000000000..64e4fdd83 Binary files /dev/null and b/models/Lava51.mesh differ diff --git a/models/Lava52.mesh b/models/Lava52.mesh new file mode 100644 index 000000000..fb58837e8 Binary files /dev/null and b/models/Lava52.mesh differ diff --git a/models/Lava75.mesh b/models/Lava75.mesh new file mode 100644 index 000000000..4046dd01f Binary files /dev/null and b/models/Lava75.mesh differ diff --git a/models/LavaGolem.mesh b/models/LavaGolem.mesh new file mode 100644 index 000000000..8ed4b9258 Binary files /dev/null and b/models/LavaGolem.mesh differ diff --git a/models/Light.mesh b/models/Light.mesh new file mode 100644 index 000000000..68ba0e7d7 Binary files /dev/null and b/models/Light.mesh differ diff --git a/models/Lizardman.mesh b/models/Lizardman.mesh new file mode 100644 index 000000000..2e92fd7f7 Binary files /dev/null and b/models/Lizardman.mesh differ diff --git a/models/Lizardman.skeleton b/models/Lizardman.skeleton new file mode 100644 index 000000000..acc0d07ff Binary files /dev/null and b/models/Lizardman.skeleton differ diff --git a/models/Longsword.mesh b/models/Longsword.mesh new file mode 100644 index 000000000..99f9c692f Binary files /dev/null and b/models/Longsword.mesh differ diff --git a/models/Orc.mesh b/models/Orc.mesh new file mode 100644 index 000000000..9b16d2736 Binary files /dev/null and b/models/Orc.mesh differ diff --git a/models/Orc.skeleton b/models/Orc.skeleton new file mode 100644 index 000000000..81a1a2638 Binary files /dev/null and b/models/Orc.skeleton differ diff --git a/models/Pit_demon.mesh b/models/Pit_demon.mesh new file mode 100644 index 000000000..0083d0b37 Binary files /dev/null and b/models/Pit_demon.mesh differ diff --git a/models/Pit_demon.skeleton b/models/Pit_demon.skeleton new file mode 100644 index 000000000..62397dc96 Binary files /dev/null and b/models/Pit_demon.skeleton differ diff --git a/models/Portal.mesh b/models/Portal.mesh new file mode 100644 index 000000000..0d3e7945a Binary files /dev/null and b/models/Portal.mesh differ diff --git a/models/PortalObject.mesh b/models/PortalObject.mesh new file mode 100644 index 000000000..21640c8a7 Binary files /dev/null and b/models/PortalObject.mesh differ diff --git a/models/PortalObject.skeleton b/models/PortalObject.skeleton new file mode 100644 index 000000000..2c994e8c7 Binary files /dev/null and b/models/PortalObject.skeleton differ diff --git a/models/Quarters.mesh b/models/Quarters.mesh new file mode 100644 index 000000000..b948258c1 Binary files /dev/null and b/models/Quarters.mesh differ diff --git a/models/Rock0.mesh b/models/Rock0.mesh new file mode 100644 index 000000000..ba3a87920 Binary files /dev/null and b/models/Rock0.mesh differ diff --git a/models/Rock100.mesh b/models/Rock100.mesh new file mode 100644 index 000000000..c5a5e29dc Binary files /dev/null and b/models/Rock100.mesh differ diff --git a/models/Rock101.mesh b/models/Rock101.mesh new file mode 100644 index 000000000..ec78aa861 Binary files /dev/null and b/models/Rock101.mesh differ diff --git a/models/Rock102.mesh b/models/Rock102.mesh new file mode 100644 index 000000000..5f1dd68a2 Binary files /dev/null and b/models/Rock102.mesh differ diff --git a/models/Rock103.mesh b/models/Rock103.mesh new file mode 100644 index 000000000..a0144d9ef Binary files /dev/null and b/models/Rock103.mesh differ diff --git a/models/Rock104.mesh b/models/Rock104.mesh new file mode 100644 index 000000000..b22eb5ef3 Binary files /dev/null and b/models/Rock104.mesh differ diff --git a/models/Rock105.mesh b/models/Rock105.mesh new file mode 100644 index 000000000..b22eb5ef3 Binary files /dev/null and b/models/Rock105.mesh differ diff --git a/models/Rock25.mesh b/models/Rock25.mesh new file mode 100644 index 000000000..da95bd276 Binary files /dev/null and b/models/Rock25.mesh differ diff --git a/models/Rock50.mesh b/models/Rock50.mesh new file mode 100644 index 000000000..9d4f9bfbd Binary files /dev/null and b/models/Rock50.mesh differ diff --git a/models/Rock51.mesh b/models/Rock51.mesh new file mode 100644 index 000000000..46cd6fc8c Binary files /dev/null and b/models/Rock51.mesh differ diff --git a/models/Rock52.mesh b/models/Rock52.mesh new file mode 100644 index 000000000..8aa658219 Binary files /dev/null and b/models/Rock52.mesh differ diff --git a/models/Rock75.mesh b/models/Rock75.mesh new file mode 100644 index 000000000..3dc18ea2b Binary files /dev/null and b/models/Rock75.mesh differ diff --git a/models/Roundshield.mesh b/models/Roundshield.mesh new file mode 100644 index 000000000..088c6433a Binary files /dev/null and b/models/Roundshield.mesh differ diff --git a/models/RuinEntrance.mesh b/models/RuinEntrance.mesh new file mode 100644 index 000000000..48f634116 Binary files /dev/null and b/models/RuinEntrance.mesh differ diff --git a/models/Sabre.mesh b/models/Sabre.mesh new file mode 100644 index 000000000..51acdb14b Binary files /dev/null and b/models/Sabre.mesh differ diff --git a/models/Shelf.mesh b/models/Shelf.mesh new file mode 100644 index 000000000..b0ee1f2a8 Binary files /dev/null and b/models/Shelf.mesh differ diff --git a/models/Skeleton.mesh b/models/Skeleton.mesh new file mode 100644 index 000000000..35e8d6e31 Binary files /dev/null and b/models/Skeleton.mesh differ diff --git a/models/Skeleton.skeleton b/models/Skeleton.skeleton new file mode 100644 index 000000000..cb3457cba Binary files /dev/null and b/models/Skeleton.skeleton differ diff --git a/models/Spider.mesh b/models/Spider.mesh new file mode 100644 index 000000000..0e786d1ec Binary files /dev/null and b/models/Spider.mesh differ diff --git a/models/Spider.skeleton b/models/Spider.skeleton new file mode 100644 index 000000000..d1cb84476 Binary files /dev/null and b/models/Spider.skeleton differ diff --git a/models/SquareSelector.mesh b/models/SquareSelector.mesh new file mode 100644 index 000000000..98e881423 Binary files /dev/null and b/models/SquareSelector.mesh differ diff --git a/models/Staff.mesh b/models/Staff.mesh new file mode 100644 index 000000000..d093a3645 Binary files /dev/null and b/models/Staff.mesh differ diff --git a/models/Staff.skeleton b/models/Staff.skeleton new file mode 100644 index 000000000..9d8379798 Binary files /dev/null and b/models/Staff.skeleton differ diff --git a/models/Stool.mesh b/models/Stool.mesh new file mode 100644 index 000000000..72d5d9359 Binary files /dev/null and b/models/Stool.mesh differ diff --git a/models/Table.mesh b/models/Table.mesh new file mode 100644 index 000000000..0c14f67cd Binary files /dev/null and b/models/Table.mesh differ diff --git a/models/Tentacle.mesh b/models/Tentacle.mesh new file mode 100644 index 000000000..36b9a50cc Binary files /dev/null and b/models/Tentacle.mesh differ diff --git a/models/Tentacle.skeleton b/models/Tentacle.skeleton new file mode 100644 index 000000000..15c4c1a21 Binary files /dev/null and b/models/Tentacle.skeleton differ diff --git a/models/Tentacle2.mesh b/models/Tentacle2.mesh new file mode 100644 index 000000000..9e3ea2fb2 Binary files /dev/null and b/models/Tentacle2.mesh differ diff --git a/models/Tentacle2.skeleton b/models/Tentacle2.skeleton new file mode 100644 index 000000000..15c4c1a21 Binary files /dev/null and b/models/Tentacle2.skeleton differ diff --git a/models/Torch.mesh b/models/Torch.mesh new file mode 100644 index 000000000..7aae39ef6 Binary files /dev/null and b/models/Torch.mesh differ diff --git a/models/TrainingDummy.mesh b/models/TrainingDummy.mesh new file mode 100644 index 000000000..ab85414de Binary files /dev/null and b/models/TrainingDummy.mesh differ diff --git a/models/TrainingPole.mesh b/models/TrainingPole.mesh new file mode 100644 index 000000000..ab85414de Binary files /dev/null and b/models/TrainingPole.mesh differ diff --git a/models/Treasury.mesh b/models/Treasury.mesh new file mode 100644 index 000000000..0d3e7945a Binary files /dev/null and b/models/Treasury.mesh differ diff --git a/models/Troll.mesh b/models/Troll.mesh new file mode 100644 index 000000000..57276454c Binary files /dev/null and b/models/Troll.mesh differ diff --git a/models/Troll.skeleton b/models/Troll.skeleton new file mode 100644 index 000000000..22e8088b4 Binary files /dev/null and b/models/Troll.skeleton differ diff --git a/models/Water0.mesh b/models/Water0.mesh new file mode 100644 index 000000000..10370e605 Binary files /dev/null and b/models/Water0.mesh differ diff --git a/models/Water100.mesh b/models/Water100.mesh new file mode 100644 index 000000000..60a835a42 Binary files /dev/null and b/models/Water100.mesh differ diff --git a/models/Water101.mesh b/models/Water101.mesh new file mode 100644 index 000000000..1d5b0c620 Binary files /dev/null and b/models/Water101.mesh differ diff --git a/models/Water102.mesh b/models/Water102.mesh new file mode 100644 index 000000000..1b4cbb85e Binary files /dev/null and b/models/Water102.mesh differ diff --git a/models/Water103.mesh b/models/Water103.mesh new file mode 100644 index 000000000..57b00bf13 Binary files /dev/null and b/models/Water103.mesh differ diff --git a/models/Water104.mesh b/models/Water104.mesh new file mode 100644 index 000000000..eb97900d6 Binary files /dev/null and b/models/Water104.mesh differ diff --git a/models/Water105.mesh b/models/Water105.mesh new file mode 100644 index 000000000..eb97900d6 Binary files /dev/null and b/models/Water105.mesh differ diff --git a/models/Water25.mesh b/models/Water25.mesh new file mode 100644 index 000000000..f5bd4ce9c Binary files /dev/null and b/models/Water25.mesh differ diff --git a/models/Water50.mesh b/models/Water50.mesh new file mode 100644 index 000000000..b1a9d0e0e Binary files /dev/null and b/models/Water50.mesh differ diff --git a/models/Water51.mesh b/models/Water51.mesh new file mode 100644 index 000000000..710c2613a Binary files /dev/null and b/models/Water51.mesh differ diff --git a/models/Water52.mesh b/models/Water52.mesh new file mode 100644 index 000000000..370536bd0 Binary files /dev/null and b/models/Water52.mesh differ diff --git a/models/Water75.mesh b/models/Water75.mesh new file mode 100644 index 000000000..9dc9d450f Binary files /dev/null and b/models/Water75.mesh differ diff --git a/models/Water_00000000.mesh b/models/Water_00000000.mesh new file mode 100644 index 000000000..a5079fabc Binary files /dev/null and b/models/Water_00000000.mesh differ diff --git a/models/Water_00000010.mesh b/models/Water_00000010.mesh new file mode 100644 index 000000000..bf6ba610b Binary files /dev/null and b/models/Water_00000010.mesh differ diff --git a/models/Water_00001000.mesh b/models/Water_00001000.mesh new file mode 100644 index 000000000..bdca95ffe Binary files /dev/null and b/models/Water_00001000.mesh differ diff --git a/models/Water_00001010.mesh b/models/Water_00001010.mesh new file mode 100644 index 000000000..631c2bd95 Binary files /dev/null and b/models/Water_00001010.mesh differ diff --git a/models/Water_00001110.mesh b/models/Water_00001110.mesh new file mode 100644 index 000000000..e8d16e486 Binary files /dev/null and b/models/Water_00001110.mesh differ diff --git a/models/Water_00100000.mesh b/models/Water_00100000.mesh new file mode 100644 index 000000000..2ad6b4e7d Binary files /dev/null and b/models/Water_00100000.mesh differ diff --git a/models/Water_00100010.mesh b/models/Water_00100010.mesh new file mode 100644 index 000000000..40231cb6c Binary files /dev/null and b/models/Water_00100010.mesh differ diff --git a/models/Water_00101000.mesh b/models/Water_00101000.mesh new file mode 100644 index 000000000..52f26d1a9 Binary files /dev/null and b/models/Water_00101000.mesh differ diff --git a/models/Water_00101010.mesh b/models/Water_00101010.mesh new file mode 100644 index 000000000..ebf7ce1f7 Binary files /dev/null and b/models/Water_00101010.mesh differ diff --git a/models/Water_00101110.mesh b/models/Water_00101110.mesh new file mode 100644 index 000000000..6f3ffc6fb Binary files /dev/null and b/models/Water_00101110.mesh differ diff --git a/models/Water_00111000.mesh b/models/Water_00111000.mesh new file mode 100644 index 000000000..4ad8ded85 Binary files /dev/null and b/models/Water_00111000.mesh differ diff --git a/models/Water_00111010.mesh b/models/Water_00111010.mesh new file mode 100644 index 000000000..165351927 Binary files /dev/null and b/models/Water_00111010.mesh differ diff --git a/models/Water_00111110.mesh b/models/Water_00111110.mesh new file mode 100644 index 000000000..b0acfdf36 Binary files /dev/null and b/models/Water_00111110.mesh differ diff --git a/models/Water_10000000.mesh b/models/Water_10000000.mesh new file mode 100644 index 000000000..488725314 Binary files /dev/null and b/models/Water_10000000.mesh differ diff --git a/models/Water_10000010.mesh b/models/Water_10000010.mesh new file mode 100644 index 000000000..38b8e56b9 Binary files /dev/null and b/models/Water_10000010.mesh differ diff --git a/models/Water_10000011.mesh b/models/Water_10000011.mesh new file mode 100644 index 000000000..076585124 Binary files /dev/null and b/models/Water_10000011.mesh differ diff --git a/models/Water_10001000.mesh b/models/Water_10001000.mesh new file mode 100644 index 000000000..8e0c08dd2 Binary files /dev/null and b/models/Water_10001000.mesh differ diff --git a/models/Water_10001010.mesh b/models/Water_10001010.mesh new file mode 100644 index 000000000..13d9b44ed Binary files /dev/null and b/models/Water_10001010.mesh differ diff --git a/models/Water_10001011.mesh b/models/Water_10001011.mesh new file mode 100644 index 000000000..72b6fa1ef Binary files /dev/null and b/models/Water_10001011.mesh differ diff --git a/models/Water_10001110.mesh b/models/Water_10001110.mesh new file mode 100644 index 000000000..538ae98b5 Binary files /dev/null and b/models/Water_10001110.mesh differ diff --git a/models/Water_10001111.mesh b/models/Water_10001111.mesh new file mode 100644 index 000000000..58adabb2e Binary files /dev/null and b/models/Water_10001111.mesh differ diff --git a/models/Water_10100000.mesh b/models/Water_10100000.mesh new file mode 100644 index 000000000..95ff2461f Binary files /dev/null and b/models/Water_10100000.mesh differ diff --git a/models/Water_10100010.mesh b/models/Water_10100010.mesh new file mode 100644 index 000000000..441491dae Binary files /dev/null and b/models/Water_10100010.mesh differ diff --git a/models/Water_10100011.mesh b/models/Water_10100011.mesh new file mode 100644 index 000000000..31183b47c Binary files /dev/null and b/models/Water_10100011.mesh differ diff --git a/models/Water_10101000.mesh b/models/Water_10101000.mesh new file mode 100644 index 000000000..41f122928 Binary files /dev/null and b/models/Water_10101000.mesh differ diff --git a/models/Water_10101010.mesh b/models/Water_10101010.mesh new file mode 100644 index 000000000..0e2614d7f Binary files /dev/null and b/models/Water_10101010.mesh differ diff --git a/models/Water_10101011.mesh b/models/Water_10101011.mesh new file mode 100644 index 000000000..ff5193375 Binary files /dev/null and b/models/Water_10101011.mesh differ diff --git a/models/Water_10101110.mesh b/models/Water_10101110.mesh new file mode 100644 index 000000000..3caaf30c9 Binary files /dev/null and b/models/Water_10101110.mesh differ diff --git a/models/Water_10101111.mesh b/models/Water_10101111.mesh new file mode 100644 index 000000000..dda55e1e2 Binary files /dev/null and b/models/Water_10101111.mesh differ diff --git a/models/Water_10111000.mesh b/models/Water_10111000.mesh new file mode 100644 index 000000000..ce85c2b5a Binary files /dev/null and b/models/Water_10111000.mesh differ diff --git a/models/Water_10111010.mesh b/models/Water_10111010.mesh new file mode 100644 index 000000000..44b6209e8 Binary files /dev/null and b/models/Water_10111010.mesh differ diff --git a/models/Water_10111011.mesh b/models/Water_10111011.mesh new file mode 100644 index 000000000..ea54272cd Binary files /dev/null and b/models/Water_10111011.mesh differ diff --git a/models/Water_10111110.mesh b/models/Water_10111110.mesh new file mode 100644 index 000000000..405a6ab38 Binary files /dev/null and b/models/Water_10111110.mesh differ diff --git a/models/Water_10111111.mesh b/models/Water_10111111.mesh new file mode 100644 index 000000000..2b33c9326 Binary files /dev/null and b/models/Water_10111111.mesh differ diff --git a/models/Water_11100000.mesh b/models/Water_11100000.mesh new file mode 100644 index 000000000..025ff7cec Binary files /dev/null and b/models/Water_11100000.mesh differ diff --git a/models/Water_11100010.mesh b/models/Water_11100010.mesh new file mode 100644 index 000000000..f2b17cad9 Binary files /dev/null and b/models/Water_11100010.mesh differ diff --git a/models/Water_11100011.mesh b/models/Water_11100011.mesh new file mode 100644 index 000000000..0a3e4e051 Binary files /dev/null and b/models/Water_11100011.mesh differ diff --git a/models/Water_11101000.mesh b/models/Water_11101000.mesh new file mode 100644 index 000000000..5fc872325 Binary files /dev/null and b/models/Water_11101000.mesh differ diff --git a/models/Water_11101010.mesh b/models/Water_11101010.mesh new file mode 100644 index 000000000..888de522c Binary files /dev/null and b/models/Water_11101010.mesh differ diff --git a/models/Water_11101011.mesh b/models/Water_11101011.mesh new file mode 100644 index 000000000..47bd9b5d2 Binary files /dev/null and b/models/Water_11101011.mesh differ diff --git a/models/Water_11101110.mesh b/models/Water_11101110.mesh new file mode 100644 index 000000000..48406bb7c Binary files /dev/null and b/models/Water_11101110.mesh differ diff --git a/models/Water_11101111.mesh b/models/Water_11101111.mesh new file mode 100644 index 000000000..51049ddc0 Binary files /dev/null and b/models/Water_11101111.mesh differ diff --git a/models/Water_11111000.mesh b/models/Water_11111000.mesh new file mode 100644 index 000000000..33901fbd0 Binary files /dev/null and b/models/Water_11111000.mesh differ diff --git a/models/Water_11111010.mesh b/models/Water_11111010.mesh new file mode 100644 index 000000000..144717dc7 Binary files /dev/null and b/models/Water_11111010.mesh differ diff --git a/models/Water_11111011.mesh b/models/Water_11111011.mesh new file mode 100644 index 000000000..a8a5920bc Binary files /dev/null and b/models/Water_11111011.mesh differ diff --git a/models/Water_11111110.mesh b/models/Water_11111110.mesh new file mode 100644 index 000000000..dbb7e1cad Binary files /dev/null and b/models/Water_11111110.mesh differ diff --git a/models/Water_11111111.mesh b/models/Water_11111111.mesh new file mode 100644 index 000000000..a4d7ceca4 Binary files /dev/null and b/models/Water_11111111.mesh differ diff --git a/models/Wizard.mesh b/models/Wizard.mesh new file mode 100644 index 000000000..4c013bc95 Binary files /dev/null and b/models/Wizard.mesh differ diff --git a/models/Wizard.skeleton b/models/Wizard.skeleton new file mode 100644 index 000000000..1e129df94 Binary files /dev/null and b/models/Wizard.skeleton differ diff --git a/models/WoodWatchTower.mesh b/models/WoodWatchTower.mesh new file mode 100644 index 000000000..45589a9f6 Binary files /dev/null and b/models/WoodWatchTower.mesh differ diff --git a/models/Wyvern.mesh b/models/Wyvern.mesh new file mode 100644 index 000000000..780447a50 Binary files /dev/null and b/models/Wyvern.mesh differ diff --git a/models/Wyvern.skeleton b/models/Wyvern.skeleton new file mode 100644 index 000000000..3df8548a5 Binary files /dev/null and b/models/Wyvern.skeleton differ diff --git a/models/barrel_destroyed.mesh b/models/barrel_destroyed.mesh new file mode 100644 index 000000000..81c2fa9a1 Binary files /dev/null and b/models/barrel_destroyed.mesh differ diff --git a/models/big_wood_barrel.mesh b/models/big_wood_barrel.mesh new file mode 100644 index 000000000..f6dadb55e Binary files /dev/null and b/models/big_wood_barrel.mesh differ diff --git a/models/golem.mesh b/models/golem.mesh new file mode 100644 index 000000000..10e7b8390 Binary files /dev/null and b/models/golem.mesh differ diff --git a/models/golem.skeleton b/models/golem.skeleton new file mode 100644 index 000000000..c41f869f2 Binary files /dev/null and b/models/golem.skeleton differ diff --git a/models/mini_wood_barrel.mesh b/models/mini_wood_barrel.mesh new file mode 100644 index 000000000..a2364229e Binary files /dev/null and b/models/mini_wood_barrel.mesh differ diff --git a/music/Pal_Zoltan_Illes_OpenDungeons_maintheme.ogg b/music/Pal_Zoltan_Illes_OpenDungeons_maintheme.ogg new file mode 100644 index 000000000..e65f07254 Binary files /dev/null and b/music/Pal_Zoltan_Illes_OpenDungeons_maintheme.ogg differ diff --git a/music/yd_Searching_ingame.ogg b/music/yd_Searching_ingame.ogg new file mode 100644 index 000000000..1a0a8ba21 Binary files /dev/null and b/music/yd_Searching_ingame.ogg differ diff --git a/packs/OgreCore.zip b/packs/OgreCore.zip new file mode 100644 index 000000000..578552c1a Binary files /dev/null and b/packs/OgreCore.zip differ diff --git a/sounds/ClaimTile/Claim01.ogg b/sounds/ClaimTile/Claim01.ogg new file mode 100644 index 000000000..632425aca Binary files /dev/null and b/sounds/ClaimTile/Claim01.ogg differ diff --git a/sounds/ClaimTile/Claim02.ogg b/sounds/ClaimTile/Claim02.ogg new file mode 100644 index 000000000..8556c7217 Binary files /dev/null and b/sounds/ClaimTile/Claim02.ogg differ diff --git a/sounds/ClaimTile/Claim03.ogg b/sounds/ClaimTile/Claim03.ogg new file mode 100644 index 000000000..b2d554913 Binary files /dev/null and b/sounds/ClaimTile/Claim03.ogg differ diff --git a/sounds/ClaimTile/Claim04.ogg b/sounds/ClaimTile/Claim04.ogg new file mode 100644 index 000000000..0ca4a93ca Binary files /dev/null and b/sounds/ClaimTile/Claim04.ogg differ diff --git a/sounds/ClaimTile/Claim05.ogg b/sounds/ClaimTile/Claim05.ogg new file mode 100644 index 000000000..8f0f4932a Binary files /dev/null and b/sounds/ClaimTile/Claim05.ogg differ diff --git a/sounds/ClaimTile/Claim06.ogg b/sounds/ClaimTile/Claim06.ogg new file mode 100644 index 000000000..ced209e72 Binary files /dev/null and b/sounds/ClaimTile/Claim06.ogg differ diff --git a/sounds/ClaimTile/Claim07.ogg b/sounds/ClaimTile/Claim07.ogg new file mode 100644 index 000000000..71585e157 Binary files /dev/null and b/sounds/ClaimTile/Claim07.ogg differ diff --git a/sounds/ClaimTile/Claim08.ogg b/sounds/ClaimTile/Claim08.ogg new file mode 100644 index 000000000..e1e9a4819 Binary files /dev/null and b/sounds/ClaimTile/Claim08.ogg differ diff --git a/sounds/Click/click.ogg b/sounds/Click/click.ogg new file mode 100644 index 000000000..9c3cb3f19 Binary files /dev/null and b/sounds/Click/click.ogg differ diff --git a/sounds/Digging/Digging01.ogg b/sounds/Digging/Digging01.ogg new file mode 100644 index 000000000..10a2c9a9f Binary files /dev/null and b/sounds/Digging/Digging01.ogg differ diff --git a/sounds/Digging/Digging02.ogg b/sounds/Digging/Digging02.ogg new file mode 100644 index 000000000..3acba6f31 Binary files /dev/null and b/sounds/Digging/Digging02.ogg differ diff --git a/sounds/Digging/Digging03.ogg b/sounds/Digging/Digging03.ogg new file mode 100644 index 000000000..360eee5b0 Binary files /dev/null and b/sounds/Digging/Digging03.ogg differ diff --git a/sounds/Digging/Digging04.ogg b/sounds/Digging/Digging04.ogg new file mode 100644 index 000000000..59ed2cd0f Binary files /dev/null and b/sounds/Digging/Digging04.ogg differ diff --git a/sounds/Digging/Digging05.ogg b/sounds/Digging/Digging05.ogg new file mode 100644 index 000000000..e011e75e5 Binary files /dev/null and b/sounds/Digging/Digging05.ogg differ diff --git a/sounds/Digging/Digging06.ogg b/sounds/Digging/Digging06.ogg new file mode 100644 index 000000000..3410f1753 Binary files /dev/null and b/sounds/Digging/Digging06.ogg differ diff --git a/sounds/Digging/Digging07.ogg b/sounds/Digging/Digging07.ogg new file mode 100644 index 000000000..ecc59da42 Binary files /dev/null and b/sounds/Digging/Digging07.ogg differ diff --git a/sounds/Digging/Digging08.ogg b/sounds/Digging/Digging08.ogg new file mode 100644 index 000000000..1b4cbbc12 Binary files /dev/null and b/sounds/Digging/Digging08.ogg differ diff --git a/sounds/Digging/Digging09.ogg b/sounds/Digging/Digging09.ogg new file mode 100644 index 000000000..cc533f346 Binary files /dev/null and b/sounds/Digging/Digging09.ogg differ diff --git a/sounds/Digging/Digging10.ogg b/sounds/Digging/Digging10.ogg new file mode 100644 index 000000000..00e995a96 Binary files /dev/null and b/sounds/Digging/Digging10.ogg differ diff --git a/sounds/Digging/Digging11.ogg b/sounds/Digging/Digging11.ogg new file mode 100644 index 000000000..52aaaa8ef Binary files /dev/null and b/sounds/Digging/Digging11.ogg differ diff --git a/sounds/Digging/Digging12.ogg b/sounds/Digging/Digging12.ogg new file mode 100644 index 000000000..1f1978cb3 Binary files /dev/null and b/sounds/Digging/Digging12.ogg differ diff --git a/sounds/Digging/Digging13.ogg b/sounds/Digging/Digging13.ogg new file mode 100644 index 000000000..f666d2c5a Binary files /dev/null and b/sounds/Digging/Digging13.ogg differ diff --git a/sounds/Digging/Digging14.ogg b/sounds/Digging/Digging14.ogg new file mode 100644 index 000000000..231375025 Binary files /dev/null and b/sounds/Digging/Digging14.ogg differ diff --git a/sounds/Digging/Digging15.ogg b/sounds/Digging/Digging15.ogg new file mode 100644 index 000000000..561234c80 Binary files /dev/null and b/sounds/Digging/Digging15.ogg differ diff --git a/sounds/Digging/Digging16.ogg b/sounds/Digging/Digging16.ogg new file mode 100644 index 000000000..316e939b6 Binary files /dev/null and b/sounds/Digging/Digging16.ogg differ diff --git a/sounds/Digging/Digging17.ogg b/sounds/Digging/Digging17.ogg new file mode 100644 index 000000000..c2cf36e10 Binary files /dev/null and b/sounds/Digging/Digging17.ogg differ diff --git a/sounds/Digging/Digging18.ogg b/sounds/Digging/Digging18.ogg new file mode 100644 index 000000000..8fee20c48 Binary files /dev/null and b/sounds/Digging/Digging18.ogg differ diff --git a/sounds/RocksFalling/RocksFalling01.ogg b/sounds/RocksFalling/RocksFalling01.ogg new file mode 100644 index 000000000..f0bc825b6 Binary files /dev/null and b/sounds/RocksFalling/RocksFalling01.ogg differ diff --git a/sounds/RocksFalling/RocksFalling02.ogg b/sounds/RocksFalling/RocksFalling02.ogg new file mode 100644 index 000000000..32274de3a Binary files /dev/null and b/sounds/RocksFalling/RocksFalling02.ogg differ diff --git a/sounds/RocksFalling/RocksFalling03.ogg b/sounds/RocksFalling/RocksFalling03.ogg new file mode 100644 index 000000000..9f887cb65 Binary files /dev/null and b/sounds/RocksFalling/RocksFalling03.ogg differ diff --git a/sounds/RocksFalling/RocksFalling04.ogg b/sounds/RocksFalling/RocksFalling04.ogg new file mode 100644 index 000000000..7f93384b9 Binary files /dev/null and b/sounds/RocksFalling/RocksFalling04.ogg differ diff --git a/sounds/RocksFalling/RocksFalling05.ogg b/sounds/RocksFalling/RocksFalling05.ogg new file mode 100644 index 000000000..937fe27ce Binary files /dev/null and b/sounds/RocksFalling/RocksFalling05.ogg differ diff --git a/sounds/RocksFalling/RocksFalling06.ogg b/sounds/RocksFalling/RocksFalling06.ogg new file mode 100644 index 000000000..b5ccfb84f Binary files /dev/null and b/sounds/RocksFalling/RocksFalling06.ogg differ diff --git a/sounds/RocksFalling/RocksFalling07.ogg b/sounds/RocksFalling/RocksFalling07.ogg new file mode 100644 index 000000000..fd1eab056 Binary files /dev/null and b/sounds/RocksFalling/RocksFalling07.ogg differ diff --git a/sounds/RoomBuild/bump.ogg b/sounds/RoomBuild/bump.ogg new file mode 100644 index 000000000..0f160a42d Binary files /dev/null and b/sounds/RoomBuild/bump.ogg differ diff --git a/sounds/Sword/SwordBlock01.ogg b/sounds/Sword/SwordBlock01.ogg new file mode 100644 index 000000000..b408924d6 Binary files /dev/null and b/sounds/Sword/SwordBlock01.ogg differ diff --git a/sounds/Sword/SwordBlock02.ogg b/sounds/Sword/SwordBlock02.ogg new file mode 100644 index 000000000..0ad1214ce Binary files /dev/null and b/sounds/Sword/SwordBlock02.ogg differ diff --git a/sounds/Sword/SwordBlock03.ogg b/sounds/Sword/SwordBlock03.ogg new file mode 100644 index 000000000..ddbee3f79 Binary files /dev/null and b/sounds/Sword/SwordBlock03.ogg differ diff --git a/sounds/Sword/SwordBlock04.ogg b/sounds/Sword/SwordBlock04.ogg new file mode 100644 index 000000000..3a37e9dc9 Binary files /dev/null and b/sounds/Sword/SwordBlock04.ogg differ diff --git a/sounds/Sword/SwordBlock05.ogg b/sounds/Sword/SwordBlock05.ogg new file mode 100644 index 000000000..568222f66 Binary files /dev/null and b/sounds/Sword/SwordBlock05.ogg differ diff --git a/sounds/Sword/SwordBlock06.ogg b/sounds/Sword/SwordBlock06.ogg new file mode 100644 index 000000000..85e5db8f2 Binary files /dev/null and b/sounds/Sword/SwordBlock06.ogg differ diff --git a/sounds/Sword/SwordBlock07.ogg b/sounds/Sword/SwordBlock07.ogg new file mode 100644 index 000000000..07adb342f Binary files /dev/null and b/sounds/Sword/SwordBlock07.ogg differ