diff --git a/Enthusiast/CaptainToadTreasureTracker_2880p/0457fe3efc9a772f_0000000000000079_ps.txt b/Enthusiast/CaptainToadTreasureTracker_2880p/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Enthusiast/CaptainToadTreasureTracker_2880p/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/CaptainToadTreasureTracker_2880p/9fad3b3505a6d831_0000000000000079_ps.txt b/Enthusiast/CaptainToadTreasureTracker_2880p/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Enthusiast/CaptainToadTreasureTracker_2880p/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/CaptainToadTreasureTracker_4320p/0457fe3efc9a772f_0000000000000079_ps.txt b/Enthusiast/CaptainToadTreasureTracker_4320p/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Enthusiast/CaptainToadTreasureTracker_4320p/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/CaptainToadTreasureTracker_4320p/9fad3b3505a6d831_0000000000000079_ps.txt b/Enthusiast/CaptainToadTreasureTracker_4320p/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Enthusiast/CaptainToadTreasureTracker_4320p/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/CaptainToadTreasureTracker_5760p/0457fe3efc9a772f_0000000000000079_ps.txt b/Enthusiast/CaptainToadTreasureTracker_5760p/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Enthusiast/CaptainToadTreasureTracker_5760p/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/CaptainToadTreasureTracker_5760p/9fad3b3505a6d831_0000000000000079_ps.txt b/Enthusiast/CaptainToadTreasureTracker_5760p/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Enthusiast/CaptainToadTreasureTracker_5760p/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/MK8_2880p/4727ccdea05045d0_0000000000000079_ps.txt b/Enthusiast/MK8_2880p/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Enthusiast/MK8_2880p/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/MK8_2880p/6dc0532bfaf19019_0000000000000079_ps.txt b/Enthusiast/MK8_2880p/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Enthusiast/MK8_2880p/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/MK8_4320p/4727ccdea05045d0_0000000000000079_ps.txt b/Enthusiast/MK8_4320p/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Enthusiast/MK8_4320p/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/MK8_4320p/6dc0532bfaf19019_0000000000000079_ps.txt b/Enthusiast/MK8_4320p/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Enthusiast/MK8_4320p/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/MK8_5760p/4727ccdea05045d0_0000000000000079_ps.txt b/Enthusiast/MK8_5760p/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Enthusiast/MK8_5760p/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/MK8_5760p/6dc0532bfaf19019_0000000000000079_ps.txt b/Enthusiast/MK8_5760p/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Enthusiast/MK8_5760p/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_2880p/4102408f48cb6b94_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_2880p/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Enthusiast/SuperMario3DWorld_2880p/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_2880p/46575655811a12b7_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_2880p/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Enthusiast/SuperMario3DWorld_2880p/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_2880p/74b3539704b05bfd_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_2880p/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Enthusiast/SuperMario3DWorld_2880p/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_2880p/f5190dd4ae552353_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_2880p/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Enthusiast/SuperMario3DWorld_2880p/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_4320p/4102408f48cb6b94_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_4320p/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Enthusiast/SuperMario3DWorld_4320p/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_4320p/46575655811a12b7_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_4320p/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Enthusiast/SuperMario3DWorld_4320p/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_4320p/74b3539704b05bfd_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_4320p/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Enthusiast/SuperMario3DWorld_4320p/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_4320p/f5190dd4ae552353_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_4320p/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Enthusiast/SuperMario3DWorld_4320p/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_5760p/4102408f48cb6b94_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_5760p/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Enthusiast/SuperMario3DWorld_5760p/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_5760p/46575655811a12b7_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_5760p/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Enthusiast/SuperMario3DWorld_5760p/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_5760p/74b3539704b05bfd_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_5760p/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Enthusiast/SuperMario3DWorld_5760p/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Enthusiast/SuperMario3DWorld_5760p/f5190dd4ae552353_0000000000000079_ps.txt b/Enthusiast/SuperMario3DWorld_5760p/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Enthusiast/SuperMario3DWorld_5760p/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Modifications/MK8_TheVoid/patches.txt b/Modifications/MK8_TheVoid/patches.txt
new file mode 100644
index 00000000..dc319e33
--- /dev/null
+++ b/Modifications/MK8_TheVoid/patches.txt
@@ -0,0 +1,17 @@
+[Turbo64]
+moduleMatches = 0xD09700CE
+
+0x10180618 = .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x10180F38 =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x101814F8 =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x10183EF0 =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x10184410 =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x10184904 =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x10187ECC =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x10188960 =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x1018921C =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x1018AA9C =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+0x1018BB64 =  .string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_Menu ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
+
+#Original:
+#.string "Invalid ,Gu_Menu ,Test ,Reserved01 ,Reserved02 ,Reserved03 ,Reserved04 ,Reserved05 ,Reserved06 ,Reserved07 ,Reserved08 ,Reserved09 ,Reserved10 ,Reserved11 ,Reserved12 ,Reserved13 ,Reserved14 ,Gu_MarioCircuit ,Gu_DossunIseki ,Gu_City ,Gu_Cake ,Gu_HorrorHouse ,Gu_Expert ,Gu_Desert ,Gu_Cloud ,Gu_SnowMountain ,Gu_Techno ,Gu_Airport ,Gu_FirstCircuit ,Gu_WaterPark ,Gu_Ocean ,Gu_BowserCastle ,Gu_RainbowRoad ,G3ds_DKJungle ,Gwii_MooMooMeadows ,G64_PeachCircuit ,G64_KinopioHighway ,Gds_PukupukuBeach ,Ggc_SherbetLand ,Gagb_MarioCircuit ,G3ds_MusicPark ,Gwii_GrumbleVolcano ,Gsfc_DonutsPlain3 ,Ggc_DryDryDesert ,G3ds_PackunSlider ,Gds_TickTockClock ,G64_YoshiValley ,Gds_WarioStadium ,G64_RainbowRoad ,Du_Metro ,Du_MuteCity ,Du_DragonRoad ,Du_Hyrule ,Du_Animal_Summer ,Du_ExciteBike ,Du_Woods ,Du_IcePark ,Dgc_YoshiCircuit ,Dwii_WariosMine ,Dsfc_RainbowRoad ,Dagb_RibbonRoad ,D3ds_NeoBowserCity ,Dgc_BabyPark ,Dagb_CheeseLand ,Du_BigBlue ,Du_Animal_Spring ,Du_Animal_Autumn ,Du_Animal_Winter ,UnderConstruction20 ,UnderConstruction21 ,UnderConstruction22 ,UnderConstruction23 ,UnderConstruction24 ,UnderConstruction25 ,UnderConstruction26 ,UnderConstruction27 ,UnderConstruction28 ,UnderConstruction29 ,UnderConstruction30 ,UnderConstruction31 ,UnderConstruction32"
\ No newline at end of file
diff --git a/Modifications/MK8_TheVoid/rules.txt b/Modifications/MK8_TheVoid/rules.txt
new file mode 100644
index 00000000..3074d638
--- /dev/null
+++ b/Modifications/MK8_TheVoid/rules.txt
@@ -0,0 +1,4 @@
+[Definition]
+titleIds = 000500001010ec00,000500001010ed00,000500001010eb00
+name = "Mario Kart 8 - The Void"
+version = 2
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1080p/0457fe3efc9a772f_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1080p/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Quality/CaptainToadTreasureTracker_1080p/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1080p/9fad3b3505a6d831_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1080p/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Quality/CaptainToadTreasureTracker_1080p/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1080pUW/0457fe3efc9a772f_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1080pUW/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Quality/CaptainToadTreasureTracker_1080pUW/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1080pUW/9fad3b3505a6d831_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1080pUW/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Quality/CaptainToadTreasureTracker_1080pUW/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1440p/0457fe3efc9a772f_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1440p/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Quality/CaptainToadTreasureTracker_1440p/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1440p/9fad3b3505a6d831_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1440p/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Quality/CaptainToadTreasureTracker_1440p/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1800p/0457fe3efc9a772f_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1800p/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Quality/CaptainToadTreasureTracker_1800p/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_1800p/9fad3b3505a6d831_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_1800p/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Quality/CaptainToadTreasureTracker_1800p/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_2160p/0457fe3efc9a772f_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_2160p/0457fe3efc9a772f_0000000000000079_ps.txt
deleted file mode 100644
index ecbdb758..00000000
--- a/Quality/CaptainToadTreasureTracker_2160p/0457fe3efc9a772f_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0457fe3efc9a772f
-// Used for: Horizontal Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/CaptainToadTreasureTracker_2160p/9fad3b3505a6d831_0000000000000079_ps.txt b/Quality/CaptainToadTreasureTracker_2160p/9fad3b3505a6d831_0000000000000079_ps.txt
deleted file mode 100644
index 1ca34191..00000000
--- a/Quality/CaptainToadTreasureTracker_2160p/9fad3b3505a6d831_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 9fad3b3505a6d831
-// Used for: Vertical Bloom
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1080p/4727ccdea05045d0_0000000000000079_ps.txt b/Quality/MK8_1080p/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Quality/MK8_1080p/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1080p/6dc0532bfaf19019_0000000000000079_ps.txt b/Quality/MK8_1080p/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Quality/MK8_1080p/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1080pUW/4727ccdea05045d0_0000000000000079_ps.txt b/Quality/MK8_1080pUW/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Quality/MK8_1080pUW/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1080pUW/6dc0532bfaf19019_0000000000000079_ps.txt b/Quality/MK8_1080pUW/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Quality/MK8_1080pUW/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1440p/4727ccdea05045d0_0000000000000079_ps.txt b/Quality/MK8_1440p/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Quality/MK8_1440p/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1440p/6dc0532bfaf19019_0000000000000079_ps.txt b/Quality/MK8_1440p/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Quality/MK8_1440p/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1800p/4727ccdea05045d0_0000000000000079_ps.txt b/Quality/MK8_1800p/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Quality/MK8_1800p/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_1800p/6dc0532bfaf19019_0000000000000079_ps.txt b/Quality/MK8_1800p/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Quality/MK8_1800p/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_2160p/4727ccdea05045d0_0000000000000079_ps.txt b/Quality/MK8_2160p/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Quality/MK8_2160p/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_2160p/6dc0532bfaf19019_0000000000000079_ps.txt b/Quality/MK8_2160p/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Quality/MK8_2160p/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_2160pUW/4727ccdea05045d0_0000000000000079_ps.txt b/Quality/MK8_2160pUW/4727ccdea05045d0_0000000000000079_ps.txt
deleted file mode 100644
index 4865cfe2..00000000
--- a/Quality/MK8_2160pUW/4727ccdea05045d0_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4727ccdea05045d0
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/MK8_2160pUW/6dc0532bfaf19019_0000000000000079_ps.txt b/Quality/MK8_2160pUW/6dc0532bfaf19019_0000000000000079_ps.txt
deleted file mode 100644
index bdd61599..00000000
--- a/Quality/MK8_2160pUW/6dc0532bfaf19019_0000000000000079_ps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6dc0532bfaf19019
-// Used for: Vertical Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-    vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-    vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-    for (int i = 1; i<4; i++) {
-        R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-        R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-    }
-    passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080p/4102408f48cb6b94_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080p/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Quality/SuperMario3DWorld_1080p/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080p/46575655811a12b7_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080p/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Quality/SuperMario3DWorld_1080p/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080p/74b3539704b05bfd_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080p/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Quality/SuperMario3DWorld_1080p/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080p/f5190dd4ae552353_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080p/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Quality/SuperMario3DWorld_1080p/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080pUW/4102408f48cb6b94_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080pUW/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Quality/SuperMario3DWorld_1080pUW/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080pUW/46575655811a12b7_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080pUW/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Quality/SuperMario3DWorld_1080pUW/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080pUW/74b3539704b05bfd_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080pUW/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Quality/SuperMario3DWorld_1080pUW/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1080pUW/f5190dd4ae552353_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1080pUW/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Quality/SuperMario3DWorld_1080pUW/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1440p/4102408f48cb6b94_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1440p/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Quality/SuperMario3DWorld_1440p/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1440p/46575655811a12b7_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1440p/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Quality/SuperMario3DWorld_1440p/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1440p/74b3539704b05bfd_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1440p/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Quality/SuperMario3DWorld_1440p/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1440p/f5190dd4ae552353_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1440p/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Quality/SuperMario3DWorld_1440p/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1800p/4102408f48cb6b94_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1800p/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Quality/SuperMario3DWorld_1800p/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1800p/46575655811a12b7_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1800p/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Quality/SuperMario3DWorld_1800p/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1800p/74b3539704b05bfd_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1800p/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Quality/SuperMario3DWorld_1800p/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_1800p/f5190dd4ae552353_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_1800p/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Quality/SuperMario3DWorld_1800p/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_2160p/4102408f48cb6b94_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_2160p/4102408f48cb6b94_0000000000000079_ps.txt
deleted file mode 100644
index 3a08ba7e..00000000
--- a/Quality/SuperMario3DWorld_2160p/4102408f48cb6b94_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 4102408f48cb6b94
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_2160p/46575655811a12b7_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_2160p/46575655811a12b7_0000000000000079_ps.txt
deleted file mode 100644
index 535e6fc5..00000000
--- a/Quality/SuperMario3DWorld_2160p/46575655811a12b7_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 46575655811a12b7
-// Used for: Horizontal Blur
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Weights and Offsets calculated with BlurNinja with these arguments: --expand 4 --reduce 4 17 --linear
-uniform float weight[] = float[](0.16122494, 0.26575540, 0.12180456, 0.02865990, 0.00316767);
-uniform float offset[] = float[](0.00000000, 1.44000000, 3.36000000, 5.28000000, 7.20000000);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_2160p/74b3539704b05bfd_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_2160p/74b3539704b05bfd_0000000000000079_ps.txt
deleted file mode 100644
index 63adcd52..00000000
--- a/Quality/SuperMario3DWorld_2160p/74b3539704b05bfd_0000000000000079_ps.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 74b3539704b05bfd
-// Used for: Horizontal Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-// Calculated with BlurNinja with as parameters: --expand 3 --reduce 3 13 --linear
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Quality/SuperMario3DWorld_2160p/f5190dd4ae552353_0000000000000079_ps.txt b/Quality/SuperMario3DWorld_2160p/f5190dd4ae552353_0000000000000079_ps.txt
deleted file mode 100644
index 341223d9..00000000
--- a/Quality/SuperMario3DWorld_2160p/f5190dd4ae552353_0000000000000079_ps.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader f5190dd4ae552353
-// Used for: Vertical Blur 1
-const float blurFactor = 1.0; //Higher is less blur
-
-// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
-layout(binding = 0) uniform sampler2D textureUnitPS0;
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 0) out vec4 passPixelColor0;
-
-uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519);
-uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
-
-ivec2 inputRes = textureSize(textureUnitPS0, 0);
-vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
-vec2 scale = outputRes * blurFactor;
-void main()
-{
-	vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
-	vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
-	for (int i = 1; i<4; i++) {
-		R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
-		R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
-	}
-	passPixelColor0 = R1f;
-}
\ No newline at end of file
diff --git a/Workaround/BreathOfTheWild_SmokeDirection/0c68163cebcb2c67_000000000001c24b_ps.txt b/Workaround/BreathOfTheWild_SmokeDirection/0c68163cebcb2c67_000000000001c24b_ps.txt
deleted file mode 100644
index f54ed324..00000000
--- a/Workaround/BreathOfTheWild_SmokeDirection/0c68163cebcb2c67_000000000001c24b_ps.txt
+++ /dev/null
@@ -1,377 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 0c68163cebcb2c67 // guardian explosion plasma smoke ps
-uniform ivec4 uf_remappedPS[6];
-uniform float uf_alphaTestRef;
-layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x21048800 res 256x128x1 dim 1 tm: 4 format 0007 compSel: 0 1 1 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 2 0 border: 0
-layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x2105e800 res 256x256x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 1 2 0 border: 0
-layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x210b5000 res 200x200x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 0 0 0 border: 0
-layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 10) uniform samplerCubeArray textureUnitPS10;// Tex10 addr 0x3d568800 res 16x16x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x2) sliceView: 0x0 (num 0x6) Sampler10 ClampX/Y/Z: 2 2 2 border: 1
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 1) in vec4 passParameterSem1;
-layout(location = 2) in vec4 passParameterSem3;
-layout(location = 3) in vec4 passParameterSem4;
-layout(location = 4) in vec4 passParameterSem5;
-layout(location = 5) in vec4 passParameterSem8;
-layout(location = 6) in vec4 passParameterSem9;
-layout(location = 7) in vec4 passParameterSem11;
-layout(location = 8) in vec4 passParameterSem14;
-layout(location = 9) in vec4 passParameterSem15;
-layout(location = 10) in vec4 passParameterSem16;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId)
-{
-// stm -> x .. s, y .. t, z .. MajorAxis*2.0
-vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x));
-float rx = inputCoord.x;
-float ry = inputCoord.y;
-float rz = inputCoord.z;
-if( abs(rx) > abs(ry) && abs(rx) > abs(rz) )
-{
-stm.z = rx*2.0;
-stm.xy = vec2(ry,rz);	
-if( rx >= 0.0 )
-{
-faceId = 0;
-}
-else
-{
-faceId = 1;
-}
-}
-else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) )
-{
-stm.z = ry*2.0;
-stm.xy = vec2(rx,rz);	
-if( ry >= 0.0 )
-{
-faceId = 2;
-}
-else
-{
-faceId = 3;
-}
-}
-else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) )
-{
-stm.z = rz*2.0;
-stm.xy = vec2(rx,ry);	
-if( rz >= 0.0 )
-{
-faceId = 4;
-}
-else
-{
-faceId = 5;
-}
-}
-}
-vec3 redcCUBEReverse(vec2 st, int faceId)
-{
-st.yx = st.xy;
-vec3 v;
-float majorAxis = 1.0;
-if( faceId == 0 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = 1.0;
-}
-else if( faceId == 1 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = -1.0;
-}
-else if( faceId == 2 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = 1.0;
-}
-else if( faceId == 3 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = -1.0;
-}
-else if( faceId == 4 )
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = 1.0;
-}
-else
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = -1.0;
-}
-return v;
-}
-int clampFI32(int v)
-{
-if( v == 0x7FFFFFFF )
-	return floatBitsToInt(1.0);
-else if( v == 0xFFFFFFFF )
-	return floatBitsToInt(0.0);
-return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
-}
-float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
-void main()
-{
-vec4 R0f = vec4(0.0);
-vec4 R1f = vec4(0.0);
-vec4 R2f = vec4(0.0);
-vec4 R3f = vec4(0.0);
-vec4 R4f = vec4(0.0);
-vec4 R5f = vec4(0.0);
-vec4 R6f = vec4(0.0);
-vec4 R7f = vec4(0.0);
-vec4 R8f = vec4(0.0);
-vec4 R9f = vec4(0.0);
-vec4 R10f = vec4(0.0);
-vec4 R11f = vec4(0.0);
-vec4 R12f = vec4(0.0);
-vec4 R13f = vec4(0.0);
-vec4 R14f = vec4(0.0);
-vec4 R123f = vec4(0.0);
-vec4 R124f = vec4(0.0);
-vec4 R125f = vec4(0.0);
-vec4 R126f = vec4(0.0);
-vec4 R127f = vec4(0.0);
-float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
-vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
-float PS0f = 0.0, PS1f = 0.0;
-vec4 tempf = vec4(0.0);
-float tempResultf;
-int tempResulti;
-ivec4 ARi = ivec4(0);
-bool predResult = true;
-vec3 cubeMapSTM;
-int cubeMapFaceId;
-float cubeMapArrayIndex10 = 0.0;
-R0f = passParameterSem0;
-R1f = passParameterSem1;
-R2f = passParameterSem3;
-R3f = passParameterSem4;
-R4f = passParameterSem5;
-R5f = passParameterSem8;
-R6f = passParameterSem9;
-R7f = passParameterSem11;
-R8f = passParameterSem14;
-R9f = passParameterSem15;
-R10f = passParameterSem16;
-R4f.xw = (texture(textureUnitPS0, R5f.xy).xw);
-// 0
-backupReg0f = R7f.z;
-PV0f.x = R3f.y * 1.5;
-R123f.y = (R4f.w * 2.0 + -(1.0));
-PV0f.y = R123f.y;
-R123f.z = (R4f.x * 2.0 + -(1.0));
-PV0f.z = R123f.z;
-PV0f.w = R3f.y;
-PV0f.w /= 2.0;
-R7f.z = -(backupReg0f);
-PS0f = R7f.z;
-// 1
-PV1f.x = mul_nonIEEE(PV0f.z, PV0f.w);
-PV1f.y = mul_nonIEEE(PV0f.y, PV0f.w);
-PV1f.z = mul_nonIEEE(PV0f.y, PV0f.x);
-PV1f.w = mul_nonIEEE(PV0f.z, PV0f.x);
-R3f.z = 1.0 / R2f.w;
-PS1f = R3f.z;
-// 2
-backupReg0f = R5f.z;
-backupReg1f = R5f.w;
-R5f.xyz = vec3(R6f.x,R6f.y,backupReg0f) + vec3(PV1f.w,PV1f.z,PV1f.x);
-R5f.w = backupReg1f + PV1f.y;
-R6f.w = intBitsToFloat(uf_remappedPS[0].x);
-PS0f = R6f.w;
-// 3
-redcCUBE(vec4(R7f.z,R7f.z,R7f.x,R7f.y),vec4(R7f.y,R7f.x,R7f.z,R7f.z),cubeMapSTM,cubeMapFaceId);
-R127f.x = cubeMapSTM.x;
-R127f.y = cubeMapSTM.y;
-R127f.z = cubeMapSTM.z;
-R127f.w = intBitsToFloat(cubeMapFaceId);
-PV1f.x = R127f.x;
-PV1f.y = R127f.y;
-PV1f.z = R127f.z;
-PV1f.w = R127f.w;
-R7f.x = mul_nonIEEE(R2f.x, R3f.z);
-PS1f = R7f.x;
-// 4
-R4f.x = (R0f.w * 2.0 + -(1.0));
-R7f.y = mul_nonIEEE(R2f.y, R3f.z);
-R6f.z = PV1f.w;
-R3f.w = R1f.x + R1f.x;
-PV0f.w = R3f.w;
-PS0f = 1.0 / abs(PV1f.z);
-// 5
-R123f.x = (mul_nonIEEE(R127f.x,PS0f) + 1.5);
-PV1f.x = R123f.x;
-R13f.y = R1f.y + R1f.y;
-PV1f.y = R13f.y;
-R4f.z = R1f.z + R1f.z;
-PV1f.z = R4f.z;
-R123f.w = (mul_nonIEEE(R127f.y,PS0f) + 1.5);
-PV1f.w = R123f.w;
-R12f.y = -(R1f.x) + PV0f.w;
-PS1f = R12f.y;
-// 6
-R6f.x = PV1f.w;
-R6f.y = PV1f.x;
-R7f.z = -(R1f.y) + PV1f.y;
-R4f.w = -(R1f.z) + PV1f.z;
-R11f.y = -(R0f.w) + 1.0;
-PS0f = R11f.y;
-R5f.x = (texture(textureUnitPS2, R5f.xy).w);
-R14f.xyzw = (texture(textureUnitPS1, R5f.zw).xyzw);
-R6f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R6f.xy,floatBitsToInt(R6f.z)),cubeMapArrayIndex10),R6f.w).xyz);
-R7f.x = (texture(textureUnitPS4, R7f.xy).x);
-// 0
-PV0f.x = R14f.z + R5f.x;
-PV0f.x /= 2.0;
-R127f.y = mul_nonIEEE(R11f.y, R11f.y);
-R127f.y *= 4.0;
-PV0f.z = R2f.z * R3f.z;
-R126f.w = R5f.x + R4f.x;
-PV0f.w = R126f.w;
-R127f.z = R6f.x * 1.0;
-PS0f = R127f.z;
-// 1
-R124f.x = PV0f.x + intBitsToFloat(0xbecccccd);
-R124f.x *= 4.0;
-R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV0f.z) + -(intBitsToFloat(uf_remappedPS[1].y)));
-PV1f.y = R123f.y;
-PV1f.z = max(PV0f.w, intBitsToFloat(0x3e4ccccd));
-R127f.w = R6f.y * 1.0;
-R127f.x = R6f.z * 1.0;
-PS1f = R127f.x;
-// 2
-R126f.x = (mul_nonIEEE(R7f.x,intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[1].x));
-PV0f.y = min(PV1f.z, intBitsToFloat(0x3e99999a));
-R126f.z = -(R14f.z) + 1.0;
-R6f.w = R8f.x + 0.0;
-R125f.x = 1.0 / PV1f.y;
-PS0f = R125f.x;
-// 3
-PV1f.x = PV0f.y + intBitsToFloat(0xbe4ccccd);
-R6f.y = (mul_nonIEEE(R127f.x,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-R6f.z = (mul_nonIEEE(R127f.w,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-R2f.w = (mul_nonIEEE(R127f.z,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-R5f.w = R8f.y + 0.0;
-PS1f = R5f.w;
-// 4
-backupReg0f = R8f.z;
-R123f.x = (mul_nonIEEE(-(R4f.y),R126f.z) + R126f.x);
-PV0f.x = R123f.x;
-PV0f.y = -(intBitsToFloat(uf_remappedPS[1].z)) * R125f.x;
-R8f.z = backupReg0f + 0.0;
-PV0f.w = PV1f.x * intBitsToFloat(0x411fffff);
-PS0f = mul_nonIEEE(R14f.w, R126f.w);
-// 5
-PV1f.x = PV0f.x + -(PV0f.y);
-R126f.y = mul_nonIEEE(R1f.w, PS0f);
-R126f.y = clamp(R126f.y, 0.0, 1.0);
-PV1f.z = mul_nonIEEE(R14f.x, PV0f.w);
-R126f.w = (mul_nonIEEE(PV0f.w,R124f.x) + -(R127f.y));
-R126f.w = clamp(R126f.w, 0.0, 1.0);
-// 6
-R124f.x = (mul_nonIEEE(R4f.w,PV1f.z) + R1f.z);
-PV0f.x = R124f.x;
-R127f.y = (mul_nonIEEE(R7f.z,PV1f.z) + R1f.y);
-PV0f.y = R127f.y;
-R126f.z = (mul_nonIEEE(R12f.y,PV1f.z) + R1f.x);
-PV0f.z = R126f.z;
-PV0f.w = max(PV1f.x, 0.0);
-// 7
-backupReg0f = R0f.y;
-backupReg1f = R0f.x;
-PV1f.x = R0f.z + -(PV0f.x);
-PV1f.y = backupReg0f + -(PV0f.y);
-PV1f.z = backupReg1f + -(PV0f.z);
-PV1f.w = min(PV0f.w, 2.0);
-// 8
-PV0f.x = PV1f.w + -0.0;
-R123f.y = (mul_nonIEEE(PV1f.x,R126f.w) + R124f.x);
-PV0f.y = R123f.y;
-R123f.z = (mul_nonIEEE(PV1f.y,R126f.w) + R127f.y);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(PV1f.z,R126f.w) + R126f.z);
-PV0f.w = R123f.w;
-// 9
-R124f.x = (mul_nonIEEE(R3f.w,R14f.y) + PV0f.w);
-PV1f.x = R124f.x;
-PV1f.y = PV0f.x * 0.5;
-PV1f.y = clamp(PV1f.y, 0.0, 1.0);
-R126f.z = (mul_nonIEEE(R4f.z,R14f.y) + PV0f.y);
-PV1f.z = R126f.z;
-R126f.w = (mul_nonIEEE(R13f.y,R14f.y) + PV0f.z);
-PV1f.w = R126f.w;
-// 10
-PV0f.x = max(PV1f.x, 0.0);
-PV0f.y = mul_nonIEEE(R126f.y, PV1f.y);
-PV0f.y = clamp(PV0f.y, 0.0, 1.0);
-PV0f.z = max(PV1f.z, 0.0);
-PV0f.w = max(PV1f.w, 0.0);
-// 11
-backupReg0f = R3f.x;
-R3f.x = min(PV0f.w, intBitsToFloat(uf_remappedPS[3].y));
-PV1f.x = R3f.x;
-R3f.y = min(PV0f.x, intBitsToFloat(uf_remappedPS[3].y));
-PV1f.y = R3f.y;
-R3f.w = min(PV0f.z, intBitsToFloat(uf_remappedPS[3].y));
-PV1f.w = R3f.w;
-R0f.w = mul_nonIEEE(backupReg0f, PV0f.y);
-PS1f = R0f.w;
-// 12
-R14f.x = R126f.z + -(PV1f.w);
-R13f.y = R126f.w + -(PV1f.x);
-R4f.z = R124f.x + -(PV1f.y);
-// 0
-R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R6f.y) + R8f.z);
-PV0f.y = R123f.y;
-R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R6f.z) + R5f.w);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R2f.w) + R6f.w);
-PV0f.w = R123f.w;
-// 1
-R124f.x = (mul_nonIEEE(R3f.y,PV0f.w) + R4f.z);
-PV1f.x = R124f.x;
-R126f.z = (mul_nonIEEE(R3f.w,PV0f.y) + R14f.x);
-PV1f.z = R126f.z;
-R126f.w = (mul_nonIEEE(R3f.x,PV0f.z) + R13f.y);
-PV1f.w = R126f.w;
-// 2
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].x);
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[4].z);
-// 3
-backupReg0f = R124f.x;
-R124f.x = (mul_nonIEEE(PV0f.w,R10f.y) + R126f.z);
-PV1f.x = R124f.x;
-R126f.y = (mul_nonIEEE(PV0f.x,R10f.y) + R126f.w);
-PV1f.y = R126f.y;
-R126f.z = (mul_nonIEEE(PV0f.y,R10f.y) + backupReg0f);
-PV1f.z = R126f.z;
-// 4
-PV0f.y = R9f.z + -(PV1f.x);
-PV0f.z = R9f.y + -(PV1f.y);
-PV0f.w = R9f.x + -(PV1f.z);
-// 5
-backupReg0f = R124f.x;
-R124f.x = (mul_nonIEEE(PV0f.w,R9f.w) + R126f.z);
-PV1f.x = R124f.x;
-R126f.z = (mul_nonIEEE(PV0f.y,R9f.w) + backupReg0f);
-PV1f.z = R126f.z;
-R126f.w = (mul_nonIEEE(PV0f.z,R9f.w) + R126f.y);
-PV1f.w = R126f.w;
-// 6
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[5].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[5].x);
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[5].z);
-// 7
-R0f.x = (mul_nonIEEE(PV0f.y,R10f.x) + R124f.x);
-R0f.y = (mul_nonIEEE(PV0f.x,R10f.x) + R126f.w);
-R0f.z = (mul_nonIEEE(PV0f.w,R10f.x) + R126f.z);
-// export
-if( ((vec4(R0f.x, R0f.y, R0f.z, R0f.w)).a > uf_alphaTestRef) == false) discard;
-passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
-}
diff --git a/Workaround/BreathOfTheWild_SmokeDirection/527591781440691a_000000000001c24b_ps.txt b/Workaround/BreathOfTheWild_SmokeDirection/527591781440691a_000000000001c24b_ps.txt
deleted file mode 100644
index 9f805f68..00000000
--- a/Workaround/BreathOfTheWild_SmokeDirection/527591781440691a_000000000001c24b_ps.txt
+++ /dev/null
@@ -1,321 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 527591781440691a // distant cloud and fog ps
-uniform ivec4 uf_remappedPS[7];
-uniform float uf_alphaTestRef;
-layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x212f4000 res 128x128x1 dim 1 tm: 4 format 0035 compSel: 0 0 0 1 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 0 border: 0
-layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x212fc000 res 256x64x1 dim 1 tm: 4 format 0035 compSel: 0 0 0 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 0 2 0 border: 0
-layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x2118a000 res 128x128x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 10) uniform samplerCubeArray textureUnitPS10;// Tex10 addr 0x3d568800 res 16x16x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x2) sliceView: 0x0 (num 0x6) Sampler10 ClampX/Y/Z: 2 2 2 border: 1
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 1) in vec4 passParameterSem1;
-layout(location = 2) in vec4 passParameterSem3;
-layout(location = 3) in vec4 passParameterSem4;
-layout(location = 4) in vec4 passParameterSem7;
-layout(location = 5) in vec4 passParameterSem8;
-layout(location = 6) in vec4 passParameterSem9;
-layout(location = 7) in vec4 passParameterSem11;
-layout(location = 8) in vec4 passParameterSem14;
-layout(location = 9) in vec4 passParameterSem15;
-layout(location = 10) in vec4 passParameterSem16;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId)
-{
-// stm -> x .. s, y .. t, z .. MajorAxis*2.0
-vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x));
-float rx = inputCoord.x;
-float ry = inputCoord.y;
-float rz = inputCoord.z;
-if( abs(rx) > abs(ry) && abs(rx) > abs(rz) )
-{
-stm.z = rx*2.0;
-stm.xy = vec2(ry,rz);	
-if( rx >= 0.0 )
-{
-faceId = 0;
-}
-else
-{
-faceId = 1;
-}
-}
-else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) )
-{
-stm.z = ry*2.0;
-stm.xy = vec2(rx,rz);	
-if( ry >= 0.0 )
-{
-faceId = 2;
-}
-else
-{
-faceId = 3;
-}
-}
-else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) )
-{
-stm.z = rz*2.0;
-stm.xy = vec2(rx,ry);	
-if( rz >= 0.0 )
-{
-faceId = 4;
-}
-else
-{
-faceId = 5;
-}
-}
-}
-vec3 redcCUBEReverse(vec2 st, int faceId)
-{
-st.yx = st.xy;
-vec3 v;
-float majorAxis = 1.0;
-if( faceId == 0 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = 1.0;
-}
-else if( faceId == 1 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = -1.0;
-}
-else if( faceId == 2 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = 1.0;
-}
-else if( faceId == 3 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = -1.0;
-}
-else if( faceId == 4 )
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = 1.0;
-}
-else
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = -1.0;
-}
-return v;
-}
-int clampFI32(int v)
-{
-if( v == 0x7FFFFFFF )
-	return floatBitsToInt(1.0);
-else if( v == 0xFFFFFFFF )
-	return floatBitsToInt(0.0);
-return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
-}
-float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
-void main()
-{
-vec4 R0f = vec4(0.0);
-vec4 R1f = vec4(0.0);
-vec4 R2f = vec4(0.0);
-vec4 R3f = vec4(0.0);
-vec4 R4f = vec4(0.0);
-vec4 R5f = vec4(0.0);
-vec4 R6f = vec4(0.0);
-vec4 R7f = vec4(0.0);
-vec4 R8f = vec4(0.0);
-vec4 R9f = vec4(0.0);
-vec4 R10f = vec4(0.0);
-vec4 R11f = vec4(0.0);
-vec4 R12f = vec4(0.0);
-vec4 R13f = vec4(0.0);
-vec4 R122f = vec4(0.0);
-vec4 R123f = vec4(0.0);
-vec4 R125f = vec4(0.0);
-vec4 R126f = vec4(0.0);
-vec4 R127f = vec4(0.0);
-float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
-vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
-float PS0f = 0.0, PS1f = 0.0;
-vec4 tempf = vec4(0.0);
-float tempResultf;
-int tempResulti;
-ivec4 ARi = ivec4(0);
-bool predResult = true;
-vec3 cubeMapSTM;
-int cubeMapFaceId;
-float cubeMapArrayIndex10 = 0.0;
-R0f = passParameterSem0;
-R1f = passParameterSem1;
-R2f = passParameterSem3;
-R3f = passParameterSem4;
-R4f = passParameterSem7;
-R5f = passParameterSem8;
-R6f = passParameterSem9;
-R7f = passParameterSem11;
-R8f = passParameterSem14;
-R9f = passParameterSem15;
-R10f = passParameterSem16;
-R11f.xw = (texture(textureUnitPS0, R5f.xy).xw);
-R13f.x = (texture(textureUnitPS2, R6f.xy).w);
-// 0
-backupReg0f = R7f.z;
-R127f.x = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].y));
-PV0f.y = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].x));
-R7f.z = -(backupReg0f);
-PV0f.z = R7f.z;
-R123f.w = (R11f.x * 2.0 + -(1.0));
-PV0f.w = R123f.w;
-R127f.z = (R11f.w * 2.0 + -(1.0));
-PS0f = R127f.z;
-// 1
-redcCUBE(vec4(PV0f.z,PV0f.z,R7f.x,R7f.y),vec4(R7f.y,R7f.x,PV0f.z,PV0f.z),cubeMapSTM,cubeMapFaceId);
-R126f.x = cubeMapSTM.x;
-R126f.y = cubeMapSTM.y;
-R126f.z = cubeMapSTM.z;
-R126f.w = intBitsToFloat(cubeMapFaceId);
-PV1f.x = R126f.x;
-PV1f.y = R126f.y;
-PV1f.z = R126f.z;
-PV1f.w = R126f.w;
-R7f.x = (mul_nonIEEE(PV0f.y,PV0f.w) + R5f.z);
-PS1f = R7f.x;
-// 2
-R11f.x = R0f.x + -(R1f.x);
-R7f.y = (mul_nonIEEE(R127f.x,R127f.z) + R5f.w);
-R5f.z = PV1f.w;
-R5f.w = intBitsToFloat(uf_remappedPS[1].x);
-PS0f = 1.0 / abs(PV1f.z);
-// 3
-R6f.x = R0f.z + -(R1f.z);
-R6f.y = R0f.y + -(R1f.y);
-R123f.z = (mul_nonIEEE(R126f.y,PS0f) + 1.5);
-PV1f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R126f.x,PS0f) + 1.5);
-PV1f.w = R123f.w;
-PS1f = 1.0 / R2f.w;
-// 4
-R5f.x = PV1f.z;
-R5f.y = PV1f.w;
-R7f.z = mul_nonIEEE(R2f.x, PS1f);
-R7f.w = mul_nonIEEE(R2f.y, PS1f);
-R11f.w = 1.0 / R2f.w;
-PS0f = R11f.w;
-R12f.xyzw = (texture(textureUnitPS1, R7f.xy).xyzw);
-R5f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R5f.xy,floatBitsToInt(R5f.z)),cubeMapArrayIndex10),R5f.w).xyz);
-R7f.x = (texture(textureUnitPS4, R7f.zw).x);
-// 0
-PV0f.x = mul_nonIEEE(R12f.y, R12f.y);
-PV0f.y = mul_nonIEEE(R12f.x, R12f.x);
-R126f.z = R5f.x * 1.0;
-PV0f.w = mul_nonIEEE(R12f.z, R12f.z);
-R126f.x = R5f.y * 1.0;
-PS0f = R126f.x;
-// 1
-PV1f.x = PV0f.w * 1.0;
-PV1f.y = PV0f.x * 1.0;
-PV1f.z = PV0f.y * 1.0;
-R126f.w = R5f.z * 1.0;
-R127f.w = R8f.x + 0.0;
-PS1f = R127f.w;
-// 2
-R127f.x = R8f.y + 0.0;
-R126f.y = (mul_nonIEEE(R6f.x,PV1f.x) + R1f.z);
-R123f.z = (mul_nonIEEE(R6f.y,PV1f.y) + R1f.y);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R11f.x,PV1f.z) + R1f.x);
-PV0f.w = R123f.w;
-R127f.y = R8f.z + 0.0;
-PS0f = R127f.y;
-// 3
-R123f.x = (mul_nonIEEE(R126f.w,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-PV1f.x = R123f.x;
-R123f.y = (mul_nonIEEE(R126f.x,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-PV1f.y = R123f.y;
-R123f.z = (mul_nonIEEE(R126f.z,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-PV1f.z = R123f.z;
-R126f.w = mul_nonIEEE(R4f.x, PV0f.w);
-R125f.w = mul_nonIEEE(R4f.y, PV0f.z);
-PS1f = R125f.w;
-// 4
-R2f.x = R2f.z * R11f.w;
-R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.y) + R127f.x);
-PV0f.y = R123f.y;
-PV0f.z = mul_nonIEEE(R4f.z, R126f.y);
-R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.z) + R127f.w);
-PV0f.w = R123f.w;
-R122f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.x) + R127f.y);
-PS0f = R122f.x;
-// 5
-R127f.x = mul_nonIEEE(R126f.w, PV0f.w);
-PV1f.x = R127f.x;
-PV1f.y = mul_nonIEEE(R12f.w, R13f.x);
-R126f.z = mul_nonIEEE(PV0f.z, PS0f);
-PV1f.z = R126f.z;
-R126f.w = mul_nonIEEE(R125f.w, PV0f.y);
-PV1f.w = R126f.w;
-// 6
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[3].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[3].x);
-R123f.z = (mul_nonIEEE(R4f.w,PV1f.y) + -(R0f.w))*4.0;
-R123f.z = clamp(R123f.z, 0.0, 1.0);
-PV0f.z = R123f.z;
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[3].z);
-// 7
-backupReg0f = R127f.x;
-backupReg1f = R1f.w;
-R127f.x = (mul_nonIEEE(PV0f.w,R10f.y) + R126f.z);
-PV1f.x = R127f.x;
-R127f.y = (mul_nonIEEE(PV0f.x,R10f.y) + R126f.w);
-PV1f.y = R127f.y;
-R126f.z = (mul_nonIEEE(PV0f.y,R10f.y) + backupReg0f);
-PV1f.z = R126f.z;
-R1f.w = mul_nonIEEE(backupReg1f, PV0f.z);
-R1f.w = clamp(R1f.w, 0.0, 1.0);
-// 8
-PV0f.y = R9f.z + -(PV1f.x);
-PV0f.z = R9f.y + -(PV1f.y);
-PV0f.w = R9f.x + -(PV1f.z);
-// 9
-backupReg0f = R127f.x;
-R127f.x = (mul_nonIEEE(PV0f.w,R9f.w) + R126f.z);
-PV1f.x = R127f.x;
-R126f.z = (mul_nonIEEE(PV0f.y,R9f.w) + backupReg0f);
-PV1f.z = R126f.z;
-R126f.w = (mul_nonIEEE(PV0f.z,R9f.w) + R127f.y);
-PV1f.w = R126f.w;
-// 10
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].x);
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[4].z);
-// 11
-backupReg0f = R10f.x;
-backupReg0f = R10f.x;
-backupReg0f = R10f.x;
-R10f.x = (mul_nonIEEE(PV0f.y,backupReg0f) + R127f.x);
-R10f.y = (mul_nonIEEE(PV0f.x,backupReg0f) + R126f.w);
-R10f.z = (mul_nonIEEE(PV0f.w,backupReg0f) + R126f.z);
-// 0
-R127f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].w),R7f.x) + intBitsToFloat(uf_remappedPS[5].x));
-R123f.y = (mul_nonIEEE(R2f.x,intBitsToFloat(uf_remappedPS[5].w)) + -(intBitsToFloat(uf_remappedPS[5].y)));
-PV0f.y = R123f.y;
-// 1
-PS1f = 1.0 / PV0f.y;
-// 2
-PV0f.z = -(intBitsToFloat(uf_remappedPS[5].z)) * PS1f;
-R126f.z = 1.0 / intBitsToFloat(uf_remappedPS[6].y);
-PS0f = R126f.z;
-// 3
-PV1f.w = -(PV0f.z) + R127f.x;
-// 4
-PV0f.y = PV1f.w * R126f.z;
-PV0f.y = clamp(PV0f.y, 0.0, 1.0);
-// 5
-PV1f.x = mul_nonIEEE(R1f.w, PV0f.y);
-// 6
-R10f.w = mul_nonIEEE(R3f.x, PV1f.x);
-// export
-if( ((vec4(R10f.x, R10f.y, R10f.z, R10f.w)).a > uf_alphaTestRef) == false) discard;
-passPixelColor0 = vec4(R10f.x, R10f.y, R10f.z, R10f.w);
-}
diff --git a/Workaround/BreathOfTheWild_SmokeDirection/6ef3887dc83ac35e_000000000001c24b_ps.txt b/Workaround/BreathOfTheWild_SmokeDirection/6ef3887dc83ac35e_000000000001c24b_ps.txt
deleted file mode 100644
index 2ce1e978..00000000
--- a/Workaround/BreathOfTheWild_SmokeDirection/6ef3887dc83ac35e_000000000001c24b_ps.txt
+++ /dev/null
@@ -1,366 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 6ef3887dc83ac35e // distant cloud and fog ps
-uniform ivec4 uf_remappedPS[9];
-uniform float uf_alphaTestRef;
-layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x21106000 res 128x128x1 dim 1 tm: 4 format 0035 compSel: 0 1 1 1 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 0 border: 0
-layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x212a2000 res 400x400x1 dim 1 tm: 4 format 0035 compSel: 0 0 0 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x212f1000 res 64x64x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 10) uniform samplerCubeArray textureUnitPS10;// Tex10 addr 0x3d56d800 res 16x16x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x2) sliceView: 0x0 (num 0x6) Sampler10 ClampX/Y/Z: 2 2 2 border: 1
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 1) in vec4 passParameterSem1;
-layout(location = 2) in vec4 passParameterSem3;
-layout(location = 3) in vec4 passParameterSem4;
-layout(location = 4) in vec4 passParameterSem8;
-layout(location = 5) in vec4 passParameterSem9;
-layout(location = 6) in vec4 passParameterSem11;
-layout(location = 7) in vec4 passParameterSem14;
-layout(location = 8) in vec4 passParameterSem15;
-layout(location = 9) in vec4 passParameterSem16;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId)
-{
-// stm -> x .. s, y .. t, z .. MajorAxis*2.0
-vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x));
-float rx = inputCoord.x;
-float ry = inputCoord.y;
-float rz = inputCoord.z;
-if( abs(rx) > abs(ry) && abs(rx) > abs(rz) )
-{
-stm.z = rx*2.0;
-stm.xy = vec2(ry,rz);	
-if( rx >= 0.0 )
-{
-faceId = 0;
-}
-else
-{
-faceId = 1;
-}
-}
-else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) )
-{
-stm.z = ry*2.0;
-stm.xy = vec2(rx,rz);	
-if( ry >= 0.0 )
-{
-faceId = 2;
-}
-else
-{
-faceId = 3;
-}
-}
-else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) )
-{
-stm.z = rz*2.0;
-stm.xy = vec2(rx,ry);	
-if( rz >= 0.0 )
-{
-faceId = 4;
-}
-else
-{
-faceId = 5;
-}
-}
-}
-vec3 redcCUBEReverse(vec2 st, int faceId)
-{
-st.yx = st.xy;
-vec3 v;
-float majorAxis = 1.0;
-if( faceId == 0 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = 1.0;
-}
-else if( faceId == 1 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = -1.0;
-}
-else if( faceId == 2 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = 1.0;
-}
-else if( faceId == 3 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = -1.0;
-}
-else if( faceId == 4 )
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = 1.0;
-}
-else
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = -1.0;
-}
-return v;
-}
-int clampFI32(int v)
-{
-if( v == 0x7FFFFFFF )
-	return floatBitsToInt(1.0);
-else if( v == 0xFFFFFFFF )
-	return floatBitsToInt(0.0);
-return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
-}
-float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
-void main()
-{
-vec4 R0f = vec4(0.0);
-vec4 R1f = vec4(0.0);
-vec4 R2f = vec4(0.0);
-vec4 R3f = vec4(0.0);
-vec4 R4f = vec4(0.0);
-vec4 R5f = vec4(0.0);
-vec4 R6f = vec4(0.0);
-vec4 R7f = vec4(0.0);
-vec4 R8f = vec4(0.0);
-vec4 R9f = vec4(0.0);
-vec4 R10f = vec4(0.0);
-vec4 R11f = vec4(0.0);
-vec4 R122f = vec4(0.0);
-vec4 R123f = vec4(0.0);
-vec4 R126f = vec4(0.0);
-vec4 R127f = vec4(0.0);
-float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
-vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
-float PS0f = 0.0, PS1f = 0.0;
-vec4 tempf = vec4(0.0);
-float tempResultf;
-int tempResulti;
-ivec4 ARi = ivec4(0);
-bool predResult = true;
-vec3 cubeMapSTM;
-int cubeMapFaceId;
-float cubeMapArrayIndex10 = 0.0;
-R0f = passParameterSem0;
-R1f = passParameterSem1;
-R2f = passParameterSem3;
-R3f = passParameterSem4;
-R4f = passParameterSem8;
-R5f = passParameterSem9;
-R6f = passParameterSem11;
-R7f = passParameterSem14;
-R8f = passParameterSem15;
-R9f = passParameterSem16;
-R10f.xw = (texture(textureUnitPS0, R4f.xy).xw);
-R10f.y = (texture(textureUnitPS2, R5f.xy).w);
-// 0
-R11f.x = R0f.x + -(R1f.x);
-R123f.y = (R10f.w * 2.0 + -(1.0));
-PV0f.y = R123f.y;
-R123f.z = (R10f.x * 2.0 + -(1.0));
-PV0f.z = R123f.z;
-R127f.w = R10f.y * 1.0;
-R127f.z = 1.0 / R2f.w;
-PS0f = R127f.z;
-// 1
-PV1f.x = mul_nonIEEE(R3f.y, PV0f.z);
-PV1f.y = mul_nonIEEE(R3f.y, PV0f.y);
-R11f.z = mul_nonIEEE(R2f.x, PS0f);
-R10f.w = intBitsToFloat(uf_remappedPS[0].x);
-R11f.y = mul_nonIEEE(R2f.y, PS0f);
-PS1f = R11f.y;
-// 2
-PV0f.x = R2f.z * R127f.z;
-R2f.y = R0f.y + -(R1f.y);
-PV0f.z = mul_nonIEEE(PV1f.x, R127f.w);
-PV0f.w = mul_nonIEEE(R127f.w, PV1f.y);
-R2f.w = R7f.x + 0.0;
-PS0f = R2f.w;
-// 3
-R4f.xyz = vec3(R4f.z,R4f.w,R5f.x) + vec3(PV0f.z,PV0f.w,PV0f.z);
-R4f.w = R5f.y + PV0f.w;
-R122f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV0f.x) + -(intBitsToFloat(uf_remappedPS[1].y)));
-PS1f = R122f.x;
-// 4
-R5f.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[2].x),intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(uf_remappedPS[2].z),0.0));
-PV0f.x = R5f.x;
-PV0f.y = R5f.x;
-PV0f.z = R5f.x;
-PV0f.w = R5f.x;
-R127f.z = 1.0 / PS1f;
-PS0f = R127f.z;
-// 5
-backupReg0f = R0f.z;
-tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[3].x),intBitsToFloat(uf_remappedPS[3].y),intBitsToFloat(uf_remappedPS[3].z),0.0));
-PV1f.x = tempf.x;
-PV1f.y = tempf.x;
-PV1f.z = tempf.x;
-PV1f.w = tempf.x;
-R127f.y = tempf.x;
-R5f.y = backupReg0f + -(R1f.z);
-PS1f = R5f.y;
-// 6
-tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),0.0));
-PV0f.x = tempf.x;
-PV0f.y = tempf.x;
-PV0f.z = tempf.x;
-PV0f.w = tempf.x;
-R2f.z = tempf.x;
-R3f.z = R7f.y + 0.0;
-PS0f = R3f.z;
-// 7
-backupReg0f = R6f.z;
-tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),0.0));
-PV1f.x = tempf.x;
-PV1f.y = tempf.x;
-PV1f.z = tempf.x;
-PV1f.w = tempf.x;
-R127f.w = tempf.x;
-R6f.z = -(backupReg0f);
-PS1f = R6f.z;
-// 8
-redcCUBE(vec4(PS1f,PS1f,R6f.x,R6f.y),vec4(R6f.y,R6f.x,PS1f,PS1f),cubeMapSTM,cubeMapFaceId);
-R126f.x = cubeMapSTM.x;
-R126f.y = cubeMapSTM.y;
-R126f.z = cubeMapSTM.z;
-R126f.w = intBitsToFloat(cubeMapFaceId);
-PV0f.x = R126f.x;
-PV0f.y = R126f.y;
-PV0f.z = R126f.z;
-PV0f.w = R126f.w;
-R6f.y = -(intBitsToFloat(uf_remappedPS[1].z)) * R127f.z;
-PS0f = R6f.y;
-// 9
-backupReg0f = R0f.w;
-PV1f.x = R127f.w * R127f.w;
-R0f.y = R7f.z + 0.0;
-R10f.z = PV0f.w;
-R0f.w = (backupReg0f * 2.0 + -(1.0));
-PS1f = 1.0 / abs(PV0f.z);
-// 10
-R123f.x = (R2f.z * R2f.z + PV1f.x);
-PV0f.x = R123f.x;
-R123f.z = (mul_nonIEEE(R126f.y,PS1f) + 1.5);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R126f.x,PS1f) + 1.5);
-PV0f.w = R123f.w;
-// 11
-R10f.x = PV0f.z;
-R10f.y = PV0f.w;
-R0f.x = (R127f.y * R127f.y + PV0f.x);
-PS1f = R0f.x;
-R10f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R10f.xy,floatBitsToInt(R10f.z)),cubeMapArrayIndex10),R10f.w).xyz);
-R7f.xyzw = (texture(textureUnitPS1, R4f.xy).xyzw);
-R4f.y = (texture(textureUnitPS4, R11f.zy).x);
-R11f.y = (texture(textureUnitPS0, R4f.zw).w);
-// 0
-R123f.x = (R5f.x * R5f.x + R0f.x);
-PV0f.x = R123f.x;
-PV0f.y = R10f.x * 1.0;
-PV0f.z = R10f.y * 1.0;
-PV0f.w = R10f.z * 1.0;
-R126f.x = mul_nonIEEE(R7f.z, R7f.z);
-PS0f = R126f.x;
-// 1
-R127f.x = (mul_nonIEEE(PV0f.w,intBitsToFloat(uf_remappedPS[6].y)) + 0.0);
-R123f.y = (mul_nonIEEE(PV0f.z,intBitsToFloat(uf_remappedPS[6].y)) + 0.0);
-PV1f.y = R123f.y;
-R123f.z = (mul_nonIEEE(PV0f.y,intBitsToFloat(uf_remappedPS[6].y)) + 0.0);
-PV1f.z = R123f.z;
-R126f.w = mul_nonIEEE(R7f.x, R7f.x);
-tempResultf = 1.0 / sqrt(PV0f.x);
-PS1f = tempResultf;
-// 2
-backupReg0f = R126f.x;
-R126f.x = (mul_nonIEEE(R5f.y,backupReg0f) + R1f.z);
-PV0f.y = mul_nonIEEE(R7f.y, R7f.y);
-PV0f.z = mul_nonIEEE(R2f.z, PS1f);
-R127f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),PV1f.z) + R2f.w);
-R126f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),PV1f.y) + R3f.z);
-PS0f = R126f.z;
-// 3
-R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R127f.x) + R0f.y);
-PV1f.x = R123f.x;
-PV1f.y = max(PV0f.z, -(PV0f.z));
-R123f.z = (mul_nonIEEE(R11f.x,R126f.w) + R1f.x);
-PV1f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R2f.y,PV0f.y) + R1f.y);
-PV1f.w = R123f.w;
-// 4
-backupReg0f = R126f.z;
-PV0f.x = max(PV1f.y, intBitsToFloat(0x3e99999a));
-R127f.y = mul_nonIEEE(PV1f.z, R127f.w);
-PV0f.y = R127f.y;
-R126f.z = mul_nonIEEE(R126f.x, PV1f.x);
-PV0f.z = R126f.z;
-R127f.w = mul_nonIEEE(PV1f.w, backupReg0f);
-PV0f.w = R127f.w;
-PS0f = R11f.y + R0f.w;
-PS0f = clamp(PS0f, 0.0, 1.0);
-// 5
-PV1f.x = -(PV0f.w) + intBitsToFloat(uf_remappedPS[7].y);
-PV1f.y = -(PV0f.y) + intBitsToFloat(uf_remappedPS[7].x);
-PV1f.z = -(PV0f.z) + intBitsToFloat(uf_remappedPS[7].z);
-PV1f.w = min(PV0f.x, 1.0);
-PS1f = mul_nonIEEE(R7f.w, PS0f);
-// 6
-backupReg0f = R1f.w;
-R126f.x = (mul_nonIEEE(PV1f.y,R9f.y) + R127f.y);
-PV0f.x = R126f.x;
-R127f.y = (mul_nonIEEE(PV1f.x,R9f.y) + R127f.w);
-PV0f.y = R127f.y;
-PV0f.z = PV1f.w + intBitsToFloat(0xbe99999a);
-R127f.w = (mul_nonIEEE(PV1f.z,R9f.y) + R126f.z);
-PV0f.w = R127f.w;
-R1f.w = mul_nonIEEE(backupReg0f, PS1f);
-PS0f = R1f.w;
-// 7
-PV1f.x = R8f.z + -(PV0f.w);
-PV1f.y = PV0f.z * intBitsToFloat(0x3fb6db6e);
-PV1f.z = R8f.y + -(PV0f.y);
-PV1f.w = R8f.x + -(PV0f.x);
-// 8
-backupReg0f = R127f.y;
-PV0f.x = -(PV1f.y) + 1.0;
-R127f.y = (mul_nonIEEE(PV1f.w,R8f.w) + R126f.x);
-PV0f.y = R127f.y;
-R126f.z = (mul_nonIEEE(PV1f.x,R8f.w) + R127f.w);
-PV0f.z = R126f.z;
-R127f.w = (mul_nonIEEE(PV1f.z,R8f.w) + backupReg0f);
-PV0f.w = R127f.w;
-// 9
-PV1f.x = -(PV0f.w) + intBitsToFloat(uf_remappedPS[8].y);
-PV1f.y = -(PV0f.y) + intBitsToFloat(uf_remappedPS[8].x);
-PV1f.z = -(PV0f.z) + intBitsToFloat(uf_remappedPS[8].z);
-PV1f.w = mul_nonIEEE(PV0f.x, PV0f.x);
-// 10
-backupReg0f = R6f.y;
-R6f.x = (mul_nonIEEE(PV1f.y,R9f.x) + R127f.y);
-R6f.y = (mul_nonIEEE(PV1f.x,R9f.x) + R127f.w);
-R8f.z = (PV1f.w * intBitsToFloat(0x42c80000) + backupReg0f);
-R6f.z = (mul_nonIEEE(PV1f.z,R9f.x) + R126f.z);
-PS0f = R6f.z;
-// 0
-R123f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[1].x));
-PV0f.y = R123f.y;
-// 1
-PV1f.y = PV0f.y + -(R8f.z);
-// 2
-PV0f.x = max(PV1f.y, 0.0);
-// 3
-PV1f.w = min(PV0f.x, intBitsToFloat(0x42c80000));
-// 4
-PV0f.z = PV1f.w + -0.0;
-// 5
-PV1f.y = PV0f.z * intBitsToFloat(0x3c23d70a);
-PV1f.y = clamp(PV1f.y, 0.0, 1.0);
-// 6
-PV0f.x = mul_nonIEEE(R1f.w, PV1f.y);
-PV0f.x = clamp(PV0f.x, 0.0, 1.0);
-// 7
-R6f.w = mul_nonIEEE(R3f.x, PV0f.x);
-// export
-if( ((vec4(R6f.x, R6f.y, R6f.z, R6f.w)).a > uf_alphaTestRef) == false) discard;
-passPixelColor0 = vec4(R6f.x, R6f.y, R6f.z, R6f.w);
-}
diff --git a/Workaround/BreathOfTheWild_SmokeDirection/71b06814302a7aad_000000000001c24b_ps.txt b/Workaround/BreathOfTheWild_SmokeDirection/71b06814302a7aad_000000000001c24b_ps.txt
deleted file mode 100644
index 944bd668..00000000
--- a/Workaround/BreathOfTheWild_SmokeDirection/71b06814302a7aad_000000000001c24b_ps.txt
+++ /dev/null
@@ -1,382 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 71b06814302a7aad
-uniform ivec4 uf_remappedPS[6];
-uniform float uf_alphaTestRef;
-layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x21048800 res 256x128x1 dim 1 tm: 4 format 0007 compSel: 0 1 1 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 2 0 border: 0
-layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x2105e800 res 256x256x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 1 2 0 border: 0
-layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x21156000 res 128x128x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 0 0 0 border: 0
-layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 10) uniform samplerCubeArray textureUnitPS10;// Tex10 addr 0x3d568800 res 16x16x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x2) sliceView: 0x0 (num 0x6) Sampler10 ClampX/Y/Z: 2 2 2 border: 1
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 1) in vec4 passParameterSem1;
-layout(location = 2) in vec4 passParameterSem3;
-layout(location = 3) in vec4 passParameterSem4;
-layout(location = 4) in vec4 passParameterSem8;
-layout(location = 5) in vec4 passParameterSem9;
-layout(location = 6) in vec4 passParameterSem11;
-layout(location = 7) in vec4 passParameterSem14;
-layout(location = 8) in vec4 passParameterSem15;
-layout(location = 9) in vec4 passParameterSem16;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId)
-{
-// stm -> x .. s, y .. t, z .. MajorAxis*2.0
-vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x));
-float rx = inputCoord.x;
-float ry = inputCoord.y;
-float rz = inputCoord.z;
-if( abs(rx) > abs(ry) && abs(rx) > abs(rz) )
-{
-stm.z = rx*2.0;
-stm.xy = vec2(ry,rz);	
-if( rx >= 0.0 )
-{
-faceId = 0;
-}
-else
-{
-faceId = 1;
-}
-}
-else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) )
-{
-stm.z = ry*2.0;
-stm.xy = vec2(rx,rz);	
-if( ry >= 0.0 )
-{
-faceId = 2;
-}
-else
-{
-faceId = 3;
-}
-}
-else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) )
-{
-stm.z = rz*2.0;
-stm.xy = vec2(rx,ry);	
-if( rz >= 0.0 )
-{
-faceId = 4;
-}
-else
-{
-faceId = 5;
-}
-}
-}
-vec3 redcCUBEReverse(vec2 st, int faceId)
-{
-st.yx = st.xy;
-vec3 v;
-float majorAxis = 1.0;
-if( faceId == 0 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = 1.0;
-}
-else if( faceId == 1 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = -1.0;
-}
-else if( faceId == 2 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = 1.0;
-}
-else if( faceId == 3 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = -1.0;
-}
-else if( faceId == 4 )
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = 1.0;
-}
-else
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = -1.0;
-}
-return v;
-}
-int clampFI32(int v)
-{
-if( v == 0x7FFFFFFF )
-	return floatBitsToInt(1.0);
-else if( v == 0xFFFFFFFF )
-	return floatBitsToInt(0.0);
-return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
-}
-float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
-void main()
-{
-vec4 R0f = vec4(0.0);
-vec4 R1f = vec4(0.0);
-vec4 R2f = vec4(0.0);
-vec4 R3f = vec4(0.0);
-vec4 R4f = vec4(0.0);
-vec4 R5f = vec4(0.0);
-vec4 R6f = vec4(0.0);
-vec4 R7f = vec4(0.0);
-vec4 R8f = vec4(0.0);
-vec4 R9f = vec4(0.0);
-vec4 R10f = vec4(0.0);
-vec4 R11f = vec4(0.0);
-vec4 R123f = vec4(0.0);
-vec4 R125f = vec4(0.0);
-vec4 R126f = vec4(0.0);
-vec4 R127f = vec4(0.0);
-float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
-vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
-float PS0f = 0.0, PS1f = 0.0;
-vec4 tempf = vec4(0.0);
-float tempResultf;
-int tempResulti;
-ivec4 ARi = ivec4(0);
-bool predResult = true;
-vec3 cubeMapSTM;
-int cubeMapFaceId;
-float cubeMapArrayIndex10 = 0.0;
-R0f = passParameterSem0;
-R1f = passParameterSem1;
-R2f = passParameterSem3;
-R3f = passParameterSem4;
-R4f = passParameterSem8;
-R5f = passParameterSem9;
-R6f = passParameterSem11;
-R7f = passParameterSem14;
-R8f = passParameterSem15;
-R9f = passParameterSem16;
-R10f.xw = (texture(textureUnitPS0, R4f.xy).xw);
-// 0
-PV0f.x = R3f.y * 1.5;
-R123f.y = (R10f.w * 2.0 + -(1.0));
-PV0f.y = R123f.y;
-R123f.z = (R10f.x * 2.0 + -(1.0));
-PV0f.z = R123f.z;
-PV0f.w = R3f.y;
-PV0f.w /= 2.0;
-R127f.w = 1.0 / R2f.w;
-PS0f = R127f.w;
-// 1
-PV1f.x = mul_nonIEEE(PV0f.z, PV0f.w);
-PV1f.y = mul_nonIEEE(PV0f.y, PV0f.w);
-PV1f.z = mul_nonIEEE(PV0f.y, PV0f.x);
-PV1f.w = mul_nonIEEE(PV0f.z, PV0f.x);
-R10f.x = mul_nonIEEE(R2f.x, PS0f);
-PS1f = R10f.x;
-// 2
-backupReg0f = R4f.z;
-backupReg1f = R4f.w;
-R4f.xyz = vec3(R5f.x,R5f.y,backupReg0f) + vec3(PV1f.w,PV1f.z,PV1f.x);
-R4f.w = backupReg1f + PV1f.y;
-R10f.y = mul_nonIEEE(R2f.y, R127f.w);
-PS0f = R10f.y;
-// 3
-backupReg0f = R6f.z;
-R5f.x = (R0f.w * 2.0 + -(1.0));
-PV1f.y = R2f.z * R127f.w;
-R6f.z = -(backupReg0f);
-PV1f.z = R6f.z;
-R2f.w = intBitsToFloat(uf_remappedPS[0].x);
-R5f.z = R1f.x + R1f.x;
-PS1f = R5f.z;
-// 4
-redcCUBE(vec4(PV1f.z,PV1f.z,R6f.x,R6f.y),vec4(R6f.y,R6f.x,PV1f.z,PV1f.z),cubeMapSTM,cubeMapFaceId);
-R127f.x = cubeMapSTM.x;
-R127f.y = cubeMapSTM.y;
-R127f.z = cubeMapSTM.z;
-R127f.w = intBitsToFloat(cubeMapFaceId);
-PV0f.x = R127f.x;
-PV0f.y = R127f.y;
-PV0f.z = R127f.z;
-PV0f.w = R127f.w;
-R126f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.y) + -(intBitsToFloat(uf_remappedPS[1].y)));
-PS0f = R126f.z;
-// 5
-R6f.x = -(R1f.x) + R5f.z;
-R6f.y = R1f.y + R1f.y;
-PV1f.y = R6f.y;
-R2f.z = PV0f.w;
-R6f.w = R1f.z + R1f.z;
-PV1f.w = R6f.w;
-PS1f = 1.0 / abs(PV0f.z);
-// 6
-R123f.x = (mul_nonIEEE(R127f.y,PS1f) + 1.5);
-PV0f.x = R123f.x;
-R123f.y = (mul_nonIEEE(R127f.x,PS1f) + 1.5);
-PV0f.y = R123f.y;
-R3f.z = -(R1f.y) + PV1f.y;
-R5f.w = -(R1f.z) + PV1f.w;
-PS0f = 1.0 / R126f.z;
-// 7
-R2f.x = PV0f.x;
-R2f.y = PV0f.y;
-R6f.z = -(intBitsToFloat(uf_remappedPS[1].z)) * PS0f;
-R10f.w = -(R0f.w) + 1.0;
-R3f.w = -(R9f.w) + 1.0;
-PS1f = R3f.w;
-R4f.x = (texture(textureUnitPS2, R4f.xy).w);
-R10f.x = (texture(textureUnitPS4, R10f.xy).x);
-R11f.xyzw = (texture(textureUnitPS1, R4f.zw).xyzw);
-R2f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R2f.xy,floatBitsToInt(R2f.z)),cubeMapArrayIndex10),R2f.w).xyz);
-// 0
-PV0f.x = R11f.z + R4f.x;
-PV0f.x /= 2.0;
-PV0f.y = -(R11f.z) + 1.0;
-R123f.z = (mul_nonIEEE(R10f.x,intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[1].x));
-PV0f.z = R123f.z;
-R127f.w = R4f.x + R5f.x;
-PV0f.w = R127f.w;
-R127f.y = mul_nonIEEE(R10f.w, R10f.w);
-R127f.y *= 4.0;
-PS0f = R127f.y;
-// 1
-R123f.x = (-(PV0f.y) * intBitsToFloat(0x40c00000) + PV0f.z);
-PV1f.x = R123f.x;
-PV1f.y = mul_nonIEEE(R2f.x, R3f.w);
-PV1f.z = max(PV0f.w, intBitsToFloat(0x3e4ccccd));
-R125f.w = PV0f.x + intBitsToFloat(0xbecccccd);
-R125f.w *= 4.0;
-PS1f = mul_nonIEEE(R2f.y, R3f.w);
-// 2
-PV0f.x = mul_nonIEEE(R2f.z, R3f.w);
-PV0f.y = min(PV1f.z, intBitsToFloat(0x3e99999a));
-R2f.z = (mul_nonIEEE(PV1f.y,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-R126f.w = PV1f.x + -(R6f.z);
-PV0f.w = R126f.w;
-R6f.z = (mul_nonIEEE(PS1f,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-PS0f = R6f.z;
-// 3
-PV1f.x = PV0f.y + intBitsToFloat(0xbe4ccccd);
-R2f.y = (mul_nonIEEE(PV0f.x,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-R123f.z = (PV0f.w * intBitsToFloat(0x3d08888a) + intBitsToFloat(0xbe2aaaad));
-R123f.z = clamp(R123f.z, 0.0, 1.0);
-PV1f.z = R123f.z;
-R3f.w = R7f.x + 0.0;
-R2f.x = R7f.y + 0.0;
-PS1f = R2f.x;
-// 4
-R7f.x = R7f.z + 0.0;
-PV0f.y = mul_nonIEEE(PV1f.z, PV1f.z);
-PV0f.z = mul_nonIEEE(R11f.w, R127f.w);
-PV0f.w = PV1f.x * intBitsToFloat(0x411fffff);
-R127f.w = R126f.w;
-R127f.w *= 2.0;
-R127f.w = clamp(R127f.w, 0.0, 1.0);
-PS0f = R127f.w;
-// 5
-R127f.x = (0.5 * PV0f.y + 0.5);
-R126f.y = (mul_nonIEEE(PV0f.w,R125f.w) + -(R127f.y));
-R126f.y = clamp(R126f.y, 0.0, 1.0);
-PV1f.z = mul_nonIEEE(R11f.x, PV0f.w);
-PV1f.w = mul_nonIEEE(R1f.w, PV0f.z);
-PV1f.w = clamp(PV1f.w, 0.0, 1.0);
-// 6
-R123f.x = (mul_nonIEEE(R5f.w,PV1f.z) + R1f.z);
-PV0f.x = R123f.x;
-R123f.y = (mul_nonIEEE(R3f.z,PV1f.z) + R1f.y);
-PV0f.y = R123f.y;
-R123f.z = (mul_nonIEEE(R6f.x,PV1f.z) + R1f.x);
-PV0f.z = R123f.z;
-PV0f.w = mul_nonIEEE(PV1f.w, R127f.w);
-PV0f.w = clamp(PV0f.w, 0.0, 1.0);
-// 7
-R123f.y = (mul_nonIEEE(R6f.w,R11f.y) + PV0f.x);
-PV1f.y = R123f.y;
-R123f.z = (mul_nonIEEE(R6f.y,R11f.y) + PV0f.y);
-PV1f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R5f.z,R11f.y) + PV0f.z);
-PV1f.w = R123f.w;
-R5f.w = mul_nonIEEE(R3f.x, PV0f.w);
-PS1f = R5f.w;
-// 8
-R127f.y = mul_nonIEEE(PV1f.y, R127f.x);
-PV0f.y = R127f.y;
-R127f.z = mul_nonIEEE(PV1f.z, R127f.x);
-PV0f.z = R127f.z;
-R127f.w = mul_nonIEEE(PV1f.w, R127f.x);
-PV0f.w = R127f.w;
-// 9
-backupReg0f = R0f.y;
-PV1f.y = R0f.z + -(PV0f.y);
-PV1f.z = backupReg0f + -(PV0f.z);
-PV1f.w = R0f.x + -(PV0f.w);
-// 10
-backupReg0f = R127f.z;
-R127f.x = (mul_nonIEEE(PV1f.w,R126f.y) + R127f.w);
-PV0f.x = R127f.x;
-R127f.z = (mul_nonIEEE(PV1f.y,R126f.y) + R127f.y);
-PV0f.z = R127f.z;
-R127f.w = (mul_nonIEEE(PV1f.z,R126f.y) + backupReg0f);
-PV0f.w = R127f.w;
-// 11
-PV1f.x = max(PV0f.x, 0.0);
-PV1f.z = max(PV0f.z, 0.0);
-PV1f.w = max(PV0f.w, 0.0);
-// 12
-R0f.x = min(PV1f.w, intBitsToFloat(uf_remappedPS[3].y));
-PV0f.x = R0f.x;
-R0f.y = min(PV1f.x, intBitsToFloat(uf_remappedPS[3].y));
-PV0f.y = R0f.y;
-R0f.w = min(PV1f.z, intBitsToFloat(uf_remappedPS[3].y));
-PV0f.w = R0f.w;
-// 13
-R3f.x = R127f.z + -(PV0f.w);
-R3f.y = R127f.w + -(PV0f.x);
-R0f.z = R127f.x + -(PV0f.y);
-// 0
-R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R2f.y) + R7f.x);
-PV0f.y = R123f.y;
-R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R6f.z) + R2f.x);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R2f.z) + R3f.w);
-PV0f.w = R123f.w;
-// 1
-R127f.x = (mul_nonIEEE(R0f.y,PV0f.w) + R0f.z);
-PV1f.x = R127f.x;
-R127f.z = (mul_nonIEEE(R0f.w,PV0f.y) + R3f.x);
-PV1f.z = R127f.z;
-R127f.w = (mul_nonIEEE(R0f.x,PV0f.z) + R3f.y);
-PV1f.w = R127f.w;
-// 2
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].x);
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[4].z);
-// 3
-backupReg0f = R127f.x;
-R127f.x = (mul_nonIEEE(PV0f.w,R9f.y) + R127f.z);
-PV1f.x = R127f.x;
-R127f.y = (mul_nonIEEE(PV0f.x,R9f.y) + R127f.w);
-PV1f.y = R127f.y;
-R127f.z = (mul_nonIEEE(PV0f.y,R9f.y) + backupReg0f);
-PV1f.z = R127f.z;
-// 4
-PV0f.y = R8f.z + -(PV1f.x);
-PV0f.z = R8f.y + -(PV1f.y);
-PV0f.w = R8f.x + -(PV1f.z);
-// 5
-backupReg0f = R127f.x;
-R127f.x = (mul_nonIEEE(PV0f.w,R8f.w) + R127f.z);
-PV1f.x = R127f.x;
-R127f.z = (mul_nonIEEE(PV0f.y,R8f.w) + backupReg0f);
-PV1f.z = R127f.z;
-R127f.w = (mul_nonIEEE(PV0f.z,R8f.w) + R127f.y);
-PV1f.w = R127f.w;
-// 6
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[5].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[5].x);
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[5].z);
-// 7
-R5f.x = (mul_nonIEEE(PV0f.y,R9f.x) + R127f.x);
-R5f.y = (mul_nonIEEE(PV0f.x,R9f.x) + R127f.w);
-R5f.z = (mul_nonIEEE(PV0f.w,R9f.x) + R127f.z);
-// export
-if( ((vec4(R5f.x, R5f.y, R5f.z, R5f.w)).a > uf_alphaTestRef) == false) discard;
-passPixelColor0 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
-}
diff --git a/Workaround/BreathOfTheWild_SmokeDirection/8146394a1b1f1f28_000000000001c24b_ps.txt b/Workaround/BreathOfTheWild_SmokeDirection/8146394a1b1f1f28_000000000001c24b_ps.txt
deleted file mode 100644
index 067fa668..00000000
--- a/Workaround/BreathOfTheWild_SmokeDirection/8146394a1b1f1f28_000000000001c24b_ps.txt
+++ /dev/null
@@ -1,342 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader 8146394a1b1f1f28 // guardian explosion yellow smoke ps
-uniform ivec4 uf_remappedPS[5];
-uniform float uf_alphaTestRef;
-layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x21048800 res 256x128x1 dim 1 tm: 4 format 0007 compSel: 0 1 1 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 0 border: 0
-layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x2105e800 res 256x256x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x210b5000 res 200x200x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 0 0 0 border: 0
-layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0
-layout(binding = 10) uniform samplerCubeArray textureUnitPS10;// Tex10 addr 0x3d568800 res 16x16x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x2) sliceView: 0x0 (num 0x6) Sampler10 ClampX/Y/Z: 2 2 2 border: 1
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 1) in vec4 passParameterSem1;
-layout(location = 2) in vec4 passParameterSem3;
-layout(location = 3) in vec4 passParameterSem4;
-layout(location = 4) in vec4 passParameterSem5;
-layout(location = 5) in vec4 passParameterSem8;
-layout(location = 6) in vec4 passParameterSem9;
-layout(location = 7) in vec4 passParameterSem11;
-layout(location = 8) in vec4 passParameterSem14;
-layout(location = 9) in vec4 passParameterSem15;
-layout(location = 10) in vec4 passParameterSem16;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId)
-{
-// stm -> x .. s, y .. t, z .. MajorAxis*2.0
-vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x));
-float rx = inputCoord.x;
-float ry = inputCoord.y;
-float rz = inputCoord.z;
-if( abs(rx) > abs(ry) && abs(rx) > abs(rz) )
-{
-stm.z = rx*2.0;
-stm.xy = vec2(ry,rz);	
-if( rx >= 0.0 )
-{
-faceId = 0;
-}
-else
-{
-faceId = 1;
-}
-}
-else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) )
-{
-stm.z = ry*2.0;
-stm.xy = vec2(rx,rz);	
-if( ry >= 0.0 )
-{
-faceId = 2;
-}
-else
-{
-faceId = 3;
-}
-}
-else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) )
-{
-stm.z = rz*2.0;
-stm.xy = vec2(rx,ry);	
-if( rz >= 0.0 )
-{
-faceId = 4;
-}
-else
-{
-faceId = 5;
-}
-}
-}
-vec3 redcCUBEReverse(vec2 st, int faceId)
-{
-st.yx = st.xy;
-vec3 v;
-float majorAxis = 1.0;
-if( faceId == 0 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = 1.0;
-}
-else if( faceId == 1 )
-{
-v.yz = (st-vec2(1.5))*(majorAxis*2.0);
-v.x = -1.0;
-}
-else if( faceId == 2 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = 1.0;
-}
-else if( faceId == 3 )
-{
-v.xz = (st-vec2(1.5))*(majorAxis*2.0);
-v.y = -1.0;
-}
-else if( faceId == 4 )
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = 1.0;
-}
-else
-{
-v.xy = (st-vec2(1.5))*(majorAxis*2.0);
-v.z = -1.0;
-}
-return v;
-}
-int clampFI32(int v)
-{
-if( v == 0x7FFFFFFF )
-	return floatBitsToInt(1.0);
-else if( v == 0xFFFFFFFF )
-	return floatBitsToInt(0.0);
-return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
-}
-float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
-void main()
-{
-vec4 R0f = vec4(0.0);
-vec4 R1f = vec4(0.0);
-vec4 R2f = vec4(0.0);
-vec4 R3f = vec4(0.0);
-vec4 R4f = vec4(0.0);
-vec4 R5f = vec4(0.0);
-vec4 R6f = vec4(0.0);
-vec4 R7f = vec4(0.0);
-vec4 R8f = vec4(0.0);
-vec4 R9f = vec4(0.0);
-vec4 R10f = vec4(0.0);
-vec4 R11f = vec4(0.0);
-vec4 R123f = vec4(0.0);
-vec4 R125f = vec4(0.0);
-vec4 R126f = vec4(0.0);
-vec4 R127f = vec4(0.0);
-float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
-vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
-float PS0f = 0.0, PS1f = 0.0;
-vec4 tempf = vec4(0.0);
-float tempResultf;
-int tempResulti;
-ivec4 ARi = ivec4(0);
-bool predResult = true;
-vec3 cubeMapSTM;
-int cubeMapFaceId;
-float cubeMapArrayIndex10 = 0.0;
-R0f = passParameterSem0;
-R1f = passParameterSem1;
-R2f = passParameterSem3;
-R3f = passParameterSem4;
-R4f = passParameterSem5;
-R5f = passParameterSem8;
-R6f = passParameterSem9;
-R7f = passParameterSem11;
-R8f = passParameterSem14;
-R9f = passParameterSem15;
-R10f = passParameterSem16;
-R11f.xw = (texture(textureUnitPS0, R5f.xy).xw);
-// 0
-backupReg0f = R7f.z;
-R123f.x = (R11f.x * 2.0 + -(1.0));
-PV0f.x = R123f.x;
-R127f.y = (1.5 * R4f.x + 0.5);
-R7f.z = -(backupReg0f);
-R123f.w = (R11f.w * 2.0 + -(1.0));
-PV0f.w = R123f.w;
-PS0f = 1.0 / R2f.w;
-// 1
-R4f.x = mul_nonIEEE(R2f.x, PS0f);
-R126f.y = mul_nonIEEE(R3f.y, PV0f.w);
-R127f.z = mul_nonIEEE(R3f.y, PV0f.x);
-PV1f.z = R127f.z;
-R4f.w = mul_nonIEEE(R2f.y, PS0f);
-R11f.w = intBitsToFloat(uf_remappedPS[0].x);
-PS1f = R11f.w;
-// 2
-redcCUBE(vec4(R7f.z,R7f.z,R7f.x,R7f.y),vec4(R7f.y,R7f.x,R7f.z,R7f.z),cubeMapSTM,cubeMapFaceId);
-R125f.x = cubeMapSTM.x;
-R125f.y = cubeMapSTM.y;
-R125f.z = cubeMapSTM.z;
-R125f.w = intBitsToFloat(cubeMapFaceId);
-PV0f.x = R125f.x;
-PV0f.y = R125f.y;
-PV0f.z = R125f.z;
-PV0f.w = R125f.w;
-PS0f = mul_nonIEEE(PV1f.z, R127f.y);
-// 3
-backupReg0f = R6f.x;
-R6f.x = R5f.z + PS0f;
-R7f.y = R6f.y + R126f.y;
-PV1f.z = mul_nonIEEE(R126f.y, R127f.y);
-R7f.w = backupReg0f + R127f.z;
-PS1f = 1.0 / abs(PV0f.z);
-// 4
-R5f.x = (R0f.x * 1.5 + -(R0f.x));
-R6f.y = R5f.w + PV1f.z;
-R123f.z = (mul_nonIEEE(R125f.y,PS1f) + 1.5);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R125f.x,PS1f) + 1.5);
-PV0f.w = R123f.w;
-R11f.z = R125f.w;
-PS0f = R11f.z;
-// 5
-R11f.x = PV0f.z;
-R11f.y = PV0f.w;
-R5f.z = (R0f.y * 1.5 + -(R0f.y));
-R3f.w = (R0f.z * 1.5 + -(R0f.z));
-R5f.w = 1.0 / R2f.w;
-PS1f = R5f.w;
-R4f.x = (texture(textureUnitPS4, R4f.xw).x);
-R6f.xyzw = (texture(textureUnitPS1, R6f.xy).xyzw);
-R11f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R11f.xy,floatBitsToInt(R11f.z)),cubeMapArrayIndex10),R11f.w).xyz);
-R7f.y = (texture(textureUnitPS2, R7f.wy).w);
-// 0
-backupReg0f = R0f.z;
-R125f.x = R0f.x;
-R125f.x /= 2.0;
-R127f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R4f.x) + intBitsToFloat(uf_remappedPS[1].x));
-PV0f.z = R2f.z * R5f.w;
-R125f.w = R0f.y;
-R125f.w /= 2.0;
-R125f.y = backupReg0f;
-R125f.y /= 2.0;
-PS0f = R125f.y;
-// 1
-R123f.x = (mul_nonIEEE(R5f.x,R6f.x) + R0f.x);
-PV1f.x = R123f.x;
-R123f.y = (mul_nonIEEE(PV0f.z,intBitsToFloat(uf_remappedPS[1].w)) + -(intBitsToFloat(uf_remappedPS[1].y)));
-PV1f.y = R123f.y;
-R123f.z = (mul_nonIEEE(R3f.w,R6f.x) + R0f.z);
-PV1f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R5f.z,R6f.x) + R0f.y);
-PV1f.w = R123f.w;
-R127f.x = R11f.y * 1.0;
-PS1f = R127f.x;
-// 2
-R123f.x = (mul_nonIEEE(R125f.w,R6f.y) + PV1f.w);
-PV0f.x = R123f.x;
-R123f.y = (mul_nonIEEE(R125f.x,R6f.y) + PV1f.x);
-PV0f.y = R123f.y;
-R125f.z = R11f.x * 1.0;
-R123f.w = (mul_nonIEEE(R125f.y,R6f.y) + PV1f.z);
-PV0f.w = R123f.w;
-PS0f = 1.0 / PV1f.y;
-// 3
-R125f.x = R11f.z * 1.0;
-R125f.y = mul_nonIEEE(R1f.y, PV0f.x);
-R127f.z = mul_nonIEEE(R1f.x, PV0f.y);
-R125f.w = -(intBitsToFloat(uf_remappedPS[1].z)) * PS0f;
-PV1f.w = R125f.w;
-R126f.x = mul_nonIEEE(R1f.z, PV0f.w);
-PS1f = R126f.x;
-// 4
-backupReg0f = R8f.x;
-backupReg1f = R8f.y;
-R8f.x = backupReg0f + 0.0;
-R8f.y = R8f.z + 0.0;
-R11f.z = backupReg1f + 0.0;
-PV0f.w = -(PV1f.w) + R127f.y;
-R8f.z = (mul_nonIEEE(R125f.z,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-PS0f = R8f.z;
-// 5
-R0f.x = (mul_nonIEEE(R125f.x,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-R0f.y = (mul_nonIEEE(R127f.x,intBitsToFloat(uf_remappedPS[2].y)) + 0.0);
-R123f.z = (PV0f.w * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xbd4ccccd));
-R123f.z = clamp(R123f.z, 0.0, 1.0);
-PV1f.z = R123f.z;
-R123f.w = (R0f.w * 2.0 + -(1.0));
-PV1f.w = R123f.w;
-PS1f = -(R6f.z) + 1.0;
-// 6
-R123f.x = (intBitsToFloat(0x3ecccccc) * PV1f.z + intBitsToFloat(0x3f19999a));
-PV0f.x = R123f.x;
-PV0f.y = R125f.w + PS1f;
-PV0f.w = R7f.y + PV1f.w;
-// 7
-PV1f.x = mul_nonIEEE(R6f.w, PV0f.w);
-R6f.y = mul_nonIEEE(R127f.z, PV0f.x);
-R6f.z = mul_nonIEEE(R126f.x, PV0f.x);
-R6f.w = mul_nonIEEE(R125f.y, PV0f.x);
-PS1f = R127f.y + -(PV0f.y);
-PS1f = clamp(PS1f, 0.0, 1.0);
-// 8
-PV0f.x = PS1f;
-PV0f.x *= 4.0;
-PV0f.x = clamp(PV0f.x, 0.0, 1.0);
-PV0f.y = mul_nonIEEE(R1f.w, PV1f.x);
-PV0f.y = clamp(PV0f.y, 0.0, 1.0);
-// 9
-PV1f.x = mul_nonIEEE(PV0f.y, PV0f.x);
-PV1f.x = clamp(PV1f.x, 0.0, 1.0);
-// 10
-R3f.w = mul_nonIEEE(R3f.x, PV1f.x);
-// 0
-R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.x) + R8f.y);
-PV0f.y = R123f.y;
-R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R0f.y) + R11f.z);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R8f.z) + R8f.x);
-PV0f.w = R123f.w;
-// 1
-R126f.x = mul_nonIEEE(R6f.y, PV0f.w);
-PV1f.x = R126f.x;
-R127f.z = mul_nonIEEE(R6f.z, PV0f.y);
-PV1f.z = R127f.z;
-R125f.w = mul_nonIEEE(R6f.w, PV0f.z);
-PV1f.w = R125f.w;
-// 2
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[3].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[3].x);
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[3].z);
-// 3
-backupReg0f = R126f.x;
-R126f.x = (mul_nonIEEE(PV0f.w,R10f.y) + R127f.z);
-PV1f.x = R126f.x;
-R127f.y = (mul_nonIEEE(PV0f.x,R10f.y) + R125f.w);
-PV1f.y = R127f.y;
-R127f.z = (mul_nonIEEE(PV0f.y,R10f.y) + backupReg0f);
-PV1f.z = R127f.z;
-// 4
-PV0f.y = R9f.z + -(PV1f.x);
-PV0f.z = R9f.y + -(PV1f.y);
-PV0f.w = R9f.x + -(PV1f.z);
-// 5
-backupReg0f = R126f.x;
-R126f.x = (mul_nonIEEE(PV0f.w,R9f.w) + R127f.z);
-PV1f.x = R126f.x;
-R127f.z = (mul_nonIEEE(PV0f.y,R9f.w) + backupReg0f);
-PV1f.z = R127f.z;
-R125f.w = (mul_nonIEEE(PV0f.z,R9f.w) + R127f.y);
-PV1f.w = R125f.w;
-// 6
-PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].y);
-PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].x);
-PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[4].z);
-// 7
-R3f.x = (mul_nonIEEE(PV0f.y,R10f.x) + R126f.x);
-R3f.y = (mul_nonIEEE(PV0f.x,R10f.x) + R125f.w);
-R3f.z = (mul_nonIEEE(PV0f.w,R10f.x) + R127f.z);
-// export
-if( ((vec4(R3f.x, R3f.y, R3f.z, R3f.w)).a > uf_alphaTestRef) == false) discard;
-passPixelColor0 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
-}
diff --git a/Workaround/BreathOfTheWild_SmokeDirection/a4f029f0b16e3776_0000000000000000_vs.txt b/Workaround/BreathOfTheWild_SmokeDirection/a4f029f0b16e3776_0000000000000000_vs.txt
new file mode 100644
index 00000000..d0bdfd3b
--- /dev/null
+++ b/Workaround/BreathOfTheWild_SmokeDirection/a4f029f0b16e3776_0000000000000000_vs.txt
@@ -0,0 +1,2259 @@
+#version 420
+#extension GL_ARB_texture_gather : enable
+#extension GL_ARB_shading_language_packing : enable
+// shader a4f029f0b16e3776
+layout(binding = 6, std140) uniform uniformBlockVS6
+{
+vec4 uf_blockVS6[1024];
+};
+
+layout(binding = 7, std140) uniform uniformBlockVS7
+{
+vec4 uf_blockVS7[1024];
+};
+
+layout(binding = 8, std140) uniform uniformBlockVS8
+{
+vec4 uf_blockVS8[1024];
+};
+
+layout(binding = 11, std140) uniform uniformBlockVS11
+{
+vec4 uf_blockVS11[1024];
+};
+
+layout(binding = 13, std140) uniform uniformBlockVS13
+{
+vec4 uf_blockVS13[1024];
+};
+
+uniform vec2 uf_windowSpaceToClipSpaceTransform;
+uniform float uf_alphaTestRef;
+layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1
+layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1
+layout(location = 0) in uvec4 attrDataSem0;
+layout(location = 1) in uvec4 attrDataSem1;
+layout(location = 2) in uvec4 attrDataSem2;
+layout(location = 3) in uvec4 attrDataSem3;
+layout(location = 4) in uvec4 attrDataSem4;
+layout(location = 5) in uvec4 attrDataSem5;
+layout(location = 6) in uvec4 attrDataSem6;
+layout(location = 7) in uvec4 attrDataSem7;
+layout(location = 8) in uvec4 attrDataSem8;
+layout(location = 9) in uvec4 attrDataSem9;
+layout(location = 10) in uvec4 attrDataSem10;
+out gl_PerVertex
+{
+	vec4 gl_Position;
+	float gl_PointSize;
+};
+layout(location = 0) out vec4 passParameterSem0;
+layout(location = 1) out vec4 passParameterSem1;
+layout(location = 2) out vec4 passParameterSem3;
+layout(location = 4) out vec4 passParameterSem8;
+layout(location = 6) out vec4 passParameterSem11;
+layout(location = 7) out vec4 passParameterSem14;
+layout(location = 8) out vec4 passParameterSem15;
+layout(location = 9) out vec4 passParameterSem16;
+layout(location = 3) out vec4 passParameterSem4;
+layout(location = 5) out vec4 passParameterSem9;
+int clampFI32(int v)
+{
+if( v == 0x7FFFFFFF )
+	return floatBitsToInt(1.0);
+else if( v == 0xFFFFFFFF )
+	return floatBitsToInt(0.0);
+return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
+}
+float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
+void main()
+{
+ivec4 R0i = ivec4(0);
+ivec4 R1i = ivec4(0);
+ivec4 R2i = ivec4(0);
+ivec4 R3i = ivec4(0);
+ivec4 R4i = ivec4(0);
+ivec4 R5i = ivec4(0);
+ivec4 R6i = ivec4(0);
+ivec4 R7i = ivec4(0);
+ivec4 R8i = ivec4(0);
+ivec4 R9i = ivec4(0);
+ivec4 R10i = ivec4(0);
+ivec4 R11i = ivec4(0);
+ivec4 R12i = ivec4(0);
+ivec4 R13i = ivec4(0);
+ivec4 R14i = ivec4(0);
+ivec4 R15i = ivec4(0);
+ivec4 R16i = ivec4(0);
+ivec4 R17i = ivec4(0);
+ivec4 R18i = ivec4(0);
+ivec4 R19i = ivec4(0);
+ivec4 R20i = ivec4(0);
+ivec4 R21i = ivec4(0);
+ivec4 R22i = ivec4(0);
+ivec4 R23i = ivec4(0);
+ivec4 R122i = ivec4(0);
+ivec4 R123i = ivec4(0);
+ivec4 R124i = ivec4(0);
+ivec4 R125i = ivec4(0);
+ivec4 R126i = ivec4(0);
+ivec4 R127i = ivec4(0);
+uvec4 attrDecoder;
+int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i;
+ivec4 PV0i = ivec4(0), PV1i = ivec4(0);
+int PS0i = 0, PS1i = 0;
+ivec4 tempi = ivec4(0);
+float tempResultf;
+int tempResulti;
+ivec4 ARi = ivec4(0);
+bool predResult = true;
+bool activeMaskStack[3];
+bool activeMaskStackC[4];
+activeMaskStack[0] = false;
+activeMaskStack[1] = false;
+activeMaskStackC[0] = false;
+activeMaskStackC[1] = false;
+activeMaskStackC[2] = false;
+activeMaskStack[0] = true;
+activeMaskStackC[0] = true;
+activeMaskStackC[1] = true;
+vec3 cubeMapSTM;
+int cubeMapFaceId;
+R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID);
+attrDecoder = attrDataSem5;
+attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
+R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
+attrDecoder.xyz = attrDataSem4.xyz;
+attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24));
+attrDecoder.w = 0;
+R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0));
+attrDecoder = attrDataSem9;
+attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
+R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
+attrDecoder = attrDataSem0;
+R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
+attrDecoder = attrDataSem2;
+attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
+R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
+attrDecoder = attrDataSem3;
+attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
+R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
+attrDecoder = attrDataSem7;
+attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
+R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
+attrDecoder = attrDataSem6;
+attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24));
+R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w));
+if( activeMaskStackC[1] == true ) {
+activeMaskStack[1] = activeMaskStack[0];
+activeMaskStackC[2] = activeMaskStackC[1];
+// 0
+R15i.z = floatBitsToInt(-(intBitsToFloat(R8i.y)) + 1.0);
+R4i.w = 0;
+R5i.w = floatBitsToInt(1.0);
+PS0i = R5i.w;
+// 1
+R15i.w = floatBitsToInt(-(intBitsToFloat(R3i.w)) + uf_blockVS8[2].x);
+R16i.w = floatBitsToInt(-(intBitsToFloat(R8i.x)) + 1.0);
+PS1i = R16i.w;
+// 2
+predResult = (0.0 > intBitsToFloat(R15i.w));
+activeMaskStack[1] = predResult;
+activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
+}
+else {
+activeMaskStack[1] = false;
+activeMaskStackC[2] = false;
+}
+if( activeMaskStackC[2] == true ) {
+// 0
+R21i.x = 0;
+R21i.y = 0;
+R21i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000));
+R22i.x = 0;
+PS0i = R22i.x;
+// 1
+R3i.w = R5i.w;
+}
+activeMaskStack[1] = activeMaskStack[1] == false;
+activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
+if( activeMaskStackC[2] == true ) {
+// 0
+R3i.w = R4i.w;
+}
+activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
+if( activeMaskStackC[1] == true ) {
+activeMaskStack[1] = activeMaskStack[0];
+activeMaskStackC[2] = activeMaskStackC[1];
+// 0
+predResult = (R3i.w == 0);
+activeMaskStack[1] = predResult;
+activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
+}
+else {
+activeMaskStack[1] = false;
+activeMaskStackC[2] = false;
+}
+if( activeMaskStackC[2] == true ) {
+activeMaskStack[2] = activeMaskStack[1];
+activeMaskStackC[3] = activeMaskStackC[2];
+// 0
+PS0i = int(intBitsToFloat(R2i.w));
+// 1
+R3i.x = floatBitsToInt(float(PS0i));
+PS1i = R3i.x;
+// 2
+predResult = (intBitsToFloat(R15i.w) >= intBitsToFloat(R3i.x));
+activeMaskStack[2] = predResult;
+activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
+}
+else {
+activeMaskStack[2] = false;
+activeMaskStackC[3] = false;
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R21i.x = 0;
+R21i.y = 0;
+R21i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000));
+R22i.x = 0;
+PS0i = R22i.x;
+// 1
+R4i.w = R5i.w;
+}
+activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
+if( activeMaskStackC[2] == true ) {
+activeMaskStack[2] = activeMaskStack[1];
+activeMaskStackC[3] = activeMaskStackC[2];
+// 0
+predResult = (R4i.w == 0);
+activeMaskStack[2] = predResult;
+activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
+}
+else {
+activeMaskStack[2] = false;
+activeMaskStackC[3] = false;
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0);
+PV0i.y = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0);
+R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockVS7[10].y));
+PV0i.w = floatBitsToInt(max(intBitsToFloat(R6i.x), 0.0));
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[9].x);
+// 1
+PV1i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i));
+R127i.y = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x);
+PV1i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 0.0));
+R127i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x)));
+PV1i.w = R127i.w;
+R10i.y = floatBitsToInt(1.0 / intBitsToFloat(R3i.x));
+PS1i = R10i.y;
+// 2
+R0i.x = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV1i.z));
+R11i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i));
+PV0i.y = R11i.y;
+PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
+PV0i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x));
+R126i.y = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y);
+PS0i = R126i.y;
+// 3
+R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z)));
+R125i.y = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z);
+PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.w)));
+PV1i.w = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w);
+// 4
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.z)));
+R126i.z = floatBitsToInt(-(uf_blockVS7[97].y) + uf_blockVS7[98].y);
+R126i.w = floatBitsToInt(-(uf_blockVS7[97].x) + uf_blockVS7[98].x);
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w));
+// 5
+backupReg0i = R127i.x;
+backupReg1i = R127i.y;
+R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y));
+PV1i.x = R127i.x;
+R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(PS0i));
+R127i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i));
+R127i.w = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS0i));
+R126i.y = floatBitsToInt(-(uf_blockVS7[97].z) + uf_blockVS7[98].z);
+PS1i = R126i.y;
+// 6
+R126i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[97].w));
+PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[96].w));
+// 7
+PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.w)));
+PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.z)));
+PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.y)));
+PV1i.w = floatBitsToInt(-(uf_blockVS7[97].w) + uf_blockVS7[98].w);
+R125i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PS1i = R125i.y;
+// 8
+R125i.x = ((intBitsToFloat(R126i.x) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV0i.x = R125i.x;
+R127i.yzw = floatBitsToInt(vec3(uf_blockVS7[96].z,uf_blockVS7[96].y,uf_blockVS7[96].x) + vec3(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z)));
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w));
+// 9
+PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i));
+PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i));
+PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i));
+PV1i.w = floatBitsToInt(intBitsToFloat(R127i.x) + -(uf_blockVS7[98].w));
+PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
+// 10
+backupReg0i = R126i.x;
+backupReg0i = R126i.x;
+backupReg0i = R126i.x;
+R126i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV0i.x = R126i.x;
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x)));
+PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y)));
+PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z)));
+R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i)));
+PS0i = R124i.x;
+// 11
+backupReg0i = R127i.w;
+R127i.x = floatBitsToInt(uf_blockVS7[97].x + intBitsToFloat(PV0i.w));
+PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
+R126i.z = floatBitsToInt(uf_blockVS7[97].z + intBitsToFloat(PV0i.y));
+R127i.w = floatBitsToInt(uf_blockVS7[97].y + intBitsToFloat(PV0i.z));
+R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i)));
+PS1i = R126i.w;
+// 12
+backupReg0i = R126i.x;
+backupReg0i = R126i.x;
+backupReg0i = R126i.x;
+backupReg1i = R127i.z;
+R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].x, intBitsToFloat(backupReg0i)));
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.y)));
+R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].y, intBitsToFloat(backupReg0i)));
+R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].z, intBitsToFloat(backupReg0i)));
+R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R124i.x)));
+PS0i = R127i.z;
+// 13
+backupReg0i = R127i.x;
+backupReg1i = R127i.y;
+backupReg2i = R126i.z;
+backupReg3i = R127i.w;
+R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y)));
+R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R124i.x)));
+R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV0i.y)));
+R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV0i.y)));
+PS1i = floatBitsToInt(-(intBitsToFloat(R125i.y)) + 1.0);
+// 14
+PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(PS1i)));
+PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(PS1i)));
+PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(PS1i)));
+R2i.w = 0x3f800000;
+PS0i = R2i.w;
+// 15
+PV1i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV0i.w));
+PV1i.y = floatBitsToInt(uf_blockVS7[13].x);
+PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0);
+PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.y));
+PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.z));
+PS1i = floatBitsToInt(uf_blockVS7[13].y);
+PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0);
+// 16
+PV0i.x = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV1i.w));
+PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.x));
+R10i.z = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(PV1i.y));
+PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.z));
+R4i.w = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(PS1i));
+PS0i = R4i.w;
+// 17
+PV1i.x = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV0i.w));
+PV1i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV0i.x));
+PV1i.z = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV0i.y));
+// 18
+backupReg0i = R7i.y;
+R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PV1i.x)));
+R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y)));
+R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.z)));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS8[3].y));
+R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), uf_blockVS8[3].w));
+R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), uf_blockVS8[3].z));
+// 1
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,uf_blockVS8[4].w)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+R7i.w = tempi.x;
+// 2
+R12i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,uf_blockVS8[5].w)));
+PV0i.x = R12i.x;
+PV0i.y = R12i.x;
+PV0i.z = R12i.x;
+PV0i.w = R12i.x;
+// 3
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,uf_blockVS8[6].w)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+R9i.w = tempi.x;
+// 4
+R0i.x = floatBitsToInt(intBitsToFloat(R7i.w) + -(uf_blockVS6[17].x));
+PV0i.x = R0i.x;
+R7i.y = floatBitsToInt(intBitsToFloat(R12i.x) + -(uf_blockVS6[17].y));
+PV0i.y = R7i.y;
+R0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS6[17].z));
+PV0i.z = R0i.z;
+R125i.w = floatBitsToInt(-(intBitsToFloat(R7i.w)) + uf_blockVS6[17].x);
+R127i.y = floatBitsToInt(-(intBitsToFloat(R12i.x)) + uf_blockVS6[17].y);
+PS0i = R127i.y;
+// 5
+tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),0.0)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+R125i.z = floatBitsToInt(-(intBitsToFloat(R9i.w)) + uf_blockVS6[17].z);
+PS1i = R125i.z;
+// 6
+backupReg0i = R0i.x;
+backupReg0i = R0i.x;
+backupReg1i = R0i.z;
+backupReg1i = R0i.z;
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R7i.y),intBitsToFloat(backupReg1i),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R7i.y),intBitsToFloat(backupReg1i),0.0)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x));
+PS0i = floatBitsToInt(tempResultf);
+// 7
+R7i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.x)), intBitsToFloat(PS0i)));
+R7i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.z)), intBitsToFloat(PS0i)));
+R0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R7i.y)), intBitsToFloat(PS0i)));
+PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
+// 8
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R127i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R127i.y),intBitsToFloat(R125i.z),0.0)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+R8i.z = floatBitsToInt(1.0 / intBitsToFloat(PS1i));
+PS0i = R8i.z;
+// 9
+tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x));
+PS1i = floatBitsToInt(tempResultf);
+// 10
+backupReg0i = R125i.w;
+R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i)));
+PV0i.x = R127i.x;
+R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i)));
+PV0i.z = R126i.z;
+R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i)));
+PV0i.w = R125i.w;
+// 11
+PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), -(uf_blockVS6[1].y)));
+PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), -(uf_blockVS6[1].z)));
+R11i.z = PV0i.w;
+PV1i.z = R11i.z;
+PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), -(uf_blockVS6[1].x)));
+R12i.z = PV0i.x;
+PS1i = R12i.z;
+// 12
+R126i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].y,intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.y)));
+PV0i.x = R126i.x;
+R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].z,intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.w)));
+PV0i.y = R127i.y;
+R125i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].x,intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.x)));
+PV0i.z = R125i.z;
+R8i.w = R126i.z;
+R2i.x = PV1i.z;
+PS0i = R2i.x;
+// 13
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+R3i.z = R12i.z;
+PS1i = R3i.z;
+// 14
+tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x));
+PS0i = floatBitsToInt(tempResultf);
+// 15
+R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i)));
+PV1i.x = R9i.x;
+R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i)));
+PV1i.y = R2i.y;
+R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i)));
+PV1i.w = R3i.w;
+// 16
+PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV1i.y)));
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.x)));
+PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.w)));
+R5i.w = PV1i.y;
+R11i.x = PV1i.w;
+PS0i = R11i.x;
+// 17
+R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.z)));
+PV1i.x = R123i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.y)));
+PV1i.y = R123i.y;
+R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.x)),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.x)));
+PV1i.w = R123i.w;
+// 18
+R10i.x = PV1i.y;
+PV0i.x = R10i.x;
+R9i.y = PV1i.x;
+PV0i.y = R9i.y;
+R13i.z = PV1i.w;
+PV0i.z = R13i.z;
+// 19
+R0i.y = PV0i.x;
+R2i.z = PV0i.y;
+R2i.w = PV0i.z;
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(R0i.w)));
+PV0i.x = R126i.x;
+R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(R7i.x)));
+PV0i.y = R125i.y;
+R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(R7i.z)));
+PV0i.w = R127i.w;
+// 1
+backupReg0i = R0i.x;
+backupReg1i = R0i.z;
+PV1i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y));
+PV1i.y = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV0i.x));
+PV1i.z = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.w));
+R125i.w = R8i.w;
+PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R2i.x)));
+// 2
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R2i.z)) + intBitsToFloat(PS1i)));
+PS0i = R122i.x;
+// 3
+PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R3i.z)));
+R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(PS0i)));
+PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R125i.w)));
+PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
+// 4
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z)));
+PV0i.x = R123i.x;
+R126i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(R8i.z));
+PV0i.y = R126i.y;
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.x)));
+PV0i.w = R123i.w;
+// 5
+PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV0i.y)));
+R14i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.w)));
+PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV0i.y)));
+R12i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.x)));
+PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PV0i.y)));
+// 6
+R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R10i.z)));
+PV0i.x = R127i.x;
+R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R4i.w)));
+PV0i.y = R127i.y;
+R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i)));
+PV0i.z = R126i.z;
+R4i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(R125i.y));
+R0i.y = floatBitsToInt(intBitsToFloat(R12i.x) + intBitsToFloat(R126i.x));
+PS0i = R0i.y;
+// 7
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R11i.z),0.0)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+R11i.z = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(R127i.w));
+PS1i = R11i.z;
+// 8
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R5i.w),intBitsToFloat(R10i.x),intBitsToFloat(R12i.z),0.0)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+R125i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV1i.x));
+PS0i = R125i.w;
+// 9
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R13i.z),intBitsToFloat(R8i.w),0.0)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+PS1i = floatBitsToInt(intBitsToFloat(R12i.x) + intBitsToFloat(PV0i.x));
+// 10
+R12i.x = 0x3f800000;
+PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PS1i));
+PV0i.z = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R125i.w));
+PV0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(PV1i.x));
+R126i.x = floatBitsToInt(-(uf_blockVS6[17].x) + intBitsToFloat(R4i.w));
+PS0i = R126i.x;
+// 11
+backupReg0i = R0i.y;
+backupReg0i = R0i.y;
+PV1i.x = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.w));
+PV1i.y = floatBitsToInt(-(uf_blockVS6[17].y) + intBitsToFloat(backupReg0i));
+PV1i.z = floatBitsToInt(-(uf_blockVS6[17].z) + intBitsToFloat(R11i.z));
+R127i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(PV0i.z));
+R127i.x = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y));
+PS1i = R127i.x;
+// 12
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+R125i.w = floatBitsToInt(-(intBitsToFloat(R11i.z)) + intBitsToFloat(PV1i.x));
+PS0i = R125i.w;
+// 13
+PV1i.y = floatBitsToInt((0.0 > uf_blockVS7[8].x)?1.0:0.0);
+PV1i.z = floatBitsToInt((uf_blockVS7[8].x > 0.0)?1.0:0.0);
+R126i.w = 0x3f800000;
+R13i.z = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
+PS1i = R13i.z;
+// 14
+R126i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y)));
+PV0i.x = R126i.x;
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.y));
+// 15
+R11i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i));
+R9i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i));
+R125i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
+R9i.w = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i));
+PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].x);
+// 16
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R0i.y),intBitsToFloat(R11i.z),intBitsToFloat(R126i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+R126i.y = tempi.x;
+R126i.z = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i));
+PS0i = R126i.z;
+// 17
+backupReg0i = R0i.y;
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(backupReg0i),intBitsToFloat(R11i.z),intBitsToFloat(R126i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+// 18
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[9].y) + intBitsToFloat(R126i.z)));
+PV0i.x = R123i.x;
+R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * 0.0 + intBitsToFloat(PV1i.x)));
+PV0i.y = R123i.y;
+PV0i.w = PV1i.x;
+PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
+// 19
+PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.x)));
+R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * 0.5 + intBitsToFloat(PV0i.w)));
+PV1i.z = R123i.z;
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y));
+// 20
+PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.x)));
+PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i));
+// 21
+R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z)));
+PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV0i.w)));
+// 22
+PV0i.y = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV1i.z));
+// 23
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y));
+// 24
+R3i.w = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R127i.x = floatBitsToInt(intBitsToFloat(R5i.y) + -(uf_blockVS7[60].w));
+PV0i.z = floatBitsToInt(min(intBitsToFloat(R13i.z), uf_blockVS7[116].x));
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[116].x);
+// 1
+PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(PS0i));
+R125i.z = floatBitsToInt(-(uf_blockVS7[60].y) + uf_blockVS7[61].y);
+R126i.w = floatBitsToInt(-(uf_blockVS7[60].x) + uf_blockVS7[61].x);
+// 2
+R126i.x = floatBitsToInt(-(uf_blockVS7[60].z) + uf_blockVS7[61].z);
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV1i.x)));
+PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(PV1i.x)));
+PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PV1i.x)));
+PS0i = floatBitsToInt(-(uf_blockVS7[60].w) + uf_blockVS7[61].w);
+// 3
+R0i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV0i.w));
+R4i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.z));
+R8i.z = floatBitsToInt(intBitsToFloat(R11i.z) + intBitsToFloat(PV0i.y));
+R4i.w = ((intBitsToFloat(R127i.x) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i));
+// 4
+PV0i.x = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i));
+PV0i.y = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i));
+PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i));
+PV0i.w = floatBitsToInt(intBitsToFloat(R5i.y) + -(uf_blockVS7[61].w));
+// 5
+R10i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R10i.x;
+R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + uf_blockVS7[60].z));
+R11i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.y)) + uf_blockVS7[60].y));
+R9i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.z)) + uf_blockVS7[60].x));
+// 6
+PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
+// 7
+R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PV0i.y)));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+backupReg0i = R0i.x;
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+R0i.w = tempi.x;
+// 1
+R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w)));
+PV1i.x = R4i.x;
+PV1i.y = R4i.x;
+PV1i.z = R4i.x;
+PV1i.w = R4i.x;
+R126i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + 1.0);
+PS1i = R126i.w;
+// 2
+backupReg0i = R0i.x;
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w)));
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+R9i.z = tempi.x;
+// 3
+backupReg0i = R0i.x;
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+R13i.y = tempi.x;
+// 4
+PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].y, intBitsToFloat(R126i.w)));
+R15i.y = floatBitsToInt((intBitsToFloat(R9i.z) * 0.0 + intBitsToFloat(PV1i.x)));
+PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].x, intBitsToFloat(R126i.w)));
+PV0i.w = PV1i.x;
+PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
+PS0i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].z, intBitsToFloat(R126i.w)));
+// 5
+R123i.x = floatBitsToInt((intBitsToFloat(R9i.z) * 0.0 + intBitsToFloat(PV0i.w)));
+PV1i.x = R123i.x;
+R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R11i.x)) + intBitsToFloat(PS0i)));
+R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R11i.x)) + intBitsToFloat(PV0i.x)));
+PV1i.z = R123i.z;
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),intBitsToFloat(R11i.x)) + intBitsToFloat(PV0i.z)));
+PV1i.w = R123i.w;
+R14i.z = floatBitsToInt((intBitsToFloat(R9i.z) * 0.5 + intBitsToFloat(PV0i.w)));
+PS1i = R14i.z;
+// 6
+R13i.x = floatBitsToInt((intBitsToFloat(R0i.w) * 0.5 + intBitsToFloat(PV1i.x)));
+R5i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].x,intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.w)));
+R11i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].y,intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.z)));
+R13i.w = floatBitsToInt((intBitsToFloat(R4i.x) * -(0.5) + intBitsToFloat(PV1i.x)));
+R3i.z = floatBitsToInt(1.0 / intBitsToFloat(R15i.y));
+PS0i = R3i.z;
+// 7
+PV1i.y = floatBitsToInt(intBitsToFloat(R14i.z) * intBitsToFloat(PS0i));
+R13i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].z,intBitsToFloat(R10i.x)) + intBitsToFloat(R126i.y)));
+// 8
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),uf_blockVS6[18].w) + -(uf_blockVS6[18].y)));
+PV0i.w = R123i.w;
+// 9
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w));
+// 10
+R2i.z = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i));
+// 11
+R125i.z = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x);
+// 12
+PV0i.y = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w);
+// 13
+R126i.y = floatBitsToInt(-(uf_blockVS7[76].y) + uf_blockVS7[77].y);
+R126i.z = floatBitsToInt(-(uf_blockVS7[76].x) + uf_blockVS7[77].x);
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y));
+// 14
+R127i.x = floatBitsToInt(-(uf_blockVS7[76].z) + uf_blockVS7[77].z);
+PV0i.y = floatBitsToInt(-(uf_blockVS7[76].w) + uf_blockVS7[77].w);
+R9i.w = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i));
+// 15
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y));
+// 16
+R11i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i));
+R9i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i));
+R8i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+backupReg0i = R11i.z;
+PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0);
+PV0i.y = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0);
+R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), uf_blockVS8[0].x));
+R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].y));
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].y);
+// 1
+backupReg0i = R13i.z;
+PV1i.x = floatBitsToInt((uf_blockVS7[8].z > 0.0)?1.0:0.0);
+PV1i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i));
+R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].z));
+R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x)));
+PV1i.w = R126i.w;
+PS1i = floatBitsToInt((0.0 > uf_blockVS7[8].z)?1.0:0.0);
+// 2
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[9].z) + intBitsToFloat(PV1i.y)));
+PV0i.x = R123i.x;
+R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
+R127i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PS1i)));
+PV0i.w = R127i.w;
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].z);
+// 3
+PV1i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i));
+R125i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0);
+PV1i.w = floatBitsToInt(fract(intBitsToFloat(PV0i.x)));
+// 4
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[9].w) + intBitsToFloat(PV1i.y)));
+PV0i.x = R123i.x;
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.w)));
+// 5
+R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.y)));
+PV1i.w = floatBitsToInt(fract(intBitsToFloat(PV0i.x)));
+// 6
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.w)));
+// 7
+R12i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y)));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+PV0i.x = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[69].w));
+PV0i.w = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[68].w));
+// 1
+R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), uf_blockVS7[59].x));
+R126i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.y = R126i.y;
+R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R9i.w)) + uf_blockVS7[68].x));
+R126i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.w = R126i.w;
+R14i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), uf_blockVS7[59].x));
+PS1i = R14i.w;
+// 2
+PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0);
+R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), uf_blockVS7[59].x));
+PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0);
+R127i.w = floatBitsToInt(intBitsToFloat(R12i.x) + -(uf_blockVS7[76].w));
+PV0i.w = R127i.w;
+// 3
+R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R11i.x)) + uf_blockVS7[76].y));
+PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z)));
+R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R9i.y)) + uf_blockVS7[76].x));
+PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(PV0i.x)));
+R125i.w = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PS1i = R125i.w;
+// 4
+R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(R8i.w)) + uf_blockVS7[76].z));
+PV0i.y = floatBitsToInt(intBitsToFloat(R12i.x) + -(uf_blockVS7[77].w));
+R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w)));
+PV0i.z = R123i.z;
+R127i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0);
+PV0i.w = R127i.w;
+// 5
+R124i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R124i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[69].x,intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.z)));
+PV1i.y = R123i.y;
+R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].x, intBitsToFloat(PV0i.w)));
+R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].y, intBitsToFloat(PV0i.w)));
+// 6
+backupReg0i = R127i.w;
+PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
+R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS8[0].w));
+PV0i.z = ((intBitsToFloat(R6i.x) > 0.5)?int(0xFFFFFFFF):int(0x0));
+R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].z, intBitsToFloat(backupReg0i)));
+// 7
+PV1i.x = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0));
+R9i.y = ((PV0i.z == 0)?(R8i.x):(R16i.w));
+PV1i.z = ((intBitsToFloat(R6i.z) > 0.5)?int(0xFFFFFFFF):int(0x0));
+PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.x)));
+R125i.w = ((intBitsToFloat(R6i.w) > 0.5)?int(0xFFFFFFFF):int(0x0));
+PS1i = R125i.w;
+// 8
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(R127i.w)));
+PV0i.x = R123i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(R126i.w)));
+PV0i.y = R123i.y;
+R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(R125i.z)));
+PV0i.z = R123i.z;
+R8i.w = ((PV1i.x == 0)?(R8i.y):(R15i.z));
+R4i.w = ((PV1i.z == 0)?(R8i.x):(R16i.w));
+PS0i = R4i.w;
+// 9
+R12i.x = ((R125i.w == 0)?(R8i.y):(R15i.z));
+R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].z,intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.x)));
+PV1i.y = R123i.y;
+R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].y,intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.y)));
+PV1i.z = R123i.z;
+R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].x,intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.z)));
+PV1i.w = R123i.w;
+PS1i = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0));
+// 10
+PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS8[1].z));
+R5i.y = ((PS1i == 0)?(R8i.x):(R16i.w));
+PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockVS8[1].y));
+PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS8[1].x));
+PS0i = ((intBitsToFloat(R6i.z) > 0.5)?int(0xFFFFFFFF):int(0x0));
+// 11
+R11i.x = ((PS0i == 0)?(R8i.y):(R15i.z));
+R7i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.x)));
+R7i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.z)));
+R11i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.w)));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R10i.x = floatBitsToInt(uf_blockVS7[84].x);
+PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000;
+PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000;
+PV0i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000;
+PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000;
+// 1
+PV1i.x = (PS0i == 0x00400000)?int(0xFFFFFFFF):int(0x0);
+PV1i.y = (PV0i.z == 0x00200000)?int(0xFFFFFFFF):int(0x0);
+PV1i.z = (PV0i.w == 0x00100000)?int(0xFFFFFFFF):int(0x0);
+PV1i.w = (PV0i.y == 0x00080000)?int(0xFFFFFFFF):int(0x0);
+R126i.z = floatBitsToInt(uf_blockVS7[5].y) & int(1);
+PS1i = R126i.z;
+// 2
+R9i.x = ((PV1i.w == 0)?(R8i.x):(R9i.y));
+R3i.y = ((PV1i.x == 0)?(R8i.y):(R12i.x));
+R4i.z = ((PV1i.y == 0)?(R8i.x):(R4i.w));
+R7i.w = ((PV1i.z == 0)?(R8i.y):(R8i.w));
+PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000;
+// 3
+PV1i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000;
+R2i.y = (int(1) != R126i.z)?int(0xFFFFFFFF):int(0x0);
+R126i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000010;
+PV1i.w = (PS0i == 0x00800000)?int(0xFFFFFFFF):int(0x0);
+R12i.x = int(uf_blockVS7[17].x);
+PS1i = R12i.x;
+// 4
+R3i.x = ((PV1i.w == 0)?(R8i.x):(R5i.y));
+R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000020;
+PV0i.z = (PV1i.x == 0x01000000)?int(0xFFFFFFFF):int(0x0);
+R125i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000040;
+R4i.w = int(uf_blockVS7[17].y);
+PS0i = R4i.w;
+// 5
+R2i.w = ((PV0i.z == 0)?(R8i.y):(R11i.x));
+PS1i = floatBitsToInt(float(R126i.z));
+// 6
+PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+PS0i = floatBitsToInt(float(R126i.y));
+// 7
+PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w)));
+PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+PS1i = floatBitsToInt(float(R125i.w));
+// 8
+PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w)));
+PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+R126i.y = int(intBitsToFloat(PV1i.z));
+PS0i = R126i.y;
+// 9
+PV1i.x = 0 - PS0i;
+R13i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w)));
+R125i.y = int(intBitsToFloat(PV0i.z));
+PS1i = R125i.y;
+// 10
+PV0i.x = 0 - PS1i;
+R8i.w = max(R126i.y, PV1i.x);
+// 11
+R5i.w = max(R125i.y, PV0i.x);
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), uf_blockVS8[1].w));
+// 1
+R124i.x = int(-1) + R12i.x;
+R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x02000000;
+PV1i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000080;
+R125i.y = int(intBitsToFloat(R13i.z));
+PS1i = R125i.y;
+// 2
+PV0i.x = 0 - PS1i;
+PS0i = floatBitsToInt(float(PV1i.z));
+// 3
+PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+R9i.w = max(R125i.y, PV0i.x);
+R125i.z = floatBitsToInt(float(R12i.x));
+PS1i = R125i.z;
+// 4
+R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS1i)));
+PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS1i)));
+PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y)));
+R126i.z = floatBitsToInt(float(R4i.w));
+PS0i = R126i.z;
+// 5
+PV1i.x = floatBitsToInt(intBitsToFloat(R10i.y) * intBitsToFloat(PV0i.y));
+R125i.y = int(intBitsToFloat(PV0i.z));
+PS1i = R125i.y;
+// 6
+PV0i.x = 0 - PS1i;
+PS0i = int(intBitsToFloat(PV1i.x));
+// 7
+R127i.w = max(R125i.y, PV0i.x);
+R127i.z = R8i.w * PS0i;
+PS1i = R127i.z;
+// 8
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.z));
+// 9
+PV1i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i));
+R125i.y = floatBitsToInt(float(R12i.x));
+PS1i = R125i.y;
+// 10
+R12i.x = floatBitsToInt(abs(intBitsToFloat(PS1i)));
+R126i.w = int(intBitsToFloat(PV1i.x));
+PS0i = R126i.w;
+// 11
+PS1i = floatBitsToInt(float(PS0i));
+// 12
+PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(PS1i));
+R126i.x = floatBitsToInt(float(R126i.w));
+PS0i = R126i.x;
+// 13
+R123i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R123i.x;
+R125i.w = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+R8i.w = floatBitsToInt(1.0 / abs(intBitsToFloat(R125i.y)));
+PS1i = R8i.w;
+// 14
+PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.x)), intBitsToFloat(PS1i)));
+PS0i = int(intBitsToFloat(PV1i.x));
+// 15
+R125i.x = int(1) - PS0i;
+PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z)));
+R124i.w = PS0i * R124i.x;
+PS1i = R124i.w;
+// 16
+R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R12i.x)) + intBitsToFloat(R125i.w)));
+PV0i.z = R125i.z;
+PS0i = floatBitsToInt(float(R126i.y));
+// 17
+PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R125i.y)))?1.0:0.0);
+PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R125i.y))) + intBitsToFloat(PV0i.z));
+PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+R124i.x = int(intBitsToFloat(R127i.x));
+PS1i = R124i.x;
+// 18
+backupReg0i = R127i.w;
+PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z)));
+R127i.w = ((intBitsToFloat(PV1i.x) == 0.0)?(R125i.z):(PV1i.y));
+PV0i.w = R127i.w;
+R126i.y = backupReg0i * PS1i;
+PS0i = R126i.y;
+// 19
+PV1i.z = floatBitsToInt(abs(intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.w));
+R127i.x = int(intBitsToFloat(PV0i.y));
+PS1i = R127i.x;
+// 20
+R123i.y = ((-(intBitsToFloat(R127i.w)) > 0.0)?(PV1i.z):(R127i.w));
+PV0i.y = R123i.y;
+PV0i.w = 0 - PS1i;
+// 21
+R123i.x = ((-(intBitsToFloat(R126i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y));
+PV1i.x = R123i.x;
+PV1i.z = max(R127i.x, PV0i.w);
+// 22
+R123i.w = ((intBitsToFloat(R125i.y) == 0.0)?(R126i.x):(PV1i.x));
+PV0i.w = R123i.w;
+PS0i = PV1i.z * R124i.x;
+// 23
+R125i.z = R126i.w + PS0i;
+PS1i = int(intBitsToFloat(PV0i.w));
+// 24
+PS0i = R125i.x * PS1i;
+// 25
+PV1i.z = PS0i + R124i.w;
+R125i.x = R9i.w * R125i.z;
+PS1i = R125i.x;
+// 26
+PS0i = R5i.w * PV1i.z;
+// 27
+PV1i.y = PS0i + R127i.z;
+// 28
+PV0i.x = R125i.x + PV1i.y;
+// 29
+PV1i.w = R126i.y + PV0i.x;
+// 30
+R125i.z = floatBitsToInt(float(PV1i.w));
+PS0i = R125i.z;
+// 31
+PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), abs(intBitsToFloat(PS0i))));
+R124i.w = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+// 32
+PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y)));
+// 33
+R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R12i.x)) + intBitsToFloat(R124i.w)));
+PV1i.z = R127i.z;
+// 34
+PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R125i.y)))?1.0:0.0);
+PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R125i.y))) + intBitsToFloat(PV1i.z));
+// 35
+R124i.w = ((intBitsToFloat(PV0i.x) == 0.0)?(R127i.z):(PV0i.y));
+PV1i.w = R124i.w;
+// 36
+PV0i.z = floatBitsToInt(abs(intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.w));
+// 37
+R123i.y = ((-(intBitsToFloat(R124i.w)) > 0.0)?(PV0i.z):(R124i.w));
+PV1i.y = R123i.y;
+// 38
+R123i.x = ((-(intBitsToFloat(R125i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y));
+PV0i.x = R123i.x;
+// 39
+R123i.w = ((intBitsToFloat(R125i.y) == 0.0)?(R125i.z):(PV0i.x));
+PV1i.w = R123i.w;
+// 40
+R125i.z = int(intBitsToFloat(PV1i.w));
+PS0i = R125i.z;
+// 41
+R125i.y = floatBitsToInt(float(PS0i));
+PS1i = R125i.y;
+// 42
+PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+R12i.x = floatBitsToInt(float(R125i.z));
+PS0i = R12i.x;
+// 43
+R126i.y = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w)));
+PV1i.w = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25);
+// 44
+R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R125i.y)));
+PV0i.y = R123i.y;
+PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w)));
+// 45
+R125i.x = floatBitsToInt((-(intBitsToFloat(PV0i.z)) * 4.0 + intBitsToFloat(R126i.y)));
+PV1i.x = R125i.x;
+PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 0.25);
+R12i.z = ((R2i.y == 0)?(R6i.x):(R6i.y));
+// 46
+PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y)));
+PV0i.z = floatBitsToInt((intBitsToFloat(PV1i.x) >= 4.0)?1.0:0.0);
+PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0xc0800000));
+R9i.y = int(uf_blockVS7[26].x);
+PS0i = R9i.y;
+// 47
+R8i.y = ((intBitsToFloat(PV0i.z) == 0.0)?(R125i.x):(PV0i.w));
+R8i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100;
+R13i.z = int(intBitsToFloat(PV0i.x));
+PS1i = R13i.z;
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+PV0i.x = floatBitsToInt(intBitsToFloat(R8i.y) + 4.0);
+R5i.y = R13i.z + 0x00000012;
+R8i.x = int(uf_blockVS7[26].y);
+PS0i = R8i.x;
+// 1
+R123i.w = ((-(intBitsToFloat(R8i.y)) > 0.0)?(PV0i.x):(R8i.y));
+PV1i.w = R123i.w;
+PS1i = floatBitsToInt(float(R8i.w));
+// 2
+PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+R123i.z = ((-(intBitsToFloat(R12i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.w)))):(PV1i.w));
+PV0i.z = R123i.z;
+// 3
+R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x)));
+PS1i = int(intBitsToFloat(PV0i.z));
+// 4
+PV0i.x = int(-1) + PS1i;
+R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200;
+R125i.z = 0xfffffffd + PS1i;
+R124i.w = 0xfffffffe + PS1i;
+PS0i = floatBitsToInt(float(PS1i));
+// 5
+PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PS1i = floatBitsToInt(float(PV0i.x));
+// 6
+PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z)));
+PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+PS0i = floatBitsToInt(float(R124i.w));
+// 7
+PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.x)));
+PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+R125i.x = int(intBitsToFloat(PV0i.y));
+PS1i = R125i.x;
+// 8
+PV0i.x = 0 - PS1i;
+PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z)));
+R124i.w = int(intBitsToFloat(PV1i.x));
+PS0i = R124i.w;
+// 9
+PV1i.x = 0 - PS0i;
+PV1i.z = max(R125i.x, PV0i.x);
+R127i.z = int(intBitsToFloat(PV0i.w));
+PS1i = R127i.z;
+// 10
+R12i.x = int(1) - PV1i.z;
+PV0i.y = max(R124i.w, PV1i.x);
+PV0i.z = 0 - PS1i;
+PS0i = floatBitsToInt(float(R125i.z));
+// 11
+PV1i.x = max(R127i.z, PV0i.z);
+R8i.y = int(1) - PV0i.y;
+PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+R127i.z = int(intBitsToFloat(R126i.w));
+PS1i = R127i.z;
+// 12
+PV0i.y = 0 - PS1i;
+PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w)));
+R8i.w = int(1) - PV1i.x;
+PS0i = floatBitsToInt(float(R126i.y));
+// 13
+R10i.x = max(R127i.z, PV0i.y);
+PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+R126i.y = int(intBitsToFloat(PV0i.z));
+PS1i = R126i.y;
+// 14
+PV0i.x = 0 - PS1i;
+PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z)));
+// 15
+PV1i.w = max(R126i.y, PV0i.x);
+R11i.z = int(intBitsToFloat(PV0i.w));
+PS1i = R11i.z;
+// 16
+R13i.z = int(1) - PV1i.w;
+}
+if( activeMaskStackC[3] == true ) {
+R5i.xyzw = floatBitsToInt(uf_blockVS7[R5i.y].xyzw);
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R126i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800;
+PV0i.y = 0 - R11i.z;
+R126i.z = int(-1) + R9i.y;
+R124i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400;
+R126i.y = R13i.z * R5i.w;
+PS0i = R126i.y;
+// 1
+R11i.x = max(R11i.z, PV0i.y);
+R125i.x = R8i.w * R5i.z;
+PS1i = R125i.x;
+// 2
+R126i.w = R8i.y * R5i.y;
+PS0i = R126i.w;
+// 3
+PS1i = R12i.x * R5i.x;
+// 4
+PV0i.y = R126i.w + PS1i;
+PS0i = floatBitsToInt(float(R124i.w));
+// 5
+PV1i.x = R125i.x + PV0i.y;
+PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+PS1i = floatBitsToInt(float(R126i.x));
+// 6
+PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z)));
+PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+R8i.w = R126i.y + PV1i.x;
+R126i.w = floatBitsToInt(float(R9i.y));
+PS0i = R126i.w;
+// 7
+R125i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000;
+R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i)));
+PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS0i)));
+PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z)));
+R127i.z = int(intBitsToFloat(PV0i.x));
+PS1i = R127i.z;
+// 8
+PV0i.x = 0 - PS1i;
+PV0i.y = floatBitsToInt(intBitsToFloat(R10i.y) * intBitsToFloat(PV1i.z));
+R125i.z = int(intBitsToFloat(PV1i.w));
+PS0i = R125i.z;
+// 9
+R5i.x = max(R127i.z, PV0i.x);
+PV1i.y = 0 - PS0i;
+PS1i = int(intBitsToFloat(PV0i.y));
+// 10
+R124i.x = max(R125i.z, PV1i.y);
+R124i.w = R10i.x * PS1i;
+PS0i = R124i.w;
+// 11
+PS1i = floatBitsToInt(float(R8i.x));
+// 12
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i));
+// 13
+PV1i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i));
+R125i.z = floatBitsToInt(float(R9i.y));
+PS1i = R125i.z;
+// 14
+R124i.y = floatBitsToInt(abs(intBitsToFloat(PS1i)));
+R127i.x = int(intBitsToFloat(PV1i.y));
+PS0i = R127i.x;
+// 15
+PS1i = floatBitsToInt(float(PS0i));
+// 16
+PV0i.z = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(PS1i));
+R125i.y = floatBitsToInt(float(R127i.x));
+PS0i = R125i.y;
+// 17
+R126i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+R123i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.y = R123i.y;
+R12i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(R125i.z)));
+PS1i = R12i.x;
+// 18
+PV0i.w = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.y)), intBitsToFloat(PS1i)));
+PS0i = int(intBitsToFloat(PV1i.y));
+// 19
+R8i.x = int(1) - PS0i;
+PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.w)));
+R10i.x = PS0i * R126i.z;
+PS1i = R10i.x;
+// 20
+R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.z)),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.x)));
+PV0i.w = R126i.w;
+PS0i = floatBitsToInt(float(R125i.x));
+// 21
+PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.w) >= abs(intBitsToFloat(R125i.z)))?1.0:0.0);
+PV1i.z = floatBitsToInt(-(abs(intBitsToFloat(R125i.z))) + intBitsToFloat(PV0i.w));
+PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+R127i.y = int(intBitsToFloat(R126i.y));
+PS1i = R127i.y;
+// 22
+backupReg0i = R124i.x;
+R124i.x = ((intBitsToFloat(PV1i.y) == 0.0)?(R126i.w):(PV1i.z));
+PV0i.x = R124i.x;
+PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w)));
+R126i.z = backupReg0i * PS1i;
+PS0i = R126i.z;
+// 23
+PV1i.w = floatBitsToInt(abs(intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.x));
+R126i.y = int(intBitsToFloat(PV0i.z));
+PS1i = R126i.y;
+// 24
+PV0i.x = 0 - PS1i;
+R123i.z = ((-(intBitsToFloat(R124i.x)) > 0.0)?(PV1i.w):(R124i.x));
+PV0i.z = R123i.z;
+// 25
+R123i.y = ((-(intBitsToFloat(R125i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z));
+PV1i.y = R123i.y;
+PV1i.w = max(R126i.y, PV0i.x);
+// 26
+R123i.x = ((intBitsToFloat(R125i.z) == 0.0)?(R125i.y):(PV1i.y));
+PV0i.x = R123i.x;
+PS0i = PV1i.w * R127i.y;
+// 27
+R126i.w = R127i.x + PS0i;
+PS1i = int(intBitsToFloat(PV0i.x));
+// 28
+PS0i = R8i.x * PS1i;
+// 29
+PV1i.w = PS0i + R10i.x;
+R127i.y = R5i.x * R126i.w;
+PS1i = R127i.y;
+// 30
+PS0i = R11i.x * PV1i.w;
+// 31
+PV1i.z = PS0i + R124i.w;
+// 32
+PV0i.y = R127i.y + PV1i.z;
+// 33
+PV1i.x = R126i.z + PV0i.y;
+// 34
+R126i.w = floatBitsToInt(float(PV1i.x));
+PS0i = R126i.w;
+// 35
+R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), abs(intBitsToFloat(PS0i))));
+// 36
+PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z)));
+// 37
+R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R124i.y)) + intBitsToFloat(R127i.x)));
+PV1i.w = R124i.w;
+// 38
+PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.w) >= abs(intBitsToFloat(R125i.z)))?1.0:0.0);
+PV0i.z = floatBitsToInt(-(abs(intBitsToFloat(R125i.z))) + intBitsToFloat(PV1i.w));
+// 39
+R127i.x = ((intBitsToFloat(PV0i.y) == 0.0)?(R124i.w):(PV0i.z));
+PV1i.x = R127i.x;
+// 40
+PV0i.w = floatBitsToInt(abs(intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.x));
+// 41
+R123i.z = ((-(intBitsToFloat(R127i.x)) > 0.0)?(PV0i.w):(R127i.x));
+PV1i.z = R123i.z;
+// 42
+R123i.y = ((-(intBitsToFloat(R126i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z));
+PV0i.y = R123i.y;
+// 43
+R123i.x = ((intBitsToFloat(R125i.z) == 0.0)?(R126i.w):(PV0i.y));
+PV1i.x = R123i.x;
+// 44
+R126i.w = int(intBitsToFloat(PV1i.x));
+PS0i = R126i.w;
+// 45
+R125i.z = floatBitsToInt(float(PS0i));
+PS1i = R125i.z;
+// 46
+PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+R9i.y = floatBitsToInt(float(R126i.w));
+PS0i = R9i.y;
+// 47
+PV1i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25);
+R12i.z = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x)));
+// 48
+R5i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.5 + intBitsToFloat(R125i.z)));
+R5i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.x)));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+PV0i.x = floatBitsToInt(intBitsToFloat(R5i.z) * 0.25);
+R124i.y = floatBitsToInt((-(intBitsToFloat(R5i.w)) * 4.0 + intBitsToFloat(R12i.z)));
+PV0i.y = R124i.y;
+// 1
+PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0xc0800000));
+PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.x)));
+PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.y) >= 4.0)?1.0:0.0);
+// 2
+R125i.z = ((intBitsToFloat(PV1i.w) == 0.0)?(R124i.y):(PV1i.x));
+PV0i.z = R125i.z;
+PS0i = int(intBitsToFloat(PV1i.y));
+// 3
+PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 4.0);
+R5i.z = PS0i + 0x0000001b;
+PS1i = int(uf_blockVS7[48].z);
+// 4
+R123i.x = ((-(intBitsToFloat(R125i.z)) > 0.0)?(PV1i.y):(R125i.z));
+PV0i.x = R123i.x;
+R11i.z = floatBitsToInt(float(PS1i));
+PS0i = R11i.z;
+// 5
+R123i.w = ((-(intBitsToFloat(R9i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x));
+PV1i.w = R123i.w;
+R9i.y = floatBitsToInt(float(R8i.w));
+PS1i = R9i.y;
+// 6
+PS0i = int(intBitsToFloat(PV1i.w));
+// 7
+R127i.x = 0xfffffffe + PS0i;
+PV1i.y = int(-1) + PS0i;
+R125i.z = floatBitsToInt(abs(intBitsToFloat(R11i.z)));
+R126i.w = 0xfffffffd + PS0i;
+PS1i = floatBitsToInt(float(PS0i));
+// 8
+PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+PS0i = floatBitsToInt(float(PV1i.y));
+// 9
+PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0);
+PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w)));
+PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0);
+PS1i = floatBitsToInt(float(R127i.x));
+// 10
+PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x)));
+PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+R124i.y = int(intBitsToFloat(PV1i.z));
+PS0i = R124i.y;
+// 11
+PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.x)));
+PV1i.y = 0 - PS0i;
+R127i.x = int(intBitsToFloat(PV0i.y));
+PS1i = R127i.x;
+// 12
+PV0i.x = 0 - PS1i;
+PV0i.w = max(R124i.y, PV1i.y);
+R124i.w = int(intBitsToFloat(PV1i.x));
+PS0i = R124i.w;
+// 13
+R5i.x = int(1) - PV0i.w;
+PV1i.y = 0 - PS0i;
+PV1i.z = max(R127i.x, PV0i.x);
+PS1i = floatBitsToInt(float(R126i.w));
+// 14
+R11i.x = int(1) - PV1i.z;
+PV0i.y = max(R124i.w, PV1i.y);
+PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+R8i.x = floatBitsToInt(float(R8i.w));
+PS0i = R8i.x;
+// 15
+R12i.x = int(1) - PV0i.y;
+R124i.y = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.w)));
+PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R11i.z)));
+// 16
+PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R8i.x)), intBitsToFloat(PS1i)));
+R126i.z = int(intBitsToFloat(PV1i.w));
+PS0i = R126i.z;
+// 17
+PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.z)));
+PV1i.y = 0 - PS0i;
+// 18
+PV0i.x = max(R126i.z, PV1i.y);
+R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R125i.z)) + intBitsToFloat(R124i.y)));
+PV0i.z = R126i.z;
+// 19
+PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R11i.z)))?1.0:0.0);
+PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R11i.z))) + intBitsToFloat(PV0i.z));
+R8i.w = int(1) - PV0i.x;
+// 20
+R5i.w = ((intBitsToFloat(PV1i.x) == 0.0)?(R126i.z):(PV1i.y));
+PV0i.w = R5i.w;
+// 21
+R12i.z = floatBitsToInt(abs(intBitsToFloat(R11i.z)) + intBitsToFloat(PV0i.w));
+}
+if( activeMaskStackC[3] == true ) {
+R10i.xyzw = floatBitsToInt(uf_blockVS7[R5i.z].xyzw);
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(R9i.y))?1.0:0.0);
+PV0i.y = floatBitsToInt((intBitsToFloat(R9i.y) > 0.0)?1.0:0.0);
+PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockVS7[45].x));
+PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
+PV0i.w = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x);
+R125i.z = R8i.w * R10i.w;
+PS0i = R125i.z;
+// 1
+R124i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.w));
+R123i.y = ((-(intBitsToFloat(R5i.w)) > 0.0)?(R12i.z):(R5i.w));
+PV1i.y = R123i.y;
+R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), uf_blockVS7[45].y));
+R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) * 2.0);
+PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x)));
+R124i.y = R12i.x * R10i.z;
+PS1i = R124i.y;
+// 2
+R123i.x = ((-(intBitsToFloat(R8i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y));
+PV0i.x = R123i.x;
+PV0i.y = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y);
+R127i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.5 + intBitsToFloat(R9i.y)));
+R127i.x = R11i.x * R10i.y;
+PS0i = R127i.x;
+// 3
+R126i.x = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.y));
+PV1i.y = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z);
+PV1i.z = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w);
+R123i.w = ((intBitsToFloat(R11i.z) == 0.0)?(R8i.x):(PV0i.x));
+PV1i.w = R123i.w;
+PS1i = R5i.x * R10i.x;
+// 4
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[46].z) + intBitsToFloat(PV1i.y)));
+PV0i.x = R123i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockVS7[46].w) + intBitsToFloat(PV1i.z)));
+PV0i.y = R123i.y;
+PV0i.z = R127i.x + PS1i;
+R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(R124i.x))));
+R126i.z = int(intBitsToFloat(PV1i.w));
+PS0i = R126i.z;
+// 5
+R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[45].z) + intBitsToFloat(PV0i.x)));
+PV1i.y = R124i.y + PV0i.z;
+R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[45].w) + intBitsToFloat(PV0i.y)));
+R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[44].y) + intBitsToFloat(R126i.x)));
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(R11i.z));
+// 6
+R125i.x = R125i.z + PV1i.y;
+PV0i.y = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS1i));
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].z);
+// 7
+R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(PS0i)));
+PV1i.x = R126i.x;
+R123i.y = ((R2i.y == 0)?(0):(int(1)));
+PV1i.y = R123i.y;
+PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.y)));
+PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].w);
+// 8
+R127i.x = (PV1i.y == int(1))?int(0xFFFFFFFF):int(0x0);
+PV0i.x = R127i.x;
+PV0i.y = (PV1i.y == 0x00000002)?int(0xFFFFFFFF):int(0x0);
+R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS1i)));
+PV0i.z = R125i.z;
+R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(PV1i.x)) + -(0.5)));
+R127i.z = int(intBitsToFloat(PV1i.w));
+PS0i = R127i.z;
+// 9
+backupReg0i = R126i.z;
+R123i.x = ((PV0i.y == 0)?(R6i.x):(R6i.z));
+PV1i.x = R123i.x;
+R124i.y = ((PV0i.x == 0)?(R6i.x):(R6i.y));
+R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV0i.z)) + -(0.5)));
+R123i.w = ((PV0i.y == 0)?(R6i.y):(R6i.x));
+PV1i.w = R123i.w;
+PS1i = floatBitsToInt(float(backupReg0i));
+// 10
+R123i.x = ((R127i.x == 0)?(PV1i.w):(R6i.z));
+PV0i.x = R123i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS1i)) + intBitsToFloat(R124i.w)));
+PV0i.y = R123i.y;
+R123i.z = ((R127i.x == 0)?(PV1i.x):(R6i.y));
+PV0i.z = R123i.z;
+R124i.w = ((R127i.x == 0)?(R6i.y):(R6i.z));
+PS0i = floatBitsToInt(float(R127i.z));
+// 11
+backupReg0i = R124i.x;
+R124i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(PV0i.z)));
+R124i.x = floatBitsToInt(intBitsToFloat(R124i.x) * 2.0);
+R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y)));
+R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.w)));
+PV1i.z = R123i.z;
+R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV0i.x)));
+R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0);
+PS1i = int(uf_blockVS7[53].z);
+// 12
+R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R126i.z)) + -(intBitsToFloat(PV1i.z))));
+PV0i.y = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y);
+PV0i.w = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x);
+R126i.y = floatBitsToInt(float(PS1i));
+PS0i = R126i.y;
+// 13
+backupReg0i = R127i.w;
+R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+PV1i.y = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z);
+R126i.z = floatBitsToInt(-(intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.w));
+R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y));
+R124i.x = floatBitsToInt(float(R125i.x));
+PS1i = R124i.x;
+// 14
+backupReg0i = R124i.y;
+PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0);
+R124i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.y)));
+PV0i.z = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w);
+PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0);
+R126i.w = floatBitsToInt(float(R125i.x));
+PS0i = R126i.w;
+// 15
+backupReg0i = R124i.w;
+R125i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)));
+R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R126i.z))));
+PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w)));
+R124i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.z)));
+PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.y)));
+// 16
+PV0i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.w)), intBitsToFloat(PS1i)));
+R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R124i.x)));
+PV0i.y = R123i.y;
+R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[49].y) + intBitsToFloat(R127i.w)));
+R10i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[50].z) + intBitsToFloat(R124i.y)));
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.y));
+// 17
+PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.x)));
+R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[50].w) + intBitsToFloat(R124i.w)));
+R126i.z = ((R2i.y == 0)?(0):(0x00000002));
+PV1i.z = R126i.z;
+PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i));
+PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].z);
+// 18
+backupReg0i = R127i.x;
+R127i.x = (PV1i.z == int(1))?int(0xFFFFFFFF):int(0x0);
+R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R125i.x)));
+PV0i.y = R124i.y;
+PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w)));
+R7i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS1i)));
+PV0i.w = R7i.w;
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].w);
+// 19
+backupReg0i = R4i.z;
+PV1i.x = floatBitsToInt(-(abs(intBitsToFloat(R126i.y))) + intBitsToFloat(PV0i.y));
+R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS0i)));
+PV1i.y = R127i.y;
+R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.w)) + -(0.5)));
+PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R126i.y)))?1.0:0.0);
+PS1i = int(intBitsToFloat(PV0i.z));
+// 20
+backupReg0i = R124i.y;
+PV0i.x = (R126i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0);
+R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PV1i.y)) + -(0.5)));
+R126i.z = ((intBitsToFloat(PV1i.w) == 0.0)?(backupReg0i):(PV1i.x));
+PV0i.z = R126i.z;
+R8i.w = ((R127i.x == 0)?(R6i.x):(R6i.y));
+PS0i = floatBitsToInt(float(PS1i));
+// 21
+PV1i.x = floatBitsToInt(abs(intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.z));
+R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(PS0i)) + intBitsToFloat(R124i.z)));
+PV1i.y = R123i.y;
+R123i.z = ((PV0i.x == 0)?(R6i.y):(R6i.x));
+PV1i.z = R123i.z;
+R123i.w = ((PV0i.x == 0)?(R6i.x):(R6i.z));
+PV1i.w = R123i.w;
+R11i.z = ((R127i.x == 0)?(R6i.y):(R6i.z));
+PS1i = R11i.z;
+// 22
+backupReg0i = R6i.z;
+R123i.x = ((-(intBitsToFloat(R126i.z)) > 0.0)?(PV1i.x):(R126i.z));
+PV0i.x = R123i.x;
+R3i.y = ((R127i.x == 0)?(PV1i.w):(R6i.y));
+R6i.z = ((R127i.x == 0)?(PV1i.z):(backupReg0i));
+R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.y)) + -(intBitsToFloat(PV1i.y))));
+PS0i = int(uf_blockVS7[58].z);
+// 23
+R123i.w = ((-(intBitsToFloat(R126i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x));
+PV1i.w = R123i.w;
+R6i.x = floatBitsToInt(float(PS0i));
+PS1i = R6i.x;
+// 24
+PV0i.x = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0);
+R123i.z = ((intBitsToFloat(R126i.y) == 0.0)?(R126i.w):(PV1i.w));
+PV0i.z = R123i.z;
+PV0i.w = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0);
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i));
+// 25
+R2i.y = ((intBitsToFloat(PV0i.x) == 0.0)?(0):(PV0i.w));
+R6i.w = floatBitsToInt(intBitsToFloat(PS0i) * 0.0);
+R6i.y = int(intBitsToFloat(PV0i.z));
+PS1i = R6i.y;
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+PV0i.x = floatBitsToInt(abs(intBitsToFloat(R6i.x)) + intBitsToFloat(R2i.y));
+PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].x, intBitsToFloat(R3i.y)));
+PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0);
+PV0i.z = floatBitsToInt(trunc(intBitsToFloat(R6i.w)));
+PV0i.w = floatBitsToInt(uf_blockVS7[54].z + uf_blockVS7[55].x);
+PS0i = floatBitsToInt(float(R6i.y));
+// 1
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R10i.y)));
+PV1i.x = R123i.x;
+R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].y, intBitsToFloat(R6i.z)));
+R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0);
+PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.w));
+R123i.w = ((-(intBitsToFloat(R2i.y)) > 0.0)?(PV0i.x):(R2i.y));
+PV1i.w = R123i.w;
+R124i.y = int(intBitsToFloat(PV0i.z));
+PS1i = R124i.y;
+// 2
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.x)));
+PV0i.x = R123i.x;
+R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[54].x) + -(intBitsToFloat(PV1i.z))));
+R123i.z = ((intBitsToFloat(R6i.x) == 0.0)?(0):(PV1i.w));
+PV0i.z = R123i.z;
+R10i.w = floatBitsToInt(intBitsToFloat(R9i.y) + 0.5);
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].z);
+// 3
+R6i.xyz = floatBitsToInt(vec3(intBitsToFloat(PV0i.x),intBitsToFloat(R9i.x),intBitsToFloat(R5i.w)) + vec3(0.5,0.5,0.5));
+R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].x, intBitsToFloat(PS0i)));
+PV1i.w = R126i.w;
+R126i.y = int(intBitsToFloat(PV0i.z));
+PS1i = R126i.y;
+// 4
+backupReg0i = R11i.y;
+R127i.x = floatBitsToInt(intBitsToFloat(R3i.w) + -(uf_blockVS7[93].x));
+R11i.y = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y);
+R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PV1i.w)) + -(0.5)));
+R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + 0.0);
+PV0i.w = R127i.w;
+PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].w);
+// 5
+backupReg0i = R126i.y;
+R124i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(uf_blockVS7[104].w));
+R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].y, intBitsToFloat(PS0i)));
+PV1i.y = R126i.y;
+PS1i = floatBitsToInt(float(backupReg0i));
+// 6
+R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.y)));
+PV0i.y = floatBitsToInt(uf_blockVS7[54].w + uf_blockVS7[55].y);
+R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV1i.y)) + -(0.5)));
+R126i.w = floatBitsToInt(float(R124i.y));
+PS0i = R126i.w;
+// 7
+PV1i.x = floatBitsToInt(uf_blockVS7[56].y + uf_blockVS7[56].w);
+PV1i.z = floatBitsToInt(uf_blockVS7[56].x + uf_blockVS7[56].z);
+PV1i.w = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.y));
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(R11i.y));
+// 8
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[54].y) + intBitsToFloat(PV1i.w)));
+PV0i.x = R123i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].z,intBitsToFloat(R8i.w)) + intBitsToFloat(PV1i.z)));
+PV0i.y = R123i.y;
+R4i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i));
+R4i.z = clampFI32(R4i.z);
+R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].w,intBitsToFloat(R11i.z)) + intBitsToFloat(PV1i.x)));
+PV0i.w = R123i.w;
+// 9
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[55].z) + intBitsToFloat(PV0i.y)));
+PV1i.x = R123i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.x)));
+PV1i.y = R123i.y;
+R125i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[105].w));
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[55].w) + intBitsToFloat(PV0i.w)));
+PV1i.w = R123i.w;
+// 10
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R126i.z)) + intBitsToFloat(R125i.x)));
+PV0i.x = R123i.x;
+R126i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x);
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R124i.z)) + -(intBitsToFloat(PV1i.y))));
+PV0i.w = R123i.w;
+// 11
+R5i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5);
+R5i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5);
+PV1i.z = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w);
+R126i.w = ((intBitsToFloat(R124i.x) >= 0.0)?(floatBitsToInt(1.0)):(0));
+R127i.x = ((intBitsToFloat(R125i.z) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PS1i = R127i.x;
+// 12
+R125i.x = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x);
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z));
+// 13
+PV1i.x = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w);
+PV1i.y = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i));
+R126i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[106].w));
+PV1i.z = R126i.z;
+// 14
+R126i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV0i.y = R126i.y;
+R124i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[107].w));
+PV0i.z = R124i.z;
+R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[104].x));
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
+// 15
+backupReg0i = R125i.x;
+R125i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R125i.x;
+PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0);
+PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i));
+R124i.w = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x);
+PS1i = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0);
+// 16
+R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[105].x));
+R127i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[108].w));
+PV0i.y = R127i.y;
+PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
+R8i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y)));
+R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PS1i)));
+PS0i = R125i.y;
+// 17
+backupReg0i = R126i.w;
+R124i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R124i.x;
+R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z)));
+PV1i.z = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w);
+R126i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0);
+// 18
+R127i.x = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x);
+PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z));
+// 19
+PV1i.x = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w);
+PV1i.y = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS0i));
+R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.w)));
+// 20
+backupReg0i = R126i.z;
+R126i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[109].w));
+PV0i.z = R126i.z;
+R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.y)) + uf_blockVS7[106].x));
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
+// 21
+R125i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R125i.x;
+R9i.y = floatBitsToInt(fract(intBitsToFloat(R1i.w)));
+PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i));
+R124i.w = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x);
+R127i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(0x42c80000));
+R127i.x = clampFI32(R127i.x);
+PS1i = R127i.x;
+// 22
+R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[107].x));
+R10i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[110].w));
+PV0i.y = R10i.y;
+PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
+R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PS1i)));
+R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PS1i)));
+PS0i = R1i.z;
+// 23
+backupReg0i = R124i.x;
+R124i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R124i.x;
+R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z)));
+PV1i.z = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w);
+R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(R127i.x)));
+// 24
+R127i.x = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x);
+PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z));
+// 25
+PV1i.x = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w);
+PV1i.y = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS0i));
+R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.w)));
+// 26
+PV0i.x = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[111].w));
+R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.y)) + uf_blockVS7[108].x));
+PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x));
+// 27
+R9i.x = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0));
+PV1i.x = R9i.x;
+PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i));
+R0i.w = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x);
+// 28
+R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[109].x));
+PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
+PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(R126i.w)));
+// 29
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.z)));
+PV1i.x = R123i.x;
+R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.y)));
+PV1i.z = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w);
+// 30
+R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R8i.w)) + intBitsToFloat(PV1i.x)));
+R4i.x = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z));
+PS0i = R4i.x;
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+backupReg0i = R4i.x;
+backupReg1i = R1i.y;
+R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), uf_blockVS11[5].z));
+R1i.y = floatBitsToInt(intBitsToFloat(R0i.w) * intBitsToFloat(backupReg0i));
+R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),uf_blockVS13[24].x) + -(uf_blockVS13[24].y)));
+R123i.z = clampFI32(R123i.z);
+PV0i.z = R123i.z;
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R11i.y)) + intBitsToFloat(backupReg1i)));
+PV0i.w = R123i.w;
+// 1
+PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
+R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R11i.z)) + intBitsToFloat(PV0i.w)));
+PV1i.z = R123i.z;
+// 2
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R2i.y)) + intBitsToFloat(PV1i.z)));
+PV0i.x = R123i.x;
+tempResultf = log2(intBitsToFloat(PV1i.x));
+if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
+PS0i = floatBitsToInt(tempResultf);
+// 3
+PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[24].w, intBitsToFloat(PS0i)));
+R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.x)));
+// 4
+PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.x)));
+// 5
+R9i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),uf_blockVS13[25].w) + uf_blockVS13[25].w));
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+R126i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R0i.x)));
+R125i.y = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R4i.y)));
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R1i.y)) + uf_blockVS7[110].x));
+PV0i.w = R123i.w;
+// 1
+R124i.x = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R8i.z)));
+PV1i.x = R124i.x;
+R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(R1i.w)));
+PV1i.z = R123i.z;
+// 2
+PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PV1i.x));
+R1i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R9i.x)) + intBitsToFloat(PV1i.z)));
+// 3
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),1.0,0.0)));
+PV1i.x = tempi.x;
+PV1i.y = tempi.x;
+PV1i.z = tempi.x;
+PV1i.w = tempi.x;
+PS1i = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(R3i.z));
+// 4
+PV0i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0);
+tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x));
+PS0i = floatBitsToInt(tempResultf);
+// 5
+R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i)));
+R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i)));
+R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS0i)));
+R1i.w = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a)));
+R1i.w = clampFI32(R1i.w);
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0)));
+tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0);
+PV0i.x = tempi.x;
+PV0i.y = tempi.x;
+PV0i.z = tempi.x;
+PV0i.w = tempi.x;
+PS0i = floatBitsToInt(uf_blockVS13[28].y + 1.0);
+// 1
+R126i.x = floatBitsToInt(intBitsToFloat(PS0i) * 1.5);
+R126i.x = clampFI32(R126i.x);
+R126i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5);
+PV1i.z = R126i.z;
+PV1i.w = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z));
+// 2
+backupReg0i = R0i.y;
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),uf_blockVS13[22].x) + -(uf_blockVS13[22].y)));
+R123i.x = clampFI32(R123i.x);
+PV0i.x = R123i.x;
+PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
+PV0i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w));
+R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626)));
+PV0i.w = R123i.w;
+R125i.z = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R2i.z)));
+PS0i = R125i.z;
+// 3
+R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(0xbe593484)));
+PV1i.x = R123i.x;
+R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV0i.z)) + uf_blockVS13[27].x));
+R123i.y = clampFI32(R123i.y);
+PV1i.y = R123i.y;
+R124i.z = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x41700000));
+PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
+PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.y)));
+// 4
+R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS13[26].w));
+PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983));
+PV0i.z = floatBitsToInt(-(intBitsToFloat(R1i.w)) + 1.0);
+R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(0x3fc90da4)));
+PV0i.w = R123i.w;
+tempResultf = log2(intBitsToFloat(PV1i.w));
+if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
+PS0i = floatBitsToInt(tempResultf);
+// 5
+backupReg0i = R124i.z;
+R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.w))) + 1.0));
+PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS0i)));
+R124i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(PS0i)));
+PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0x41080000));
+PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i));
+// 6
+PV0i.x = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i));
+R2i.y = 0;
+R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3daaaaab));
+R0i.w = ((0.0 >= intBitsToFloat(R4i.z))?int(0xFFFFFFFF):int(0x0));
+PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
+PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0);
+// 7
+R3i.x = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000));
+R0i.y = floatBitsToInt(intBitsToFloat(PS0i) + 0.5);
+R8i.z = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3e4ccccd)));
+R1i.w = 0;
+R3i.z = floatBitsToInt(exp2(intBitsToFloat(R124i.z)));
+PS1i = R3i.z;
+}
+if( activeMaskStackC[3] == true ) {
+R0i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R0i.xy)).xyz);
+R2i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R2i.zy)).xyzw);
+}
+if( activeMaskStackC[3] == true ) {
+// 0
+backupReg0i = R3i.z;
+PV0i.x = floatBitsToInt(min(intBitsToFloat(R8i.z), 1.0));
+R126i.y = 0;
+R3i.z = ((R0i.w == 0)?(R3i.w):(R1i.w));
+R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(backupReg0i)) + uf_blockVS13[23].z));
+R123i.w = clampFI32(R123i.w);
+PV0i.w = R123i.w;
+R8i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS8[3].x,intBitsToFloat(R4i.z)) + 0.0));
+PS0i = R8i.x;
+// 1
+R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.x)));
+R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.x)));
+R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.x)));
+PV1i.w = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.w));
+PV1i.w = clampFI32(PV1i.w);
+R1i.x = 0;
+PS1i = R1i.x;
+// 2
+R10i.x = R12i.y;
+R125i.y = PV1i.w;
+R126i.z = PV1i.w;
+R124i.w = ((R0i.w == 0)?(R1i.z):(R126i.y));
+R0i.y = R14i.y;
+PS0i = R0i.y;
+// 3
+R125i.x = ((R0i.w == 0)?(R13i.y):(R13i.y));
+R124i.y = ((R0i.w == 0)?(R5i.w):(R3i.x));
+R0i.z = R12i.w;
+R127i.w = ((R0i.w == 0)?(R22i.z):(R22i.z));
+R125i.w = ((R0i.w == 0)?(R8i.x):(R1i.x));
+PS1i = R125i.w;
+// 4
+R0i.x = ((R0i.w == 0)?(0):(0x3f800000));
+PV0i.x = R0i.x;
+R123i.y = ((R0i.w == 0)?(0):(R9i.x));
+PV0i.y = R123i.y;
+R127i.z = ((R0i.w == 0)?(R1i.y):(R1i.y));
+R123i.w = ((R0i.w == 0)?(0):(R9i.z));
+PV0i.w = R123i.w;
+R126i.x = ((R0i.w == 0)?(0):(R4i.x));
+PS0i = R126i.x;
+// 5
+R18i.x = ((PV0i.x == 0)?(R9i.z):(PV0i.w));
+R18i.y = ((PV0i.x == 0)?(R9i.x):(PV0i.y));
+R123i.z = ((R0i.w == 0)?(0):(R125i.y));
+PV1i.z = R123i.z;
+R123i.w = ((R0i.w == 0)?(0):(R127i.y));
+PV1i.w = R123i.w;
+R124i.z = ((R0i.w == 0)?(0):(R124i.x));
+PS1i = R124i.z;
+// 6
+R19i.x = ((R0i.x == 0)?(R127i.y):(PV1i.w));
+R123i.y = ((R0i.w == 0)?(0):(R125i.z));
+PV0i.y = R123i.y;
+R18i.z = ((R0i.x == 0)?(R125i.y):(PV1i.z));
+R18i.w = ((R0i.x == 0)?(R4i.x):(R126i.x));
+R122i.x = ((R0i.w == 0)?(0):(R126i.z));
+PS0i = R122i.x;
+// 7
+backupReg0i = R124i.x;
+R124i.x = ((R0i.w == 0)?(0):(R2i.y));
+R19i.y = ((R0i.x == 0)?(backupReg0i):(R124i.z));
+R19i.z = ((R0i.x == 0)?(R125i.z):(PV0i.y));
+R19i.w = ((R0i.x == 0)?(R126i.z):(PS0i));
+R126i.x = ((R0i.w == 0)?(0):(R2i.w));
+PS1i = R126i.x;
+// 8
+R127i.x = ((R0i.w == 0)?(0):(R10i.x));
+R123i.y = ((R0i.w == 0)?(0):(R2i.z));
+PV0i.y = R123i.y;
+R124i.z = ((R0i.w == 0)?(0):(R0i.y));
+R123i.w = ((R0i.w == 0)?(0):(R2i.x));
+PV0i.w = R123i.w;
+R127i.y = ((R0i.w == 0)?(0):(R0i.z));
+PS0i = R127i.y;
+// 9
+R20i.x = ((R0i.x == 0)?(R2i.x):(PV0i.w));
+R20i.y = ((R0i.x == 0)?(R2i.y):(R124i.x));
+R20i.z = ((R0i.x == 0)?(R2i.z):(PV0i.y));
+R5i.w = ((R0i.w == 0)?(0):(R10i.w));
+R126i.z = ((R0i.w == 0)?(0):(R5i.y));
+PS1i = R126i.z;
+// 10
+R123i.x = ((R0i.w == 0)?(0):(R10i.w));
+PV0i.x = R123i.x;
+R125i.y = ((R0i.w == 0)?(0):(R5i.z));
+R123i.z = ((R0i.w == 0)?(0):(R6i.y));
+PV0i.z = R123i.z;
+R20i.w = ((R0i.x == 0)?(R2i.w):(R126i.x));
+R2i.w = ((R0i.w == 0)?(0):(R14i.z));
+PS0i = R2i.w;
+// 11
+R23i.x = ((R0i.x == 0)?(R10i.w):(PV0i.x));
+R23i.y = ((R0i.x == 0)?(R6i.y):(PV0i.z));
+R125i.z = ((R0i.w == 0)?(0):(R6i.z));
+R123i.w = ((R0i.w == 0)?(0):(R5i.x));
+PV1i.w = R123i.w;
+R126i.w = ((R0i.w == 0)?(R22i.y):(R1i.y));
+PS1i = R126i.w;
+// 12
+R2i.x = ((R0i.x == 0)?(R5i.x):(PV1i.w));
+R2i.y = ((R0i.x == 0)?(R5i.y):(R126i.z));
+R123i.z = ((R0i.w == 0)?(0):(R6i.x));
+PV0i.z = R123i.z;
+R10i.w = ((R0i.w == 0)?(0):(R13i.w));
+R126i.z = ((R0i.w == 0)?(R22i.z):(R22i.z));
+PS0i = R126i.z;
+// 13
+R126i.x = ((R0i.w == 0)?(0):(R15i.y));
+R123i.y = ((R0i.w == 0)?(0):(R11i.w));
+PV1i.y = R123i.y;
+R23i.z = ((R0i.x == 0)?(R6i.x):(PV0i.z));
+R23i.w = ((R0i.x == 0)?(R6i.z):(R125i.z));
+R122i.x = ((R0i.w == 0)?(0):(R7i.z));
+PS1i = R122i.x;
+// 14
+R11i.x = ((R0i.x == 0)?(R11i.w):(PV1i.y));
+R11i.y = ((R0i.x == 0)?(R7i.z):(PS1i));
+R123i.z = ((R0i.w == 0)?(R22i.x):(R1i.x));
+PV0i.z = R123i.z;
+R123i.w = ((R0i.w == 0)?(0):(R7i.y));
+PV0i.w = R123i.w;
+R124i.x = ((R0i.w == 0)?(0):(R14i.w));
+PS0i = R124i.x;
+// 15
+R22i.x = ((R0i.x == 0)?(R125i.w):(PV0i.z));
+R22i.y = ((R0i.x == 0)?(R127i.z):(R126i.w));
+R22i.z = ((R0i.x == 0)?(R127i.w):(R126i.z));
+PV1i.w = R12i.y;
+R11i.z = ((R0i.x == 0)?(R7i.y):(PV0i.w));
+PS1i = R11i.z;
+// 16
+backupReg0i = R13i.y;
+R9i.x = ((R0i.x == 0)?(PV1i.w):(R127i.x));
+R13i.y = ((R0i.w == 0)?(0):(R17i.y));
+R123i.z = ((R0i.w == 0)?(0):(R7i.x));
+PV0i.z = R123i.z;
+R127i.w = ((R0i.w == 0)?(0):(R16i.y));
+R127i.z = ((R0i.w == 0)?(R21i.w):(backupReg0i));
+PS0i = R127i.z;
+// 17
+R123i.x = ((R0i.w == 0)?(R21i.y):(R126i.y));
+PV1i.x = R123i.x;
+R123i.y = ((R0i.w == 0)?(R21i.x):(R1i.w));
+PV1i.y = R123i.y;
+PV1i.z = R14i.y;
+R11i.w = ((R0i.x == 0)?(R7i.x):(PV0i.z));
+PS1i = R12i.w;
+// 18
+R21i.x = ((R0i.x == 0)?(R3i.z):(PV1i.y));
+R9i.y = ((R0i.x == 0)?(PV1i.z):(R124i.z));
+R9i.z = ((R0i.x == 0)?(PS1i):(R127i.y));
+R123i.w = ((R0i.w == 0)?(0):(R13i.x));
+PV0i.w = R123i.w;
+R21i.y = ((R0i.x == 0)?(R124i.w):(PV1i.x));
+PS0i = R21i.y;
+// 19
+R10i.x = ((R0i.x == 0)?(R13i.x):(PV0i.w));
+R10i.y = ((R0i.x == 0)?(R13i.w):(R10i.w));
+R10i.z = ((R0i.x == 0)?(R14i.z):(R2i.w));
+R2i.z = ((R0i.x == 0)?(R5i.z):(R125i.y));
+PS1i = R2i.z;
+// 20
+R123i.x = ((R0i.w == 0)?(R21i.z):(R3i.x));
+PV0i.x = R123i.x;
+R10i.w = ((R0i.x == 0)?(R15i.y):(R126i.x));
+R9i.w = ((R0i.x == 0)?(R5i.w):(R5i.w));
+PS0i = R9i.w;
+// 21
+R21i.z = ((R0i.x == 0)?(R124i.y):(PV0i.x));
+R21i.w = ((R0i.x == 0)?(R125i.x):(R127i.z));
+// 22
+R123i.y = ((R0i.w == 0)?(0):(R14i.x));
+PV0i.y = R123i.y;
+// 23
+backupReg0i = R0i.x;
+backupReg0i = R0i.x;
+backupReg0i = R0i.x;
+backupReg0i = R0i.x;
+R0i.x = ((backupReg0i == 0)?(R14i.x):(PV0i.y));
+R0i.y = ((backupReg0i == 0)?(R14i.w):(R124i.x));
+R0i.z = ((backupReg0i == 0)?(R16i.y):(R127i.w));
+R0i.w = ((backupReg0i == 0)?(R17i.y):(R13i.y));
+PS1i = R0i.w;
+}
+activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
+// export
+gl_Position = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w));
+// export
+passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w));
+// export
+passParameterSem1 = vec4(intBitsToFloat(R11i.x), intBitsToFloat(R11i.y), intBitsToFloat(R11i.z), intBitsToFloat(R11i.w));
+// export
+passParameterSem3 = vec4(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y), intBitsToFloat(R10i.z), intBitsToFloat(R10i.w));
+// export
+passParameterSem8 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w));
+// export
+passParameterSem11 = vec4(intBitsToFloat(R9i.x), intBitsToFloat(R9i.y), intBitsToFloat(R9i.z), intBitsToFloat(R9i.w));
+// export
+passParameterSem14 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w));
+// export
+passParameterSem15 = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w));
+// export
+passParameterSem16 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.w));
+// export
+passParameterSem4 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.z));
+// export
+passParameterSem9 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.z));
+}
diff --git a/Workaround/BreathOfTheWild_SmokeDirection/c85a3a407d055ff0_0000000000003849_ps.txt b/Workaround/BreathOfTheWild_SmokeDirection/c85a3a407d055ff0_0000000000003849_ps.txt
deleted file mode 100644
index fc763ba6..00000000
--- a/Workaround/BreathOfTheWild_SmokeDirection/c85a3a407d055ff0_0000000000003849_ps.txt
+++ /dev/null
@@ -1,179 +0,0 @@
-#version 420
-#extension GL_ARB_texture_gather : enable
-// shader c85a3a407d055ff0 // guardian explosion fire ps
-uniform ivec4 uf_remappedPS[1];
-uniform float uf_alphaTestRef;
-layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x2115a000 res 128x64x1 dim 1 tm: 4 format 0031 compSel: 0 1 1 1 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 2 0 border: 0
-layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x2105e800 res 256x256x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 1 2 0 border: 0
-layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x21156000 res 128x128x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 0 0 0 border: 0
-layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0
-layout(location = 0) in vec4 passParameterSem0;
-layout(location = 1) in vec4 passParameterSem1;
-layout(location = 2) in vec4 passParameterSem3;
-layout(location = 3) in vec4 passParameterSem4;
-layout(location = 4) in vec4 passParameterSem8;
-layout(location = 5) in vec4 passParameterSem9;
-layout(location = 0) out vec4 passPixelColor0;
-uniform vec2 uf_fragCoordScale;
-int clampFI32(int v)
-{
-if( v == 0x7FFFFFFF )
-	return floatBitsToInt(1.0);
-else if( v == 0xFFFFFFFF )
-	return floatBitsToInt(0.0);
-return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
-}
-float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
-void main()
-{
-vec4 R0f = vec4(0.0);
-vec4 R1f = vec4(0.0);
-vec4 R2f = vec4(0.0);
-vec4 R3f = vec4(0.0);
-vec4 R4f = vec4(0.0);
-vec4 R5f = vec4(0.0);
-vec4 R6f = vec4(0.0);
-vec4 R123f = vec4(0.0);
-vec4 R125f = vec4(0.0);
-vec4 R126f = vec4(0.0);
-vec4 R127f = vec4(0.0);
-float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
-vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
-float PS0f = 0.0, PS1f = 0.0;
-vec4 tempf = vec4(0.0);
-float tempResultf;
-int tempResulti;
-ivec4 ARi = ivec4(0);
-bool predResult = true;
-vec3 cubeMapSTM;
-int cubeMapFaceId;
-R0f = passParameterSem0;
-R1f = passParameterSem1;
-R2f = passParameterSem3;
-R3f = passParameterSem4;
-R4f = passParameterSem8;
-R5f = passParameterSem9;
-R6f.xw = (texture(textureUnitPS0, R4f.xy).xw);
-// 0
-PV0f.x = R3f.y * 1.5;
-PV0f.y = R3f.y;
-PV0f.y /= 2.0;
-R123f.z = (R6f.w * 2.0 + -(1.0));
-PV0f.z = R123f.z;
-R123f.w = (R6f.x * 2.0 + -(1.0));
-PV0f.w = R123f.w;
-R3f.z = 1.0 / R2f.w;
-PS0f = R3f.z;
-// 1
-PV1f.x = mul_nonIEEE(PV0f.w, PV0f.y);
-PV1f.y = mul_nonIEEE(PV0f.z, PV0f.y);
-PV1f.z = mul_nonIEEE(PV0f.z, PV0f.x);
-PV1f.w = mul_nonIEEE(PV0f.w, PV0f.x);
-R6f.x = mul_nonIEEE(R2f.x, PS0f);
-PS1f = R6f.x;
-// 2
-backupReg0f = R4f.z;
-backupReg1f = R4f.w;
-R4f.xyz = vec3(R5f.x,R5f.y,backupReg0f) + vec3(PV1f.w,PV1f.z,PV1f.x);
-R4f.w = backupReg1f + PV1f.y;
-R6f.y = mul_nonIEEE(R2f.y, R3f.z);
-PS0f = R6f.y;
-R4f.x = (texture(textureUnitPS2, R4f.xy).w);
-R6f.x = (texture(textureUnitPS4, R6f.xy).x);
-R5f.xyzw = (texture(textureUnitPS1, R4f.zw).xyzw);
-// 0
-R123f.x = (mul_nonIEEE(R6f.x,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[0].x));
-PV0f.x = R123f.x;
-R123f.y = (R0f.w * 2.0 + -(1.0));
-PV0f.y = R123f.y;
-PV0f.z = R2f.z * R3f.z;
-PV0f.w = -(R5f.z) + 1.0;
-R127f.z = R1f.x + R1f.x;
-PS0f = R127f.z;
-// 1
-R127f.x = (-(PV0f.w) * intBitsToFloat(0x40c00000) + PV0f.x);
-R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),PV0f.z) + -(intBitsToFloat(uf_remappedPS[0].y)));
-PV1f.y = R123f.y;
-R126f.z = R1f.y + R1f.y;
-PV1f.z = R126f.z;
-R127f.w = R4f.x + PV0f.y;
-PV1f.w = R127f.w;
-R126f.y = R1f.z + R1f.z;
-PS1f = R126f.y;
-// 2
-R125f.x = -(R1f.x) + R127f.z;
-R127f.y = -(R1f.y) + PV1f.z;
-PV0f.z = max(PV1f.w, intBitsToFloat(0x3e4ccccd));
-R126f.w = -(R1f.z) + PS1f;
-PS0f = 1.0 / PV1f.y;
-// 3
-PV1f.x = min(PV0f.z, intBitsToFloat(0x3e99999a));
-PV1f.y = R5f.z + R4f.x;
-PV1f.y /= 2.0;
-PV1f.z = -(R0f.w) + 1.0;
-PV1f.w = -(intBitsToFloat(uf_remappedPS[0].z)) * PS0f;
-PS1f = mul_nonIEEE(R5f.w, R127f.w);
-// 4
-R126f.x = mul_nonIEEE(R1f.w, PS1f);
-R126f.x = clamp(R126f.x, 0.0, 1.0);
-PV0f.y = PV1f.x + intBitsToFloat(0xbe4ccccd);
-PV0f.z = R127f.x + -(PV1f.w);
-R127f.w = PV1f.y + intBitsToFloat(0xbecccccd);
-R127f.w *= 4.0;
-R127f.x = mul_nonIEEE(PV1f.z, PV1f.z);
-R127f.x *= 4.0;
-PS0f = R127f.x;
-// 5
-PV1f.x = PV0f.z;
-PV1f.x *= 2.0;
-PV1f.x = clamp(PV1f.x, 0.0, 1.0);
-R123f.y = (PV0f.z * intBitsToFloat(0x3d08888a) + intBitsToFloat(0xbe2aaaad));
-R123f.y = clamp(R123f.y, 0.0, 1.0);
-PV1f.y = R123f.y;
-PV1f.w = PV0f.y * intBitsToFloat(0x411fffff);
-// 6
-backupReg0f = R127f.w;
-PV0f.x = mul_nonIEEE(PV1f.y, PV1f.y);
-PV0f.y = mul_nonIEEE(R126f.x, PV1f.x);
-PV0f.y = clamp(PV0f.y, 0.0, 1.0);
-PV0f.z = mul_nonIEEE(R5f.x, PV1f.w);
-R127f.w = (mul_nonIEEE(PV1f.w,backupReg0f) + -(R127f.x));
-R127f.w = clamp(R127f.w, 0.0, 1.0);
-// 7
-R123f.x = (mul_nonIEEE(R127f.y,PV0f.z) + R1f.y);
-PV1f.x = R123f.x;
-R123f.y = (mul_nonIEEE(R126f.w,PV0f.z) + R1f.z);
-PV1f.y = R123f.y;
-R123f.z = (mul_nonIEEE(R125f.x,PV0f.z) + R1f.x);
-PV1f.z = R123f.z;
-R126f.w = (0.5 * PV0f.x + 0.5);
-R1f.w = mul_nonIEEE(R3f.x, PV0f.y);
-PS1f = R1f.w;
-// 8
-R123f.x = (mul_nonIEEE(R126f.y,R5f.y) + PV1f.y);
-PV0f.x = R123f.x;
-R123f.z = (mul_nonIEEE(R126f.z,R5f.y) + PV1f.x);
-PV0f.z = R123f.z;
-R123f.w = (mul_nonIEEE(R127f.z,R5f.y) + PV1f.z);
-PV0f.w = R123f.w;
-// 9
-R125f.x = mul_nonIEEE(PV0f.x, R126f.w);
-PV1f.x = R125f.x;
-R126f.y = mul_nonIEEE(PV0f.z, R126f.w);
-PV1f.y = R126f.y;
-R127f.z = mul_nonIEEE(PV0f.w, R126f.w);
-PV1f.z = R127f.z;
-// 10
-backupReg0f = R0f.y;
-backupReg1f = R0f.x;
-PV0f.x = R0f.z + -(PV1f.x);
-PV0f.y = backupReg0f + -(PV1f.y);
-PV0f.z = backupReg1f + -(PV1f.z);
-// 11
-R1f.x = (mul_nonIEEE(PV0f.z,R127f.w) + R127f.z);
-R1f.y = (mul_nonIEEE(PV0f.y,R127f.w) + R126f.y);
-R1f.z = (mul_nonIEEE(PV0f.x,R127f.w) + R125f.x);
-// export
-if( ((vec4(R1f.x, R1f.y, R1f.z, R1f.w)).a > uf_alphaTestRef) == false) discard;
-passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w);
-}
diff --git a/appveyor.yml b/appveyor.yml
index 458a2fae..2b409725 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -6,6 +6,7 @@ install:
  - xcopy C:\projects\cemu-graphic-packs\Performance C:\projects\cemu-graphic-packs\AppVeyor /E /I
  - xcopy C:\projects\cemu-graphic-packs\Quality C:\projects\cemu-graphic-packs\AppVeyor /E /I
  - xcopy C:\projects\cemu-graphic-packs\Workaround C:\projects\cemu-graphic-packs\AppVeyor /E /I
