diff --git a/.gitignore b/.gitignore
index 2df65a565..e706f4140 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,6 +27,8 @@
*.exp
*.zip
*.swo
+*.swm
+*.swn
*.opensdf
*.user.*
*.xcuserstate
@@ -86,6 +88,16 @@ Player/Build/Mac OS X/Polycode Player.xcodeproj/project.xcworkspace/xcuserdata/i
!/IDE/Build/Windows/Polycode.rc
!/IDE/Build/Windows/resource.h
+/IDE/Build/Windows2013/*
+!/IDE/Build/Windows2013/main.cpp
+!/IDE/Build/Windows2013/Polycode.props
+!/IDE/Build/Windows2013/Polycode.sln
+!/IDE/Build/Windows2013/Polycode.vcxproj
+!/IDE/Build/Windows2013/Polycode.vcxproj.filters
+!/IDE/Build/Windows2013/Polycode.vcxproj.user
+!/IDE/Build/Windows2013/Polycode.rc
+!/IDE/Build/Windows2013/resource.h
+
/IDE/Build/Linux/Build
/Core/Build/Mac\ OS\ X/build
@@ -104,14 +116,19 @@ Debug
Release
/Build
/Documentation/Doxygen/output/standalone/Polycode
+/Documentation/Doxygen/output/standalone/Core
/Documentation/Doxygen/output/standalone/Physics2D
/Documentation/Doxygen/output/standalone/Physics3D
/Documentation/Doxygen/output/standalone/Networking
+/Documentation/Doxygen/output/standalone/PolycodeUI
/Documentation/Doxygen/output/web/Polycode
+/Documentation/Doxygen/output/web/Core
/Documentation/Doxygen/output/web/Physics2D
/Documentation/Doxygen/output/web/Physics3D
/Documentation/Doxygen/output/web/Networking
+/Documentation/Doxygen/html
+/Documentation/Doxygen/latex
/Tools/Build/Linux/polybuild*
/Tools/Build/Linux/polyimport*
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 000000000..a769e0874
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,7 @@
+language: cpp
+
+sudo: required
+
+install: ./setup-travis.sh
+
+script: ./BuildLinux.sh
diff --git a/Assets/CMakeLists.txt b/Assets/CMakeLists.txt
new file mode 100644
index 000000000..38de0465d
--- /dev/null
+++ b/Assets/CMakeLists.txt
@@ -0,0 +1,6 @@
+ADD_SUBDIRECTORY("Default asset pack")
+ADD_SUBDIRECTORY("Templates")
+
+IF(POLYCODE_INSTALL_FRAMEWORK)
+ INSTALL(FILES UIThemes.pak DESTINATION Modules/Assets)
+ENDIF(POLYCODE_INSTALL_FRAMEWORK)
\ No newline at end of file
diff --git a/Assets/Default asset pack/default.pak b/Assets/Default asset pack/default.pak
index 1fbdf8078..4f0e05f22 100644
Binary files a/Assets/Default asset pack/default.pak and b/Assets/Default asset pack/default.pak differ
diff --git a/Assets/Default asset pack/default/ColSpecEmit.frag b/Assets/Default asset pack/default/ColSpecEmit.frag
new file mode 100644
index 000000000..7785685bb
--- /dev/null
+++ b/Assets/Default asset pack/default/ColSpecEmit.frag
@@ -0,0 +1,129 @@
+varying vec3 normal;
+varying vec4 pos;
+varying vec4 vertexColor;
+
+uniform sampler2D diffuse;
+uniform sampler2D specular_map;
+uniform sampler2D emit_map;
+
+uniform vec4 diffuse_color;
+uniform vec4 specular_color;
+uniform vec4 ambient_color;
+uniform float shininess;
+
+float calculateAttenuation(in int i, in float dist)
+{
+ return(1.0 / (gl_LightSource[i].constantAttenuation +
+ gl_LightSource[i].linearAttenuation * dist +
+ gl_LightSource[i].quadraticAttenuation * dist * dist));
+}
+
+void pointLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout vec4 specular) {
+ vec4 color = diffuse_color;
+ vec4 matspec = specular_color;
+ float shininess = shininess;
+ vec4 lightspec = gl_LightSource[i].specular;
+ vec4 lpos = gl_LightSource[i].position;
+ vec4 s = pos-lpos;
+ vec4 sn = -normalize(s);
+
+ vec3 light = sn.xyz;
+ vec3 n = normalize(normal);
+ vec3 r = -reflect(light, n);
+ r = normalize(r);
+ vec3 v = -pos.xyz;
+ v = normalize(v);
+
+ float nDotL = dot(n, sn.xyz);
+ if(nDotL > 0.0) {
+ float dist = length(s);
+ float attenuation = calculateAttenuation(i, dist);
+
+ diffuse += color * max(0.0, nDotL) * gl_LightSource[i].diffuse * attenuation;
+
+ if (shininess != 0.0) {
+ specular += lightspec * matspec * pow(max(0.0,dot(r, v)), shininess) * attenuation;
+ }
+ }
+}
+
+
+void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout vec4 specular) {
+ vec4 color = diffuse_color;
+ vec4 matspec = specular_color;
+ float shininess = shininess;
+ vec4 lightspec = gl_LightSource[i].specular;
+ vec4 lpos = gl_LightSource[i].position;
+ vec4 s = pos-lpos;
+ vec4 sn = -normalize(s);
+
+ vec3 light = sn.xyz;
+ vec3 n = normalize(normal);
+ vec3 r = -reflect(light, n);
+ r = normalize(r);
+ vec3 v = -pos.xyz;
+ v = normalize(v);
+
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
+ float cos_cur_angle = dot(-normalize(gl_LightSource[i].spotDirection), sn.xyz);
+ float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
+
+ float cos_inner_minus_outer_angle = cos_inner_cone_angle - cos_outer_cone_angle;
+ float spot = 0.0;
+ spot = clamp((cos_cur_angle - cos_outer_cone_angle) / cos_inner_minus_outer_angle, 0.0, 1.0);
+
+ float nDotL = dot(n, sn.xyz);
+ if(nDotL > 0.0) {
+ float dist = length(s);
+ float attenuation = calculateAttenuation(i, dist);
+ diffuse += color * max(0.0, nDotL) * gl_LightSource[i].diffuse * attenuation * spot;
+
+ if (shininess != 0.0) {
+ specular += lightspec * matspec * pow(max(0.0,dot(r, v)), shininess) * attenuation * spot;
+ }
+ }
+}
+
+void doLights(in int numLights, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout vec4 specular) {
+ for (int i = 0; i < numLights; i++) {
+ if (gl_LightSource[i].spotCutoff == 180.0) {
+ pointLight(i, normal, pos, diffuse, specular);
+ } else {
+ spotLight(i, normal, pos, diffuse, specular);
+ }
+ }
+}
+
+
+void main()
+{
+ vec4 diffuse_val = vec4(0.0);
+ vec4 specular_val = vec4(0.0);
+ doLights(6, normal, pos, diffuse_val, specular_val);
+
+ specular_val.xyz *= texture2D(specular_map, gl_TexCoord[0].st).xyz * gl_FrontMaterial.specular.a;
+
+ vec4 emitVal = texture2D(emit_map, gl_TexCoord[0].st);
+ vec4 texColor = texture2D(diffuse, gl_TexCoord[0].st);
+
+ vec4 color = diffuse_val + ambient_color;
+ color = clamp((color*vertexColor*texColor) + specular_val, 0.0, 1.0);
+
+ // fog
+ const float LOG2 = 1.442695;
+ float z = gl_FragCoord.z / gl_FragCoord.w;
+ float fogFactor = exp2( -gl_Fog.density *
+ gl_Fog.density *
+ z *
+ z *
+ LOG2 );
+
+ fogFactor = clamp(fogFactor, 0.0, 1.0);
+
+ color = mix(color, texColor, emitVal);
+
+ color = mix(gl_Fog.color, color, fogFactor );
+ color.a = vertexColor.a * texColor.a * diffuse_color.a;
+ gl_FragColor = color;
+
+}
diff --git a/Assets/Default asset pack/default/DefaultParticleShader.frag b/Assets/Default asset pack/default/DefaultParticleShader.frag
index 647ac8b6e..3711d70ed 100644
--- a/Assets/Default asset pack/default/DefaultParticleShader.frag
+++ b/Assets/Default asset pack/default/DefaultParticleShader.frag
@@ -48,7 +48,7 @@ void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse) {
vec3 v = -pos.xyz;
v = normalize(v);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-normalize(gl_LightSource[i].spotDirection), sn.xyz);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
@@ -96,7 +96,7 @@ void main()
fogFactor = clamp(fogFactor, 0.0, 1.0);
color = mix(gl_Fog.color, color, fogFactor );
- color.a = diffuse_color.a * texColor.a;
+ color.a = diffuse_color.a * texColor.a * vertexColor.a;
gl_FragColor = color;
}
diff --git a/Assets/Default asset pack/default/DefaultShader.frag b/Assets/Default asset pack/default/DefaultShader.frag
index 40477edb3..f004c93c3 100644
--- a/Assets/Default asset pack/default/DefaultShader.frag
+++ b/Assets/Default asset pack/default/DefaultShader.frag
@@ -61,7 +61,7 @@ void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout
vec3 v = -pos.xyz;
v = normalize(v);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-normalize(gl_LightSource[i].spotDirection), sn.xyz);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
@@ -115,7 +115,7 @@ void main()
fogFactor = clamp(fogFactor, 0.0, 1.0);
color = mix(gl_Fog.color, color, fogFactor );
- color.a = vertexColor.a * texColor.a;
+ color.a = vertexColor.a * texColor.a * diffuse_color.a;
gl_FragColor = color;
}
diff --git a/Assets/Default asset pack/default/DefaultShaderNoTexture.frag b/Assets/Default asset pack/default/DefaultShaderNoTexture.frag
index ae325aafa..b84ac62f4 100644
--- a/Assets/Default asset pack/default/DefaultShaderNoTexture.frag
+++ b/Assets/Default asset pack/default/DefaultShaderNoTexture.frag
@@ -60,7 +60,7 @@ void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout
vec3 v = -pos.xyz;
v = normalize(v);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-normalize(gl_LightSource[i].spotDirection), sn.xyz);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
diff --git a/Assets/Default asset pack/default/DefaultShaderShadows.frag b/Assets/Default asset pack/default/DefaultShaderShadows.frag
index 7afdf1642..cdd038bda 100644
--- a/Assets/Default asset pack/default/DefaultShaderShadows.frag
+++ b/Assets/Default asset pack/default/DefaultShaderShadows.frag
@@ -8,14 +8,13 @@ uniform sampler2D diffuse;
uniform sampler2D shadowMap0;
uniform sampler2D shadowMap1;
-uniform mat4 shadowMatrix0;
-uniform mat4 shadowMatrix1;
-
uniform vec4 diffuse_color;
uniform vec4 specular_color;
uniform vec4 ambient_color;
uniform float shininess;
+uniform float shadowAmount;
+
float calculateAttenuation(in int i, in float dist)
{
@@ -57,12 +56,14 @@ void pointLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout
void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout vec4 specular, sampler2D shadowMap, vec4 ShadowCoord) {
vec4 shadowCoordinateWdivide = ShadowCoord / ShadowCoord.w;
- shadowCoordinateWdivide.z -= 0.000005;
+ //shadowCoordinateWdivide.z -= 0.00005;
float distanceFromLight = texture2D(shadowMap,shadowCoordinateWdivide.st).z;
float shadow = 1.0;
- if (shadowCoordinateWdivide.x > 0.01 && shadowCoordinateWdivide.y > 0.01 && shadowCoordinateWdivide.x < 0.99 && shadowCoordinateWdivide.y < 0.99)
+ if (shadowCoordinateWdivide.x > 0.001 && shadowCoordinateWdivide.y > 0.001 && shadowCoordinateWdivide.x < 0.999 && shadowCoordinateWdivide.y < 0.999)
shadow = distanceFromLight < shadowCoordinateWdivide.z ? 0.0 : 1.0 ;
+ shadow = clamp(shadow+(1.0-shadowAmount), 0.0, 1.0);
+
vec4 color = diffuse_color;
vec4 matspec = specular_color;
float shininess = shininess;
@@ -78,7 +79,7 @@ void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout
vec3 v = -pos.xyz;
v = normalize(v);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-normalize(gl_LightSource[i].spotDirection), sn.xyz);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
diff --git a/Assets/Default asset pack/default/DefaultShaderVertex.vert b/Assets/Default asset pack/default/DefaultShaderVertex.vert
index 6068652e7..025b3f5fd 100644
--- a/Assets/Default asset pack/default/DefaultShaderVertex.vert
+++ b/Assets/Default asset pack/default/DefaultShaderVertex.vert
@@ -56,7 +56,7 @@ void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout
vec3 v = -pos.xyz;
v = normalize(v);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-normalize(gl_LightSource[i].spotDirection), sn.xyz);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
diff --git a/Assets/Default asset pack/default/GPUSkinning.vert b/Assets/Default asset pack/default/GPUSkinning.vert
new file mode 100644
index 000000000..f7e7ccbc7
--- /dev/null
+++ b/Assets/Default asset pack/default/GPUSkinning.vert
@@ -0,0 +1,64 @@
+#define MAX_JOINT_COUNT 64
+
+uniform mat4 skeletonMatrix[MAX_JOINT_COUNT];
+
+attribute vec4 vBoneIndices;
+attribute vec4 vBoneWeights;
+
+varying vec3 normal;
+varying vec4 pos;
+varying vec4 rawpos;
+varying vec4 vertexColor;
+
+
+mat3 m3( mat4 m )
+{
+ mat3 result;
+
+ result[0][0] = m[0][0];
+ result[0][1] = m[0][1];
+ result[0][2] = m[0][2];
+
+
+ result[1][0] = m[1][0];
+ result[1][1] = m[1][1];
+ result[1][2] = m[1][2];
+
+ result[2][0] = m[2][0];
+ result[2][1] = m[2][1];
+ result[2][2] = m[2][2];
+
+ return result;
+}
+
+
+void jointInfluence(in mat4 joint_matrix, in float weight, in vec4 position, inout vec4 outPosition, in vec3 normal, inout vec3 outNormal)
+{
+ outPosition += weight * (joint_matrix * position);
+
+ mat3 normalMatrix = m3(joint_matrix);
+ outNormal += weight * (normalMatrix * normal);
+}
+
+void main() {
+
+ vec4 inVert = gl_Vertex;
+ vec4 outVert = vec4(0.0, 0.0, 0.0, 0.0);
+
+ vec3 inNormal = gl_Normal;
+ vec3 outNormal = vec3(0.0, 0.0, 0.0);
+
+ jointInfluence(skeletonMatrix[int(vBoneIndices.x)], vBoneWeights.x, inVert, outVert, inNormal, outNormal);
+ jointInfluence(skeletonMatrix[int(vBoneIndices.y)], vBoneWeights.y, inVert, outVert, inNormal, outNormal);
+ jointInfluence(skeletonMatrix[int(vBoneIndices.z)], vBoneWeights.z, inVert, outVert, inNormal, outNormal);
+ jointInfluence(skeletonMatrix[int(vBoneIndices.w)], vBoneWeights.w, inVert, outVert, inNormal, outNormal);
+
+ outVert.w = 1.0;
+
+ normal = gl_NormalMatrix * normalize(outNormal);
+ gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * outVert;
+ pos = gl_ModelViewMatrix * outVert;
+ rawpos = outVert;
+ vertexColor = gl_Color;
+ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+}
\ No newline at end of file
diff --git a/Assets/Default asset pack/default/LightCube.frag b/Assets/Default asset pack/default/LightCube.frag
index 86099931c..bbd21e0d0 100644
--- a/Assets/Default asset pack/default/LightCube.frag
+++ b/Assets/Default asset pack/default/LightCube.frag
@@ -2,10 +2,29 @@ uniform samplerCube lightCube;
varying vec4 vertexColor;
varying vec3 normal;
uniform vec4 ambient_color;
+varying vec3 worldNormal;
+
+uniform float lightFactor;
+
+vec3 hash3( float n )
+{
+ return fract(sin(vec3(n,n+1.0,n+2.0))*vec3(43758.5453123,22578.1459123,19642.3490423));
+}
void main()
{
- vec4 texColor = textureCube(lightCube, normal);
+ vec3 col = vec3(0.0);
+ for( int i=0; i<32; i++ )
+ {
+ vec3 rr = normalize(-1.0 + 2.0*hash3(float(i)*123.5463));
+ rr = normalize( worldNormal + 7.0*rr );
+ rr = rr * sign(dot(worldNormal,rr));
+ col += pow( textureCube( lightCube, rr ).xyz, vec3(2.2) ) * dot(rr,worldNormal);
+ }
+
+ col = col * lightFactor;
+
+ vec4 texColor = vec4(col, 1.0);
vec4 color = vec4(1.0,1.0,1.0,1.0) + ambient_color;
color = clamp((color*vertexColor*texColor), 0.0, 1.0);
diff --git a/Assets/Default asset pack/default/LightCube.vert b/Assets/Default asset pack/default/LightCube.vert
new file mode 100644
index 000000000..ba735ebbb
--- /dev/null
+++ b/Assets/Default asset pack/default/LightCube.vert
@@ -0,0 +1,28 @@
+varying vec3 normal;
+varying vec3 worldNormal;
+varying vec4 pos;
+varying vec4 rawpos;
+varying vec4 vertexColor;
+
+uniform mat4 modelMatrix;
+
+mat3 mat3_emu(mat4 m4) {
+ return mat3(
+ m4[0][0], m4[0][1], m4[0][2],
+ m4[1][0], m4[1][1], m4[1][2],
+ m4[2][0], m4[2][1], m4[2][2]);
+}
+
+void main() {
+ normal = gl_NormalMatrix * gl_Normal;
+
+ mat3 rotN = mat3_emu(modelMatrix);
+ worldNormal = rotN * gl_Normal;
+ worldNormal = normalize(worldNormal);
+
+ gl_Position = ftransform();
+ pos = gl_ModelViewMatrix * gl_Vertex;
+ rawpos = gl_Vertex;
+ vertexColor = gl_Color;
+ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+}
\ No newline at end of file
diff --git a/Assets/Default asset pack/default/NorColSpec.frag b/Assets/Default asset pack/default/NorColSpec.frag
index 391b2ff75..e5728e9fb 100644
--- a/Assets/Default asset pack/default/NorColSpec.frag
+++ b/Assets/Default asset pack/default/NorColSpec.frag
@@ -7,6 +7,7 @@ varying vec4 vertexColor;
uniform sampler2D diffuse;
uniform sampler2D normal_map;
uniform sampler2D specular_map;
+uniform sampler2D emit_map;
uniform vec4 diffuse_color;
uniform vec4 specular_color;
@@ -89,7 +90,7 @@ void spotLight(in int i, in vec3 bump, in vec3 normal, in vec3 tangent, in vec3
lDir = normalize(lDir);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-lDir, lVec);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
diff --git a/Assets/Default asset pack/default/SkyBox.frag b/Assets/Default asset pack/default/SkyBox.frag
new file mode 100644
index 000000000..ddfff7695
--- /dev/null
+++ b/Assets/Default asset pack/default/SkyBox.frag
@@ -0,0 +1,28 @@
+uniform samplerCube lightCube;
+varying vec4 vertexColor;
+varying vec3 normal;
+uniform vec4 ambient_color;
+varying vec3 worldNormal;
+
+void main()
+{
+ vec4 texColor = textureCube(lightCube, worldNormal * -1.0);
+
+ vec4 color = vec4(1.0,1.0,1.0,1.0) + ambient_color;
+ color = clamp((color*vertexColor*texColor), 0.0, 1.0);
+
+ // fog
+ const float LOG2 = 1.442695;
+ float z = gl_FragCoord.z / gl_FragCoord.w;
+ float fogFactor = exp2( -gl_Fog.density *
+ gl_Fog.density *
+ z *
+ z *
+ LOG2 );
+
+ fogFactor = clamp(fogFactor, 0.0, 1.0);
+ color = mix(gl_Fog.color, color, fogFactor );
+
+ color.a = vertexColor.a * texColor.a;
+ gl_FragColor = color;
+}
\ No newline at end of file
diff --git a/Assets/Default asset pack/default/UnlitUntextured.frag b/Assets/Default asset pack/default/UnlitUntextured.frag
new file mode 100644
index 000000000..dc41b4aaf
--- /dev/null
+++ b/Assets/Default asset pack/default/UnlitUntextured.frag
@@ -0,0 +1,7 @@
+
+varying vec4 vertexColor;
+
+void main()
+{
+ gl_FragColor = vertexColor;
+}
\ No newline at end of file
diff --git a/Assets/Default asset pack/default/default.mat b/Assets/Default asset pack/default/default.mat
index 7c9b4e7c3..695146a76 100644
--- a/Assets/Default asset pack/default/default.mat
+++ b/Assets/Default asset pack/default/default.mat
@@ -1,39 +1,51 @@
-
+
-
-
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
-
+
@@ -43,6 +55,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -52,6 +76,84 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assets/Default asset pack/hdr.pak b/Assets/Default asset pack/hdr.pak
index 3affefbbf..357f849c6 100644
Binary files a/Assets/Default asset pack/hdr.pak and b/Assets/Default asset pack/hdr.pak differ
diff --git a/Assets/Default asset pack/hdr/DefaultShaderNoTextureHDR.frag b/Assets/Default asset pack/hdr/DefaultShaderNoTextureHDR.frag
index eed7a6568..234b2532d 100644
--- a/Assets/Default asset pack/hdr/DefaultShaderNoTextureHDR.frag
+++ b/Assets/Default asset pack/hdr/DefaultShaderNoTextureHDR.frag
@@ -60,7 +60,7 @@ void spotLight(in int i, in vec3 normal, in vec4 pos, inout vec4 diffuse, inout
vec3 v = -pos.xyz;
v = normalize(v);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-normalize(gl_LightSource[i].spotDirection), sn.xyz);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
diff --git a/Assets/Default asset pack/hdr/NorColSpecHDR.frag b/Assets/Default asset pack/hdr/NorColSpecHDR.frag
index f34fef7f9..d475653ec 100644
--- a/Assets/Default asset pack/hdr/NorColSpecHDR.frag
+++ b/Assets/Default asset pack/hdr/NorColSpecHDR.frag
@@ -89,7 +89,7 @@ void spotLight(in int i, in vec3 bump, in vec3 normal, in vec3 tangent, in vec3
lDir = normalize(lDir);
- float cos_outer_cone_angle = gl_LightSource[i].spotExponent;
+ float cos_outer_cone_angle = (1.0-gl_LightSource[i].spotExponent) * gl_LightSource[i].spotCosCutoff;
float cos_cur_angle = dot(-lDir, lVec);
float cos_inner_cone_angle = gl_LightSource[i].spotCosCutoff;
diff --git a/Assets/Default asset pack/hdr/fxaa.frag b/Assets/Default asset pack/hdr/fxaa.frag
new file mode 100644
index 000000000..92ea12971
--- /dev/null
+++ b/Assets/Default asset pack/hdr/fxaa.frag
@@ -0,0 +1,153 @@
+// FXAA shader, GLSL code adapted from:
+
+// http://horde3d.org/wiki/index.php5?title=Shading_Technique_-_FXAA
+
+// Whitepaper describing the technique:
+
+// http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
+
+
+
+uniform sampler2D textureSampler;
+
+
+
+// The inverse of the texture dimensions along X and Y
+
+
+vec3 rgb2hsv(vec3 c)
+
+{
+
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+
+
+
+ float d = q.x - min(q.w, q.y);
+
+ float e = 1.0e-10;
+
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+
+}
+
+
+
+vec3 hsv2rgb(vec3 c)
+
+{
+
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
+
+}
+
+
+
+void main() {
+
+ // The parameters are hardcoded for now, but could be
+
+ // made into uniforms to control fromt he program.
+
+ float FXAA_SPAN_MAX = 8.0;
+
+ float FXAA_REDUCE_MUL = 1.0/8.0;
+
+ float FXAA_REDUCE_MIN = (1.0/128.0);
+
+ vec2 texcoordOffset = vec2(0.0005, 0.0005);
+
+
+ vec3 rgbNW = texture2D(textureSampler, gl_TexCoord[0].st + (vec2(-1.0, -1.0) * texcoordOffset)).xyz;
+
+ vec3 rgbNE = texture2D(textureSampler, gl_TexCoord[0].st + (vec2(+1.0, -1.0) * texcoordOffset)).xyz;
+
+ vec3 rgbSW = texture2D(textureSampler, gl_TexCoord[0].st + (vec2(-1.0, +1.0) * texcoordOffset)).xyz;
+
+ vec3 rgbSE = texture2D(textureSampler, gl_TexCoord[0].st + (vec2(+1.0, +1.0) * texcoordOffset)).xyz;
+
+ vec3 rgbM = texture2D(textureSampler, gl_TexCoord[0].st).xyz;
+
+
+ vec3 luma = vec3(0.299, 0.587, 0.114);
+
+ float lumaNW = dot(rgbNW, luma);
+
+ float lumaNE = dot(rgbNE, luma);
+
+ float lumaSW = dot(rgbSW, luma);
+
+ float lumaSE = dot(rgbSE, luma);
+
+ float lumaM = dot( rgbM, luma);
+
+
+ float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
+
+ float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
+
+
+ vec2 dir;
+
+ dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
+
+ dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
+
+
+ float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
+
+
+
+ float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
+
+
+ dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),
+
+ max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), dir * rcpDirMin)) * texcoordOffset;
+
+
+ vec3 rgbA = (1.0/2.0) * (
+
+ texture2D(textureSampler, gl_TexCoord[0].st + dir * (1.0/3.0 - 0.5)).xyz +
+
+ texture2D(textureSampler, gl_TexCoord[0].st + dir * (2.0/3.0 - 0.5)).xyz);
+
+ vec3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * (
+
+ texture2D(textureSampler, gl_TexCoord[0].st + dir * (0.0/3.0 - 0.5)).xyz +
+
+ texture2D(textureSampler, gl_TexCoord[0].st + dir * (3.0/3.0 - 0.5)).xyz);
+
+ float lumaB = dot(rgbB, luma);
+
+
+
+ if((lumaB < lumaMin) || (lumaB > lumaMax)){
+
+ gl_FragColor.xyz=rgbA;
+
+ } else {
+
+ gl_FragColor.xyz=rgbB;
+
+ }
+
+
+
+ vec3 hsv = rgb2hsv(gl_FragColor.xyz);
+
+ hsv.y += 0.1 * (1.0 - hsv.y);
+
+ gl_FragColor = vec4(hsv2rgb(hsv), texture2D(textureSampler, gl_TexCoord[0].st).a);
+
+
+
+}
\ No newline at end of file
diff --git a/Assets/Default asset pack/hdr/hdr.mat b/Assets/Default asset pack/hdr/hdr.mat
index 61f1aac8c..c87b4f092 100644
--- a/Assets/Default asset pack/hdr/hdr.mat
+++ b/Assets/Default asset pack/hdr/hdr.mat
@@ -1,11 +1,11 @@
-
+
-
+
@@ -28,31 +28,71 @@
-
+
+
+
+
+
-
+
-
+
+
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -68,10 +108,9 @@
-
-
+
diff --git a/Assets/Icons/Icon_base.psd b/Assets/Icons/Icon_base.psd
index f737d07ff..906e72960 100644
Binary files a/Assets/Icons/Icon_base.psd and b/Assets/Icons/Icon_base.psd differ
diff --git a/Assets/Icons/icons.ai b/Assets/Icons/icons.ai
new file mode 100644
index 000000000..c55ea1b3f
--- /dev/null
+++ b/Assets/Icons/icons.ai
@@ -0,0 +1,1662 @@
+%PDF-1.5
%âãÏÓ
+1 0 obj
<>/OCGs[5 0 R 56 0 R 93 0 R 130 0 R 160 0 R 196 0 R 223 0 R 250 0 R 269 0 R 288 0 R 307 0 R 326 0 R 345 0 R 364 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<>stream
+
+
+
+
+ application/pdf
+
+
+ Print
+
+
+ 2014-03-04T18:26:03-05:00
+ 2014-03-04T18:26:03-05:00
+ 2013-08-10T21:14:26-04:00
+ Adobe Illustrator CS5
+
+
+
+ 256
+ 80
+ JPEG
+ /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAUAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXnPnf89fJXliSS
0jkbVtUjJVrS0IKIw7STH4F32IHIjwwWkB5JrP8Azk553unYabaWemwn7HwtPKPm7kIf+AxtlwpF
/wAr+/Nf1Of6aXjWvp/VbTj8v7rl+OC14Qnmjf8AOTfni0kUana2epQ/t/A0Ep+ToSg/4A4bXhet
+Sfz38leZpI7SWRtI1OSirbXZUI7HbjHMPhbfYBuJPhjbEh6PhQ7FXYq7FWA/nX/AMocn/MXF/xF
8wO0v7v4u47D/v8A/NP6GLad+Vmj3Wn21y93cK88SSMBwoC6hjT4ffKIdnQMQbO7k5e28kZmPDHY
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
/9k=
+
+
+
+ uuid:98034e66-53cf-4745-b8bd-d999dcab1d94
+ xmp.did:0180117407206811808397AB94C20DD2
+ uuid:5D20892493BFDB11914A8590D31508C8
+ proof:pdf
+
+ uuid:ae9148ef-3000-a144-9ee3-ddb3557e196e
+ xmp.did:8AF5709C0E20681188C6A12CE4B46A4D
+ uuid:5D20892493BFDB11914A8590D31508C8
+ proof:pdf
+
+
+
+
+ saved
+ xmp.iid:0180117407206811808397AB94C20DD2
+ 2013-08-10T21:14:26-04:00
+ Adobe Illustrator CS5
+ /
+
+
+
+ Document
+ Print
+ False
+ False
+ 1
+
+ 612.000000
+ 792.000000
+ Points
+
+
+
+ Cyan
+ Magenta
+ Yellow
+ Black
+
+
+
+
+
+ Default Swatch Group
+ 0
+
+
+
+ White
+ RGB
+ PROCESS
+ 255
+ 255
+ 255
+
+
+ Black
+ RGB
+ PROCESS
+ 35
+ 31
+ 32
+
+
+ CMYK Red
+ RGB
+ PROCESS
+ 236
+ 28
+ 36
+
+
+ CMYK Yellow
+ RGB
+ PROCESS
+ 255
+ 241
+ 0
+
+
+ CMYK Green
+ RGB
+ PROCESS
+ 0
+ 165
+ 81
+
+
+ CMYK Cyan
+ RGB
+ PROCESS
+ 0
+ 173
+ 238
+
+
+ CMYK Blue
+ RGB
+ PROCESS
+ 46
+ 49
+ 145
+
+
+ CMYK Magenta
+ RGB
+ PROCESS
+ 235
+ 0
+ 139
+
+
+ C=15 M=100 Y=90 K=10
+ RGB
+ PROCESS
+ 190
+ 30
+ 45
+
+
+ C=0 M=90 Y=85 K=0
+ RGB
+ PROCESS
+ 238
+ 64
+ 54
+
+
+ C=0 M=80 Y=95 K=0
+ RGB
+ PROCESS
+ 240
+ 90
+ 40
+
+
+ C=0 M=50 Y=100 K=0
+ RGB
+ PROCESS
+ 246
+ 146
+ 30
+
+
+ C=0 M=35 Y=85 K=0
+ RGB
+ PROCESS
+ 250
+ 175
+ 64
+
+
+ C=5 M=0 Y=90 K=0
+ RGB
+ PROCESS
+ 249
+ 236
+ 49
+
+
+ C=20 M=0 Y=100 K=0
+ RGB
+ PROCESS
+ 214
+ 222
+ 35
+
+
+ C=50 M=0 Y=100 K=0
+ RGB
+ PROCESS
+ 139
+ 197
+ 63
+
+
+ C=75 M=0 Y=100 K=0
+ RGB
+ PROCESS
+ 55
+ 179
+ 74
+
+
+ C=85 M=10 Y=100 K=10
+ RGB
+ PROCESS
+ 0
+ 147
+ 69
+
+
+ C=90 M=30 Y=95 K=30
+ RGB
+ PROCESS
+ 0
+ 104
+ 56
+
+
+ C=75 M=0 Y=75 K=0
+ RGB
+ PROCESS
+ 41
+ 180
+ 115
+
+
+ C=80 M=10 Y=45 K=0
+ RGB
+ PROCESS
+ 0
+ 166
+ 156
+
+
+ C=70 M=15 Y=0 K=0
+ RGB
+ PROCESS
+ 38
+ 169
+ 224
+
+
+ C=85 M=50 Y=0 K=0
+ RGB
+ PROCESS
+ 27
+ 117
+ 187
+
+
+ C=100 M=95 Y=5 K=0
+ RGB
+ PROCESS
+ 43
+ 56
+ 143
+
+
+ C=100 M=100 Y=25 K=25
+ RGB
+ PROCESS
+ 38
+ 34
+ 97
+
+
+ C=75 M=100 Y=0 K=0
+ RGB
+ PROCESS
+ 101
+ 45
+ 144
+
+
+ C=50 M=100 Y=0 K=0
+ RGB
+ PROCESS
+ 144
+ 39
+ 142
+
+
+ C=35 M=100 Y=35 K=10
+ RGB
+ PROCESS
+ 158
+ 31
+ 99
+
+
+ C=10 M=100 Y=50 K=0
+ RGB
+ PROCESS
+ 217
+ 28
+ 92
+
+
+ C=0 M=95 Y=20 K=0
+ RGB
+ PROCESS
+ 236
+ 41
+ 123
+
+
+ C=25 M=25 Y=40 K=0
+ RGB
+ PROCESS
+ 193
+ 180
+ 154
+
+
+ C=40 M=45 Y=50 K=5
+ RGB
+ PROCESS
+ 154
+ 132
+ 121
+
+
+ C=50 M=50 Y=60 K=25
+ RGB
+ PROCESS
+ 113
+ 101
+ 88
+
+
+ C=55 M=60 Y=65 K=40
+ RGB
+ PROCESS
+ 90
+ 74
+ 66
+
+
+ C=25 M=40 Y=65 K=0
+ RGB
+ PROCESS
+ 195
+ 153
+ 107
+
+
+ C=30 M=50 Y=75 K=10
+ RGB
+ PROCESS
+ 168
+ 124
+ 79
+
+
+ C=35 M=60 Y=80 K=25
+ RGB
+ PROCESS
+ 138
+ 93
+ 59
+
+
+ C=40 M=65 Y=90 K=35
+ RGB
+ PROCESS
+ 117
+ 76
+ 40
+
+
+ C=40 M=70 Y=100 K=50
+ RGB
+ PROCESS
+ 96
+ 56
+ 19
+
+
+ C=50 M=70 Y=80 K=70
+ RGB
+ PROCESS
+ 59
+ 35
+ 20
+
+
+
+
+
+ Grays
+ 1
+
+
+
+ C=0 M=0 Y=0 K=100
+ RGB
+ PROCESS
+ 35
+ 31
+ 32
+
+
+ C=0 M=0 Y=0 K=90
+ RGB
+ PROCESS
+ 64
+ 64
+ 65
+
+
+ C=0 M=0 Y=0 K=80
+ RGB
+ PROCESS
+ 88
+ 89
+ 91
+
+
+ C=0 M=0 Y=0 K=70
+ RGB
+ PROCESS
+ 109
+ 110
+ 112
+
+
+ C=0 M=0 Y=0 K=60
+ RGB
+ PROCESS
+ 128
+ 129
+ 132
+
+
+ C=0 M=0 Y=0 K=50
+ RGB
+ PROCESS
+ 146
+ 148
+ 151
+
+
+ C=0 M=0 Y=0 K=40
+ RGB
+ PROCESS
+ 166
+ 168
+ 171
+
+
+ C=0 M=0 Y=0 K=30
+ RGB
+ PROCESS
+ 187
+ 189
+ 191
+
+
+ C=0 M=0 Y=0 K=20
+ RGB
+ PROCESS
+ 208
+ 210
+ 211
+
+
+ C=0 M=0 Y=0 K=10
+ RGB
+ PROCESS
+ 230
+ 231
+ 232
+
+
+ C=0 M=0 Y=0 K=5
+ RGB
+ PROCESS
+ 241
+ 241
+ 242
+
+
+
+
+
+ Brights
+ 1
+
+
+
+ C=0 M=100 Y=100 K=0
+ RGB
+ PROCESS
+ 236
+ 28
+ 36
+
+
+ C=0 M=75 Y=100 K=0
+ RGB
+ PROCESS
+ 241
+ 101
+ 34
+
+
+ C=0 M=10 Y=95 K=0
+ RGB
+ PROCESS
+ 255
+ 221
+ 21
+
+
+ C=85 M=10 Y=100 K=0
+ RGB
+ PROCESS
+ 0
+ 161
+ 75
+
+
+ C=100 M=90 Y=0 K=0
+ RGB
+ PROCESS
+ 34
+ 64
+ 153
+
+
+ C=60 M=90 Y=0 K=0
+ RGB
+ PROCESS
+ 127
+ 63
+ 151
+
+
+
+
+
+
+ Adobe PDF library 9.90
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
endstream
endobj
3 0 obj
<>
endobj
7 0 obj
<>/Resources<>/ExtGState<>/Properties<>>>/Thumb 370 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>>
endobj
366 0 obj
<>stream
+H‰ŒTËn1¼ïWè–I‰¯u‹ž‚"è¡`ôqp¤ù Cy×vœ-È+JÃác¨‡O‡òðx¨åÝûCYž—Z<¤KYóã÷×åKùµ<>×r|)•ħΌ}TrçÒ…A_Å\m$¯·¸g\á@Ž\”z«7-\-Te$ƒ džÒ+9gÖY 2€S5n8ò¤á:×7Y®È¡)›¸IÓef¹6&¯Iš:Pj(ÕÕýàYÄ6û†žN÷a%ÔúCÐB›P=µý-{2«Ï3ºŠÆnÄu‘J@êw¸Ù¯‘°ácƒU§r˜êÌeqjÝéÉŽýë]kÑFÖã7ÔÈЄW#ÔÑí
+ß´TÖ³Û÷ÿÐ;gäì×#Gßôêc7ÌQÚ7—Ã
>Ñrñ²mØ"ØuÞŽÓ?´Ýj
+pÇ”gA®Jãíq”ª8-
²i½@ݲñ½Ïâˆÿ×¶6LnÖߣQymV/ŒzJ¹£øÍæD÷IC*o† ßp¶)>×ÙUÓO…¤Í!Ñ‘D‡.œHRMJPŽÛ)·& “Îê”ìjû£rfüðˆÇúiù#À Û0!Ç
endstream
endobj
226 0 obj
<>
endobj
370 0 obj
<>stream
+8;Z\s0lFoP&4J7Y*@7k/Jurjcfb,aEK.B^UMM`A"V0(fl/D&"fJD%ao[_/R`bsN^Y
+J;:>S-UpGIDKZOJ.'33\0-Q(+o3^CGTj^H,o0-8\qB6=#*2o*jk%TQ]KuJDL(nS64
+CIWeeUM\imoASr,boJ>7J>YX_QVMm,]fbQeX5ZW^Zrt.X`A:daGU>,t:HPH">$$4r
+6;WA2k7=#BY.kEi/9352M(V%NFN(J!/sYV1Y2mN7o,oD1?/u@Dl6]N&"'s$NTngm;
+$7RI)WdAigY0&U[=6gdP.HVCa7JE/hCQqJ0of(C.C9kg8Wn5*Elj]O>SXk);&\#?/
+@sc2d"aL,Kr/U&Kr^7Rs96]*KM@heY%c+/VKeJDJ-H8:6JeuFI1MhEK6anuLJeuG^
+g9dmOFf%e\h)+G<^03Jj7_[M*gM(d^?VRHT\Asn47G!6@S`%1gNf3-_lfHCrbEj=W
+Jfk>N+:*QA#_F0)JfstMIKokpB+7-~>
endstream
endobj
371 0 obj
[/Indexed/DeviceRGB 255 372 0 R]
endobj
372 0 obj
<>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
364 0 obj
<>
endobj
373 0 obj
[/View/Design]
endobj
374 0 obj
<>>>
endobj
369 0 obj
<>
endobj
368 0 obj
[/ICCBased 375 0 R]
endobj
375 0 obj
<>stream
+H‰œ–yTSwÇoÉž•°Ãc
[€°5la‘QIBHØADED„ª•2ÖmtFOE.®cÖ}êÒõ0êè8´×Ž8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤
+ 2y.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é
@8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ
+V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚ó ÈtÕ;\ú”
Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAüom?çW=
+€x¯Íú·¶Ò- Œ¯Àòæ[›Ëû 0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçLUáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.ò ò· åÒ R´
ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£Vš‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð =¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "AˆYA+äùCb(ЇR¡,¨ *T2B-Ð
+¨ê‡†¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r9‹\A&‘GÈ”ˆrQ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½ÄÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél
»—½‡}Ž}ŸCâ¸qâ9
+N'çÎ)Î].ÂuæJ¸rî
+î÷wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â*6X[ݱF=3ë·YŸ±~dó ·‘ÛtÛ´¹iÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö
+n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßYÕ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø
Ú†žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝèþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMÅ›Î
nßLÝlÜ<9”úO ¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬ÐD¸®-®¡¯¯‹° °u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾
+¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿
æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû
endstream
endobj
367 0 obj
<>
endobj
376 0 obj
<>
endobj
377 0 obj
<>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 17.0.0
%%For: (Ivan Safrin) ()
%%Title: (icons.ai)
%%CreationDate: 3/4/14 6:26 PM
%%Canvassize: 16383
%%BoundingBox: -160 -174 977 170
%%HiResBoundingBox: -160 -173.0004 976.1735 169.5841
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 256
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 -792 612 0
%AI3_TemplateBox: 306.5 -396.5 306.5 -396.5
%AI3_TileBox: 0 -792 612 0
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -327 663 0.5 1157 616 26 1 0 78 132 1 0 0 1 0 0 1 0 0
%AI5_OpenViewLayers: 7
%%PageOrigin:0 -792
%AI7_GridSettings: 32 8 32 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
378 0 obj
<>stream
+%%BoundingBox: -160 -174 977 170
%%HiResBoundingBox: -160 -173.0004 976.1735 169.5841
%AI7_Thumbnail: 128 40 8
%%BeginData: 9956 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD2EFFCA9399939993999399939993999399939993999399939993
%999399939999994A4B4A4B4A4BFD08FFA799999993999399939993999399
%939993999399939993999399939993BB994B4A4B4A4B4AFD0CFFA8A85252
%27522752527D7DA8FD16FFA19999A1A0A09AA1A0A09AA1A0A09AC3A0A09A
%A1A0A09AA1A0A09AA1A0996E4B4A4B444B4AFD08FFC9929AA0A09AA1A0A0
%9AA1A0A09AA1A0A09AA1A0A09AA1A0A09AA1A0A099994A4B444B4A4BFD0A
%FFA8524BFD05274BFD0527527DFD14FFCA92C9AFFFAFFFA8FFAFFFAFFFAE
%FFA8AFA8FFFFFFAFFFA8FFAFFFA8FFA0994A4B4A4B4A6FFD08FFC993A1FF
%AFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFC3924B4A4B
%4A4B4AFD08FFA15220FD1027A8FD12FFA193A1FFA8FFA8CFA8FFA8A85252
%27272752527DA8FFA8CAA8FFA8CFA8A06E4B204B444A4AFD08FFCA92A1A8
%FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FF9A93444B44
%4B204BFD07FF7D27275227512752274B2752275127522751274B277DFD11
%FFCA92C9AFFFA8FFA8FFA852FD052752272727527DFFCFFFA8FFA8FF9A99
%4A4B4A4B4A75FD08FFC999A1FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFAFC3936F4A4B4A4B4AFD06FF4BFD04274B272727512727
%274B2727274B2727274B2652A8FD0FFFA199A1FFA8FFA8FF7DFD04274B27
%27274BFD04274BA8A8FFA8FFA8A06E4B444B4A4A4AFD08FFCA92A1A8FFA8
%CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA099444B4A4B44
%4BFD05FF52272752274B2752274B9F9F4B272752274B2752274B27522752
%A8FD0EFFCA92C9AFFFA8FF7D272752272727C1754B2752274B272727A8A8
%FFA8FF9A994A4B4A4B4A4BFD08FFA199A1FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8C3934B4A4B4A4B4AFD04FFFD0B27C1C0C1
%754BFD0A272652A8FD0DFFA193A1FFA8FF7DFD052721519EC19975FD0627
%4BA8A8FFA8A06E4B444B204B4AFD08FFC96EA1A8CAA8FFA8CAA8FFA8CAA8
%FFA8CAA8FFA8CAA8FFA8CAA8FFA8FF9A994A4A204B444BFFFFFF52272751
%27522751275227519FC1C1C79F7627282752275127522752277DFD0DFFCA
%92C9AFFFA85227522728277BC7CC9FC1C19F514B4B5227277DFFA8FF9A99
%4A4B4A4B4A4BFD08FFA799A1FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8C3934B4A4B4A4B4AFFFF7D27274B2727274B2727277B
%A5C79FFD04C19F4B27274B2727274B272720A8FD0CFFA193A1FFA87D264B
%272751C7CCCC7B514B9FC1C793B54B27274BA8FFA8A06E4B4A4B444B4AFD
%08FFC992A1A8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8
%FF9A994A4B444B4A4BFFFF52274B2752274B272851A5C7CCCCCC7B9FFD04
%C19951274B6F6F2752272727FD0CFFCA92C9A8FF522727519FCCCCA55127
%272827759FBBB04B2752277DCFFF9A994A4B4A4B4A6FFD08FFC999A0FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFC3924B4A4B4A
%4B4AFF7DF8FD06274B7BCCC7CCC6C7512727759FC19FC19F998CB54BFD05
%277DFD0BFFA193A1FFA84B2751A4CCA55121FD07276FB54B27272752FFA8
%A06E4B204B444A4AFD08FFCA92A1A8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CA
%A8FFA8CAA8FFA8CAA8FF9A93444B444B204BFF524B27512728277BC7CCC7
%CCC79F27282752275175C1C1C7BBB5B56F275227512752FD0BFFCA92C9FF
%A8274B27527B5E274C2751275227512793B56F27522752A8FF9A994A4B4A
%4B4A75FD08FFC999A1FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFAFC3936F4A4B4A4B4AA827274B272751A5C7CCC7CC7B51FD0527
%4B2727279FC1BB8DB54B27274B272727A8FD0AFFA199A1FF7D2727272158
%5D51274B2727274B272769B54BFD0427A8A8A06E4B444B4A4A4AFD08FFCA
%92A1A8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA099
%444B4A4B444BA1274B27519FCCC7CCC7A5512827274B5227272752272727
%7593B5B06F274B275227277DFD0AFFCA92C9FFA12752274B51822D4B2752
%274B27522793B06F274B2752A8FF9A994A4B4A4B4A4BFD08FFA199A1FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8C3934B4A4B4A
%4B4A52FD04277BA5CCA5812DFD042752A87DFD0627056F8DB54BFD062752
%FD0AFFA193A1FF7DFD0427575751FD082768B54BFD0427FFA8A06E4B444B
%204B4AFD08FFC96EA1A8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8
%CAA8FFA8FF9A994A4A204B444B522751275227517B825E582752272752FF
%FFFF524B274B27526FB5B57027512752274B4BFD0AFFCA92C9FFA8275227
%4B57822D4B275227512751277671784C4B277DFFFF9A994A4B4A4B4A4BFD
%08FFA799A1FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8C3934B4A4B4A4B4A274B2727274B2751575E2D27274B2752FD04FFA852
%27272793B0B54BFD04274B2727A8FD09FFA193A1FFA852274B27575D5928
%27274B2727277771774C4C27277DFFA8A06E4B4A4B444B4AFD08FFC992C3
%AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF9A994A4B
%444B4A4B4B2752274B274B515E5D58274B272752FD06FFA852276FB5B56F
%2752274B274B27FD0AFFCA92C9A8FF7D27274C57822F5B2F5227524C7771
%774C27274B27A8A8FF9A994A4B4A4B4A6FFD08FFC999A0FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFC3924B4A4B4A4B4AFD0627
%21575D5E2D2727272052FFFFA8FFAFFFFFA1276F8CB54BFD06274BA8FD09
%FFA193A1FFA8A8272727512D282E5A302F4D77714CFD0427207DA8CFA8A0
%6E4B204B444A4AFD08FFCA9276FD1A527599444B444B204B4B2752275127
%4C51825D582751274B52FD05FFA87D27276FB5B56F27522751275227FD0A
%FFCA92C9AFFFFFA82752274B2751285A305A534C275227522752A8FFA8FF
%9A994A4B4A4B4A75FD08FFC9BB4BFD04274B2727274B2727274B2727274B
%2727274B2727274B2776996F4A4B4A4B4A2727274B272727585D5E2DFD04
%2776FD04FF5227204B276FFCB54B27274B27272752FD0AFFA199A1FFA8FF
%A87D20FD04274B272E2F2F2727274B27277DFFA8FFA8A06E4B444B4A4A4A
%FD08FFCA926F274B2727274B2727274B2727274B2727274B2727274BFD04
%276F99444B4A4B444B76274B2752274B2D825D572752272752FFFFA12727
%274B272D6FB670774C4B2752272752FD0AFFCA92C9AFFFA8FFFF7D274B27
%4B27512752274B274B2752A8FFA8FFA8FF9A994A4B4A4B4A4BFD08FFA1BB
%6F272752274B2752274B2752274B2752274B2752274B2752274B2776994B
%4A4B4A4B4A76FD062751575E2D27262727527D5220FD062770717771784C
%272727207DFD0AFFA193A1FFA8CAA8FFA8A1FD0B2752A8FFA8CAA8FFA8A0
%6E4B444B204B4AFD08FFC99275FD1A276F994A4A204B444BA8274B275227
%4B51825D593053274B27512751275227514C77777771784C5227522727A8
%FD0AFFCA92C9AFFFA8FFA8FFCFFF7D762752274B275276A8A8FFA8FFA8FF
%A8FF9A994A4B4A4B4A4BFD08FFA7BB6F2827522751275227512752275127
%522751275227512752274B279A994B4A4B4A4B4AFF522727274B2751575D
%343030532727274B272727524C7771777177FD0727FD0BFFA193A1FFA8CF
%A8FFA8CFA8FFA8A87DA87DA8A8FFA8CFA8FFA8CFA8FFA8A06E4B4A4B444B
%4AFD08FFC992752727274B2727274B2727274B2727274B2727274B272727
%4B27276F994A4B444B4A4BFF7D27274B274B51825D59305A305A2F52274B
%2777717877774D5227272752274B277DFD0BFFCA92C9A8FFA8FFA8FFA8FF
%A8FFA8FFA8FFCFFFA8FFA8FFA8FFA8FFA8FF9A994A4B4A4B4A6FFD08FFC9
%BB4B28274B2752274B2752274B2752274B2752274B2752274B2752277693
%4B4A4B4A4B4AFFFFFD042721575751272F2F362F5A2F2E4C77717771774C
%FD0927A8FD0BFFA193A1FFA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8
%CAA8FFA8CFA8A06E4B204B444A4AFD08FFCA926FFD1A276F99444B444B20
%4BFFFFA8275127522D52275227522F5A305A305A53777177274B27522751
%275227277DFD0CFFCA92C9AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FF9A994A4B4A4B4A75FD08FFC9BB6F522751275227512752
%275127522751275227512752275127522776996F4A4B4A4B4AFFFFFF5227
%27274B2727274B2727275330362F362F4CFD05274BFD042752FD0DFFA199
%A1FFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8FFA8A06E4B
%444B4A4A4AFD08FFCA926F274B2727274B2727274B2727274B2727274B27
%27274BFD04276F99444B4A4B444BFFFFFFA852274B2752274B2752274B27
%532F5A305A274B2752274B2752272727FD0EFFCA92C9AFFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF9A994A4B4A4B4A4BFD08FFA1
%BB6F272752274B2752274B2752274B2752274B2752274B2752274B277699
%4B4A4B4A4B4AFD04FFA8FD0B27262728362FFD0A27A8FD0EFFA193A1FFA8
%CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8CAA8FFA8A06E4B444B20
%4B4AFD08FFC9926F05272027272720272727202727272027272720272727
%202727276F994A4A204B444BFD05FFA85227522751275227512752274B28
%53274B27522751274B27A8FD0FFFCA92C9AFFFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FF9A994A4B4A4B4A4BFD08FFA7BB7553527D
%5276527D5276527D5276527D5276527D5276527D527652A0994B4A4B4A4B
%4AFD06FFA85220FD04274B2727274B2727274B2727274B27274BFD11FFA1
%93A1FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8CFA8FFA8A06E
%4B4A4B444B4AFD08FFC992C3AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FF9A994A4B444B4A4BFD08FF7D2727274B2752274B2752
%274B2752272727527DFD12FFCA92C9A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FF9A994A4B4A4B4A6FFD08FFC999A0FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFC3924B4A4B4A4B4AFD
%0AFF5252FD0A272027277DA8FD13FFA193A1FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8A06E4B204B444A4AFD08FFCA92A1A8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF9A93444B444B
%204BFD0CFFA87652275227522752527DA8FD16FFCA92C9A8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF9A994A4B4A4B4A75FD08FF
%C999A0FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8C3
%936F4A4B4A4B4AFD10FFA8A8A8FFA8FD19FFA19392999299939992999399
%9299939992999399929993999299939992996E4A204A204420FD08FFCA92
%999299939992999399929993999299939992999399929993999299929320
%4A204A204AFD2EFFCFA0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0
%C3A0C3A0C3A0C3A0C3767C76A1767DFD08FFCAC3A0C3A0C3A0C3A0C3A0C3
%A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A07C76A1767D76FD7FFFFF
%%EndData
endstream
endobj
379 0 obj
<>stream
+%AI12_CompressedDataxœì½ëŽÉ‘&úñy~ -–µ~¿‹2³²fµ(I
µ¤•06Õâ,/
6[::OÜÌ>s÷ˆÈd³›œ…f†åèf–U¤»‡ßìö™ù?ü?_|ùäøÕ›yþÄß™Ãòÿp~ûüé»7ov`êáç/_~÷í»·Dúɯz°ñδ‡Ž?/ă¿{þöÛo^ÿì`óá?>зòó¿<}}øòéŸÞ¾xýÓÃO~Úè¿yñîåóö—ÏÞ¼þöî鋟jkíë÷Oßµ?ùÿþ›
‡ô3—_ü‚þüôõ_ž~ûí‹ÿ¯ýÑ&_|£Þ|÷ú«¯¿>½ùvxb“iÿËáPsn] öÿç‹_?ÿöêSí¡GÓ]û%¶*ë],Á¶/Ý¿yöÝ«ç¯ß}ñöͳçß~{~óòÍÛov8ÿ½Å/ž~Ýþòôð‡ç/_¾ùëáôòé³ÿ³´1ˆ|xñòy{ÝWO߬¥—?þܺ?ž¾{ñò«_~÷ê_ž·p1Ùÿ‘«üí·®V-}&rþãÏ_5Ê—Ïß½km
ÒüúOs7‘ËOþé×Ï¿~Á“ÑF쟊jß¾ùæÕÓ·ÿ‡¾{x’«;$ëFþø›ç¯¾yÙ†–GÁ›tO|¥æ_ðl{~n_Íœçyñü¯?;üòÍëç2Ç·ï¾”é Áù¿üå×ß½|þö·¯_¼k=sDª2¿xóÕó—íùþý‡—Où͹Øñyà7Oß~ýü]›Ñ7/¿{ÇhmˆŸþí9Í“•~õÍó׿yó;îãïò!%0íEí›meQ幬wsks›T
U¢µç6)_´iúÕÛ_¿xý3 ™¾|ûâ«1{Ê"ÿãÚîÊô_Õÿ¤«íß½{þ]o«æü‹i˜»_|Ù½¼þêüæ
ý·´òÛô¿n+ã囯åoý3ÿ¥}ý»oäø÷?¶Yú¢m?ªsù%ÿ¥üñ‹—ßµ?ýãÛ7ß}óó×z³üD¶ùïž?k{¹MäW‡_ýË¿¶_Úžå•yøÍÛ§ÏZí÷þLÛ»ßüô½Õµ—{ûü lßä_õßïÿöýó?µ=5¾.ÔËë¿<ù曩ÚNyúú«Ãÿ~úö›ï¯ú‹—O_?}{`z¯ùñÅ_Ú_ž¶‘uÚTÚÉ7mpø+üȦ÷<0ýézúîÏíøyþú«o{ÝòëºãBûþú¾|Fkðíáôö»oÿ|øÍ›7/{µë?õÚAf*=ÿ÷ÑÆü…׿z-´o l[j‡Ïß]+íéÛ-´?þ=×~~úò勯ß>ýæÏ/ž]kàÊß{Kò·²°þöê_Þ¼|ñí«±ž&ÊOß¾{ñìåó/ÿöí»ç¯>xr—¯^´CîÆ6~ï3_þõé»g~|ñ/oŸ¾}ñü½»&àO/^ÕÖþ—ß½x÷|ЛWßàrøòÏO¿yίñîÏüä—½ÂøÇvôχû“'ï9õ9œ^OÿÇ·O¿zÑJÄž~õüðî4?]6¿7槯–ZÌ]j"“Ëô!G'|‰9¶Ù×kû`}v‘(ÖÙ˜˜âb¨K8üÃOo§jZÍA«9h5æ ÕPMë‹9¤Cl|º‰ÆÆÿø k<}ûÑý³6×þò©z×ëk};Ý÷™× ¼>§ÿøöùó×ÿ¢ê=üêíÓ×_?os{N’Ìñ_Œ5ÎxL4ÉdSL5Gs6÷æbµwÁF›l¶ÅV{´'{¶÷öbœqÖ9ç]pѵ×uÅUwt§Åݽ»¸o|“µ¼÷¡•è“ÏM¯þèOþÜÊÅ?lpíÏ!ÄB%Ôp§p÷á!šh£‹~‰!Ƙb‰5ã)ÞÇK|H&¹äSH)åTÓ1Ò9]ÒC6ÙeŸCN¹äšùœ/ù¡˜b‹/¡¤’KYʱœÊ¹\ÊC5ÕÕPcmSVk=ÖS=×K}8š£;úc8Æc:–c=§ãùx¼œÌÉžÜɟ©õå”NùT–S=O§Óùtº´òp6ç6Lg×Þ³½Ë9žÓ¹uäÜÚ<×s«çÜ=ÓÏ}+.TîÛ°ß·á]ÚÿŠG (qWÿ÷Þ²ðÿþG›nîà¥uT
+õ„~Ží¨äVÚX¶·“âÚÛ¶r|håÒʹéFÂcÝc\Úµ9kÃÕÇÑ´Á»ÔûVÚ˜µ-m`SÞІ¹-ŸjÚ ß·a8•Zè'·9 mf\›!“Z9/m¤Nê’é'µ©l;¥“Z¹PçÚtSiŸÛô·…Ó‚kÂć¶4îcï65Ƕ\j[4yik'µä¹¸¶¬LxhEÆóÜÞ’_€:Ò–`¦úÚrŒmQòÊmKÔ¶…jüC[²Tίßs[ÉR
+Jnkœ
+¾×Ö¾#Å=´]AE&öìN(ui;‡JAI(EŒû€rrB9¢”¥mÖÂÓM‹ªùÿå~äÿ?îç²´¯_¸ªû‡S/Ç^Nµý<¨§N=®?/ü%”^*-þW?IÉ.O¦¨‘³ôðÜ_öü,Ÿª¢«
+eRxºÍµ»)ºŽdY”È% hŒ`i¼ xÌGhåë ¾à¬§Ñ¸ñá\âÈëñ̼‚¸^³7Íßî˺o”¶Ô}_ôËúßПԻè.co\Pd‡œw{¤¢·%¢„…_*XÔhõ‡‡Î<ð P¹G9£Ð05¶ÁãF¥ 4©)sI(qS¦øE§Í-ü?Þݶõçár¹Ü7rjçs½”K¾¤K¼„vT¹6 ¦müËý}c4§ûc;˜Ë}f†KqmhLã;—ƅΗƞJcT©¡¡q®Í iûêœB¸DaoðÌs†{æÇvê_HÌüÑ-̘'œžÁXüÞP"о³6?åˆrB9£Ü/m¡Q¹ (·ÑmkQÀ‘Û•P"Šv^äµáª?GÈUmõK¹G¹ (û3(–¶ŒåéÞÛÃq”4•<•2•.fTÔµœ¦ržÊýT.SyeYPv*£ËóO˜JœJÒ²°–0J™JÊq*§^ÎSмð?—©<Œ²:víTæa]æŸEþaQKšJžJ™JÊq*§…¤ì6ÝP—ßòƒÁƧ5eËCÚˆ…̬å!è§Á?ËUò5!ÃÞ|bõ/vHdPÕÒó²†RÙÖ#i”´°D—¤õp¢©…I3B#NÚã};ÌQÛü¤vdÍš£eÍ1vÍñžO@:õŸi•®{Öé(¢S'—ºtÑv±ðF§M}¡»Ñg}1@WœEáà³ÄKeȹ*ëæé™ùI•xOPIè²¥Êé—Í'ùí_’¯Í¿
+?·ü`Aú¸UF/Ï·åÔøùwP!Ïöz”¶S².çM9íÊq™4/*uW¶K'ïJšËÒþw%lŠß·)]ç×þPñóC¥ÏåCÅÏ•=—>?\ö”#-ö’v%ïJ¹Rê\þç¸+§]9ïÊý®4Ý`éZÒ¤¡‹3»bw¥ÿÌ|Ò¦©Ô|¥œyHÚ#Ëáö°ÛÆîÙJÆVª…ׇ”Âë$³XËæ^/ž‹UóÐí\jáW…+.làò,ùXÖÞ.}%ÑZšW“¬'×vMÁʵ0{w?P©9³¤|ue-›¥õ>¥fRink4$½Ì
+ª3¢Ì¬U™ãFÙk1M‡Y Äf£À(o§¢K_7…J‹îº®ÝªMû¡ëÚѵ¨Ûªr«Ú}¼¢€WVmèSR5zx†¹£õsí#v+ÈP·’>”õYmWÁkõïÒÿtíßan™›K«ú‹üZúët
^wüÿ„ÿŸx°ÎlÂ9ÃÓþ¿ðpv›Nä8æüŸí=òËÇÿþd)ˆ³ Âe f!>Þ„
+·ûd?÷ƹÿ€ªý÷þ–p²lŒÂkᤌ"®ùÊVøÁe™–O#²}Úê>Wxõ¨×¼bw¾à{óù"—IoÜú"·žÈûïõD²6iº>Y£Toä¹û#-<’¢Y–‡_ÒÂ3Iö³¼À=yb«˜º(›º¢¸)ÙŒE:ç=<•–íQê,Ý_IƤ‡…Ðá´Ìk·eSgÇ%»-W^KñYŠÇ’ý•œ•'vS^Ø9iÙØß˜›,_›LjRÚýý¥ ¦ÉîÒTòK¼¤K¾”KS‹›v¾Ü_.—vÌ(ÉðÒtŠÔ½8'u×ðR€P«æ)5ó¨Á$ö¢fN56ªÍ¯[ÞX„;.<RÎ(÷½\PÔ¤bÅ¥Õ6¦V¦°À3{QC«š;ÕêØmÚþIÎ(ìƒ]øŸŠ*ÌêW2¼ZæÔÆPb/°ó.jnU«g—›«Ž€và¬?÷½\f‡´¸¤õK£|¿kZmÍjñ…ÕUŸ¯)êŠÖð/ø ‡±L
hì6Œmj€f¹ñÞÂæ|)ÃØ7¹¡Ïª±°¿ádYÔ•Ðå‚Õ9“erKé¶ÍÉÞ©?°–.,ƒk~c-Ã
+;ô']Ê;l»;Ïr™lÃÃb¬Vä°s³MŽ6)é;GôÖÝ&.7-§+Î7-e麮êÁi(¬l£Ÿ±*Ÿ±*Ÿ±*Ÿ±*¤¦|ƪüýUø«ò«ò«ò«ò«ò«ò«ò«ò«ò«ò«ò÷Vág¬Êg¬Êg¬Ê°þ^ê¼²°ÑlWÙ#V¶˜•-j¸•…—S‡®ðš
+,I¬Ñ+¿"–±ÊÅË2AYdÑé²@K†1,vL‹ÅX½gõÄ‚+›Ç^Œ²eAò’Ä¢T¨‹,Í#‹¡T–h`)Êñò2
+~¹ð¼œ»“X·PkšãU*65ÑžÔ®vbWQexL·E–„<£´àÕÆFzÕv¶s÷<¨¿aøÔ·à–îGPïÁðÀC çÀ°¸
€ˆœÝÒÏ2êÎìvVC~·¹Õ•õ~m·—:a] ²t#ÃÖݶÌoíò[S|?–.xÚna;‚éå²3CHaGÛ²ñ¬!<[ûÄ(ùji‹`é¶‹¹lí·Êyöº»}è`N7Ì4·NËdYÑì´†;]<¥…1Oq3*óø¤ÍXì?Ï&¸ilf±~ð÷Ÿ·JÂêó2ÕÍŒ’š{;#¥Z*mlWYqSi“<}.ӨɈ–i<çÑÆ}鿌)Ñ “¥†¶Ùè¶±õß–>ñ—¾|¥Ÿ’……²£ÍÛ~[€Ø¢öÐm ã‡VàžâúnžÙ%Ó–Ro¥?OÚè-zèÆ×(nÿ®È3-Þ”Oø Z®8¬ÃeYÙ[h¹Yá÷”ϹÏþ{©pÖ¯i…³Š.ºô(‰?¨,W\zÃ…·¥½¿°b«¡ÞÒS?¬”‡ºÜøÃ.Ë=ôo®œlocøtU}®ðs…Ÿ+üÄþ\î÷"¯–|5a¯öèÜ
>wƒ¿ê¬E
+Ó@¬Rw`uÖðºŠØfwé - w»Á]Á»ÎÄßá Þ¼ƒ8^AòÆž¿_ß Þ{qèÁçà¸Sw]†N½rçî‡c ¯FV‘±ßܰÇxU˜ëC¶*œ(Ö¥ƒW0ÁÇR½ïØTŤ*Õw¼˜âN;jlé8Ó:v¯Ð1h>H:c::`£+¸è€ŠÊÏ…‹!¢=‰CÌ(êHcÃÎ%ra«ÒÂøäÌe)âáT<°¢qÕº‡v.ú£2zW¼–a„ìerÞõ2[ª‡){mä^qúµèpMÐY—ŒÕ½$Ë«ýýβ«üX‰óC Ýá&¤û¨{isë¾ìÞC»¯€»— ßãÈ{À¼g¨÷ön;hÙ!¾gÔ÷ØX÷+è÷ÿ^AÀ[YVò•ïû¼ò%wTø>¡Ã·ñ5R|ŸQã[ôø„"_ÎóÏý®\ve¿JWæÁ-è|?Ÿ‹¿ZÂ\–é—=0u[ß—¼/ËÞ~«Ô(mÑ.÷Ç(§/Ë]ÿ‘e™ÎÞOò³|ÿ#8E~T4À{âþg†O|XLÀ¸€ó2!è£^(+ðHº'°¬‚ÖÞ¯°6+ÃÛ‰7c`V!ë0‚9”`R°+è>‰¥SW žu¨Á>ä`xÐ˲B
í£¶Êùgïë³ìÙ—kÎÕ—d[¦ÃgÙœF{÷åµÀ‡klq¹â%ÝFI¼¯ü Sã³f¦å½VÕ^âròû£ËTȧȔ“–äsO©YMõÁ&JÐ^s¶–(¦TωÜSÛN™RÉ»¬-ÈκÍFû êâ<´ÆS“²Ä†P+}½’Úà¹8“l
ÑTÊ+ïkSÈ
+g’¥ŸQ]i$›Gï>iÒO›
+×HïË*{n%›þ{hy8Škب#…©W?¾îÃGŽyÈŸlúBþ”³çͧž9o>nÖlüøYku|ô¬¹røD{Žkú!Ù•¿øîí7/Ÿ~ÝO_þtÙüÞêt=›²üØ]ÐBœ²:ØQŽ«äsÄ‚}oÛ°EÖ¬ƒ xq ß*ÔV¡µUCÞN2ˆlGÄ*–„’Cr7ÅÔ_=O&––8U|é@”Šqæ}äÒM4†Í4LÈhÐÈ·Év"já‰Ñ÷l¹¹Àz#œD¤›f¸ù1oêäÒþ7£Ê¯É×àq*Þ‘â@ˆ/КԆ°‡„ûŽß¢ÀS)êíR&Mr¥:\æ²EÌØoBçLræ‚ñFIßSʶ,{RÿÓÿX¯{¿±VÖºÅ^Ø×u[84…ÃZ0Z¬áŒ•[¯Ú#0Ø‚°U$µÚ
+ÕZHê@^ØLúÃÖVHÖB±JTÿ Qý»I–BÏÊDdÀ¬S:-Äy•¤Â`.Ù çžaœ-ƒ©›ú^äÏž®Ï_êXýxÅ((|Ç@^±¥¤ÉÈæ‘¶‘né65m#ưUëİAÐüø³[ÚÁ6V?¶Íf‚ÙÀø¸®Ó¯Õw¨ä[Õ{¯3«â;ôÐùç2•‡e2mm¥x·+þf‰Z–ñq[>lWÿÙÕïf÷7$1™‰ûêÆçÍ—¯·˜mË×+ûàŸÿ þî}®ë0ùqÃ=»}|‹wÃ|;nïzùÏ
+Šÿ\áî
+5*B°.`€ˆ+$Ä#DXD¼>°ËèžÞ'öITľfñDEvOyÁZFÊ> öžùÝ •9cF\Bì u…¦›óÃLúœ;ñ(ú6mbئMÜ%NleÙdO,¶@t…¢[€U5Ã…™·ÈK_€K¯~3ðé ^ Ũ{Å&øKñƒ]zæ®/Œ]?±xt†½vùT„÷ÔñìŠiXá9¸bàÛã¾ Q«ˆÀ‡X®~’!´wWÕ$÷Ÿ¥fÀäµÄUY…á¿)“iuÁ‡[¦¾+ˆézzY³ìIýO}ÝßcÍW¬wYënÙý¾Øn„×,«øšm„Í:Æf޲™ãlF¤M¥¼&¹/H¯KP#n4bÎé)+Ì`]Ý÷ø›ã²‰„ÄáPœq““1¯s D›âqê±¥'I0=‘H†àÐ
‡@@ÄÒ#"
+Öud„‡‚NþÕÙ¯§ÿi™@ý ñF™¹@ç¬yÁ‰õ!æËÄÒ¿4¢–®Å+)wüAƒ•ʲŠUŒbŽWrðp˜ËÐL=çž©‡9ÇÒ™GÅa9ˆ2‘ˆUâ'V⺫ÄL,¥íèeâ+ƒ·œ;`ü(h L¬&OLgé|'LÜgæAƒMÜhÅ“fÎtYV,j”[½žvåx¥´Ÿ¥^ÿ¹i”™J¾V–ëdþÓì'é×óZ¶r’õÔ›Còw6æÚ±ïŠ-¿t€Vºï®u¨©,b¦õ|^“\íC¨Åxº
+Ï…lø–¼XÝà{Ýíòéªü!¶à/¿û†îo|ó§wraâáw/¾~ýüÝ;ºmïößZk^oUl'º÷Žï45úèÐgûx²îP49DKÿr·éCµé^˜™ORÉèËA«9h5æ€jZÍA«Ñ‹S{ÀÕCÌwtBéùôUóBúÈjïR´.DZ¡ö®$ã¹Þål?]Ço·ðIú_ã•ð)+ý!›á·¯_?}õü«Ã× lÛWˆ+ÉmHéPº“nà¤Hå· EH7÷t~
+)ú»¡ø2Šw Òî¯hÎHû*N Mù:’3ˆIø>]Ø,)ýÐÜ”†Ì½dï¿g3>%e ”'¡;É–KVÜØØRmìëž
µd¤%¬™¤` <}„ôŠlq_|φUˆTÍÆŠ\¬ƒyX5+á„•à‰iX³D*( Pr3Lù÷f$Úàûÿïi¥ºÅxýI>Ÿ–ñBÃò|Aðüy•êO•ÏùSU‰béÐ;+fCÿ{©ëk™ŸÖç«
+(g=~f(Õ̳y7cìJ‡ÑDnY¥Læï†6ôÊⵂ@¼Uþ¿@$ìES瑸âmþO³)ÐŒ{MéçÄ+cÈ¢$ƒ’üÙ¶ÙÑIܤN‘\T’ävÎ,½ˆHûÄñŒRŸ<˜$Í‘ôfø]Hk;a‘´‹,Ñ@ÖÃIû&MêžÅ³Ò6 )’`QnF ň2ɪH
+ÉŒ•€Ú™Rs(m–(5ÔxÅm‰5ÖRx+SgEýQܳHb;§ß9uˆ9?=<ÒV¹Ç}Gö¥Ò¹ãÙŠJ%Y²4ì7 ¸’#2Žô¼ç£ÅÍz7[[×érnf½›<ÈSÆ~Íy—•X{®»Ëx:R£ß=Ƈñeå6¾•ÿmd¬}Xgvé³WªQíÀ°¤—䎴 c)ŠêØñK‰ðH¡G£šžçNCmO<.#xÚ½Î'„Ñ_;]º©ïsº¿ÿ„us®¹9¹ÕÀS΀Æ6¢ÇgT>‚Ëd$¦->e#Ÿœë³EIè–É 2Œ*³ie˜Wf#Ëljéæ*ËduQ»ËÚú¢y,Î=›ÅÖsœ}-+Óã5 íu(m˜á©³1fÙÚa4Mœ¦†SùíöYó0ùú]OÊ&)Ø MY® S4\h€ ž¢à”ÒS›;t¯à”eB¦hQ\
+ൃRΔ¢0@Ѐ޲ é¡&;