+ - echo D | xcopy C:\projects\cemu-graphic-packs\readme.txt C:\projects\cemu-graphic-packs\AppVeyor
 build: off
 artifacts:
  - path: AppVeyor
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 00000000..6b785b03
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,19 @@
+Go to the GitHub Site for more information: https://slashiee.github.io/cemu_graphic_packs/
+
+Please delete any current graphics packs that you are going to replace! This is necessary if, for example, any shader edits in an older installed version are deleted from a pack in a future downloaded version.
+
+Contributors:
+slashiee - 417 commits: 117,762 line additions and 131,299 line deletions.
+getdls - 31 commits: 30,136 line additions and 1,317 line deletions.
+Darkemaste - 23 commits: 14,684 line additions and 747 line deletions.
+JoelAlone - 17 commits: 22,529 line additions and 1,797 line deletions.
+NAVras-Z - 16 commits: 32,854 line additions and 14,979 line deletions.
+alexkiri - 13 commits: 18,432 line additions and 17,262 line deletions.
+Crementif - 9 commits: 18,831 line additions and 14,792  line deletions.
+Xalphenos - 6 commits: 312 line additions and 36 line deletions.
+rajkosto - 6 commits: 503 line additions and 6 line deletions.
+SwooshyCueb - 2 commits: 851 line additions and 990 line deletions.
+runderscore - 1 commit: 21 line additions and 3 line deletions.
+riperiperi - 1 commit: 103 line additions and 22 line deletions.
+tails101 - 1 commit: 10 line additions and 0 line deletions.
+Keelhauled - 1 commit: 99 line additions and 0 line deletions.
\ No newline at end of file