@tresjs/post-processing 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,28 +1,28 @@
1
1
  /**
2
2
  * name: @tresjs/post-processing
3
- * version: v2.3.1
3
+ * version: v2.4.0
4
4
  * (c) 2025
5
5
  * description: Post-processing library for TresJS
6
6
  * author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
7
7
  */
8
- import { defineComponent as u, shallowRef as W, provide as Be, computed as L, watch as S, onUnmounted as U, renderSlot as Ne, inject as te, watchEffect as x, nextTick as oe, toRaw as ie } from "vue";
9
- import { EffectComposer as ne, RenderPass as Ve, NormalPass as Ye, DepthDownsamplingPass as ke, EffectPass as qe, BloomEffect as le, DepthOfFieldEffect as ue, GlitchEffect as X, GlitchMode as Qe, NoiseEffect as ce, OutlineEffect as de, PixelationEffect as fe, VignetteEffect as he, Effect as q, BlendFunction as Q, ToneMappingEffect as pe, ChromaticAberrationEffect as K, HueSaturationEffect as me, ScanlineEffect as J, ColorAverageEffect as Z, LensDistortionEffect as ve, ShockWaveEffect as ge, TiltShiftEffect as xe, DotScreenEffect as be, SepiaEffect as Se, DepthPickingPass as Ke, GodRaysEffect as _, ColorDepthEffect as I, GridEffect as we, BrightnessContrastEffect as Ae } from "postprocessing";
10
- import { useTresContext as y, useLoop as G, normalizeColor as $ } from "@tresjs/core";
11
- import { HalfFloatType as T, Uniform as M, Vector2 as d, Vector3 as O, Mesh as ze, SphereGeometry as Je, MeshBasicMaterial as We, OrthographicCamera as Ze, BufferGeometry as _e, Float32BufferAttribute as ye, ShaderMaterial as A, UniformsUtils as P, WebGLRenderTarget as D, NoBlending as $e, Clock as et, Color as k, MathUtils as w, DataTexture as tt, RedFormat as ot, FloatType as st, MeshNormalMaterial as at, NearestFilter as F, DepthTexture as rt, Vector4 as it, RawShaderMaterial as nt, ColorManagement as lt, SRGBTransfer as ut, LinearToneMapping as ct, ReinhardToneMapping as dt, CineonToneMapping as ft, ACESFilmicToneMapping as ht, AgXToneMapping as pt, NeutralToneMapping as mt, CustomToneMapping as vt, Texture as Me, LinearFilter as gt, AdditiveBlending as xt } from "three";
12
- import { useDevicePixelRatio as Ue } from "@vueuse/core";
13
- class Te {
8
+ import { defineComponent as u, shallowRef as H, provide as He, computed as O, watch as g, onUnmounted as W, renderSlot as Ie, inject as J, watchEffect as w, nextTick as ce, toRaw as fe } from "vue";
9
+ import { EffectComposer as he, RenderPass as Je, NormalPass as Ze, DepthDownsamplingPass as _e, EffectPass as Xe, BloomEffect as pe, DepthOfFieldEffect as me, GlitchEffect as j, GlitchMode as $e, NoiseEffect as ve, OutlineEffect as ge, PixelationEffect as xe, VignetteEffect as be, Effect as Z, BlendFunction as _, ToneMappingEffect as Se, ChromaticAberrationEffect as ee, HueSaturationEffect as we, ScanlineEffect as te, ColorAverageEffect as oe, LensDistortionEffect as Ae, ShockWaveEffect as ye, TiltShiftEffect as Me, DotScreenEffect as Te, SepiaEffect as Ce, DepthPickingPass as et, GodRaysEffect as se, ColorDepthEffect as V, GridEffect as Ee, BrightnessContrastEffect as Pe, SMAAEffect as ae, TextureEffect as q, FXAAEffect as re, ASCIIEffect as ne, ASCIITexture as tt } from "postprocessing";
10
+ import { useTresContext as y, useLoop as I, normalizeColor as ie } from "@tresjs/core";
11
+ import { HalfFloatType as P, Uniform as C, Vector2 as f, Vector3 as B, Mesh as je, SphereGeometry as ot, MeshBasicMaterial as Ve, OrthographicCamera as st, BufferGeometry as at, Float32BufferAttribute as De, ShaderMaterial as T, UniformsUtils as L, WebGLRenderTarget as F, NoBlending as rt, Clock as nt, Color as K, MathUtils as M, DataTexture as it, RedFormat as lt, FloatType as ut, MeshNormalMaterial as ct, NearestFilter as N, DepthTexture as dt, Vector4 as ft, RawShaderMaterial as ht, ColorManagement as pt, SRGBTransfer as mt, LinearToneMapping as vt, ReinhardToneMapping as gt, CineonToneMapping as xt, ACESFilmicToneMapping as bt, AgXToneMapping as St, NeutralToneMapping as wt, CustomToneMapping as At, Texture as Le, LinearFilter as yt, AdditiveBlending as Mt } from "three";
12
+ import { useDevicePixelRatio as Ye } from "@vueuse/core";
13
+ class Fe {
14
14
  static isWebGL2Available() {
15
15
  try {
16
- const e = document.createElement("canvas");
17
- return !!(window.WebGL2RenderingContext && e.getContext("webgl2"));
16
+ const t = document.createElement("canvas");
17
+ return !!(window.WebGL2RenderingContext && t.getContext("webgl2"));
18
18
  } catch {
19
19
  return !1;
20
20
  }
21
21
  }
22
- static isColorSpaceAvailable(e) {
22
+ static isColorSpaceAvailable(t) {
23
23
  try {
24
- const t = document.createElement("canvas"), o = window.WebGL2RenderingContext && t.getContext("webgl2");
25
- return o.drawingBufferColorSpace = e, o.drawingBufferColorSpace === e;
24
+ const e = document.createElement("canvas"), o = window.WebGL2RenderingContext && e.getContext("webgl2");
25
+ return o.drawingBufferColorSpace = t, o.drawingBufferColorSpace === t;
26
26
  } catch {
27
27
  return !1;
28
28
  }
@@ -30,8 +30,8 @@ class Te {
30
30
  static getWebGL2ErrorMessage() {
31
31
  return this.getErrorMessage(2);
32
32
  }
33
- static getErrorMessage(e) {
34
- const t = {
33
+ static getErrorMessage(t) {
34
+ const e = {
35
35
  1: "WebGL",
36
36
  2: "WebGL 2"
37
37
  }, o = {
@@ -40,14 +40,14 @@ class Te {
40
40
  };
41
41
  let s = 'Your $0 does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">$1</a>';
42
42
  const a = document.createElement("div");
43
- return a.id = "webglmessage", a.style.fontFamily = "monospace", a.style.fontSize = "13px", a.style.fontWeight = "normal", a.style.textAlign = "center", a.style.background = "#fff", a.style.color = "#000", a.style.padding = "1.5em", a.style.width = "400px", a.style.margin = "5em auto 0", o[e] ? s = s.replace("$0", "graphics card") : s = s.replace("$0", "browser"), s = s.replace("$1", t[e]), a.innerHTML = s, a;
43
+ return a.id = "webglmessage", a.style.fontFamily = "monospace", a.style.fontSize = "13px", a.style.fontWeight = "normal", a.style.textAlign = "center", a.style.background = "#fff", a.style.color = "#000", a.style.padding = "1.5em", a.style.width = "400px", a.style.margin = "5em auto 0", o[t] ? s = s.replace("$0", "graphics card") : s = s.replace("$0", "browser"), s = s.replace("$1", e[t]), a.innerHTML = s, a;
44
44
  }
45
45
  // @deprecated, r168
46
46
  static isWebGLAvailable() {
47
47
  console.warn("isWebGLAvailable() has been deprecated and will be removed in r178. Use isWebGL2Available() instead.");
48
48
  try {
49
- const e = document.createElement("canvas");
50
- return !!(window.WebGLRenderingContext && (e.getContext("webgl") || e.getContext("experimental-webgl")));
49
+ const t = document.createElement("canvas");
50
+ return !!(window.WebGLRenderingContext && (t.getContext("webgl") || t.getContext("experimental-webgl")));
51
51
  } catch {
52
52
  return !1;
53
53
  }
@@ -56,7 +56,7 @@ class Te {
56
56
  return console.warn("getWebGLErrorMessage() has been deprecated and will be removed in r178. Use getWebGL2ErrorMessage() instead."), this.getErrorMessage(1);
57
57
  }
58
58
  }
59
- const se = Symbol("effectComposerPmndrs"), Gt = /* @__PURE__ */ u({
59
+ const $ = Symbol("effectComposerPmndrs"), Yt = /* @__PURE__ */ u({
60
60
  __name: "EffectComposerPmndrs",
61
61
  props: {
62
62
  enabled: { type: Boolean, default: !0 },
@@ -66,109 +66,109 @@ const se = Symbol("effectComposerPmndrs"), Gt = /* @__PURE__ */ u({
66
66
  resolutionScale: {},
67
67
  autoClear: { type: Boolean, default: !0 },
68
68
  multisampling: { default: 0 },
69
- frameBufferType: { default: T }
69
+ frameBufferType: { default: P }
70
70
  },
71
71
  emits: ["render"],
72
- setup(r, { expose: e, emit: t }) {
73
- const o = r, s = t, { scene: a, camera: i, renderer: n, sizes: l, render: f } = y(), h = W(null);
74
- let v = null, c = null;
75
- Be(se, h), e({ composer: h });
76
- const b = () => {
77
- h.value && (c = new Ye(a.value, i.value), c.enabled = !1, h.value.addPass(c), o.resolutionScale !== void 0 && Te.isWebGL2Available() && (v = new ke({
72
+ setup(n, { expose: t, emit: e }) {
73
+ const o = n, s = e, { scene: a, camera: r, renderer: i, sizes: l, render: d } = y(), p = H(null);
74
+ let b = null, c = null;
75
+ He($, p), t({ composer: p });
76
+ const S = () => {
77
+ p.value && (c = new Ze(a.value, r.value), c.enabled = !1, p.value.addPass(c), o.resolutionScale !== void 0 && Fe.isWebGL2Available() && (b = new _e({
78
78
  normalBuffer: c.texture,
79
79
  resolutionScale: o.resolutionScale
80
- }), v.enabled = !1, h.value.addPass(v)));
81
- }, E = L(() => {
82
- const g = new ne(), z = {
83
- depthBuffer: o.depthBuffer !== void 0 ? o.depthBuffer : g.inputBuffer.depthBuffer,
84
- stencilBuffer: o.stencilBuffer !== void 0 ? o.stencilBuffer : g.inputBuffer.stencilBuffer,
85
- multisampling: Te.isWebGL2Available() ? o.multisampling !== void 0 ? o.multisampling : g.multisampling : 0,
86
- frameBufferType: o.frameBufferType !== void 0 ? o.frameBufferType : T
80
+ }), b.enabled = !1, p.value.addPass(b)));
81
+ }, m = O(() => {
82
+ const x = new he(), G = {
83
+ depthBuffer: o.depthBuffer !== void 0 ? o.depthBuffer : x.inputBuffer.depthBuffer,
84
+ stencilBuffer: o.stencilBuffer !== void 0 ? o.stencilBuffer : x.inputBuffer.stencilBuffer,
85
+ multisampling: Fe.isWebGL2Available() ? o.multisampling !== void 0 ? o.multisampling : x.multisampling : 0,
86
+ frameBufferType: o.frameBufferType !== void 0 ? o.frameBufferType : P
87
87
  };
88
- return g.dispose(), z;
89
- }), re = () => {
90
- var g;
91
- !n.value && !a.value && !i.value || ((g = h.value) == null || g.dispose(), h.value = new ne(n.value, E.value), h.value.addPass(new Ve(a.value, i.value)), o.disableNormalPass || b());
88
+ return x.dispose(), G;
89
+ }), A = () => {
90
+ var x;
91
+ !i.value && !a.value && !r.value || ((x = p.value) == null || x.dispose(), p.value = new he(i.value, m.value), p.value.addPass(new Je(a.value, r.value)), o.disableNormalPass || S());
92
92
  };
93
- S([n, a, i, () => o.disableNormalPass], () => {
94
- !l.width.value || !l.height.value || re();
95
- }), S(() => [l.width.value, l.height.value], ([g, z]) => {
96
- !g && !z || (h.value ? h.value.setSize(g, z) : re());
93
+ g([i, a, r, () => o.disableNormalPass], () => {
94
+ !l.width.value || !l.height.value || A();
95
+ }), g(() => [l.width.value, l.height.value], ([x, G]) => {
96
+ !x && !G || (p.value ? p.value.setSize(x, G) : A());
97
97
  }, {
98
98
  immediate: !0
99
99
  });
100
- const { render: je } = G();
101
- return je(() => {
102
- if (o.enabled && n.value && h.value && l.width.value && l.height.value && f.frames.value > 0) {
103
- const g = n.value.autoClear;
104
- n.value.autoClear = o.autoClear, o.stencilBuffer && !o.autoClear && n.value.clearStencil(), h.value.render(), s("render", h.value), n.value.autoClear = g;
100
+ const { render: E } = I();
101
+ return E(() => {
102
+ if (o.enabled && i.value && p.value && l.width.value && l.height.value && d.frames.value > 0) {
103
+ const x = i.value.autoClear;
104
+ i.value.autoClear = o.autoClear, o.stencilBuffer && !o.autoClear && i.value.clearStencil(), p.value.render(), s("render", p.value), i.value.autoClear = x;
105
105
  }
106
- f.frames.value = f.mode.value === "always" ? 1 : Math.max(0, f.frames.value - 1);
107
- }), U(() => {
108
- var g;
109
- (g = h.value) == null || g.dispose();
110
- }), (g, z) => Ne(g.$slots, "default");
111
- }
112
- }), p = (r, e, t) => {
113
- const o = te(se), s = W(null), a = W(null), { scene: i, camera: n, invalidate: l } = y();
114
- S(e, () => l());
115
- const f = () => {
116
- var c, b, E;
117
- s.value && ((c = o == null ? void 0 : o.value) == null || c.removePass(s.value)), (b = a.value) == null || b.dispose(), (E = s.value) == null || E.dispose();
118
- }, h = (c) => {
119
- !n.value || !(o != null && o.value) || !i.value || (a.value = r(), s.value = new qe(n.value, a.value), o.value.addPass(s.value, c));
106
+ d.frames.value = d.mode.value === "always" ? 1 : Math.max(0, d.frames.value - 1);
107
+ }), W(() => {
108
+ var x;
109
+ (x = p.value) == null || x.dispose();
110
+ }), (x, G) => Ie(x.$slots, "default");
111
+ }
112
+ }), h = (n, t, e) => {
113
+ const o = J($), s = H(null), a = H(null), { scene: r, camera: i, invalidate: l } = y();
114
+ g(t, () => l());
115
+ const d = () => {
116
+ var c, S, m;
117
+ s.value && ((c = o == null ? void 0 : o.value) == null || c.removePass(s.value)), (S = a.value) == null || S.dispose(), (m = s.value) == null || m.dispose();
118
+ }, p = (c) => {
119
+ !i.value || !(o != null && o.value) || !r.value || (a.value = n(), s.value = new Xe(i.value, a.value), o.value.addPass(s.value, c));
120
120
  };
121
- t && S(
122
- () => t.map((c) => e[c]),
121
+ e && g(
122
+ () => e.map((c) => t[c]),
123
123
  () => {
124
- var b;
124
+ var S;
125
125
  if (!(o != null && o.value))
126
126
  return;
127
- const c = (b = o.value) == null ? void 0 : b.passes.findIndex((E) => E === s.value);
128
- ~c && (f(), h(c));
127
+ const c = (S = o.value) == null ? void 0 : S.passes.findIndex((m) => m === s.value);
128
+ ~c && (d(), p(c));
129
129
  }
130
- ), x(() => {
131
- !n.value || !(a != null && a.value) || (a.value.mainCamera = n.value);
130
+ ), w(() => {
131
+ !i.value || !(a != null && a.value) || (a.value.mainCamera = i.value);
132
132
  });
133
- const v = x(() => {
134
- !n.value || !(o != null && o.value) || !i.value || (oe(() => v()), !a.value && h());
133
+ const b = w(() => {
134
+ !i.value || !(o != null && o.value) || !r.value || (ce(() => b()), !a.value && p());
135
135
  });
136
- return U(() => {
137
- f();
136
+ return W(() => {
137
+ d();
138
138
  }), {
139
139
  pass: s,
140
140
  effect: a
141
141
  };
142
- }, Ge = /([^[.\]])+/g, bt = (r, e) => {
143
- if (!e)
142
+ }, ke = /([^[.\]])+/g, Tt = (n, t) => {
143
+ if (!t)
144
144
  return;
145
- const t = Array.isArray(e) ? e : e.match(Ge);
146
- return t == null ? void 0 : t.reduce((o, s) => o && o[s], r);
147
- }, Ce = (r, e, t) => {
148
- const o = Array.isArray(e) ? e : e.match(Ge);
149
- o && o.reduce((s, a, i) => (s[a] === void 0 && (s[a] = {}), i === o.length - 1 && (s[a] = t), s[a]), r);
150
- }, St = (r, e) => {
151
- const t = { ...r };
152
- return e.forEach((o) => delete t[o]), t;
153
- }, H = (r, e, t, o, s = {}) => S(r, (a) => {
154
- var i;
155
- if (e.value)
145
+ const e = Array.isArray(t) ? t : t.match(ke);
146
+ return e == null ? void 0 : e.reduce((o, s) => o && o[s], n);
147
+ }, Oe = (n, t, e) => {
148
+ const o = Array.isArray(t) ? t : t.match(ke);
149
+ o && o.reduce((s, a, r) => (s[a] === void 0 && (s[a] = {}), r === o.length - 1 && (s[a] = e), s[a]), n);
150
+ }, Ct = (n, t) => {
151
+ const e = { ...n };
152
+ return t.forEach((o) => delete e[o]), e;
153
+ }, X = (n, t, e, o, s = {}) => g(n, (a) => {
154
+ var r;
155
+ if (t.value)
156
156
  if (a === void 0) {
157
- const n = o();
158
- Ce(e.value, t, bt(n, t)), (i = n.dispose) == null || i.call(n);
157
+ const i = o();
158
+ Oe(t.value, e, Tt(i, e)), (r = i.dispose) == null || r.call(i);
159
159
  } else
160
- Ce(e.value, t, r());
161
- }, s), m = (r, e, t) => r.map(([o, s]) => H(
160
+ Oe(t.value, e, n());
161
+ }, s), v = (n, t, e) => n.map(([o, s]) => X(
162
162
  o,
163
- e,
163
+ t,
164
164
  s,
165
- t
166
- )), ae = (r, e, t) => Object.keys(r).map((o) => H(
167
- () => r[o],
168
- e,
165
+ e
166
+ )), de = (n, t, e) => Object.keys(n).map((o) => X(
167
+ () => n[o],
168
+ t,
169
169
  o,
170
- t
171
- )), Ht = /* @__PURE__ */ u({
170
+ e
171
+ )), kt = /* @__PURE__ */ u({
172
172
  __name: "BloomPmndrs",
173
173
  props: {
174
174
  blendFunction: {},
@@ -178,22 +178,22 @@ const se = Symbol("effectComposerPmndrs"), Gt = /* @__PURE__ */ u({
178
178
  luminanceSmoothing: {},
179
179
  mipmapBlur: { type: Boolean, default: void 0 }
180
180
  },
181
- setup(r, { expose: e }) {
182
- const t = r, { pass: o, effect: s } = p(() => new le(t), t, ["mipmapBlur"]);
183
- return e({ pass: o, effect: s }), m(
181
+ setup(n, { expose: t }) {
182
+ const e = n, { pass: o, effect: s } = h(() => new pe(e), e, ["mipmapBlur"]);
183
+ return t({ pass: o, effect: s }), v(
184
184
  [
185
- [() => t.blendFunction, "blendMode.blendFunction"],
186
- [() => t.intensity, "intensity"],
187
- [() => t.kernelSize, "kernelSize"],
188
- [() => t.luminanceSmoothing, "luminanceMaterial.smoothing"],
189
- [() => t.luminanceThreshold, "luminanceMaterial.threshold"]
185
+ [() => e.blendFunction, "blendMode.blendFunction"],
186
+ [() => e.intensity, "intensity"],
187
+ [() => e.kernelSize, "kernelSize"],
188
+ [() => e.luminanceSmoothing, "luminanceMaterial.smoothing"],
189
+ [() => e.luminanceThreshold, "luminanceMaterial.threshold"]
190
190
  ],
191
191
  s,
192
- () => new le()
192
+ () => new pe()
193
193
  ), () => {
194
194
  };
195
195
  }
196
- }), Xt = /* @__PURE__ */ u({
196
+ }), qt = /* @__PURE__ */ u({
197
197
  __name: "DepthOfFieldPmndrs",
198
198
  props: {
199
199
  blendFunction: {},
@@ -206,26 +206,26 @@ const se = Symbol("effectComposerPmndrs"), Gt = /* @__PURE__ */ u({
206
206
  resolutionX: {},
207
207
  resolutionY: {}
208
208
  },
209
- setup(r, { expose: e }) {
210
- const t = r, { camera: o } = y(), { pass: s, effect: a } = p(() => new ue(o.value, t), t);
211
- return e({ pass: s, effect: a }), m(
209
+ setup(n, { expose: t }) {
210
+ const e = n, { camera: o } = y(), { pass: s, effect: a } = h(() => new me(o.value, e), e);
211
+ return t({ pass: s, effect: a }), v(
212
212
  [
213
- [() => t.blendFunction, "blendMode.blendFunction"],
214
- [() => t.worldFocusDistance, "circleOfConfusionMaterial.worldFocusDistance"],
215
- [() => t.focusDistance, "circleOfConfusionMaterial.focusDistance"],
216
- [() => t.worldFocusRange, "circleOfConfusionMaterial.worldFocusRange"],
217
- [() => t.focusRange, "circleOfConfusionMaterial.focusRange"],
218
- [() => t.bokehScale, "bokehScale"],
219
- [() => t.resolutionScale, "blurPass.resolution.scale"],
220
- [() => t.resolutionX, "resolution.width"],
221
- [() => t.resolutionY, "resolution.height"]
213
+ [() => e.blendFunction, "blendMode.blendFunction"],
214
+ [() => e.worldFocusDistance, "circleOfConfusionMaterial.worldFocusDistance"],
215
+ [() => e.focusDistance, "circleOfConfusionMaterial.focusDistance"],
216
+ [() => e.worldFocusRange, "circleOfConfusionMaterial.worldFocusRange"],
217
+ [() => e.focusRange, "circleOfConfusionMaterial.focusRange"],
218
+ [() => e.bokehScale, "bokehScale"],
219
+ [() => e.resolutionScale, "blurPass.resolution.scale"],
220
+ [() => e.resolutionX, "resolution.width"],
221
+ [() => e.resolutionY, "resolution.height"]
222
222
  ],
223
223
  a,
224
- () => new ue()
224
+ () => new me()
225
225
  ), () => {
226
226
  };
227
227
  }
228
- }), It = /* @__PURE__ */ u({
228
+ }), Qt = /* @__PURE__ */ u({
229
229
  __name: "GlitchPmndrs",
230
230
  props: {
231
231
  blendFunction: {},
@@ -240,51 +240,51 @@ const se = Symbol("effectComposerPmndrs"), Gt = /* @__PURE__ */ u({
240
240
  perturbationMap: {},
241
241
  dtSize: {}
242
242
  },
243
- setup(r, { expose: e }) {
244
- const t = r, { pass: o, effect: s } = p(() => new X(t), t, ["dtSize"]);
245
- e({ pass: o, effect: s });
246
- const { onBeforeRender: a } = G();
247
- return a(({ invalidate: i }) => i()), x(() => {
248
- const i = () => {
249
- if (t.mode !== void 0)
250
- return t.active === !1 ? Qe.DISABLED : t.mode;
251
- const n = new X(), l = n.mode;
252
- return n.dispose(), l;
243
+ setup(n, { expose: t }) {
244
+ const e = n, { pass: o, effect: s } = h(() => new j(e), e, ["dtSize"]);
245
+ t({ pass: o, effect: s });
246
+ const { onBeforeRender: a } = I();
247
+ return a(({ invalidate: r }) => r()), w(() => {
248
+ const r = () => {
249
+ if (e.mode !== void 0)
250
+ return e.active === !1 ? $e.DISABLED : e.mode;
251
+ const i = new j(), l = i.mode;
252
+ return i.dispose(), l;
253
253
  };
254
- s.value && (s.value.mode = i());
255
- }), H(
256
- () => t.blendFunction,
254
+ s.value && (s.value.mode = r());
255
+ }), X(
256
+ () => e.blendFunction,
257
257
  s,
258
258
  "blendMode.blendFunction",
259
- () => new X()
260
- ), ae(
261
- St(t, ["active", "blendFunction"]),
259
+ () => new j()
260
+ ), de(
261
+ Ct(e, ["active", "blendFunction"]),
262
262
  s,
263
- () => new X()
263
+ () => new j()
264
264
  ), () => {
265
265
  };
266
266
  }
267
- }), jt = /* @__PURE__ */ u({
267
+ }), Kt = /* @__PURE__ */ u({
268
268
  __name: "NoisePmndrs",
269
269
  props: {
270
270
  premultiply: { type: Boolean, default: void 0 },
271
271
  blendFunction: {}
272
272
  },
273
- setup(r, { expose: e }) {
274
- const t = r, { pass: o, effect: s } = p(() => new ce(t), t);
275
- e({ pass: o, effect: s });
276
- const { onBeforeRender: a } = G();
277
- return a(({ invalidate: i }) => i()), m(
273
+ setup(n, { expose: t }) {
274
+ const e = n, { pass: o, effect: s } = h(() => new ve(e), e);
275
+ t({ pass: o, effect: s });
276
+ const { onBeforeRender: a } = I();
277
+ return a(({ invalidate: r }) => r()), v(
278
278
  [
279
- [() => t.blendFunction, "blendMode.blendFunction"],
280
- [() => t.premultiply, "premultiply"]
279
+ [() => e.blendFunction, "blendMode.blendFunction"],
280
+ [() => e.premultiply, "premultiply"]
281
281
  ],
282
282
  s,
283
- () => new ce()
283
+ () => new ve()
284
284
  ), () => {
285
285
  };
286
286
  }
287
- }), Vt = /* @__PURE__ */ u({
287
+ }), Jt = /* @__PURE__ */ u({
288
288
  __name: "OutlinePmndrs",
289
289
  props: {
290
290
  outlinedObjects: {},
@@ -303,83 +303,83 @@ const se = Symbol("effectComposerPmndrs"), Gt = /* @__PURE__ */ u({
303
303
  hiddenEdgeColor: {},
304
304
  visibleEdgeColor: {}
305
305
  },
306
- setup(r, { expose: e }) {
307
- const t = r, o = (f) => f !== void 0 ? $(f).getHex() : void 0, { camera: s, scene: a } = y(), { pass: i, effect: n } = p(
308
- () => new de(
306
+ setup(n, { expose: t }) {
307
+ const e = n, o = (d) => d !== void 0 ? ie(d).getHex() : void 0, { camera: s, scene: a } = y(), { pass: r, effect: i } = h(
308
+ () => new ge(
309
309
  a.value,
310
310
  s.value,
311
311
  {
312
- blur: t.blur,
313
- xRay: t.xRay,
314
- kernelSize: t.kernelSize,
315
- pulseSpeed: t.pulseSpeed,
316
- resolutionX: t.resolutionX,
317
- resolutionY: t.resolutionY,
318
- patternScale: t.patternScale,
319
- edgeStrength: t.edgeStrength,
320
- blendFunction: t.blendFunction,
321
- multisampling: t.multisampling,
322
- patternTexture: t.patternTexture,
323
- resolutionScale: t.resolutionScale,
324
- hiddenEdgeColor: o(t.hiddenEdgeColor),
325
- visibleEdgeColor: o(t.visibleEdgeColor)
312
+ blur: e.blur,
313
+ xRay: e.xRay,
314
+ kernelSize: e.kernelSize,
315
+ pulseSpeed: e.pulseSpeed,
316
+ resolutionX: e.resolutionX,
317
+ resolutionY: e.resolutionY,
318
+ patternScale: e.patternScale,
319
+ edgeStrength: e.edgeStrength,
320
+ blendFunction: e.blendFunction,
321
+ multisampling: e.multisampling,
322
+ patternTexture: e.patternTexture,
323
+ resolutionScale: e.resolutionScale,
324
+ hiddenEdgeColor: o(e.hiddenEdgeColor),
325
+ visibleEdgeColor: o(e.visibleEdgeColor)
326
326
  // width and height are explicitly omitted, because they are deprecated in postprocessing's OutlineEffect
327
327
  }
328
328
  ),
329
- t
329
+ e
330
330
  );
331
- e({ pass: i, effect: n }), S(
332
- [() => t.outlinedObjects, n],
331
+ t({ pass: r, effect: i }), g(
332
+ [() => e.outlinedObjects, i],
333
333
  // watchEffect is intentionally not used here as it would result in an endless loop
334
334
  () => {
335
- var f;
336
- (f = n.value) == null || f.selection.set(t.outlinedObjects || []);
335
+ var d;
336
+ (d = i.value) == null || d.selection.set(e.outlinedObjects || []);
337
337
  },
338
338
  {
339
339
  immediate: !0
340
340
  }
341
341
  );
342
- const l = L(() => ({
343
- hiddenEdgeColor: t.hiddenEdgeColor ? $(t.hiddenEdgeColor) : void 0,
344
- visibleEdgeColor: t.visibleEdgeColor ? $(t.visibleEdgeColor) : void 0
342
+ const l = O(() => ({
343
+ hiddenEdgeColor: e.hiddenEdgeColor ? ie(e.hiddenEdgeColor) : void 0,
344
+ visibleEdgeColor: e.visibleEdgeColor ? ie(e.visibleEdgeColor) : void 0
345
345
  }));
346
- return m(
346
+ return v(
347
347
  [
348
- [() => t.blendFunction, "blendMode.blendFunction"],
349
- [() => t.blur, "blur"],
350
- [() => t.xRay, "xRay"],
351
- [() => t.pulseSpeed, "pulseSpeed"],
352
- [() => t.kernelSize, "kernelSize"],
353
- [() => t.edgeStrength, "edgeStrength"],
354
- [() => t.patternScale, "patternScale"],
355
- [() => t.multisampling, "multisampling"],
356
- [() => t.resolutionX, "resolution.width"],
357
- [() => t.resolutionY, "resolution.height"],
358
- [() => t.patternTexture, "patternTexture"],
359
- [() => t.resolutionScale, "resolution.scale"],
348
+ [() => e.blendFunction, "blendMode.blendFunction"],
349
+ [() => e.blur, "blur"],
350
+ [() => e.xRay, "xRay"],
351
+ [() => e.pulseSpeed, "pulseSpeed"],
352
+ [() => e.kernelSize, "kernelSize"],
353
+ [() => e.edgeStrength, "edgeStrength"],
354
+ [() => e.patternScale, "patternScale"],
355
+ [() => e.multisampling, "multisampling"],
356
+ [() => e.resolutionX, "resolution.width"],
357
+ [() => e.resolutionY, "resolution.height"],
358
+ [() => e.patternTexture, "patternTexture"],
359
+ [() => e.resolutionScale, "resolution.scale"],
360
360
  [() => l.value.hiddenEdgeColor, "hiddenEdgeColor"],
361
361
  [() => l.value.visibleEdgeColor, "visibleEdgeColor"]
362
362
  ],
363
- n,
364
- () => new de()
363
+ i,
364
+ () => new ge()
365
365
  ), () => {
366
366
  };
367
367
  }
368
- }), Yt = /* @__PURE__ */ u({
368
+ }), Zt = /* @__PURE__ */ u({
369
369
  __name: "PixelationPmndrs",
370
370
  props: {
371
371
  granularity: {}
372
372
  },
373
- setup(r, { expose: e }) {
374
- const t = r, { pass: o, effect: s } = p(() => new fe(t.granularity), t);
375
- return e({ pass: o, effect: s }), ae(
376
- t,
373
+ setup(n, { expose: t }) {
374
+ const e = n, { pass: o, effect: s } = h(() => new xe(e.granularity), e);
375
+ return t({ pass: o, effect: s }), de(
376
+ e,
377
377
  s,
378
- () => new fe()
378
+ () => new xe()
379
379
  ), () => {
380
380
  };
381
381
  }
382
- }), kt = /* @__PURE__ */ u({
382
+ }), _t = /* @__PURE__ */ u({
383
383
  __name: "VignettePmndrs",
384
384
  props: {
385
385
  technique: {},
@@ -387,22 +387,22 @@ const se = Symbol("effectComposerPmndrs"), Gt = /* @__PURE__ */ u({
387
387
  offset: {},
388
388
  darkness: {}
389
389
  },
390
- setup(r, { expose: e }) {
391
- const t = r, { pass: o, effect: s } = p(() => new he(t), t);
392
- return e({ pass: o, effect: s }), m(
390
+ setup(n, { expose: t }) {
391
+ const e = n, { pass: o, effect: s } = h(() => new be(e), e);
392
+ return t({ pass: o, effect: s }), v(
393
393
  [
394
- [() => t.blendFunction, "blendMode.blendFunction"],
395
- [() => t.offset, "offset"],
396
- [() => t.darkness, "darkness"],
397
- [() => t.technique, "technique"]
394
+ [() => e.blendFunction, "blendMode.blendFunction"],
395
+ [() => e.offset, "offset"],
396
+ [() => e.darkness, "darkness"],
397
+ [() => e.technique, "technique"]
398
398
  ],
399
399
  s,
400
- () => new he()
400
+ () => new be()
401
401
  ), () => {
402
402
  };
403
403
  }
404
404
  });
405
- class Ee extends q {
405
+ class Be extends Z {
406
406
  /**
407
407
  * Creates a new BarrelBlurEffect instance.
408
408
  *
@@ -412,7 +412,7 @@ class Ee extends q {
412
412
  * @param {Vector2} [options.offset] - Offset of the barrel distortion center (0 to 1 for both x and y). This allows you to change the position of the distortion effect.
413
413
  *
414
414
  */
415
- constructor({ blendFunction: e = Q.NORMAL, amount: t = 0.15, offset: o = new d(0.5, 0.5) } = {}) {
415
+ constructor({ blendFunction: t = _.NORMAL, amount: e = 0.15, offset: o = new f(0.5, 0.5) } = {}) {
416
416
  super("BarrelBlurEffect", `
417
417
  uniform float amount;
418
418
  uniform vec2 offset;
@@ -458,11 +458,11 @@ class Ee extends q {
458
458
  outputColor = vec4(outcol, inputColor.a); // Preserves original alpha
459
459
  }
460
460
  `, {
461
- blendFunction: e,
461
+ blendFunction: t,
462
462
  uniforms: /* @__PURE__ */ new Map([
463
- ["amount", new M(t)],
463
+ ["amount", new C(e)],
464
464
  // Uniform controlling the intensity of distortion
465
- ["offset", new M(o)]
465
+ ["offset", new C(o)]
466
466
  // Uniform controlling the offset of distortion
467
467
  ])
468
468
  });
@@ -473,11 +473,11 @@ class Ee extends q {
473
473
  * @type {number}
474
474
  */
475
475
  get amount() {
476
- var e;
477
- return (e = this.uniforms.get("amount")) == null ? void 0 : e.value;
476
+ var t;
477
+ return (t = this.uniforms.get("amount")) == null ? void 0 : t.value;
478
478
  }
479
- set amount(e) {
480
- this.uniforms.get("amount").value = e;
479
+ set amount(t) {
480
+ this.uniforms.get("amount").value = t;
481
481
  }
482
482
  /**
483
483
  * The offset.
@@ -485,40 +485,40 @@ class Ee extends q {
485
485
  * @type {Vector2}
486
486
  */
487
487
  get offset() {
488
- var e;
489
- return (e = this.uniforms.get("offset")) == null ? void 0 : e.value;
488
+ var t;
489
+ return (t = this.uniforms.get("offset")) == null ? void 0 : t.value;
490
490
  }
491
- set offset(e) {
492
- this.uniforms.get("offset").value = e;
491
+ set offset(t) {
492
+ this.uniforms.get("offset").value = t;
493
493
  }
494
494
  }
495
- const qt = /* @__PURE__ */ u({
495
+ const $t = /* @__PURE__ */ u({
496
496
  __name: "BarrelBlurPmndrs",
497
497
  props: {
498
498
  blendFunction: {},
499
499
  amount: {},
500
500
  offset: {}
501
501
  },
502
- setup(r, { expose: e }) {
503
- const t = r, { pass: o, effect: s } = p(
504
- () => new Ee({
505
- ...t,
506
- offset: Array.isArray(t.offset) ? new d(...t.offset) : t.offset
502
+ setup(n, { expose: t }) {
503
+ const e = n, { pass: o, effect: s } = h(
504
+ () => new Be({
505
+ ...e,
506
+ offset: Array.isArray(e.offset) ? new f(...e.offset) : e.offset
507
507
  }),
508
- t
508
+ e
509
509
  );
510
- return e({ pass: o, effect: s }), m(
510
+ return t({ pass: o, effect: s }), v(
511
511
  [
512
- [() => t.blendFunction, "blendMode.blendFunction"],
513
- [() => t.amount, "amount"],
514
- [() => t.offset, "offset"]
512
+ [() => e.blendFunction, "blendMode.blendFunction"],
513
+ [() => e.amount, "amount"],
514
+ [() => e.offset, "offset"]
515
515
  ],
516
516
  s,
517
- () => new Ee()
517
+ () => new Be()
518
518
  ), () => {
519
519
  };
520
520
  }
521
- }), Qt = /* @__PURE__ */ u({
521
+ }), eo = /* @__PURE__ */ u({
522
522
  __name: "ToneMappingPmndrs",
523
523
  props: {
524
524
  mode: {},
@@ -529,24 +529,24 @@ const qt = /* @__PURE__ */ u({
529
529
  minLuminance: {},
530
530
  whitePoint: {}
531
531
  },
532
- setup(r, { expose: e }) {
533
- const t = r, { pass: o, effect: s } = p(() => new pe(t), t);
534
- return e({ pass: o, effect: s }), m(
532
+ setup(n, { expose: t }) {
533
+ const e = n, { pass: o, effect: s } = h(() => new Se(e), e);
534
+ return t({ pass: o, effect: s }), v(
535
535
  [
536
- [() => t.mode, "mode"],
537
- [() => t.blendFunction, "blendMode.blendFunction"],
538
- [() => t.resolution, "resolution"],
539
- [() => t.averageLuminance, "averageLuminance"],
540
- [() => t.middleGrey, "middleGrey"],
541
- [() => t.minLuminance, "adaptiveLuminanceMaterial.minLuminance"],
542
- [() => t.whitePoint, "whitePoint"]
536
+ [() => e.mode, "mode"],
537
+ [() => e.blendFunction, "blendMode.blendFunction"],
538
+ [() => e.resolution, "resolution"],
539
+ [() => e.averageLuminance, "averageLuminance"],
540
+ [() => e.middleGrey, "middleGrey"],
541
+ [() => e.minLuminance, "adaptiveLuminanceMaterial.minLuminance"],
542
+ [() => e.whitePoint, "whitePoint"]
543
543
  ],
544
544
  s,
545
- () => new pe()
545
+ () => new Se()
546
546
  ), () => {
547
547
  };
548
548
  }
549
- }), Kt = /* @__PURE__ */ u({
549
+ }), to = /* @__PURE__ */ u({
550
550
  __name: "ChromaticAberrationPmndrs",
551
551
  props: {
552
552
  blendFunction: {},
@@ -554,47 +554,47 @@ const qt = /* @__PURE__ */ u({
554
554
  radialModulation: { type: Boolean, default: void 0 },
555
555
  modulationOffset: {}
556
556
  },
557
- setup(r, { expose: e }) {
558
- const t = r, o = new K(), { pass: s, effect: a } = p(() => new K({
559
- ...t,
557
+ setup(n, { expose: t }) {
558
+ const e = n, o = new ee(), { pass: s, effect: a } = h(() => new ee({
559
+ ...e,
560
560
  // Unfortunately, these defaults must be set this way as the type in postprocessing is not correct.
561
561
  // The arguments are optional in the actual constructor, but not in the type.
562
- radialModulation: t.radialModulation ?? o.radialModulation,
563
- modulationOffset: t.modulationOffset ?? o.modulationOffset
564
- }), t);
565
- return o.dispose(), e({ pass: s, effect: a }), m(
562
+ radialModulation: e.radialModulation ?? o.radialModulation,
563
+ modulationOffset: e.modulationOffset ?? o.modulationOffset
564
+ }), e);
565
+ return o.dispose(), t({ pass: s, effect: a }), v(
566
566
  [
567
- [() => t.blendFunction, "blendMode.blendFunction"],
568
- [() => t.offset, "offset"],
569
- [() => t.radialModulation, "radialModulation"],
570
- [() => t.modulationOffset, "modulationOffset"]
567
+ [() => e.blendFunction, "blendMode.blendFunction"],
568
+ [() => e.offset, "offset"],
569
+ [() => e.radialModulation, "radialModulation"],
570
+ [() => e.modulationOffset, "modulationOffset"]
571
571
  ],
572
572
  a,
573
- () => new K()
573
+ () => new ee()
574
574
  ), () => {
575
575
  };
576
576
  }
577
- }), Jt = /* @__PURE__ */ u({
577
+ }), oo = /* @__PURE__ */ u({
578
578
  __name: "HueSaturationPmndrs",
579
579
  props: {
580
580
  saturation: {},
581
581
  hue: {},
582
582
  blendFunction: {}
583
583
  },
584
- setup(r, { expose: e }) {
585
- const t = r, { pass: o, effect: s } = p(() => new me(t), t);
586
- return e({ pass: o, effect: s }), m(
584
+ setup(n, { expose: t }) {
585
+ const e = n, { pass: o, effect: s } = h(() => new we(e), e);
586
+ return t({ pass: o, effect: s }), v(
587
587
  [
588
- [() => t.blendFunction, "blendMode.blendFunction"],
589
- [() => t.hue, "hue"],
590
- [() => t.saturation, "saturation"]
588
+ [() => e.blendFunction, "blendMode.blendFunction"],
589
+ [() => e.hue, "hue"],
590
+ [() => e.saturation, "saturation"]
591
591
  ],
592
592
  s,
593
- () => new me()
593
+ () => new we()
594
594
  ), () => {
595
595
  };
596
596
  }
597
- }), Zt = /* @__PURE__ */ u({
597
+ }), so = /* @__PURE__ */ u({
598
598
  __name: "ScanlinePmndrs",
599
599
  props: {
600
600
  blendFunction: {},
@@ -602,25 +602,25 @@ const qt = /* @__PURE__ */ u({
602
602
  scrollSpeed: {},
603
603
  opacity: {}
604
604
  },
605
- setup(r, { expose: e }) {
606
- const t = r, { pass: o, effect: s } = p(() => new J(t), t);
607
- return e({ pass: o, effect: s }), m(
605
+ setup(n, { expose: t }) {
606
+ const e = n, { pass: o, effect: s } = h(() => new te(e), e);
607
+ return t({ pass: o, effect: s }), v(
608
608
  [
609
- [() => t.blendFunction, "blendMode.blendFunction"],
610
- [() => t.density, "density"],
611
- [() => t.scrollSpeed, "scrollSpeed"]
609
+ [() => e.blendFunction, "blendMode.blendFunction"],
610
+ [() => e.density, "density"],
611
+ [() => e.scrollSpeed, "scrollSpeed"]
612
612
  ],
613
613
  s,
614
- () => new J()
615
- ), S(
616
- [() => t.opacity],
614
+ () => new te()
615
+ ), g(
616
+ [() => e.opacity],
617
617
  () => {
618
- var a, i;
619
- if (t.opacity !== void 0)
620
- (a = s.value) == null || a.blendMode.setOpacity(t.opacity);
618
+ var a, r;
619
+ if (e.opacity !== void 0)
620
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
621
621
  else {
622
- const n = new J();
623
- (i = s.value) == null || i.blendMode.setOpacity(n.blendMode.getOpacity()), n.dispose();
622
+ const i = new te();
623
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
624
624
  }
625
625
  },
626
626
  {
@@ -629,7 +629,7 @@ const qt = /* @__PURE__ */ u({
629
629
  ), () => {
630
630
  };
631
631
  }
632
- }), wt = `
632
+ }), Et = `
633
633
  uniform float radius;
634
634
  uniform int sectorCount;
635
635
 
@@ -726,7 +726,7 @@ void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor)
726
726
  outputColor = vec4(finalColor, inputColor.a);
727
727
  }
728
728
  `;
729
- class Pe extends q {
729
+ class Re extends Z {
730
730
  /**
731
731
  * Creates a new KuwaharaEffect instance.
732
732
  *
@@ -736,12 +736,12 @@ class Pe extends q {
736
736
  * @param {number} [options.sectorCount] - Number of sectors.
737
737
  *
738
738
  */
739
- constructor({ blendFunction: e = Q.NORMAL, radius: t = 1, sectorCount: o = 4 } = {}) {
740
- super("KuwaharaEffect", wt, {
741
- blendFunction: e,
739
+ constructor({ blendFunction: t = _.NORMAL, radius: e = 1, sectorCount: o = 4 } = {}) {
740
+ super("KuwaharaEffect", Et, {
741
+ blendFunction: t,
742
742
  uniforms: /* @__PURE__ */ new Map([
743
- ["radius", new M(t)],
744
- ["sectorCount", new M(o)]
743
+ ["radius", new C(e)],
744
+ ["sectorCount", new C(o)]
745
745
  ])
746
746
  });
747
747
  }
@@ -751,11 +751,11 @@ class Pe extends q {
751
751
  * @type {number}
752
752
  */
753
753
  get radius() {
754
- var e;
755
- return (e = this.uniforms.get("radius")) == null ? void 0 : e.value;
754
+ var t;
755
+ return (t = this.uniforms.get("radius")) == null ? void 0 : t.value;
756
756
  }
757
- set radius(e) {
758
- this.uniforms.get("radius").value = e;
757
+ set radius(t) {
758
+ this.uniforms.get("radius").value = t;
759
759
  }
760
760
  /**
761
761
  * The sector count.
@@ -763,65 +763,65 @@ class Pe extends q {
763
763
  * @type {number}
764
764
  */
765
765
  get sectorCount() {
766
- var e;
767
- return (e = this.uniforms.get("sectorCount")) == null ? void 0 : e.value;
766
+ var t;
767
+ return (t = this.uniforms.get("sectorCount")) == null ? void 0 : t.value;
768
768
  }
769
- set sectorCount(e) {
770
- this.uniforms.get("sectorCount").value = e;
769
+ set sectorCount(t) {
770
+ this.uniforms.get("sectorCount").value = t;
771
771
  }
772
772
  }
773
- const _t = /* @__PURE__ */ u({
773
+ const ao = /* @__PURE__ */ u({
774
774
  __name: "KuwaharaPmndrs",
775
775
  props: {
776
776
  blendFunction: {},
777
777
  radius: {},
778
778
  sectorCount: {}
779
779
  },
780
- setup(r, { expose: e }) {
781
- const t = r, { pass: o, effect: s } = p(
782
- () => new Pe(t),
783
- t
780
+ setup(n, { expose: t }) {
781
+ const e = n, { pass: o, effect: s } = h(
782
+ () => new Re(e),
783
+ e
784
784
  );
785
- return e({ pass: o, effect: s }), m(
785
+ return t({ pass: o, effect: s }), v(
786
786
  [
787
- [() => t.blendFunction, "blendMode.blendFunction"],
788
- [() => t.radius, "radius"],
789
- [() => t.sectorCount, "sectorCount"]
787
+ [() => e.blendFunction, "blendMode.blendFunction"],
788
+ [() => e.radius, "radius"],
789
+ [() => e.sectorCount, "sectorCount"]
790
790
  ],
791
791
  s,
792
- () => new Pe()
792
+ () => new Re()
793
793
  ), () => {
794
794
  };
795
795
  }
796
- }), $t = /* @__PURE__ */ u({
796
+ }), ro = /* @__PURE__ */ u({
797
797
  __name: "ColorAveragePmndrs",
798
798
  props: {
799
799
  blendFunction: {},
800
800
  opacity: {}
801
801
  },
802
- setup(r, { expose: e }) {
803
- const t = r, { pass: o, effect: s } = p(() => new Z(t.blendFunction), t);
804
- return e({ pass: o, effect: s }), H(
805
- () => t.blendFunction,
802
+ setup(n, { expose: t }) {
803
+ const e = n, { pass: o, effect: s } = h(() => new oe(e.blendFunction), e);
804
+ return t({ pass: o, effect: s }), X(
805
+ () => e.blendFunction,
806
806
  s,
807
807
  "blendMode.blendFunction",
808
- () => new Z()
809
- ), S(
810
- [s, () => t.opacity],
808
+ () => new oe()
809
+ ), g(
810
+ [s, () => e.opacity],
811
811
  () => {
812
- var a, i;
812
+ var a, r;
813
813
  if (s.value)
814
- if (t.opacity !== void 0)
815
- (a = s.value) == null || a.blendMode.setOpacity(t.opacity);
814
+ if (e.opacity !== void 0)
815
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
816
816
  else {
817
- const n = new Z();
818
- (i = s.value) == null || i.blendMode.setOpacity(n.blendMode.getOpacity()), n.dispose();
817
+ const i = new oe();
818
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
819
819
  }
820
820
  }
821
821
  ), () => {
822
822
  };
823
823
  }
824
- }), eo = /* @__PURE__ */ u({
824
+ }), no = /* @__PURE__ */ u({
825
825
  __name: "LensDistortionPmndrs",
826
826
  props: {
827
827
  distortion: {},
@@ -829,24 +829,24 @@ const _t = /* @__PURE__ */ u({
829
829
  focalLength: {},
830
830
  skew: {}
831
831
  },
832
- setup(r, { expose: e }) {
833
- const t = r, { pass: o, effect: s } = p(
834
- () => new ve({
835
- ...t,
836
- distortion: t.distortion ? Array.isArray(t.distortion) ? new d(...t.distortion) : t.distortion : new d(),
837
- principalPoint: t.principalPoint ? Array.isArray(t.principalPoint) ? new d(...t.principalPoint) : t.principalPoint : new d(),
838
- focalLength: t.focalLength ? Array.isArray(t.focalLength) ? new d(...t.focalLength) : t.focalLength : new d()
832
+ setup(n, { expose: t }) {
833
+ const e = n, { pass: o, effect: s } = h(
834
+ () => new Ae({
835
+ ...e,
836
+ distortion: e.distortion ? Array.isArray(e.distortion) ? new f(...e.distortion) : e.distortion : new f(),
837
+ principalPoint: e.principalPoint ? Array.isArray(e.principalPoint) ? new f(...e.principalPoint) : e.principalPoint : new f(),
838
+ focalLength: e.focalLength ? Array.isArray(e.focalLength) ? new f(...e.focalLength) : e.focalLength : new f()
839
839
  }),
840
- t
840
+ e
841
841
  );
842
- return e({ pass: o, effect: s }), ae(
843
- t,
842
+ return t({ pass: o, effect: s }), de(
843
+ e,
844
844
  s,
845
- () => new ve()
845
+ () => new Ae()
846
846
  ), () => {
847
847
  };
848
848
  }
849
- }), to = /* @__PURE__ */ u({
849
+ }), io = /* @__PURE__ */ u({
850
850
  __name: "ShockWavePmndrs",
851
851
  props: {
852
852
  position: {},
@@ -855,30 +855,30 @@ const _t = /* @__PURE__ */ u({
855
855
  maxRadius: {},
856
856
  waveSize: {}
857
857
  },
858
- setup(r, { expose: e }) {
859
- const t = r, { camera: o } = y(), { pass: s, effect: a } = p(
860
- () => new ge(o.value, Array.isArray(t.position) ? new O(...t.position) : t.position, t),
861
- t
858
+ setup(n, { expose: t }) {
859
+ const e = n, { camera: o } = y(), { pass: s, effect: a } = h(
860
+ () => new ye(o.value, Array.isArray(e.position) ? new B(...e.position) : e.position, e),
861
+ e
862
862
  );
863
- return e({ pass: s, effect: a }), S(
864
- () => t.position,
865
- (i) => {
866
- a.value && (Array.isArray(i) ? a.value.position.set(...i) : i instanceof O && a.value.position.copy(i));
863
+ return t({ pass: s, effect: a }), g(
864
+ () => e.position,
865
+ (r) => {
866
+ a.value && (Array.isArray(r) ? a.value.position.set(...r) : r instanceof B && a.value.position.copy(r));
867
867
  },
868
868
  { immediate: !0 }
869
- ), m(
869
+ ), v(
870
870
  [
871
- [() => t.amplitude, "amplitude"],
872
- [() => t.waveSize, "waveSize"],
873
- [() => t.maxRadius, "maxRadius"],
874
- [() => t.speed, "speed"]
871
+ [() => e.amplitude, "amplitude"],
872
+ [() => e.waveSize, "waveSize"],
873
+ [() => e.maxRadius, "maxRadius"],
874
+ [() => e.speed, "speed"]
875
875
  ],
876
876
  a,
877
- () => new ge()
877
+ () => new ye()
878
878
  ), () => {
879
879
  };
880
880
  }
881
- }), oo = /* @__PURE__ */ u({
881
+ }), lo = /* @__PURE__ */ u({
882
882
  __name: "TiltShiftPmndrs",
883
883
  props: {
884
884
  blendFunction: {},
@@ -891,73 +891,73 @@ const _t = /* @__PURE__ */ u({
891
891
  resolutionX: {},
892
892
  resolutionY: {}
893
893
  },
894
- setup(r, { expose: e }) {
895
- const t = r, { pass: o, effect: s } = p(() => new xe(t), t);
896
- return e({ pass: o, effect: s }), m(
894
+ setup(n, { expose: t }) {
895
+ const e = n, { pass: o, effect: s } = h(() => new Me(e), e);
896
+ return t({ pass: o, effect: s }), v(
897
897
  [
898
- [() => t.blendFunction, "blendMode.blendFunction"],
899
- [() => t.offset, "offset"],
900
- [() => t.rotation, "rotation"],
901
- [() => t.focusArea, "focusArea"],
902
- [() => t.feather, "feather"],
903
- [() => t.kernelSize, "kernelSize"],
904
- [() => t.resolutionScale, "resolution.scale"],
905
- [() => t.resolutionX, "resolution.width"],
906
- [() => t.resolutionY, "resolution.height"]
898
+ [() => e.blendFunction, "blendMode.blendFunction"],
899
+ [() => e.offset, "offset"],
900
+ [() => e.rotation, "rotation"],
901
+ [() => e.focusArea, "focusArea"],
902
+ [() => e.feather, "feather"],
903
+ [() => e.kernelSize, "kernelSize"],
904
+ [() => e.resolutionScale, "resolution.scale"],
905
+ [() => e.resolutionX, "resolution.width"],
906
+ [() => e.resolutionY, "resolution.height"]
907
907
  ],
908
908
  s,
909
- () => new xe()
909
+ () => new Me()
910
910
  ), () => {
911
911
  };
912
912
  }
913
- }), so = /* @__PURE__ */ u({
913
+ }), uo = /* @__PURE__ */ u({
914
914
  __name: "DotScreenPmndrs",
915
915
  props: {
916
916
  angle: {},
917
917
  scale: {},
918
918
  blendFunction: {}
919
919
  },
920
- setup(r, { expose: e }) {
921
- const t = r, { pass: o, effect: s } = p(() => new be(t), t);
922
- return e({ pass: o, effect: s }), m(
920
+ setup(n, { expose: t }) {
921
+ const e = n, { pass: o, effect: s } = h(() => new Te(e), e);
922
+ return t({ pass: o, effect: s }), v(
923
923
  [
924
- [() => t.blendFunction, "blendMode.blendFunction"],
925
- [() => t.angle, "angle"],
926
- [() => t.scale, "scale"]
924
+ [() => e.blendFunction, "blendMode.blendFunction"],
925
+ [() => e.angle, "angle"],
926
+ [() => e.scale, "scale"]
927
927
  ],
928
928
  s,
929
- () => new be()
929
+ () => new Te()
930
930
  ), () => {
931
931
  };
932
932
  }
933
- }), ao = /* @__PURE__ */ u({
933
+ }), co = /* @__PURE__ */ u({
934
934
  __name: "SepiaPmndrs",
935
935
  props: {
936
936
  blendFunction: {},
937
937
  intensity: {}
938
938
  },
939
- setup(r, { expose: e }) {
940
- const t = r, { pass: o, effect: s } = p(() => new Se(t), t);
941
- return e({ pass: o, effect: s }), m(
939
+ setup(n, { expose: t }) {
940
+ const e = n, { pass: o, effect: s } = h(() => new Ce(e), e);
941
+ return t({ pass: o, effect: s }), v(
942
942
  [
943
- [() => t.blendFunction, "blendMode.blendFunction"],
944
- [() => t.intensity, "intensity"]
943
+ [() => e.blendFunction, "blendMode.blendFunction"],
944
+ [() => e.intensity, "intensity"]
945
945
  ],
946
946
  s,
947
- () => new Se()
947
+ () => new Ce()
948
948
  ), () => {
949
949
  };
950
950
  }
951
951
  });
952
- class De extends q {
952
+ class Ne extends Z {
953
953
  /**
954
954
  * Creates a new LinocutEffect instance.
955
955
  *
956
956
  * @param {LinocutPmndrsProps} [options] - Configuration options for the effect.
957
957
  *
958
958
  */
959
- constructor({ blendFunction: e = Q.NORMAL, scale: t = 0.85, noiseScale: o = 0, center: s = [0.5, 0.5], rotation: a = 0 } = {}) {
960
- const i = Array.isArray(s) ? new d().fromArray(s) : s;
959
+ constructor({ blendFunction: t = _.NORMAL, scale: e = 0.85, noiseScale: o = 0, center: s = [0.5, 0.5], rotation: a = 0 } = {}) {
960
+ const r = Array.isArray(s) ? new f().fromArray(s) : s;
961
961
  super("LinocutEffect", `
962
962
  uniform float scale;
963
963
  uniform float noiseScale;
@@ -1019,45 +1019,45 @@ class De extends q {
1019
1019
  outputColor = vec4(vec3(f), 1.0);
1020
1020
  }
1021
1021
  `, {
1022
- blendFunction: e,
1022
+ blendFunction: t,
1023
1023
  uniforms: /* @__PURE__ */ new Map([
1024
- ["scale", new M(t)],
1025
- ["noiseScale", new M(o)],
1026
- ["center", new M(i)],
1027
- ["rotation", new M(a)]
1024
+ ["scale", new C(e)],
1025
+ ["noiseScale", new C(o)],
1026
+ ["center", new C(r)],
1027
+ ["rotation", new C(a)]
1028
1028
  ])
1029
1029
  });
1030
1030
  }
1031
1031
  get scale() {
1032
- var e;
1033
- return (e = this.uniforms.get("scale")) == null ? void 0 : e.value;
1032
+ var t;
1033
+ return (t = this.uniforms.get("scale")) == null ? void 0 : t.value;
1034
1034
  }
1035
- set scale(e) {
1036
- this.uniforms.get("scale").value = e;
1035
+ set scale(t) {
1036
+ this.uniforms.get("scale").value = t;
1037
1037
  }
1038
1038
  get noiseScale() {
1039
- var e;
1040
- return (e = this.uniforms.get("noiseScale")) == null ? void 0 : e.value;
1039
+ var t;
1040
+ return (t = this.uniforms.get("noiseScale")) == null ? void 0 : t.value;
1041
1041
  }
1042
- set noiseScale(e) {
1043
- this.uniforms.get("noiseScale").value = e;
1042
+ set noiseScale(t) {
1043
+ this.uniforms.get("noiseScale").value = t;
1044
1044
  }
1045
1045
  get center() {
1046
- var e;
1047
- return (e = this.uniforms.get("center")) == null ? void 0 : e.value;
1046
+ var t;
1047
+ return (t = this.uniforms.get("center")) == null ? void 0 : t.value;
1048
1048
  }
1049
- set center(e) {
1050
- this.uniforms.get("center").value = Array.isArray(e) ? new d().fromArray(e) : e;
1049
+ set center(t) {
1050
+ this.uniforms.get("center").value = Array.isArray(t) ? new f().fromArray(t) : t;
1051
1051
  }
1052
1052
  get rotation() {
1053
- var e;
1054
- return (e = this.uniforms.get("rotation")) == null ? void 0 : e.value;
1053
+ var t;
1054
+ return (t = this.uniforms.get("rotation")) == null ? void 0 : t.value;
1055
1055
  }
1056
- set rotation(e) {
1057
- this.uniforms.get("rotation").value = e;
1056
+ set rotation(t) {
1057
+ this.uniforms.get("rotation").value = t;
1058
1058
  }
1059
1059
  }
1060
- const ro = /* @__PURE__ */ u({
1060
+ const fo = /* @__PURE__ */ u({
1061
1061
  __name: "LinocutPmndrs",
1062
1062
  props: {
1063
1063
  blendFunction: {},
@@ -1066,44 +1066,44 @@ const ro = /* @__PURE__ */ u({
1066
1066
  center: {},
1067
1067
  rotation: {}
1068
1068
  },
1069
- setup(r, { expose: e }) {
1070
- const t = r, { pass: o, effect: s } = p(
1071
- () => new De({
1072
- ...t,
1073
- center: t.center instanceof d ? [t.center.x, t.center.y] : t.center
1069
+ setup(n, { expose: t }) {
1070
+ const e = n, { pass: o, effect: s } = h(
1071
+ () => new Ne({
1072
+ ...e,
1073
+ center: e.center instanceof f ? [e.center.x, e.center.y] : e.center
1074
1074
  }),
1075
- t
1075
+ e
1076
1076
  );
1077
- return e({ pass: o, effect: s }), m(
1077
+ return t({ pass: o, effect: s }), v(
1078
1078
  [
1079
- [() => t.blendFunction, "blendMode.blendFunction"],
1080
- [() => t.scale, "scale"],
1081
- [() => t.noiseScale, "noiseScale"],
1082
- [() => t.center, "center"],
1083
- [() => t.rotation, "rotation"]
1079
+ [() => e.blendFunction, "blendMode.blendFunction"],
1080
+ [() => e.scale, "scale"],
1081
+ [() => e.noiseScale, "noiseScale"],
1082
+ [() => e.center, "center"],
1083
+ [() => e.rotation, "rotation"]
1084
1084
  ],
1085
1085
  s,
1086
- () => new De()
1086
+ () => new Ne()
1087
1087
  ), () => {
1088
1088
  };
1089
1089
  }
1090
- }), io = /* @__PURE__ */ u({
1090
+ }), ho = /* @__PURE__ */ u({
1091
1091
  __name: "DepthPickingPassPmndrs",
1092
1092
  props: {
1093
1093
  depthPacking: {},
1094
1094
  mode: {}
1095
1095
  },
1096
- setup(r, { expose: e }) {
1097
- const t = r, o = te(se), s = new Ke(t), a = x(() => {
1098
- o != null && o.value && (oe(() => a()), o.value.addPass(s));
1096
+ setup(n, { expose: t }) {
1097
+ const e = n, o = J($), s = new et(e), a = w(() => {
1098
+ o != null && o.value && (ce(() => a()), o.value.addPass(s));
1099
1099
  });
1100
- return U(() => {
1101
- var i;
1102
- !(o != null && o.value) || !s || ((i = o == null ? void 0 : o.value) == null || i.removePass(s), s.dispose());
1103
- }), e({ pass: s }), () => {
1100
+ return W(() => {
1101
+ var r;
1102
+ !(o != null && o.value) || !s || ((r = o == null ? void 0 : o.value) == null || r.removePass(s), s.dispose());
1103
+ }), t({ pass: s }), () => {
1104
1104
  };
1105
1105
  }
1106
- }), no = /* @__PURE__ */ u({
1106
+ }), po = /* @__PURE__ */ u({
1107
1107
  __name: "GodRaysPmndrs",
1108
1108
  props: {
1109
1109
  blendFunction: {},
@@ -1121,51 +1121,51 @@ const ro = /* @__PURE__ */ u({
1121
1121
  samples: {},
1122
1122
  clampMax: {}
1123
1123
  },
1124
- setup(r, { expose: e }) {
1125
- const t = r, { camera: o } = y(), s = L(
1126
- () => t.lightSource ?? new ze(
1127
- new Je(1e-5),
1128
- new We({ visible: !1 })
1124
+ setup(n, { expose: t }) {
1125
+ const e = n, { camera: o } = y(), s = O(
1126
+ () => e.lightSource ?? new je(
1127
+ new ot(1e-5),
1128
+ new Ve({ visible: !1 })
1129
1129
  )
1130
- ), { pass: a, effect: i } = p(
1131
- () => new _(o.value, s.value, t),
1132
- t
1130
+ ), { pass: a, effect: r } = h(
1131
+ () => new se(o.value, s.value, e),
1132
+ e
1133
1133
  );
1134
- return e({ pass: a, effect: i }), m(
1134
+ return t({ pass: a, effect: r }), v(
1135
1135
  [
1136
- [() => t.blendFunction, "blendMode.blendFunction"],
1137
- [() => t.density, "godRaysMaterial.density"],
1138
- [() => t.decay, "godRaysMaterial.decay"],
1139
- [() => t.weight, "godRaysMaterial.weight"],
1140
- [() => t.exposure, "godRaysMaterial.exposure"],
1141
- [() => t.samples, "godRaysMaterial.samples"],
1142
- [() => t.clampMax, "godRaysMaterial.maxIntensity"],
1143
- [() => t.resolutionScale, "resolution.scale"],
1144
- [() => t.resolutionX, "resolution.width"],
1145
- [() => t.resolutionY, "resolution.height"],
1146
- [() => t.kernelSize, "blurPass.kernelSize"],
1147
- [() => t.blur, "blurPass.enabled"]
1136
+ [() => e.blendFunction, "blendMode.blendFunction"],
1137
+ [() => e.density, "godRaysMaterial.density"],
1138
+ [() => e.decay, "godRaysMaterial.decay"],
1139
+ [() => e.weight, "godRaysMaterial.weight"],
1140
+ [() => e.exposure, "godRaysMaterial.exposure"],
1141
+ [() => e.samples, "godRaysMaterial.samples"],
1142
+ [() => e.clampMax, "godRaysMaterial.maxIntensity"],
1143
+ [() => e.resolutionScale, "resolution.scale"],
1144
+ [() => e.resolutionX, "resolution.width"],
1145
+ [() => e.resolutionY, "resolution.height"],
1146
+ [() => e.kernelSize, "blurPass.kernelSize"],
1147
+ [() => e.blur, "blurPass.enabled"]
1148
1148
  ],
1149
- i,
1150
- () => new _()
1151
- ), S(
1152
- [() => t.lightSource, i],
1149
+ r,
1150
+ () => new se()
1151
+ ), g(
1152
+ [() => e.lightSource, r],
1153
1153
  () => {
1154
- i.value && (i.value.lightSource = ie(s.value));
1154
+ r.value && (r.value.lightSource = fe(s.value));
1155
1155
  },
1156
1156
  { immediate: !0 }
1157
- ), S(
1158
- [() => t.opacity],
1157
+ ), g(
1158
+ [() => e.opacity],
1159
1159
  () => {
1160
- var n, l;
1161
- if (t.opacity !== void 0)
1162
- (n = i.value) == null || n.blendMode.setOpacity(t.opacity);
1160
+ var i, l;
1161
+ if (e.opacity !== void 0)
1162
+ (i = r.value) == null || i.blendMode.setOpacity(e.opacity);
1163
1163
  else {
1164
- const f = new _(
1164
+ const d = new se(
1165
1165
  o.value,
1166
- ie(s.value)
1166
+ fe(s.value)
1167
1167
  );
1168
- (l = i.value) == null || l.blendMode.setOpacity(f.blendMode.getOpacity()), f.dispose();
1168
+ (l = r.value) == null || l.blendMode.setOpacity(d.blendMode.getOpacity()), d.dispose();
1169
1169
  }
1170
1170
  },
1171
1171
  {
@@ -1174,69 +1174,69 @@ const ro = /* @__PURE__ */ u({
1174
1174
  ), () => {
1175
1175
  };
1176
1176
  }
1177
- }), lo = /* @__PURE__ */ u({
1177
+ }), mo = /* @__PURE__ */ u({
1178
1178
  __name: "ColorDepthPmndrs",
1179
1179
  props: {
1180
1180
  blendFunction: {},
1181
1181
  bits: {},
1182
1182
  opacity: {}
1183
1183
  },
1184
- setup(r, { expose: e }) {
1185
- const t = r, { pass: o, effect: s } = p(() => new I(t), t);
1186
- return e({ pass: o, effect: s }), H(
1187
- () => t.blendFunction,
1184
+ setup(n, { expose: t }) {
1185
+ const e = n, { pass: o, effect: s } = h(() => new V(e), e);
1186
+ return t({ pass: o, effect: s }), X(
1187
+ () => e.blendFunction,
1188
1188
  s,
1189
1189
  "blendMode.blendFunction",
1190
- () => new I()
1191
- ), S(
1192
- [s, () => t.bits],
1190
+ () => new V()
1191
+ ), g(
1192
+ [s, () => e.bits],
1193
1193
  () => {
1194
- var a, i;
1194
+ var a, r;
1195
1195
  if (s.value)
1196
- if (t.bits !== void 0)
1197
- (a = s.value) == null || a.setBitDepth(t.bits);
1196
+ if (e.bits !== void 0)
1197
+ (a = s.value) == null || a.setBitDepth(e.bits);
1198
1198
  else {
1199
- const n = new I();
1200
- (i = s.value) == null || i.setBitDepth(n.getBitDepth()), n.dispose();
1199
+ const i = new V();
1200
+ (r = s.value) == null || r.setBitDepth(i.getBitDepth()), i.dispose();
1201
1201
  }
1202
1202
  }
1203
- ), S(
1204
- [s, () => t.opacity],
1203
+ ), g(
1204
+ [s, () => e.opacity],
1205
1205
  () => {
1206
- var a, i;
1206
+ var a, r;
1207
1207
  if (s.value)
1208
- if (t.opacity !== void 0)
1209
- (a = s.value) == null || a.blendMode.setOpacity(t.opacity);
1208
+ if (e.opacity !== void 0)
1209
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
1210
1210
  else {
1211
- const n = new I();
1212
- (i = s.value) == null || i.blendMode.setOpacity(n.blendMode.getOpacity()), n.dispose();
1211
+ const i = new V();
1212
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
1213
1213
  }
1214
1214
  }
1215
1215
  ), () => {
1216
1216
  };
1217
1217
  }
1218
- }), uo = /* @__PURE__ */ u({
1218
+ }), vo = /* @__PURE__ */ u({
1219
1219
  __name: "GridPmndrs",
1220
1220
  props: {
1221
1221
  blendFunction: {},
1222
1222
  scale: {},
1223
1223
  lineWidth: {}
1224
1224
  },
1225
- setup(r, { expose: e }) {
1226
- const t = r, { pass: o, effect: s } = p(() => new we(t), t);
1227
- return e({ pass: o, effect: s }), m(
1225
+ setup(n, { expose: t }) {
1226
+ const e = n, { pass: o, effect: s } = h(() => new Ee(e), e);
1227
+ return t({ pass: o, effect: s }), v(
1228
1228
  [
1229
- [() => t.blendFunction, "blendMode.blendFunction"],
1230
- [() => t.scale, "scale"],
1231
- [() => t.lineWidth, "lineWidth"]
1229
+ [() => e.blendFunction, "blendMode.blendFunction"],
1230
+ [() => e.scale, "scale"],
1231
+ [() => e.lineWidth, "lineWidth"]
1232
1232
  ],
1233
1233
  s,
1234
- () => new we()
1234
+ () => new Ee()
1235
1235
  ), () => {
1236
1236
  };
1237
1237
  }
1238
1238
  });
1239
- class Le extends q {
1239
+ class ze extends Z {
1240
1240
  /**
1241
1241
  * Creates a new FishEyeEffect instance.
1242
1242
  *
@@ -1247,7 +1247,7 @@ class Le extends q {
1247
1247
  * @param {number} [options.scale] - Scale.
1248
1248
  *
1249
1249
  */
1250
- constructor({ blendFunction: e = Q.NORMAL, lensS: t = new d(1, 1), lensF: o = new d(0, 1), scale: s = 1 } = {}) {
1250
+ constructor({ blendFunction: t = _.NORMAL, lensS: e = new f(1, 1), lensF: o = new f(0, 1), scale: s = 1 } = {}) {
1251
1251
  super("FishEyeEffect", `
1252
1252
  uniform vec2 lensS;
1253
1253
  uniform vec2 lensF;
@@ -1267,11 +1267,11 @@ class Le extends q {
1267
1267
  outputColor = vec4(inputColor.rgb, inputColor.a); // Preserves original alpha
1268
1268
  }
1269
1269
  `, {
1270
- blendFunction: e,
1270
+ blendFunction: t,
1271
1271
  uniforms: /* @__PURE__ */ new Map([
1272
- ["lensS", new M(t)],
1273
- ["lensF", new M(o)],
1274
- ["scale", new M(s)]
1272
+ ["lensS", new C(e)],
1273
+ ["lensF", new C(o)],
1274
+ ["scale", new C(s)]
1275
1275
  ])
1276
1276
  });
1277
1277
  }
@@ -1281,11 +1281,11 @@ class Le extends q {
1281
1281
  * @type {Vector2}
1282
1282
  */
1283
1283
  get lensS() {
1284
- var e;
1285
- return (e = this.uniforms.get("lensS")) == null ? void 0 : e.value;
1284
+ var t;
1285
+ return (t = this.uniforms.get("lensS")) == null ? void 0 : t.value;
1286
1286
  }
1287
- set lensS(e) {
1288
- this.uniforms.get("lensS").value = e;
1287
+ set lensS(t) {
1288
+ this.uniforms.get("lensS").value = t;
1289
1289
  }
1290
1290
  /**
1291
1291
  * The lensF.
@@ -1293,11 +1293,11 @@ class Le extends q {
1293
1293
  * @type {Vector2}
1294
1294
  */
1295
1295
  get lensF() {
1296
- var e;
1297
- return (e = this.uniforms.get("lensF")) == null ? void 0 : e.value;
1296
+ var t;
1297
+ return (t = this.uniforms.get("lensF")) == null ? void 0 : t.value;
1298
1298
  }
1299
- set lensF(e) {
1300
- this.uniforms.get("lensF").value = e;
1299
+ set lensF(t) {
1300
+ this.uniforms.get("lensF").value = t;
1301
1301
  }
1302
1302
  /**
1303
1303
  * The scale.
@@ -1305,14 +1305,14 @@ class Le extends q {
1305
1305
  * @type {number}
1306
1306
  */
1307
1307
  get scale() {
1308
- var e;
1309
- return (e = this.uniforms.get("scale")) == null ? void 0 : e.value;
1308
+ var t;
1309
+ return (t = this.uniforms.get("scale")) == null ? void 0 : t.value;
1310
1310
  }
1311
- set scale(e) {
1312
- this.uniforms.get("scale").value = e;
1311
+ set scale(t) {
1312
+ this.uniforms.get("scale").value = t;
1313
1313
  }
1314
1314
  }
1315
- const co = /* @__PURE__ */ u({
1315
+ const go = /* @__PURE__ */ u({
1316
1316
  __name: "FishEyePmndrs",
1317
1317
  props: {
1318
1318
  blendFunction: {},
@@ -1320,52 +1320,247 @@ const co = /* @__PURE__ */ u({
1320
1320
  lensF: {},
1321
1321
  scale: {}
1322
1322
  },
1323
- setup(r, { expose: e }) {
1324
- const t = r, o = L(
1325
- () => Array.isArray(t.lensS) ? new d(...t.lensS) : t.lensS
1326
- ), s = L(
1327
- () => Array.isArray(t.lensF) ? new d(...t.lensF) : t.lensF
1328
- ), { pass: a, effect: i } = p(
1329
- () => new Le({
1330
- ...t,
1323
+ setup(n, { expose: t }) {
1324
+ const e = n, o = O(
1325
+ () => Array.isArray(e.lensS) ? new f(...e.lensS) : e.lensS
1326
+ ), s = O(
1327
+ () => Array.isArray(e.lensF) ? new f(...e.lensF) : e.lensF
1328
+ ), { pass: a, effect: r } = h(
1329
+ () => new ze({
1330
+ ...e,
1331
1331
  lensS: o.value,
1332
1332
  lensF: s.value
1333
1333
  }),
1334
- t
1334
+ e
1335
1335
  );
1336
- return e({ pass: a, effect: i }), m(
1336
+ return t({ pass: a, effect: r }), v(
1337
1337
  [
1338
- [() => t.blendFunction, "blendMode.blendFunction"],
1338
+ [() => e.blendFunction, "blendMode.blendFunction"],
1339
1339
  [() => o.value, "lensS"],
1340
1340
  [() => s.value, "lensF"],
1341
- [() => t.scale, "scale"]
1341
+ [() => e.scale, "scale"]
1342
1342
  ],
1343
- i,
1344
- () => new Le()
1343
+ r,
1344
+ () => new ze()
1345
1345
  ), () => {
1346
1346
  };
1347
1347
  }
1348
- }), fo = /* @__PURE__ */ u({
1348
+ }), xo = /* @__PURE__ */ u({
1349
1349
  __name: "BrightnessContrastPmndrs",
1350
1350
  props: {
1351
1351
  blendFunction: {},
1352
1352
  brightness: {},
1353
1353
  contrast: {}
1354
1354
  },
1355
- setup(r, { expose: e }) {
1356
- const t = r, { pass: o, effect: s } = p(() => new Ae(t), t);
1357
- return e({ pass: o, effect: s }), m(
1355
+ setup(n, { expose: t }) {
1356
+ const e = n, { pass: o, effect: s } = h(() => new Pe(e), e);
1357
+ return t({ pass: o, effect: s }), v(
1358
1358
  [
1359
- [() => t.blendFunction, "blendMode.blendFunction"],
1360
- [() => t.brightness, "brightness"],
1361
- [() => t.contrast, "contrast"]
1359
+ [() => e.blendFunction, "blendMode.blendFunction"],
1360
+ [() => e.brightness, "brightness"],
1361
+ [() => e.contrast, "contrast"]
1362
1362
  ],
1363
1363
  s,
1364
- () => new Ae()
1364
+ () => new Pe()
1365
1365
  ), () => {
1366
1366
  };
1367
1367
  }
1368
- }), He = {
1368
+ }), le = {
1369
+ OFF: 0,
1370
+ EDGES: 1,
1371
+ WEIGHTS: 2
1372
+ }, bo = /* @__PURE__ */ u({
1373
+ __name: "SMAAPmndrs",
1374
+ props: {
1375
+ blendFunction: {},
1376
+ opacity: {},
1377
+ preset: {},
1378
+ edgeDetectionMode: {},
1379
+ predicationMode: {},
1380
+ debug: {}
1381
+ },
1382
+ setup(n, { expose: t }) {
1383
+ const e = n, { pass: o, effect: s } = h(() => new ae(e), e), { camera: a } = y(), r = J($);
1384
+ t({ pass: o, effect: s });
1385
+ const i = new ae();
1386
+ v(
1387
+ [
1388
+ [() => Number(e.blendFunction), "blendMode.blendFunction"],
1389
+ [() => Number(e.predicationMode), "edgeDetectionMaterial.predicationMode"],
1390
+ [() => Number(e.edgeDetectionMode), "edgeDetectionMaterial.edgeDetectionMode"]
1391
+ ],
1392
+ s,
1393
+ () => new ae()
1394
+ ), g(
1395
+ [s, () => e.opacity],
1396
+ () => {
1397
+ s.value && (e.opacity !== void 0 ? s.value.blendMode.setOpacity(e.opacity) : s.value.blendMode.setOpacity(i.blendMode.getOpacity()));
1398
+ },
1399
+ { immediate: !0 }
1400
+ ), g(
1401
+ [s, () => e.preset],
1402
+ () => {
1403
+ s.value && s.value.applyPreset(Number(e.preset));
1404
+ }
1405
+ );
1406
+ let l = null, d = null;
1407
+ const p = (m) => {
1408
+ if (!s.value)
1409
+ return null;
1410
+ const A = m === "edges" ? s.value.edgesTexture : s.value.weightsTexture, E = new Xe(a.value, s.value, new q({ texture: A }));
1411
+ return E.renderToScreen = !1, E.enabled = !1, E.fullscreenMaterial.encodeOutput = !1, E;
1412
+ }, b = (m) => {
1413
+ m === "edges" && !l ? l = p("edges") : m === "weights" && !d && (d = p("weights"));
1414
+ }, c = (m, A) => {
1415
+ !m || !(r != null && r.value) || m.enabled !== A && (m.enabled = A, m.renderToScreen = A, A && !(r != null && r.value.passes.includes(m)) ? r == null || r.value.addPass(m) : !A && (r != null && r.value.passes.includes(m)) && (r == null || r.value.removePass(m), m.dispose()));
1416
+ }, S = (m) => {
1417
+ if (!o.value)
1418
+ return;
1419
+ const A = m === le.OFF, E = m === le.EDGES, x = m === le.WEIGHTS;
1420
+ o.value.enabled = A, o.value.renderToScreen = A, E && b("edges"), x && b("weights"), c(l, E), c(d, x), E || (l = null), x || (d = null);
1421
+ };
1422
+ return g(
1423
+ () => e.debug,
1424
+ () => {
1425
+ !o.value || e.debug === void 0 || S(e.debug);
1426
+ },
1427
+ { immediate: !0 }
1428
+ ), () => {
1429
+ };
1430
+ }
1431
+ }), So = /* @__PURE__ */ u({
1432
+ __name: "FXAAPmndrs",
1433
+ props: {
1434
+ blendFunction: {},
1435
+ opacity: {},
1436
+ samples: {},
1437
+ minEdgeThreshold: {},
1438
+ maxEdgeThreshold: {},
1439
+ subpixelQuality: {}
1440
+ },
1441
+ setup(n, { expose: t }) {
1442
+ const e = n, { pass: o, effect: s } = h(() => new re(e), e);
1443
+ return t({ pass: o, effect: s }), v(
1444
+ [
1445
+ [() => e.blendFunction, "blendMode.blendFunction"],
1446
+ [() => e.samples, "samples"],
1447
+ [() => e.minEdgeThreshold, "minEdgeThreshold"],
1448
+ [() => e.maxEdgeThreshold, "maxEdgeThreshold"],
1449
+ [() => e.subpixelQuality, "subpixelQuality"]
1450
+ ],
1451
+ s,
1452
+ () => new re()
1453
+ ), g(
1454
+ [s, () => e.opacity],
1455
+ () => {
1456
+ var a, r;
1457
+ if (s.value)
1458
+ if (e.opacity !== void 0)
1459
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
1460
+ else {
1461
+ const i = new re();
1462
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
1463
+ }
1464
+ },
1465
+ { immediate: !0 }
1466
+ ), () => {
1467
+ };
1468
+ }
1469
+ }), wo = /* @__PURE__ */ u({
1470
+ __name: "TexturePmndrs",
1471
+ props: {
1472
+ blendFunction: {},
1473
+ texture: {},
1474
+ opacity: {}
1475
+ },
1476
+ setup(n, { expose: t }) {
1477
+ const e = n, { pass: o, effect: s } = h(() => new q(e), e);
1478
+ return t({
1479
+ pass: o,
1480
+ effect: s
1481
+ }), v(
1482
+ [
1483
+ [() => e.blendFunction, "blendMode.blendFunction"]
1484
+ ],
1485
+ s,
1486
+ () => new q()
1487
+ ), g(
1488
+ [() => e.opacity],
1489
+ () => {
1490
+ var a, r;
1491
+ if (e.opacity !== void 0)
1492
+ (a = s.value) == null || a.blendMode.setOpacity(e.opacity);
1493
+ else {
1494
+ const i = new q();
1495
+ (r = s.value) == null || r.blendMode.setOpacity(i.blendMode.getOpacity()), i.dispose();
1496
+ }
1497
+ },
1498
+ {
1499
+ immediate: !0
1500
+ }
1501
+ ), () => {
1502
+ };
1503
+ }
1504
+ }), Ao = /* @__PURE__ */ u({
1505
+ __name: "ASCIIPmndrs",
1506
+ props: {
1507
+ blendFunction: {},
1508
+ opacity: {},
1509
+ cellSize: {},
1510
+ inverted: { type: Boolean },
1511
+ color: {},
1512
+ useSceneColor: { type: Boolean },
1513
+ asciiTexture: {}
1514
+ },
1515
+ setup(n, { expose: t }) {
1516
+ const e = n, o = new ne(), { asciiTexture: s, ...a } = e, { pass: r, effect: i } = h(() => new ne(a), e);
1517
+ return t({ pass: r, effect: i }), W(() => {
1518
+ o.dispose();
1519
+ }), v(
1520
+ [
1521
+ [() => e.blendFunction, "blendMode.blendFunction"],
1522
+ [() => e.cellSize, "cellSize"],
1523
+ [() => e.inverted, "inverted"]
1524
+ ],
1525
+ i,
1526
+ () => new ne()
1527
+ ), g(
1528
+ [i, () => e.useSceneColor],
1529
+ () => {
1530
+ i.value && (e.useSceneColor ? i.value.color = null : i.value.color = e.color ?? o.color);
1531
+ },
1532
+ { immediate: !0 }
1533
+ ), g(
1534
+ [i, () => e.opacity],
1535
+ () => {
1536
+ i.value && i.value.blendMode.setOpacity(e.opacity ?? o.blendMode.getOpacity());
1537
+ },
1538
+ { immediate: !0 }
1539
+ ), g(
1540
+ [i, () => e.color],
1541
+ () => {
1542
+ i.value && (e.useSceneColor || (i.value.color = e.color ?? null));
1543
+ },
1544
+ { immediate: !0 }
1545
+ ), g(
1546
+ [i, () => e.asciiTexture],
1547
+ () => {
1548
+ if (!i.value)
1549
+ return;
1550
+ const l = e.asciiTexture ? new tt(e.asciiTexture) : o.asciiTexture;
1551
+ i.value.asciiTexture = l;
1552
+ },
1553
+ { immediate: !0 }
1554
+ ), g(
1555
+ [i, () => e.blendFunction],
1556
+ () => {
1557
+ i.value && (i.value.blendMode.blendFunction = e.blendFunction ? Number(e.blendFunction) : Number(o.blendMode.blendFunction));
1558
+ },
1559
+ { immediate: !0 }
1560
+ ), () => {
1561
+ };
1562
+ }
1563
+ }), qe = {
1369
1564
  name: "CopyShader",
1370
1565
  uniforms: {
1371
1566
  tDiffuse: { value: null },
@@ -1403,7 +1598,7 @@ const co = /* @__PURE__ */ u({
1403
1598
  }`
1404
1599
  )
1405
1600
  };
1406
- class C {
1601
+ class D {
1407
1602
  constructor() {
1408
1603
  this.isPass = !0, this.enabled = !0, this.needsSwap = !0, this.clear = !1, this.renderToScreen = !1;
1409
1604
  }
@@ -1415,202 +1610,202 @@ class C {
1415
1610
  dispose() {
1416
1611
  }
1417
1612
  }
1418
- const At = new Ze(-1, 1, 1, -1, 0, 1);
1419
- class yt extends _e {
1613
+ const Pt = new st(-1, 1, 1, -1, 0, 1);
1614
+ class Dt extends at {
1420
1615
  constructor() {
1421
- super(), this.setAttribute("position", new ye([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new ye([0, 2, 0, 0, 2, 0], 2));
1616
+ super(), this.setAttribute("position", new De([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)), this.setAttribute("uv", new De([0, 2, 0, 0, 2, 0], 2));
1422
1617
  }
1423
1618
  }
1424
- const Mt = new yt();
1619
+ const Lt = new Dt();
1425
1620
  class R {
1426
- constructor(e) {
1427
- this._mesh = new ze(Mt, e);
1621
+ constructor(t) {
1622
+ this._mesh = new je(Lt, t);
1428
1623
  }
1429
1624
  dispose() {
1430
1625
  this._mesh.geometry.dispose();
1431
1626
  }
1432
- render(e) {
1433
- e.render(this._mesh, At);
1627
+ render(t) {
1628
+ t.render(this._mesh, Pt);
1434
1629
  }
1435
1630
  get material() {
1436
1631
  return this._mesh.material;
1437
1632
  }
1438
- set material(e) {
1439
- this._mesh.material = e;
1633
+ set material(t) {
1634
+ this._mesh.material = t;
1440
1635
  }
1441
1636
  }
1442
- class Tt extends C {
1443
- constructor(e, t) {
1444
- super(), this.textureID = t !== void 0 ? t : "tDiffuse", e instanceof A ? (this.uniforms = e.uniforms, this.material = e) : e && (this.uniforms = P.clone(e.uniforms), this.material = new A({
1445
- name: e.name !== void 0 ? e.name : "unspecified",
1446
- defines: Object.assign({}, e.defines),
1637
+ class Ft extends D {
1638
+ constructor(t, e) {
1639
+ super(), this.textureID = e !== void 0 ? e : "tDiffuse", t instanceof T ? (this.uniforms = t.uniforms, this.material = t) : t && (this.uniforms = L.clone(t.uniforms), this.material = new T({
1640
+ name: t.name !== void 0 ? t.name : "unspecified",
1641
+ defines: Object.assign({}, t.defines),
1447
1642
  uniforms: this.uniforms,
1448
- vertexShader: e.vertexShader,
1449
- fragmentShader: e.fragmentShader
1643
+ vertexShader: t.vertexShader,
1644
+ fragmentShader: t.fragmentShader
1450
1645
  })), this.fsQuad = new R(this.material);
1451
1646
  }
1452
- render(e, t, o) {
1453
- this.uniforms[this.textureID] && (this.uniforms[this.textureID].value = o.texture), this.fsQuad.material = this.material, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(e.autoClearColor, e.autoClearDepth, e.autoClearStencil), this.fsQuad.render(e));
1647
+ render(t, e, o) {
1648
+ this.uniforms[this.textureID] && (this.uniforms[this.textureID].value = o.texture), this.fsQuad.material = this.material, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), this.fsQuad.render(t));
1454
1649
  }
1455
1650
  dispose() {
1456
1651
  this.material.dispose(), this.fsQuad.dispose();
1457
1652
  }
1458
1653
  }
1459
- class Oe extends C {
1460
- constructor(e, t) {
1461
- super(), this.scene = e, this.camera = t, this.clear = !0, this.needsSwap = !1, this.inverse = !1;
1654
+ class We extends D {
1655
+ constructor(t, e) {
1656
+ super(), this.scene = t, this.camera = e, this.clear = !0, this.needsSwap = !1, this.inverse = !1;
1462
1657
  }
1463
- render(e, t, o) {
1464
- const s = e.getContext(), a = e.state;
1658
+ render(t, e, o) {
1659
+ const s = t.getContext(), a = t.state;
1465
1660
  a.buffers.color.setMask(!1), a.buffers.depth.setMask(!1), a.buffers.color.setLocked(!0), a.buffers.depth.setLocked(!0);
1466
- let i, n;
1467
- this.inverse ? (i = 0, n = 1) : (i = 1, n = 0), a.buffers.stencil.setTest(!0), a.buffers.stencil.setOp(s.REPLACE, s.REPLACE, s.REPLACE), a.buffers.stencil.setFunc(s.ALWAYS, i, 4294967295), a.buffers.stencil.setClear(n), a.buffers.stencil.setLocked(!0), e.setRenderTarget(o), this.clear && e.clear(), e.render(this.scene, this.camera), e.setRenderTarget(t), this.clear && e.clear(), e.render(this.scene, this.camera), a.buffers.color.setLocked(!1), a.buffers.depth.setLocked(!1), a.buffers.color.setMask(!0), a.buffers.depth.setMask(!0), a.buffers.stencil.setLocked(!1), a.buffers.stencil.setFunc(s.EQUAL, 1, 4294967295), a.buffers.stencil.setOp(s.KEEP, s.KEEP, s.KEEP), a.buffers.stencil.setLocked(!0);
1661
+ let r, i;
1662
+ this.inverse ? (r = 0, i = 1) : (r = 1, i = 0), a.buffers.stencil.setTest(!0), a.buffers.stencil.setOp(s.REPLACE, s.REPLACE, s.REPLACE), a.buffers.stencil.setFunc(s.ALWAYS, r, 4294967295), a.buffers.stencil.setClear(i), a.buffers.stencil.setLocked(!0), t.setRenderTarget(o), this.clear && t.clear(), t.render(this.scene, this.camera), t.setRenderTarget(e), this.clear && t.clear(), t.render(this.scene, this.camera), a.buffers.color.setLocked(!1), a.buffers.depth.setLocked(!1), a.buffers.color.setMask(!0), a.buffers.depth.setMask(!0), a.buffers.stencil.setLocked(!1), a.buffers.stencil.setFunc(s.EQUAL, 1, 4294967295), a.buffers.stencil.setOp(s.KEEP, s.KEEP, s.KEEP), a.buffers.stencil.setLocked(!0);
1468
1663
  }
1469
1664
  }
1470
- class Ct extends C {
1665
+ class Ot extends D {
1471
1666
  constructor() {
1472
1667
  super(), this.needsSwap = !1;
1473
1668
  }
1474
- render(e) {
1475
- e.state.buffers.stencil.setLocked(!1), e.state.buffers.stencil.setTest(!1);
1669
+ render(t) {
1670
+ t.state.buffers.stencil.setLocked(!1), t.state.buffers.stencil.setTest(!1);
1476
1671
  }
1477
1672
  }
1478
- class Et {
1479
- constructor(e, t) {
1480
- if (this.renderer = e, this._pixelRatio = e.getPixelRatio(), t === void 0) {
1481
- const o = e.getSize(new d());
1482
- this._width = o.width, this._height = o.height, t = new D(this._width * this._pixelRatio, this._height * this._pixelRatio, { type: T }), t.texture.name = "EffectComposer.rt1";
1673
+ class Bt {
1674
+ constructor(t, e) {
1675
+ if (this.renderer = t, this._pixelRatio = t.getPixelRatio(), e === void 0) {
1676
+ const o = t.getSize(new f());
1677
+ this._width = o.width, this._height = o.height, e = new F(this._width * this._pixelRatio, this._height * this._pixelRatio, { type: P }), e.texture.name = "EffectComposer.rt1";
1483
1678
  } else
1484
- this._width = t.width, this._height = t.height;
1485
- this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new Tt(He), this.copyPass.material.blending = $e, this.clock = new et();
1679
+ this._width = e.width, this._height = e.height;
1680
+ this.renderTarget1 = e, this.renderTarget2 = e.clone(), this.renderTarget2.texture.name = "EffectComposer.rt2", this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2, this.renderToScreen = !0, this.passes = [], this.copyPass = new Ft(qe), this.copyPass.material.blending = rt, this.clock = new nt();
1486
1681
  }
1487
1682
  swapBuffers() {
1488
- const e = this.readBuffer;
1489
- this.readBuffer = this.writeBuffer, this.writeBuffer = e;
1683
+ const t = this.readBuffer;
1684
+ this.readBuffer = this.writeBuffer, this.writeBuffer = t;
1490
1685
  }
1491
- addPass(e) {
1492
- this.passes.push(e), e.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1686
+ addPass(t) {
1687
+ this.passes.push(t), t.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1493
1688
  }
1494
- insertPass(e, t) {
1495
- this.passes.splice(t, 0, e), e.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1689
+ insertPass(t, e) {
1690
+ this.passes.splice(e, 0, t), t.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1496
1691
  }
1497
- removePass(e) {
1498
- const t = this.passes.indexOf(e);
1499
- t !== -1 && this.passes.splice(t, 1);
1692
+ removePass(t) {
1693
+ const e = this.passes.indexOf(t);
1694
+ e !== -1 && this.passes.splice(e, 1);
1500
1695
  }
1501
- isLastEnabledPass(e) {
1502
- for (let t = e + 1; t < this.passes.length; t++)
1503
- if (this.passes[t].enabled)
1696
+ isLastEnabledPass(t) {
1697
+ for (let e = t + 1; e < this.passes.length; e++)
1698
+ if (this.passes[e].enabled)
1504
1699
  return !1;
1505
1700
  return !0;
1506
1701
  }
1507
- render(e) {
1508
- e === void 0 && (e = this.clock.getDelta());
1509
- const t = this.renderer.getRenderTarget();
1702
+ render(t) {
1703
+ t === void 0 && (t = this.clock.getDelta());
1704
+ const e = this.renderer.getRenderTarget();
1510
1705
  let o = !1;
1511
1706
  for (let s = 0, a = this.passes.length; s < a; s++) {
1512
- const i = this.passes[s];
1513
- if (i.enabled !== !1) {
1514
- if (i.renderToScreen = this.renderToScreen && this.isLastEnabledPass(s), i.render(this.renderer, this.writeBuffer, this.readBuffer, e, o), i.needsSwap) {
1707
+ const r = this.passes[s];
1708
+ if (r.enabled !== !1) {
1709
+ if (r.renderToScreen = this.renderToScreen && this.isLastEnabledPass(s), r.render(this.renderer, this.writeBuffer, this.readBuffer, t, o), r.needsSwap) {
1515
1710
  if (o) {
1516
- const n = this.renderer.getContext(), l = this.renderer.state.buffers.stencil;
1517
- l.setFunc(n.NOTEQUAL, 1, 4294967295), this.copyPass.render(this.renderer, this.writeBuffer, this.readBuffer, e), l.setFunc(n.EQUAL, 1, 4294967295);
1711
+ const i = this.renderer.getContext(), l = this.renderer.state.buffers.stencil;
1712
+ l.setFunc(i.NOTEQUAL, 1, 4294967295), this.copyPass.render(this.renderer, this.writeBuffer, this.readBuffer, t), l.setFunc(i.EQUAL, 1, 4294967295);
1518
1713
  }
1519
1714
  this.swapBuffers();
1520
1715
  }
1521
- Oe !== void 0 && (i instanceof Oe ? o = !0 : i instanceof Ct && (o = !1));
1716
+ We !== void 0 && (r instanceof We ? o = !0 : r instanceof Ot && (o = !1));
1522
1717
  }
1523
1718
  }
1524
- this.renderer.setRenderTarget(t);
1719
+ this.renderer.setRenderTarget(e);
1525
1720
  }
1526
- reset(e) {
1527
- if (e === void 0) {
1528
- const t = this.renderer.getSize(new d());
1529
- this._pixelRatio = this.renderer.getPixelRatio(), this._width = t.width, this._height = t.height, e = this.renderTarget1.clone(), e.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1721
+ reset(t) {
1722
+ if (t === void 0) {
1723
+ const e = this.renderer.getSize(new f());
1724
+ this._pixelRatio = this.renderer.getPixelRatio(), this._width = e.width, this._height = e.height, t = this.renderTarget1.clone(), t.setSize(this._width * this._pixelRatio, this._height * this._pixelRatio);
1530
1725
  }
1531
- this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.renderTarget1 = e, this.renderTarget2 = e.clone(), this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2;
1726
+ this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.renderTarget1 = t, this.renderTarget2 = t.clone(), this.writeBuffer = this.renderTarget1, this.readBuffer = this.renderTarget2;
1532
1727
  }
1533
- setSize(e, t) {
1534
- this._width = e, this._height = t;
1728
+ setSize(t, e) {
1729
+ this._width = t, this._height = e;
1535
1730
  const o = this._width * this._pixelRatio, s = this._height * this._pixelRatio;
1536
1731
  this.renderTarget1.setSize(o, s), this.renderTarget2.setSize(o, s);
1537
1732
  for (let a = 0; a < this.passes.length; a++)
1538
1733
  this.passes[a].setSize(o, s);
1539
1734
  }
1540
- setPixelRatio(e) {
1541
- this._pixelRatio = e, this.setSize(this._width, this._height);
1735
+ setPixelRatio(t) {
1736
+ this._pixelRatio = t, this.setSize(this._width, this._height);
1542
1737
  }
1543
1738
  dispose() {
1544
1739
  this.renderTarget1.dispose(), this.renderTarget2.dispose(), this.copyPass.dispose();
1545
1740
  }
1546
1741
  }
1547
- class Pt extends C {
1548
- constructor(e, t, o = null, s = null, a = null) {
1549
- super(), this.scene = e, this.camera = t, this.overrideMaterial = o, this.clearColor = s, this.clearAlpha = a, this.clear = !0, this.clearDepth = !1, this.needsSwap = !1, this._oldClearColor = new k();
1742
+ class Rt extends D {
1743
+ constructor(t, e, o = null, s = null, a = null) {
1744
+ super(), this.scene = t, this.camera = e, this.overrideMaterial = o, this.clearColor = s, this.clearAlpha = a, this.clear = !0, this.clearDepth = !1, this.needsSwap = !1, this._oldClearColor = new K();
1550
1745
  }
1551
- render(e, t, o) {
1552
- const s = e.autoClear;
1553
- e.autoClear = !1;
1554
- let a, i;
1555
- this.overrideMaterial !== null && (i = this.scene.overrideMaterial, this.scene.overrideMaterial = this.overrideMaterial), this.clearColor !== null && (e.getClearColor(this._oldClearColor), e.setClearColor(this.clearColor, e.getClearAlpha())), this.clearAlpha !== null && (a = e.getClearAlpha(), e.setClearAlpha(this.clearAlpha)), this.clearDepth == !0 && e.clearDepth(), e.setRenderTarget(this.renderToScreen ? null : o), this.clear === !0 && e.clear(e.autoClearColor, e.autoClearDepth, e.autoClearStencil), e.render(this.scene, this.camera), this.clearColor !== null && e.setClearColor(this._oldClearColor), this.clearAlpha !== null && e.setClearAlpha(a), this.overrideMaterial !== null && (this.scene.overrideMaterial = i), e.autoClear = s;
1746
+ render(t, e, o) {
1747
+ const s = t.autoClear;
1748
+ t.autoClear = !1;
1749
+ let a, r;
1750
+ this.overrideMaterial !== null && (r = this.scene.overrideMaterial, this.scene.overrideMaterial = this.overrideMaterial), this.clearColor !== null && (t.getClearColor(this._oldClearColor), t.setClearColor(this.clearColor, t.getClearAlpha())), this.clearAlpha !== null && (a = t.getClearAlpha(), t.setClearAlpha(this.clearAlpha)), this.clearDepth == !0 && t.clearDepth(), t.setRenderTarget(this.renderToScreen ? null : o), this.clear === !0 && t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), t.render(this.scene, this.camera), this.clearColor !== null && t.setClearColor(this._oldClearColor), this.clearAlpha !== null && t.setClearAlpha(a), this.overrideMaterial !== null && (this.scene.overrideMaterial = r), t.autoClear = s;
1556
1751
  }
1557
1752
  }
1558
- const Xe = Symbol("effectComposerThree"), ho = /* @__PURE__ */ u({
1753
+ const Qe = Symbol("effectComposerThree"), yo = /* @__PURE__ */ u({
1559
1754
  __name: "EffectComposer",
1560
1755
  props: {
1561
1756
  enabled: { type: Boolean, default: !0 },
1562
1757
  withoutRenderPass: { type: Boolean }
1563
1758
  },
1564
- setup(r, { expose: e }) {
1565
- const t = r, o = W(null);
1566
- Be(Xe, o), e({ composer: o });
1567
- const { renderer: s, sizes: a, scene: i, camera: n, render: l } = y();
1568
- x(() => {
1759
+ setup(n, { expose: t }) {
1760
+ const e = n, o = H(null);
1761
+ He(Qe, o), t({ composer: o });
1762
+ const { renderer: s, sizes: a, scene: r, camera: i, render: l } = y();
1763
+ w(() => {
1569
1764
  var c;
1570
- (c = o.value) == null || c.dispose(), o.value = new Et(s.value);
1571
- }), x(() => {
1572
- var E;
1573
- const { width: c, height: b } = a;
1574
- b.value && c.value && ((E = o.value) == null || E.setSize(c.value, b.value));
1765
+ (c = o.value) == null || c.dispose(), o.value = new Bt(s.value);
1766
+ }), w(() => {
1767
+ var m;
1768
+ const { width: c, height: S } = a;
1769
+ S.value && c.value && ((m = o.value) == null || m.setSize(c.value, S.value));
1575
1770
  });
1576
- const { pixelRatio: h } = Ue();
1577
- x(() => {
1771
+ const { pixelRatio: p } = Ye();
1772
+ w(() => {
1578
1773
  var c;
1579
- (c = o.value) == null || c.setPixelRatio(h.value);
1580
- }), t.withoutRenderPass || x(() => {
1581
- n.value && i.value && o.value && o.value.addPass(new Pt(i.value, n.value));
1774
+ (c = o.value) == null || c.setPixelRatio(p.value);
1775
+ }), e.withoutRenderPass || w(() => {
1776
+ i.value && r.value && o.value && o.value.addPass(new Rt(r.value, i.value));
1582
1777
  });
1583
- const { render: v } = G();
1584
- return v(() => {
1585
- l.frames.value > 0 && o.value && t.enabled && o.value.render(), l.frames.value = l.mode.value === "always" ? 1 : Math.max(0, l.frames.value - 1);
1586
- }), U(() => {
1778
+ const { render: b } = I();
1779
+ return b(() => {
1780
+ l.frames.value > 0 && o.value && e.enabled && o.value.render(), l.frames.value = l.mode.value === "always" ? 1 : Math.max(0, l.frames.value - 1);
1781
+ }), W(() => {
1587
1782
  var c;
1588
1783
  (c = o.value) == null || c.dispose();
1589
- }), (c, b) => Ne(c.$slots, "default");
1784
+ }), (c, S) => Ie(c.$slots, "default");
1590
1785
  }
1591
- }), N = (r, e, t) => {
1592
- if (!e && t)
1786
+ }), U = (n, t, e) => {
1787
+ if (!t && e)
1593
1788
  throw new Error("passDependencies is required when dependencyFieldsTriggeringRecreation is provided");
1594
- const o = te(Xe), s = W(r()), { sizes: a, invalidate: i } = y();
1595
- e && S(e, () => i());
1596
- const n = () => {
1597
- var f;
1598
- (f = o == null ? void 0 : o.value) == null || f.removePass(s.value), s.value.dispose();
1599
- }, l = x(() => {
1600
- !(o != null && o.value) || !a.height.value || !a.width.value || (o.value.addPass(s.value), oe(() => l()));
1789
+ const o = J(Qe), s = H(n()), { sizes: a, invalidate: r } = y();
1790
+ t && g(t, () => r());
1791
+ const i = () => {
1792
+ var d;
1793
+ (d = o == null ? void 0 : o.value) == null || d.removePass(s.value), s.value.dispose();
1794
+ }, l = w(() => {
1795
+ !(o != null && o.value) || !a.height.value || !a.width.value || (o.value.addPass(s.value), ce(() => l()));
1601
1796
  });
1602
- return t && S(
1603
- () => t.map((f) => e == null ? void 0 : e[f]),
1797
+ return e && g(
1798
+ () => e.map((d) => t == null ? void 0 : t[d]),
1604
1799
  () => {
1605
1800
  if (!(o != null && o.value))
1606
1801
  return;
1607
- const f = o.value.passes.findIndex((h) => h === s.value);
1608
- ~f && (n(), s.value = r(), o.value.insertPass(s.value, f));
1802
+ const d = o.value.passes.findIndex((p) => p === s.value);
1803
+ ~d && (i(), s.value = n(), o.value.insertPass(s.value, d));
1609
1804
  }
1610
- ), U(() => {
1611
- n();
1805
+ ), W(() => {
1806
+ i();
1612
1807
  }), { pass: s };
1613
- }, Dt = {
1808
+ }, Nt = {
1614
1809
  uniforms: {
1615
1810
  tDiffuse: { value: null },
1616
1811
  //diffuse texture
@@ -1705,53 +1900,53 @@ const Xe = Symbol("effectComposerThree"), ho = /* @__PURE__ */ u({
1705
1900
  }`
1706
1901
  )
1707
1902
  };
1708
- class Re extends C {
1709
- constructor(e = 64) {
1903
+ class Ue extends D {
1904
+ constructor(t = 64) {
1710
1905
  super();
1711
- const t = Dt;
1712
- this.uniforms = P.clone(t.uniforms), this.heightMap = this.generateHeightmap(e), this.uniforms.tDisp.value = this.heightMap, this.material = new A({
1906
+ const e = Nt;
1907
+ this.uniforms = L.clone(e.uniforms), this.heightMap = this.generateHeightmap(t), this.uniforms.tDisp.value = this.heightMap, this.material = new T({
1713
1908
  uniforms: this.uniforms,
1714
- vertexShader: t.vertexShader,
1715
- fragmentShader: t.fragmentShader
1909
+ vertexShader: e.vertexShader,
1910
+ fragmentShader: e.fragmentShader
1716
1911
  }), this.fsQuad = new R(this.material), this.goWild = !1, this.curF = 0, this.generateTrigger();
1717
1912
  }
1718
- render(e, t, o) {
1719
- this.uniforms.tDiffuse.value = o.texture, this.uniforms.seed.value = Math.random(), this.uniforms.byp.value = 0, this.curF % this.randX == 0 || this.goWild == !0 ? (this.uniforms.amount.value = Math.random() / 30, this.uniforms.angle.value = w.randFloat(-Math.PI, Math.PI), this.uniforms.seed_x.value = w.randFloat(-1, 1), this.uniforms.seed_y.value = w.randFloat(-1, 1), this.uniforms.distortion_x.value = w.randFloat(0, 1), this.uniforms.distortion_y.value = w.randFloat(0, 1), this.curF = 0, this.generateTrigger()) : this.curF % this.randX < this.randX / 5 ? (this.uniforms.amount.value = Math.random() / 90, this.uniforms.angle.value = w.randFloat(-Math.PI, Math.PI), this.uniforms.distortion_x.value = w.randFloat(0, 1), this.uniforms.distortion_y.value = w.randFloat(0, 1), this.uniforms.seed_x.value = w.randFloat(-0.3, 0.3), this.uniforms.seed_y.value = w.randFloat(-0.3, 0.3)) : this.goWild == !1 && (this.uniforms.byp.value = 1), this.curF++, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(), this.fsQuad.render(e));
1913
+ render(t, e, o) {
1914
+ this.uniforms.tDiffuse.value = o.texture, this.uniforms.seed.value = Math.random(), this.uniforms.byp.value = 0, this.curF % this.randX == 0 || this.goWild == !0 ? (this.uniforms.amount.value = Math.random() / 30, this.uniforms.angle.value = M.randFloat(-Math.PI, Math.PI), this.uniforms.seed_x.value = M.randFloat(-1, 1), this.uniforms.seed_y.value = M.randFloat(-1, 1), this.uniforms.distortion_x.value = M.randFloat(0, 1), this.uniforms.distortion_y.value = M.randFloat(0, 1), this.curF = 0, this.generateTrigger()) : this.curF % this.randX < this.randX / 5 ? (this.uniforms.amount.value = Math.random() / 90, this.uniforms.angle.value = M.randFloat(-Math.PI, Math.PI), this.uniforms.distortion_x.value = M.randFloat(0, 1), this.uniforms.distortion_y.value = M.randFloat(0, 1), this.uniforms.seed_x.value = M.randFloat(-0.3, 0.3), this.uniforms.seed_y.value = M.randFloat(-0.3, 0.3)) : this.goWild == !1 && (this.uniforms.byp.value = 1), this.curF++, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(), this.fsQuad.render(t));
1720
1915
  }
1721
1916
  generateTrigger() {
1722
- this.randX = w.randInt(120, 240);
1917
+ this.randX = M.randInt(120, 240);
1723
1918
  }
1724
- generateHeightmap(e) {
1725
- const t = new Float32Array(e * e), o = e * e;
1919
+ generateHeightmap(t) {
1920
+ const e = new Float32Array(t * t), o = t * t;
1726
1921
  for (let a = 0; a < o; a++) {
1727
- const i = w.randFloat(0, 1);
1728
- t[a] = i;
1922
+ const r = M.randFloat(0, 1);
1923
+ e[a] = r;
1729
1924
  }
1730
- const s = new tt(t, e, e, ot, st);
1925
+ const s = new it(e, t, t, lt, ut);
1731
1926
  return s.needsUpdate = !0, s;
1732
1927
  }
1733
1928
  dispose() {
1734
1929
  this.material.dispose(), this.heightMap.dispose(), this.fsQuad.dispose();
1735
1930
  }
1736
1931
  }
1737
- const po = /* @__PURE__ */ u({
1932
+ const Mo = /* @__PURE__ */ u({
1738
1933
  __name: "Glitch",
1739
1934
  props: {
1740
1935
  dtSize: {},
1741
1936
  goWild: { type: Boolean }
1742
1937
  },
1743
- setup(r, { expose: e }) {
1744
- const t = r, { pass: o } = N(() => new Re(t.dtSize), t, ["dtSize"]);
1745
- e({ pass: o });
1746
- const { onBeforeRender: s } = G();
1747
- return s(({ invalidate: a }) => a()), m(
1748
- [[() => t.goWild, "goWild"]],
1938
+ setup(n, { expose: t }) {
1939
+ const e = n, { pass: o } = U(() => new Ue(e.dtSize), e, ["dtSize"]);
1940
+ t({ pass: o });
1941
+ const { onBeforeRender: s } = I();
1942
+ return s(({ invalidate: a }) => a()), v(
1943
+ [[() => e.goWild, "goWild"]],
1749
1944
  o,
1750
- () => new Re()
1945
+ () => new Ue()
1751
1946
  ), () => {
1752
1947
  };
1753
1948
  }
1754
- }), Y = {
1949
+ }), Q = {
1755
1950
  name: "HalftoneShader",
1756
1951
  uniforms: {
1757
1952
  tDiffuse: { value: null },
@@ -2055,28 +2250,28 @@ const po = /* @__PURE__ */ u({
2055
2250
  }`
2056
2251
  )
2057
2252
  };
2058
- class Lt extends C {
2059
- constructor(e, t, o) {
2060
- super(), this.uniforms = P.clone(Y.uniforms), this.material = new A({
2253
+ class zt extends D {
2254
+ constructor(t, e, o) {
2255
+ super(), this.uniforms = L.clone(Q.uniforms), this.material = new T({
2061
2256
  uniforms: this.uniforms,
2062
- fragmentShader: Y.fragmentShader,
2063
- vertexShader: Y.vertexShader
2064
- }), this.uniforms.width.value = e, this.uniforms.height.value = t;
2257
+ fragmentShader: Q.fragmentShader,
2258
+ vertexShader: Q.vertexShader
2259
+ }), this.uniforms.width.value = t, this.uniforms.height.value = e;
2065
2260
  for (const s in o)
2066
2261
  o.hasOwnProperty(s) && this.uniforms.hasOwnProperty(s) && (this.uniforms[s].value = o[s]);
2067
2262
  this.fsQuad = new R(this.material);
2068
2263
  }
2069
- render(e, t, o) {
2070
- this.material.uniforms.tDiffuse.value = o.texture, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(), this.fsQuad.render(e));
2264
+ render(t, e, o) {
2265
+ this.material.uniforms.tDiffuse.value = o.texture, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(), this.fsQuad.render(t));
2071
2266
  }
2072
- setSize(e, t) {
2073
- this.uniforms.width.value = e, this.uniforms.height.value = t;
2267
+ setSize(t, e) {
2268
+ this.uniforms.width.value = t, this.uniforms.height.value = e;
2074
2269
  }
2075
2270
  dispose() {
2076
2271
  this.material.dispose(), this.fsQuad.dispose();
2077
2272
  }
2078
2273
  }
2079
- const mo = /* @__PURE__ */ u({
2274
+ const To = /* @__PURE__ */ u({
2080
2275
  __name: "Halftone",
2081
2276
  props: {
2082
2277
  shape: {},
@@ -2089,55 +2284,55 @@ const mo = /* @__PURE__ */ u({
2089
2284
  greyscale: { type: Boolean },
2090
2285
  blendingMode: {}
2091
2286
  },
2092
- setup(r, { expose: e }) {
2093
- const t = r, { sizes: o } = y(), s = L(
2287
+ setup(n, { expose: t }) {
2288
+ const e = n, { sizes: o } = y(), s = O(
2094
2289
  () => Object.fromEntries(
2095
- Object.entries(t).filter(([i, n]) => n !== void 0)
2290
+ Object.entries(e).filter(([r, i]) => i !== void 0)
2096
2291
  )
2097
- ), { pass: a } = N(() => new Lt(
2292
+ ), { pass: a } = U(() => new zt(
2098
2293
  o.width.value,
2099
2294
  o.height.value,
2100
2295
  s.value
2101
- ), t);
2102
- return e({ pass: a }), x(() => {
2296
+ ), e);
2297
+ return t({ pass: a }), w(() => {
2103
2298
  a.value.setSize(o.width.value, o.height.value);
2104
- }), x(() => {
2105
- Object.entries(t).forEach(([i, n]) => {
2106
- i in a.value.uniforms && (a.value.uniforms[i].value = n ?? Y.uniforms[i].value);
2299
+ }), w(() => {
2300
+ Object.entries(e).forEach(([r, i]) => {
2301
+ r in a.value.uniforms && (a.value.uniforms[r].value = i ?? Q.uniforms[r].value);
2107
2302
  });
2108
2303
  }), () => {
2109
2304
  };
2110
2305
  }
2111
2306
  });
2112
- class Fe extends C {
2113
- constructor(e, t, o, s = {}) {
2114
- super(), this.pixelSize = e, this.resolution = new d(), this.renderResolution = new d(), this.pixelatedMaterial = this.createPixelatedMaterial(), this.normalMaterial = new at(), this.fsQuad = new R(this.pixelatedMaterial), this.scene = t, this.camera = o, this.normalEdgeStrength = s.normalEdgeStrength || 0.3, this.depthEdgeStrength = s.depthEdgeStrength || 0.4, this.beautyRenderTarget = new D(), this.beautyRenderTarget.texture.minFilter = F, this.beautyRenderTarget.texture.magFilter = F, this.beautyRenderTarget.texture.type = T, this.beautyRenderTarget.depthTexture = new rt(), this.normalRenderTarget = new D(), this.normalRenderTarget.texture.minFilter = F, this.normalRenderTarget.texture.magFilter = F, this.normalRenderTarget.texture.type = T;
2307
+ class Ge extends D {
2308
+ constructor(t, e, o, s = {}) {
2309
+ super(), this.pixelSize = t, this.resolution = new f(), this.renderResolution = new f(), this.pixelatedMaterial = this.createPixelatedMaterial(), this.normalMaterial = new ct(), this.fsQuad = new R(this.pixelatedMaterial), this.scene = e, this.camera = o, this.normalEdgeStrength = s.normalEdgeStrength || 0.3, this.depthEdgeStrength = s.depthEdgeStrength || 0.4, this.beautyRenderTarget = new F(), this.beautyRenderTarget.texture.minFilter = N, this.beautyRenderTarget.texture.magFilter = N, this.beautyRenderTarget.texture.type = P, this.beautyRenderTarget.depthTexture = new dt(), this.normalRenderTarget = new F(), this.normalRenderTarget.texture.minFilter = N, this.normalRenderTarget.texture.magFilter = N, this.normalRenderTarget.texture.type = P;
2115
2310
  }
2116
2311
  dispose() {
2117
2312
  this.beautyRenderTarget.dispose(), this.normalRenderTarget.dispose(), this.pixelatedMaterial.dispose(), this.normalMaterial.dispose(), this.fsQuad.dispose();
2118
2313
  }
2119
- setSize(e, t) {
2120
- this.resolution.set(e, t), this.renderResolution.set(e / this.pixelSize | 0, t / this.pixelSize | 0);
2314
+ setSize(t, e) {
2315
+ this.resolution.set(t, e), this.renderResolution.set(t / this.pixelSize | 0, e / this.pixelSize | 0);
2121
2316
  const { x: o, y: s } = this.renderResolution;
2122
2317
  this.beautyRenderTarget.setSize(o, s), this.normalRenderTarget.setSize(o, s), this.fsQuad.material.uniforms.resolution.value.set(o, s, 1 / o, 1 / s);
2123
2318
  }
2124
- setPixelSize(e) {
2125
- this.pixelSize = e, this.setSize(this.resolution.x, this.resolution.y);
2319
+ setPixelSize(t) {
2320
+ this.pixelSize = t, this.setSize(this.resolution.x, this.resolution.y);
2126
2321
  }
2127
- render(e, t) {
2322
+ render(t, e) {
2128
2323
  const o = this.fsQuad.material.uniforms;
2129
- o.normalEdgeStrength.value = this.normalEdgeStrength, o.depthEdgeStrength.value = this.depthEdgeStrength, e.setRenderTarget(this.beautyRenderTarget), e.render(this.scene, this.camera);
2324
+ o.normalEdgeStrength.value = this.normalEdgeStrength, o.depthEdgeStrength.value = this.depthEdgeStrength, t.setRenderTarget(this.beautyRenderTarget), t.render(this.scene, this.camera);
2130
2325
  const s = this.scene.overrideMaterial;
2131
- e.setRenderTarget(this.normalRenderTarget), this.scene.overrideMaterial = this.normalMaterial, e.render(this.scene, this.camera), this.scene.overrideMaterial = s, o.tDiffuse.value = this.beautyRenderTarget.texture, o.tDepth.value = this.beautyRenderTarget.depthTexture, o.tNormal.value = this.normalRenderTarget.texture, this.renderToScreen ? e.setRenderTarget(null) : (e.setRenderTarget(t), this.clear && e.clear()), this.fsQuad.render(e);
2326
+ t.setRenderTarget(this.normalRenderTarget), this.scene.overrideMaterial = this.normalMaterial, t.render(this.scene, this.camera), this.scene.overrideMaterial = s, o.tDiffuse.value = this.beautyRenderTarget.texture, o.tDepth.value = this.beautyRenderTarget.depthTexture, o.tNormal.value = this.normalRenderTarget.texture, this.renderToScreen ? t.setRenderTarget(null) : (t.setRenderTarget(e), this.clear && t.clear()), this.fsQuad.render(t);
2132
2327
  }
2133
2328
  createPixelatedMaterial() {
2134
- return new A({
2329
+ return new T({
2135
2330
  uniforms: {
2136
2331
  tDiffuse: { value: null },
2137
2332
  tDepth: { value: null },
2138
2333
  tNormal: { value: null },
2139
2334
  resolution: {
2140
- value: new it(
2335
+ value: new ft(
2141
2336
  this.renderResolution.x,
2142
2337
  this.renderResolution.y,
2143
2338
  1 / this.renderResolution.x,
@@ -2256,28 +2451,28 @@ class Fe extends C {
2256
2451
  });
2257
2452
  }
2258
2453
  }
2259
- const vo = /* @__PURE__ */ u({
2454
+ const Co = /* @__PURE__ */ u({
2260
2455
  __name: "Pixelation",
2261
2456
  props: {
2262
2457
  pixelSize: {},
2263
2458
  depthEdgeStrength: {},
2264
2459
  normalEdgeStrength: {}
2265
2460
  },
2266
- setup(r, { expose: e }) {
2267
- const t = r, { scene: o, camera: s } = y(), { pass: a } = N(() => new Fe(t.pixelSize, o.value, s.value), t);
2268
- return e({ pass: a }), x(() => {
2269
- a.value.setPixelSize(t.pixelSize);
2270
- }), m(
2461
+ setup(n, { expose: t }) {
2462
+ const e = n, { scene: o, camera: s } = y(), { pass: a } = U(() => new Ge(e.pixelSize, o.value, s.value), e);
2463
+ return t({ pass: a }), w(() => {
2464
+ a.value.setPixelSize(e.pixelSize);
2465
+ }), v(
2271
2466
  [
2272
- [() => t.depthEdgeStrength, "depthEdgeStrength"],
2273
- [() => t.normalEdgeStrength, "normalEdgeStrength"]
2467
+ [() => e.depthEdgeStrength, "depthEdgeStrength"],
2468
+ [() => e.normalEdgeStrength, "normalEdgeStrength"]
2274
2469
  ],
2275
2470
  a,
2276
- () => new Fe(1, o.value, s.value)
2471
+ () => new Ge(1, o.value, s.value)
2277
2472
  ), () => {
2278
2473
  };
2279
2474
  }
2280
- }), Ot = {
2475
+ }), Wt = {
2281
2476
  name: "OutputShader",
2282
2477
  uniforms: {
2283
2478
  tDiffuse: { value: null },
@@ -2363,39 +2558,39 @@ const vo = /* @__PURE__ */ u({
2363
2558
  }`
2364
2559
  )
2365
2560
  };
2366
- class Rt extends C {
2561
+ class Ut extends D {
2367
2562
  constructor() {
2368
2563
  super();
2369
- const e = Ot;
2370
- this.uniforms = P.clone(e.uniforms), this.material = new nt({
2371
- name: e.name,
2564
+ const t = Wt;
2565
+ this.uniforms = L.clone(t.uniforms), this.material = new ht({
2566
+ name: t.name,
2372
2567
  uniforms: this.uniforms,
2373
- vertexShader: e.vertexShader,
2374
- fragmentShader: e.fragmentShader
2568
+ vertexShader: t.vertexShader,
2569
+ fragmentShader: t.fragmentShader
2375
2570
  }), this.fsQuad = new R(this.material), this._outputColorSpace = null, this._toneMapping = null;
2376
2571
  }
2377
- render(e, t, o) {
2378
- this.uniforms.tDiffuse.value = o.texture, this.uniforms.toneMappingExposure.value = e.toneMappingExposure, (this._outputColorSpace !== e.outputColorSpace || this._toneMapping !== e.toneMapping) && (this._outputColorSpace = e.outputColorSpace, this._toneMapping = e.toneMapping, this.material.defines = {}, lt.getTransfer(this._outputColorSpace) === ut && (this.material.defines.SRGB_TRANSFER = ""), this._toneMapping === ct ? this.material.defines.LINEAR_TONE_MAPPING = "" : this._toneMapping === dt ? this.material.defines.REINHARD_TONE_MAPPING = "" : this._toneMapping === ft ? this.material.defines.CINEON_TONE_MAPPING = "" : this._toneMapping === ht ? this.material.defines.ACES_FILMIC_TONE_MAPPING = "" : this._toneMapping === pt ? this.material.defines.AGX_TONE_MAPPING = "" : this._toneMapping === mt ? this.material.defines.NEUTRAL_TONE_MAPPING = "" : this._toneMapping === vt && (this.material.defines.CUSTOM_TONE_MAPPING = ""), this.material.needsUpdate = !0), this.renderToScreen === !0 ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(e.autoClearColor, e.autoClearDepth, e.autoClearStencil), this.fsQuad.render(e));
2572
+ render(t, e, o) {
2573
+ this.uniforms.tDiffuse.value = o.texture, this.uniforms.toneMappingExposure.value = t.toneMappingExposure, (this._outputColorSpace !== t.outputColorSpace || this._toneMapping !== t.toneMapping) && (this._outputColorSpace = t.outputColorSpace, this._toneMapping = t.toneMapping, this.material.defines = {}, pt.getTransfer(this._outputColorSpace) === mt && (this.material.defines.SRGB_TRANSFER = ""), this._toneMapping === vt ? this.material.defines.LINEAR_TONE_MAPPING = "" : this._toneMapping === gt ? this.material.defines.REINHARD_TONE_MAPPING = "" : this._toneMapping === xt ? this.material.defines.CINEON_TONE_MAPPING = "" : this._toneMapping === bt ? this.material.defines.ACES_FILMIC_TONE_MAPPING = "" : this._toneMapping === St ? this.material.defines.AGX_TONE_MAPPING = "" : this._toneMapping === wt ? this.material.defines.NEUTRAL_TONE_MAPPING = "" : this._toneMapping === At && (this.material.defines.CUSTOM_TONE_MAPPING = ""), this.material.needsUpdate = !0), this.renderToScreen === !0 ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), this.fsQuad.render(t));
2379
2574
  }
2380
2575
  dispose() {
2381
2576
  this.material.dispose(), this.fsQuad.dispose();
2382
2577
  }
2383
2578
  }
2384
- const go = /* @__PURE__ */ u({
2579
+ const Eo = /* @__PURE__ */ u({
2385
2580
  __name: "Output",
2386
- setup(r, { expose: e }) {
2387
- const { pass: t } = N(() => new Rt());
2388
- return e({ pass: t }), () => {
2581
+ setup(n, { expose: t }) {
2582
+ const { pass: e } = U(() => new Ut());
2583
+ return t({ pass: e }), () => {
2389
2584
  };
2390
2585
  }
2391
- }), j = {
2586
+ }), Y = {
2392
2587
  name: "SMAAEdgesShader",
2393
2588
  defines: {
2394
2589
  SMAA_THRESHOLD: "0.1"
2395
2590
  },
2396
2591
  uniforms: {
2397
2592
  tDiffuse: { value: null },
2398
- resolution: { value: new d(1 / 1024, 1 / 512) }
2593
+ resolution: { value: new f(1 / 1024, 1 / 512) }
2399
2594
  },
2400
2595
  vertexShader: (
2401
2596
  /* glsl */
@@ -2489,7 +2684,7 @@ const go = /* @__PURE__ */ u({
2489
2684
 
2490
2685
  }`
2491
2686
  )
2492
- }, V = {
2687
+ }, k = {
2493
2688
  name: "SMAAWeightsShader",
2494
2689
  defines: {
2495
2690
  SMAA_MAX_SEARCH_STEPS: "8",
@@ -2501,7 +2696,7 @@ const go = /* @__PURE__ */ u({
2501
2696
  tDiffuse: { value: null },
2502
2697
  tArea: { value: null },
2503
2698
  tSearch: { value: null },
2504
- resolution: { value: new d(1 / 1024, 1 / 512) }
2699
+ resolution: { value: new f(1 / 1024, 1 / 512) }
2505
2700
  },
2506
2701
  vertexShader: (
2507
2702
  /* glsl */
@@ -2739,12 +2934,12 @@ const go = /* @__PURE__ */ u({
2739
2934
 
2740
2935
  }`
2741
2936
  )
2742
- }, ee = {
2937
+ }, ue = {
2743
2938
  name: "SMAABlendShader",
2744
2939
  uniforms: {
2745
2940
  tDiffuse: { value: null },
2746
2941
  tColor: { value: null },
2747
- resolution: { value: new d(1 / 1024, 1 / 512) }
2942
+ resolution: { value: new f(1 / 1024, 1 / 512) }
2748
2943
  },
2749
2944
  vertexShader: (
2750
2945
  /* glsl */
@@ -2829,43 +3024,43 @@ const go = /* @__PURE__ */ u({
2829
3024
  }`
2830
3025
  )
2831
3026
  };
2832
- class Ft extends C {
2833
- constructor(e, t) {
2834
- super(), this.edgesRT = new D(e, t, {
3027
+ class Gt extends D {
3028
+ constructor(t, e) {
3029
+ super(), this.edgesRT = new F(t, e, {
2835
3030
  depthBuffer: !1,
2836
- type: T
2837
- }), this.edgesRT.texture.name = "SMAAPass.edges", this.weightsRT = new D(e, t, {
3031
+ type: P
3032
+ }), this.edgesRT.texture.name = "SMAAPass.edges", this.weightsRT = new F(t, e, {
2838
3033
  depthBuffer: !1,
2839
- type: T
3034
+ type: P
2840
3035
  }), this.weightsRT.texture.name = "SMAAPass.weights";
2841
3036
  const o = this, s = new Image();
2842
3037
  s.src = this.getAreaTexture(), s.onload = function() {
2843
3038
  o.areaTexture.needsUpdate = !0;
2844
- }, this.areaTexture = new Me(), this.areaTexture.name = "SMAAPass.area", this.areaTexture.image = s, this.areaTexture.minFilter = gt, this.areaTexture.generateMipmaps = !1, this.areaTexture.flipY = !1;
3039
+ }, this.areaTexture = new Le(), this.areaTexture.name = "SMAAPass.area", this.areaTexture.image = s, this.areaTexture.minFilter = yt, this.areaTexture.generateMipmaps = !1, this.areaTexture.flipY = !1;
2845
3040
  const a = new Image();
2846
3041
  a.src = this.getSearchTexture(), a.onload = function() {
2847
3042
  o.searchTexture.needsUpdate = !0;
2848
- }, this.searchTexture = new Me(), this.searchTexture.name = "SMAAPass.search", this.searchTexture.image = a, this.searchTexture.magFilter = F, this.searchTexture.minFilter = F, this.searchTexture.generateMipmaps = !1, this.searchTexture.flipY = !1, this.uniformsEdges = P.clone(j.uniforms), this.uniformsEdges.resolution.value.set(1 / e, 1 / t), this.materialEdges = new A({
2849
- defines: Object.assign({}, j.defines),
3043
+ }, this.searchTexture = new Le(), this.searchTexture.name = "SMAAPass.search", this.searchTexture.image = a, this.searchTexture.magFilter = N, this.searchTexture.minFilter = N, this.searchTexture.generateMipmaps = !1, this.searchTexture.flipY = !1, this.uniformsEdges = L.clone(Y.uniforms), this.uniformsEdges.resolution.value.set(1 / t, 1 / e), this.materialEdges = new T({
3044
+ defines: Object.assign({}, Y.defines),
2850
3045
  uniforms: this.uniformsEdges,
2851
- vertexShader: j.vertexShader,
2852
- fragmentShader: j.fragmentShader
2853
- }), this.uniformsWeights = P.clone(V.uniforms), this.uniformsWeights.resolution.value.set(1 / e, 1 / t), this.uniformsWeights.tDiffuse.value = this.edgesRT.texture, this.uniformsWeights.tArea.value = this.areaTexture, this.uniformsWeights.tSearch.value = this.searchTexture, this.materialWeights = new A({
2854
- defines: Object.assign({}, V.defines),
3046
+ vertexShader: Y.vertexShader,
3047
+ fragmentShader: Y.fragmentShader
3048
+ }), this.uniformsWeights = L.clone(k.uniforms), this.uniformsWeights.resolution.value.set(1 / t, 1 / e), this.uniformsWeights.tDiffuse.value = this.edgesRT.texture, this.uniformsWeights.tArea.value = this.areaTexture, this.uniformsWeights.tSearch.value = this.searchTexture, this.materialWeights = new T({
3049
+ defines: Object.assign({}, k.defines),
2855
3050
  uniforms: this.uniformsWeights,
2856
- vertexShader: V.vertexShader,
2857
- fragmentShader: V.fragmentShader
2858
- }), this.uniformsBlend = P.clone(ee.uniforms), this.uniformsBlend.resolution.value.set(1 / e, 1 / t), this.uniformsBlend.tDiffuse.value = this.weightsRT.texture, this.materialBlend = new A({
3051
+ vertexShader: k.vertexShader,
3052
+ fragmentShader: k.fragmentShader
3053
+ }), this.uniformsBlend = L.clone(ue.uniforms), this.uniformsBlend.resolution.value.set(1 / t, 1 / e), this.uniformsBlend.tDiffuse.value = this.weightsRT.texture, this.materialBlend = new T({
2859
3054
  uniforms: this.uniformsBlend,
2860
- vertexShader: ee.vertexShader,
2861
- fragmentShader: ee.fragmentShader
3055
+ vertexShader: ue.vertexShader,
3056
+ fragmentShader: ue.fragmentShader
2862
3057
  }), this.fsQuad = new R(null);
2863
3058
  }
2864
- render(e, t, o) {
2865
- this.uniformsEdges.tDiffuse.value = o.texture, this.fsQuad.material = this.materialEdges, e.setRenderTarget(this.edgesRT), this.clear && e.clear(), this.fsQuad.render(e), this.fsQuad.material = this.materialWeights, e.setRenderTarget(this.weightsRT), this.clear && e.clear(), this.fsQuad.render(e), this.uniformsBlend.tColor.value = o.texture, this.fsQuad.material = this.materialBlend, this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(t), this.clear && e.clear(), this.fsQuad.render(e));
3059
+ render(t, e, o) {
3060
+ this.uniformsEdges.tDiffuse.value = o.texture, this.fsQuad.material = this.materialEdges, t.setRenderTarget(this.edgesRT), this.clear && t.clear(), this.fsQuad.render(t), this.fsQuad.material = this.materialWeights, t.setRenderTarget(this.weightsRT), this.clear && t.clear(), this.fsQuad.render(t), this.uniformsBlend.tColor.value = o.texture, this.fsQuad.material = this.materialBlend, this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(e), this.clear && t.clear(), this.fsQuad.render(t));
2866
3061
  }
2867
- setSize(e, t) {
2868
- this.edgesRT.setSize(e, t), this.weightsRT.setSize(e, t), this.materialEdges.uniforms.resolution.value.set(1 / e, 1 / t), this.materialWeights.uniforms.resolution.value.set(1 / e, 1 / t), this.materialBlend.uniforms.resolution.value.set(1 / e, 1 / t);
3062
+ setSize(t, e) {
3063
+ this.edgesRT.setSize(t, e), this.weightsRT.setSize(t, e), this.materialEdges.uniforms.resolution.value.set(1 / t, 1 / e), this.materialWeights.uniforms.resolution.value.set(1 / t, 1 / e), this.materialBlend.uniforms.resolution.value.set(1 / t, 1 / e);
2869
3064
  }
2870
3065
  getAreaTexture() {
2871
3066
  return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAIwCAIAAACOVPcQAACBeklEQVR42u39W4xlWXrnh/3WWvuciIzMrKxrV8/0rWbY0+SQFKcb4owIkSIFCjY9AC1BT/LYBozRi+EX+cV+8IMsYAaCwRcBwjzMiw2jAWtgwC8WR5Q8mDFHZLNHTarZGrLJJllt1W2qKrsumZWZcTvn7L3W54e1vrXX3vuciLPPORFR1XE2EomorB0nVuz//r71re/y/1eMvb4Cb3N11xV/PP/2v4UBAwJG/7H8urx6/25/Gf8O5hypMQ0EEEQwAqLfoN/Z+97f/SW+/NvcgQk4sGBJK6H7N4PFVL+K+e0N11yNfkKvwUdwdlUAXPHHL38oa15f/i/46Ih6SuMSPmLAYAwyRKn7dfMGH97jaMFBYCJUgotIC2YAdu+LyW9vvubxAP8kAL8H/koAuOKP3+q6+xGnd5kdYCeECnGIJViwGJMAkQKfDvB3WZxjLKGh8VSCCzhwEWBpMc5/kBbjawT4HnwJfhr+pPBIu7uu+OOTo9vsmtQcniMBGkKFd4jDWMSCRUpLjJYNJkM+IRzQ+PQvIeAMTrBS2LEiaiR9b/5PuT6Ap/AcfAFO4Y3dA3DFH7/VS+M8k4baEAQfMI4QfbVDDGIRg7GKaIY52qAjTAgTvGBAPGIIghOCYAUrGFNgzA7Q3QhgCwfwAnwe5vDejgG44o/fbm1C5ZlYQvQDARPAIQGxCWBM+wWl37ZQESb4gImexGMDouhGLx1Cst0Saa4b4AqO4Hk4gxo+3DHAV/nx27p3JziPM2pVgoiia5MdEzCGULprIN7gEEeQ5IQxEBBBQnxhsDb5auGmAAYcHMA9eAAz8PBol8/xij9+C4Djlim4gJjWcwZBhCBgMIIYxGAVIkH3ZtcBuLdtRFMWsPGoY9rN+HoBji9VBYdwD2ZQg4cnO7OSq/z4rU5KKdwVbFAjNojCQzTlCLPFSxtamwh2jMUcEgg2Wm/6XgErIBhBckQtGN3CzbVacERgCnfgLswhnvqf7QyAq/z4rRZm1YglYE3affGITaZsdIe2FmMIpnOCap25I6jt2kCwCW0D1uAD9sZctNGXcQIHCkINDQgc78aCr+zjtw3BU/ijdpw3zhCwcaONwBvdeS2YZKkJNJsMPf2JKEvC28RXxxI0ASJyzQCjCEQrO4Q7sFArEzjZhaFc4cdv+/JFdKULM4px0DfUBI2hIsy06BqLhGTQEVdbfAIZXYMPesq6VoCHICzUyjwInO4Y411//LYLs6TDa9wvg2CC2rElgAnpTBziThxaL22MYhzfkghz6GAs2VHbbdM91VZu1MEEpupMMwKyVTb5ij9+u4VJG/5EgEMMmFF01cFai3isRbKbzb+YaU/MQbAm2XSMoUPAmvZzbuKYRIFApbtlrfFuUGd6vq2hXNnH78ZLh/iFhsQG3T4D1ib7k5CC6vY0DCbtrohgLEIClXiGtl10zc0CnEGIhhatLBva7NP58Tvw0qE8yWhARLQ8h4+AhQSP+I4F5xoU+VilGRJs6wnS7ruti/4KvAY/CfdgqjsMy4pf8fodQO8/gnuX3f/3xi3om1/h7THr+co3x93PP9+FBUfbNUjcjEmhcrkT+8K7ml7V10Jo05mpIEFy1NmCJWx9SIKKt+EjAL4Ez8EBVOB6havuT/rByPvHXK+9zUcfcbb254+9fydJknYnRr1oGfdaiAgpxu1Rx/Rek8KISftx3L+DfsLWAANn8Hvw0/AFeAGO9DFV3c6D+CcWbL8Dj9e7f+T1k8AZv/d7+PXWM/Z+VvdCrIvuAKO09RpEEQJM0Ci6+B4xhTWr4cZNOvhktabw0ta0rSJmqz3Yw5/AKXwenod7cAhTmBSPKf6JBdvH8IP17h95pXqw50/+BFnj88fev4NchyaK47OPhhtI8RFSvAfDSNh0Ck0p2gLxGkib5NJj/JWCr90EWQJvwBzO4AHcgztwAFN1evHPUVGwfXON+0debT1YeGON9Yy9/63X+OguiwmhIhQhD7l4sMqlG3D86Suc3qWZ4rWjI1X7u0Ytw6x3rIMeIOPDprfe2XzNgyj6PahhBjO4C3e6puDgXrdg+/5l948vF3bqwZetZ+z9Rx9zdIY5pInPK4Nk0t+l52xdK2B45Qd87nM8fsD5EfUhIcJcERw4RdqqH7Yde5V7m1vhNmtedkz6EDzUMF/2jJYWbC+4fzzA/Y+/8PPH3j9dcBAPIRP8JLXd5BpAu03aziOL3VVHZzz3CXWDPWd+SH2AnxIqQoTZpo9Ckc6HIrFbAbzNmlcg8Ag8NFDDAhbJvTBZXbC94P7t68EXfv6o+21gUtPETU7bbkLxvNKRFG2+KXzvtObonPP4rBvsgmaKj404DlshFole1Glfh02fE7bYR7dZ82oTewIBGn1Md6CG6YUF26X376oevOLzx95vhUmgblI6LBZwTCDY7vMq0op5WVXgsObOXJ+1x3qaBl9j1FeLxbhU9w1F+Wiba6s1X/TBz1LnUfuYDi4r2C69f1f14BWfP+p+W2GFKuC9phcELMYRRLur9DEZTUdEH+iEqWdaM7X4WOoPGI+ZYD2+wcQ+y+ioHUZ9dTDbArzxmi/bJI9BND0Ynd6lBdve/butBw8+f/T9D3ABa3AG8W3VPX4hBin+bj8dMMmSpp5pg7fJ6xrBFE2WQQEWnV8Qg3FbAWzYfM1rREEnmvkN2o1+acG2d/9u68GDzx91v3mAjb1zkpqT21OipPKO0b9TO5W0nTdOmAQm0TObts3aBKgwARtoPDiCT0gHgwnbArzxmtcLc08HgF1asN0C4Ms/fvD5I+7PhfqyXE/b7RbbrGyRQRT9ARZcwAUmgdoz0ehJ9Fn7QAhUjhDAQSw0bV3T3WbNa59jzmiP6GsWbGXDX2ytjy8+f9T97fiBPq9YeLdBmyuizZHaqXITnXiMUEEVcJ7K4j3BFPurtB4bixW8wTpweL8DC95szWMOqucFYGsWbGU7p3TxxxefP+r+oTVktxY0v5hbq3KiOKYnY8ddJVSBxuMMVffNbxwIOERShst73HZ78DZrHpmJmH3K6sGz0fe3UUj0eyRrSCGTTc+rjVNoGzNSv05srAxUBh8IhqChiQgVNIIBH3AVPnrsnXQZbLTm8ammv8eVXn/vWpaTem5IXRlt+U/LA21zhSb9cye6jcOfCnOwhIAYXAMVTUNV0QhVha9xjgA27ODJbLbmitt3tRN80lqG6N/khgot4ZVlOyO4WNg3OIMzhIZQpUEHieg2im6F91hB3I2tubql6BYNN9Hj5S7G0G2tahslBWKDnOiIvuAEDzakDQKDNFQT6gbn8E2y4BBubM230YIpBnDbMa+y3dx0n1S0BtuG62lCCXwcY0F72T1VRR3t2ONcsmDjbmzNt9RFs2LO2hQNyb022JisaI8rAWuw4HI3FuAIhZdOGIcdjLJvvObqlpqvWTJnnQbyi/1M9O8UxWhBs//H42I0q1Yb/XPGONzcmm+ri172mHKvZBpHkJaNJz6v9jxqiklDj3U4CA2ugpAaYMWqNXsdXbmJNd9egCnJEsphXNM+MnK3m0FCJ5S1kmJpa3DgPVbnQnPGWIDspW9ozbcO4K/9LkfaQO2KHuqlfFXSbdNzcEcwoqNEFE9zcIXu9/6n/ym/BC/C3aJLzEKPuYVlbFnfhZ8kcWxV3dbv4bKl28566wD+8C53aw49lTABp9PWbsB+knfc/Li3eVizf5vv/xmvnPKg5ihwKEwlrcHqucuVcVOxEv8aH37E3ZqpZypUulrHEtIWKUr+txHg+ojZDGlwnqmkGlzcVi1dLiNSJiHjfbRNOPwKpx9TVdTn3K05DBx4psIk4Ei8aCkJahRgffk4YnEXe07T4H2RR1u27E6wfQsBDofUgjFUFnwC2AiVtA+05J2zpiDK2Oa0c5fmAecN1iJzmpqFZxqYBCYhFTCsUNEmUnIcZ6aEA5rQVhEywG6w7HSW02XfOoBlQmjwulOFQAg66SvJblrTEX1YtJ3uG15T/BH1OfOQeuR8g/c0gdpT5fx2SKbs9EfHTKdM8A1GaJRHLVIwhcGyydZsbifAFVKl5EMKNU2Hryo+06BeTgqnxzYjThVySDikbtJPieco75lYfKAJOMEZBTjoITuWHXXZVhcUDIS2hpiXHV9Ku4u44bN5OYLDOkJo8w+xJSMbhBRHEdEs9JZUCkQrPMAvaHyLkxgkEHxiNkx/x2YB0mGsQ8EUWj/stW5YLhtS5SMu+/YBbNPDCkGTUybN8krRLBGPlZkVOA0j+a1+rkyQKWGaPHPLZOkJhioQYnVZ2hS3zVxMtgC46KuRwbJNd9nV2PHgb36F194ecf/Yeu2vAFe5nm/bRBFrnY4BauE8ERmZRFUn0k8hbftiVYSKMEme2dJCJSCGYAlNqh87bXOPdUkGy24P6d1ll21MBqqx48Fvv8ZHH8HZFY7j/uAq1xMJUFqCSUlJPmNbIiNsmwuMs/q9CMtsZsFO6SprzCS1Z7QL8xCQClEelpjTduDMsmWD8S1PT152BtvmIGvUeDA/yRn83u/x0/4qxoPHjx+PXY9pqX9bgMvh/Nz9kpP4pOe1/fYf3axUiMdHLlPpZCNjgtNFAhcHEDxTumNONhHrBduW+vOyY++70WWnPXj98eA4kOt/mj/5E05l9+O4o8ePx67HFqyC+qSSnyselqjZGaVK2TadbFLPWAQ4NBhHqDCCV7OTpo34AlSSylPtIdd2AJZlyzYQrDJ5lcWGNceD80CunPLGGzsfD+7wRb95NevJI5docQ3tgCyr5bGnyaPRlmwNsFELViOOx9loebGNq2moDOKpHLVP5al2cymWHbkfzGXL7kfRl44H9wZy33tvt+PB/Xnf93e+nh5ZlU18wCiRUa9m7kib9LYuOk+hudQNbxwm0AQqbfloimaB2lM5fChex+ylMwuTbfmXQtmWlenZljbdXTLuOxjI/fDDHY4Hjx8/Hrse0zXfPFxbUN1kKqSCCSk50m0Ajtx3ub9XHBKHXESb8iO6E+qGytF4nO0OG3SXzbJlhxBnKtKyl0NwybjvYCD30aMdjgePHz8eu56SVTBbgxJMliQ3Oauwg0QHxXE2Ez/EIReLdQj42Gzb4CLS0YJD9xUx7bsi0vJi5mUbW1QzL0h0PFk17rtiIPfJk52MB48fPx67npJJwyrBa2RCCQRTbGZSPCxTPOiND4G2pYyOQ4h4jINIJh5wFU1NFZt+IsZ59LSnDqBjZ2awbOku+yInunLcd8VA7rNnOxkPHj9+PGY9B0MWJJNozOJmlglvDMXDEozdhQWbgs/U6oBanGzLrdSNNnZFjOkmbi5bNt1lX7JLLhn3vXAg9/h4y/Hg8ePHI9dzQMEkWCgdRfYykYKnkP7D4rIujsujaKPBsB54vE2TS00ccvFY/Tth7JXeq1hz+qgVy04sAJawTsvOknHfCwdyT062HA8eP348Zj0vdoXF4pilKa2BROed+9fyw9rWRXeTFXESMOanvDZfJuJaSXouQdMdDJZtekZcLLvEeK04d8m474UDuaenW44Hjx8/Xns9YYqZpszGWB3AN/4VHw+k7WSFtJ3Qicuqb/NlVmgXWsxh570xg2UwxUw3WfO6B5nOuO8aA7lnZxuPB48fPx6znm1i4bsfcbaptF3zNT78eFPtwi1OaCNOqp1x3zUGcs/PN++AGD1+fMXrSVm2baTtPhPahbPhA71wIHd2bXzRa69nG+3CraTtPivahV/55tXWg8fyRY/9AdsY8VbSdp8V7cKrrgdfM//z6ILQFtJ2nxHtwmuoB4/kf74+gLeRtvvMaBdeSz34+vifx0YG20jbfTa0C6+tHrwe//NmOG0L8EbSdp8R7cLrrQe/996O+ai3ujQOskpTNULa7jOjXXj99eCd8lHvoFiwsbTdZ0a78PrrwTvlo966pLuRtB2fFe3Cm6oHP9kNH/W2FryxtN1nTLvwRurBO+Kj3pWXHidtx2dFu/Bm68Fb81HvykuPlrb7LGkX3mw9eGs+6h1Y8MbSdjegXcguQLjmevDpTQLMxtJ2N6NdyBZu9AbrwVvwUW+LbteULUpCdqm0HTelXbhNPe8G68Gb8lFvVfYfSNuxvrTdTWoXbozAzdaDZzfkorOj1oxVxlIMlpSIlpLrt8D4hrQL17z+c3h6hU/wv4Q/utps4+bm+6P/hIcf0JwQ5oQGPBL0eKPTYEXTW+eL/2DKn73J9BTXYANG57hz1cEMviVf/4tf5b/6C5pTQkMIWoAq7hTpOJjtAM4pxKu5vg5vXeUrtI09/Mo/5H+4z+Mp5xULh7cEm2QbRP2tFIKR7WM3fPf/jZ3SWCqLM2l4NxID5zB72HQXv3jj/8mLR5xXNA5v8EbFQEz7PpRfl1+MB/hlAN65qgDn3wTgH13hK7T59bmP+NIx1SHHU84nLOITt3iVz8mNO+lPrjGAnBFqmioNn1mTyk1ta47R6d4MrX7tjrnjYUpdUbv2rVr6YpVfsGG58AG8Ah9eyUN8CX4WfgV+G8LVWPDGb+Zd4cU584CtqSbMKxauxTg+dyn/LkVgA+IR8KHtejeFKRtTmLLpxN6mYVLjYxwXf5x2VofiZcp/lwKk4wGOpYDnoIZPdg/AAbwMfx0+ge9dgZvYjuqKe4HnGnykYo5TvJbG0Vj12JagRhwKa44H95ShkZa5RyLGGdfYvG7aw1TsF6iapPAS29mNS3NmsTQZCmgTzFwgL3upCTgtBTRwvGMAKrgLn4evwin8+afJRcff+8izUGUM63GOOuAs3tJkw7J4kyoNreqrpO6cYLQeFUd7TTpr5YOTLc9RUUogUOVJQ1GYJaFLAW0oTmKyYS46ZooP4S4EON3xQ5zC8/CX4CnM4c1PE8ApexpoYuzqlP3d4S3OJP8ZDK7cKWNaTlqmgDiiHwl1YsE41w1zT4iRTm3DBqxvOUsbMKKDa/EHxagtnta072ejc3DOIh5ojvh8l3tk1JF/AV6FU6jh3U8HwEazLgdCLYSQ+MYiAI2ltomkzttUb0gGHdSUUgsIYjTzLG3mObX4FBRaYtpDVNZrih9TgTeYOBxsEnN1gOCTM8Bsw/ieMc75w9kuAT6A+/AiHGvN/+Gn4KRkiuzpNNDYhDGFndWRpE6SVfm8U5bxnSgVV2jrg6JCKmneqey8VMFgq2+AM/i4L4RUbfSi27lNXZ7R7W9RTcq/q9fk4Xw3AMQd4I5ifAZz8FcVtm9SAom/dyN4lczJQW/kC42ZrHgcCoIf1oVMKkVItmMBi9cOeNHGLqOZk+QqQmrbc5YmYgxELUUN35z2iohstgfLIFmcMV7s4CFmI74L9+EFmGsi+tGnAOD4Yk9gIpo01Y4cA43BWGygMdr4YZekG3OBIUXXNukvJS8tqa06e+lSDCtnqqMFu6hWHXCF+WaYt64m9QBmNxi7Ioy7D+fa1yHw+FMAcPt7SysFLtoG4PXAk7JOA3aAxBRqUiAdU9Yp5lK3HLSRFtOim0sa8euEt08xvKjYjzeJ2GU7YawexrnKI9tmobInjFXCewpwriY9+RR4aaezFhMhGCppKwom0ChrgFlKzyPKkGlTW1YQrE9HJqu8hKGgMc6hVi5QRq0PZxNfrYNgE64utmRv6KKHRpxf6VDUaOvNP5jCEx5q185My/7RKz69UQu2im5k4/eownpxZxNLwiZ1AZTO2ZjWjkU9uaB2HFn6Q3u0JcsSx/qV9hTEApRzeBLDJQXxYmTnq7bdLa3+uqFrxLJ5w1TehnNHx5ECvCh2g2c3hHH5YsfdaSKddztfjQ6imKFGSyFwlLzxEGPp6r5IevVjk1AMx3wMqi1NxDVjLBiPs9tbsCkIY5we5/ML22zrCScFxnNtzsr9Wcc3CnD+pYO+4VXXiDE0oc/vQQ/fDK3oPESJMYXNmJa/DuloJZkcTpcYE8lIH8Dz8DJMiynNC86Mb2lNaaqP/+L7f2fcE/yP7/Lde8xfgSOdMxvOixZf/9p3+M4hT1+F+zApxg9XfUvYjc8qX2lfOOpK2gNRtB4flpFu9FTKCp2XJRgXnX6olp1zyYjTKJSkGmLE2NjUr1bxFM4AeAAHBUFIeSLqXR+NvH/M9fOnfHzOD2vCSyQJKzfgsCh+yi/Mmc35F2fUrw7miW33W9hBD1vpuUojFphIyvg7aTeoymDkIkeW3XLHmguMzbIAJejN6B5MDrhipE2y6SoFRO/AK/AcHHZHNIfiWrEe/C6cr3f/yOvrQKB+zMM55/GQdLDsR+ifr5Fiuu+/y+M78LzOE5dsNuXC3PYvYWd8NXvphLSkJIasrlD2/HOqQ+RjcRdjKTGWYhhVUm4yxlyiGPuMsZR7sMCHUBeTuNWA7if+ifXgc/hovftHXs/DV+Fvwe+f8shzMiMcweFgBly3//vwJfg5AN4450fn1Hd1Rm1aBLu22Dy3y3H2+OqMemkbGZ4jozcDjJf6596xOLpC0eMTHbKnxLxH27uZ/bMTGs2jOaMOY4m87CfQwF0dw53oa1k80JRuz/XgS+8fX3N9Af4qPIMfzKgCp4H5TDGe9GGeFPzSsZz80SlPTxXjgwJmC45njzgt2vbQ4b4OAdUK4/vWhO8d8v6EE8fMUsfakXbPpFJeLs2ubM/qdm/la3WP91uWhxXHjoWhyRUq2iJ/+5mA73zwIIo+LoZ/SgvIRjAd1IMvvn98PfgOvAJfhhm8scAKVWDuaRaK8aQ9f7vuPDH6Bj47ZXau7rqYJ66mTDwEDU6lLbCjCK0qTXyl5mnDoeNRxanj3FJbaksTk0faXxHxLrssgPkWB9LnA/MFleXcJozzjwsUvUG0X/QCve51qkMDXp9mtcyOy3rwBfdvVJK7D6/ACSzg3RoruIq5UDeESfEmVclDxnniU82vxMLtceD0hGZWzBNPMM/jSPne2OVatiTKUpY5vY7gc0LdUAWeWM5tH+O2I66AOWw9xT2BuyRVLGdoDHUsVRXOo/c+ZdRXvFfnxWyIV4upFLCl9eAL7h8Zv0QH8Ry8pA2cHzQpGesctVA37ZtklBTgHjyvdSeKY/RZw/kJMk0Y25cSNRWSigQtlULPTw+kzuJPeYEkXjQRpoGZobYsLF79pyd1dMRHInbgFTZqNLhDqiIsTNpoex2WLcy0/X6rHcdMMQvFSd5dWA++4P7xv89deACnmr36uGlL69bRCL6BSZsS6c0TU2TKK5gtWCzgAOOwQcurqk9j8whvziZSMLcq5hbuwBEsYjopUBkqw1yYBGpLA97SRElEmx5MCInBY5vgLk94iKqSWmhIGmkJ4Bi9m4L645J68LyY4wsFYBfUg5feP/6gWWm58IEmKQM89hq7KsZNaKtP5TxxrUZZVkNmMJtjbKrGxLNEbHPJxhqy7lAmbC32ZqeF6lTaknRWcYaFpfLUBh/rwaQycCCJmW15Kstv6jRHyJFry2C1ahkkIW0LO75s61+owxK1y3XqweX9m5YLM2DPFeOjn/iiqCKJ+yKXF8t5Yl/kNsqaSCryxPq5xWTFIaP8KSW0RYxqupaUf0RcTNSSdJZGcKYdYA6kdtrtmyBckfKXwqk0pHpUHlwWaffjNRBYFPUDWa8e3Lt/o0R0CdisKDM89cX0pvRHEfM8ca4t0s2Xx4kgo91MPQJ/0c9MQYq0co8MBh7bz1fio0UUHLR4aAIOvOmoYO6kwlEVODSSTliWtOtH6sPkrtctF9ZtJ9GIerBskvhdVS5cFNv9s1BU0AbdUgdK4FG+dRnjFmDTzniRMdZO1QhzMK355vigbdkpz9P6qjUGE5J2qAcXmwJ20cZUiAD0z+pGMx6xkzJkmEf40Hr4qZfVg2XzF9YOyoV5BjzVkUJngKf8lgNYwKECEHrCNDrWZzMlflS3yBhr/InyoUgBc/lKT4pxVrrC6g1YwcceK3BmNxZcAtz3j5EIpqguh9H6wc011YN75cKDLpFDxuwkrPQmUwW4KTbj9mZTwBwLq4aQMUZbHm1rylJ46dzR0dua2n3RYCWZsiHROeywyJGR7mXKlpryyCiouY56sFkBWEnkEB/raeh/Sw4162KeuAxMQpEkzy5alMY5wamMsWKKrtW2WpEWNnReZWONKWjrdsKZarpFjqCslq773PLmEhM448Pc3+FKr1+94vv/rfw4tEcu+lKTBe4kZSdijBrykwv9vbCMPcLQTygBjzVckSLPRVGslqdunwJ4oegtFOYb4SwxNgWLCmD7T9kVjTv5YDgpo0XBmN34Z/rEHp0sgyz7lngsrm4lvMm2Mr1zNOJYJ5cuxuQxwMGJq/TP5emlb8fsQBZviK4t8hFL+zbhtlpwaRSxQRWfeETjuauPsdGxsBVdO7nmP4xvzSoT29pRl7kGqz+k26B3Oy0YNV+SXbbQas1ctC/GarskRdFpKczVAF1ZXnLcpaMuzVe6lZ2g/1ndcvOVgRG3sdUAY1bKD6achijMPdMxV4muKVorSpiDHituH7rSTs7n/4y5DhRXo4FVBN4vO/zbAcxhENzGbHCzU/98Mcx5e7a31kWjw9FCe/zNeYyQjZsWb1uc7U33pN4Mji6hCLhivqfa9Ss6xLg031AgfesA/l99m9fgvnaF9JoE6bYKmkGNK3aPbHB96w3+DnxFm4hs0drLsk7U8kf/N/CvwQNtllna0rjq61sH8L80HAuvwH1tvBy2ChqWSCaYTaGN19sTvlfzFD6n+iKTbvtayfrfe9ueWh6GJFoxLdr7V72a5ZpvHcCPDzma0wTO4EgbLyedxstO81n57LYBOBzyfsOhUKsW1J1BB5vr/tz8RyqOFylQP9Tvst2JALsC5lsH8PyQ40DV4ANzYa4dedNiKNR1s+x2wwbR7q4/4cTxqEk4LWDebfisuo36JXLiWFjOtLrlNWh3K1rRS4xvHcDNlFnNmWBBAl5SWaL3oPOfnvbr5pdjVnEaeBJSYjuLEkyLLsWhKccadmOphZkOPgVdalj2QpSmfOsADhMWE2ZBu4+EEJI4wKTAuCoC4xwQbWXBltpxbjkXJtKxxabo9e7tyhlgb6gNlSbUpMh+l/FaqzVwewGu8BW1Zx7pTpQDJUjb8tsUTW6+GDXbMn3mLbXlXJiGdggxFAoUrtPS3wE4Nk02UZG2OOzlk7fRs7i95QCLo3E0jtrjnM7SR3uS1p4qtS2nJ5OwtQVHgOvArLBFijZUV9QtSl8dAY5d0E0hM0w3HS2DpIeB6m/A1+HfhJcGUq4sOxH+x3f5+VO+Ds9rYNI7zPXOYWPrtf8bYMx6fuOAX5jzNR0PdsuON+X1f7EERxMJJoU6GkTEWBvVolVlb5lh3tKCg6Wx1IbaMDdJ+9sUCc5KC46hKGCk3IVOS4TCqdBNfUs7Kd4iXf2RjnT/LLysJy3XDcHLh/vde3x8DoGvwgsa67vBk91G5Pe/HbOe7xwym0NXbtiuuDkGO2IJDh9oQvJ4cY4vdoqLDuoH9Zl2F/ofsekn8lkuhIlhQcffUtSjytFyp++p6NiE7Rqx/lodgKVoceEp/CP4FfjrquZaTtj2AvH5K/ywpn7M34K/SsoYDAdIN448I1/0/wveW289T1/lX5xBzc8N5IaHr0XMOQdHsIkDuJFifj20pBm5jzwUv9e2FhwRsvhAbalCIuIw3bhJihY3p6nTFFIZgiSYjfTf3aXuOjmeGn4bPoGvwl+CFzTRczBIuHBEeImHc37/lGfwZR0cXzVDOvaKfNHvwe+suZ771K/y/XcBlsoN996JpBhoE2toYxOznNEOS5TJc6Id5GEXLjrWo+LEWGNpPDU4WAwsIRROu+1vM+0oW37z/MBN9kqHnSArwPfgFJ7Cq/Ai3Ie7g7ncmI09v8sjzw9mzOAEXoIHxURueaAce5V80f/DOuuZwHM8vsMb5wBzOFWM7wymTXPAEvm4vcFpZ2ut0VZRjkiP2MlmLd6DIpbGSiHOjdnUHN90hRYmhTnmvhzp1iKDNj+b7t5hi79lWGwQ+HN9RsfFMy0FXbEwhfuczKgCbyxYwBmcFhhvo/7a44v+i3XWcwDP86PzpGQYdWh7csP5dBvZ1jNzdxC8pBGuxqSW5vw40nBpj5JhMwvOzN0RWqERHMr4Lv1kWX84xLR830G3j6yqZ1a8UstTlW+qJPOZ+sZ7xZPKTJLhiNOAFd6tk+jrTH31ncLOxid8+nzRb128HhUcru/y0Wn6iT254YPC6FtVSIMoW2sk727AhvTtrWKZTvgsmckfXYZWeNRXx/3YQ2OUxLDrbHtN11IwrgXT6c8dATDwLniYwxzO4RzuQqTKSC5gAofMZ1QBK3zQ4JWobFbcvJm87FK+6JXrKahLn54m3p+McXzzYtP8VF/QpJuh1OwieElEoI1pRxPS09FBrkq2tWCU59+HdhNtTIqKm8EBrw2RTOEDpG3IKo2Y7mFdLm3ZeVjYwVw11o/oznceMve4CgMfNym/utA/d/ILMR7gpXzRy9eDsgLcgbs8O2Va1L0zzIdwGGemTBuwROHeoMShkUc7P+ISY3KH5ZZeWqO8mFTxQYeXTNuzvvK5FGPdQfuu00DwYFY9dyhctEt+OJDdnucfpmyhzUJzfsJjr29l8S0bXBfwRS9ZT26tmMIdZucch5ZboMz3Nio3nIOsYHCGoDT4kUA9MiXEp9Xsui1S8th/kbWIrMBxDGLodWUQIWcvnXy+9M23xPiSMOiRPqM+YMXkUN3gXFrZJwXGzUaMpJfyRS9ZT0lPe8TpScuRlbMHeUmlaKDoNuy62iWNTWNFYjoxFzuJs8oR+RhRx7O4SVNSXpa0ZJQ0K1LAHDQ+D9IepkMXpcsq5EVCvClBUIzDhDoyKwDw1Lc59GbTeORivugw1IcuaEOaGWdNm+Ps5fQ7/tm0DjMegq3yM3vb5j12qUId5UZD2oxDSEWOZMSqFl/W+5oynWDa/aI04tJRQ2eTXusg86SQVu/nwSYwpW6wLjlqIzwLuxGIvoAvul0PS+ZNz0/akp/pniO/8JDnGyaCkzbhl6YcqmK/69prxPqtpx2+Km9al9sjL+rwMgHw4jE/C8/HQ3m1vBuL1fldbzd8mOueVJ92syqdEY4KJjSCde3mcRw2TA6szxedn+zwhZMps0XrqEsiUjnC1hw0TELC2Ek7uAAdzcheXv1BYLagspxpzSAoZZUsIzIq35MnFQ9DOrlNB30jq3L4pkhccKUAA8/ocvN1Rzx9QyOtERs4CVsJRK/DF71kPYrxYsGsm6RMh4cps5g1DOmM54Ly1ii0Hd3Y/BMk8VWFgBVmhqrkJCPBHAolwZaWzLR9Vb7bcWdX9NyUYE+uB2BKfuaeBUcjDljbYVY4DdtsVWvzRZdWnyUzDpjNl1Du3aloAjVJTNDpcIOVVhrHFF66lLfJL1zJr9PQ2nFJSBaKoDe+sAvLufZVHVzYh7W0h/c6AAZ+7Tvj6q9j68G/cTCS/3n1vLKHZwNi+P+pS0WkZNMBMUl+LDLuiE4omZy71r3UFMwNJV+VJ/GC5ixVUkBStsT4gGKh0Gm4Oy3qvq7Lbmq24nPdDuDR9deR11XzP4vFu3TYzfnIyiSVmgizUYGqkIXNdKTY9pgb9D2Ix5t0+NHkVzCdU03suWkkVZAoCONCn0T35gAeW38de43mf97sMOpSvj4aa1KYUm58USI7Wxxes03bAZdRzk6UtbzMaCQ6IxO0dy7X+XsjoD16hpsBeGz9dfzHj+R/Hp8nCxZRqkEDTaCKCSywjiaoMJ1TITE9eg7Jqnq8HL6gDwiZb0u0V0Rr/rmvqjxKuaLCX7ZWXTvAY+uvm3z8CP7nzVpngqrJpZKwWnCUjIviYVlirlGOzPLI3SMVyp/elvBUjjDkNhrtufFFErQ8pmdSlbK16toBHlt/HV8uHMX/vEGALkV3RJREiSlopxwdMXOZPLZ+ix+kAHpMKIk8UtE1ygtquttwxNhphrIZ1IBzjGF3IIGxGcBj6q8bHJBG8T9vdsoWrTFEuebEZuVxhhClH6P5Zo89OG9fwHNjtNQTpD0TG9PJLEYqvEY6Rlxy+ZZGfL0Aj62/bnQCXp//eeM4KzfQVJbgMQbUjlMFIm6TpcfWlZje7NBSV6IsEVmumWIbjiloUzQX9OzYdo8L1wjw2PrrpimONfmfNyzKklrgnEkSzT5QWYQW40YShyzqsRmMXbvVxKtGuYyMKaU1ugenLDm5Ily4iT14fP11Mx+xJv+zZ3MvnfdFqxU3a1W/FTB4m3Qfsyc1XUcdVhDeUDZXSFHHLQj/Y5jtC7ZqM0CXGwB4bP11i3LhOvzPGygYtiUBiwQV/4wFO0majijGsafHyRLu0yG6q35cL1rOpVxr2s5cM2jJYMCdc10Aj6q/blRpWJ//+dmm5psMl0KA2+AFRx9jMe2WbC4jQxnikd4DU8TwUjRVacgdlhmr3bpddzuJ9zXqr2xnxJfzP29RexdtjDVZqzkqa6PyvcojGrfkXiJ8SEtml/nYskicv0ivlxbqjemwUjMw5evdg8fUX9nOiC/lf94Q2i7MURk9nW1MSj5j8eAyV6y5CN2S6qbnw3vdA1Iwq+XOSCl663udN3IzLnrt+us25cI1+Z83SXQUldqQq0b5XOT17bGpLd6ssN1VMPf8c+jG8L3NeCnMdF+Ra3fRa9dft39/LuZ/3vwHoHrqGmQFafmiQw6eyzMxS05K4bL9uA+SKUQzCnSDkqOGokXyJvbgJ/BHI+qvY69//4rl20NsmK2ou2dTsyIALv/91/8n3P2Aao71WFGi8KKv1fRC5+J67Q/507/E/SOshqN5TsmYIjVt+kcjAx98iz/4SaojbIV1rexE7/C29HcYD/DX4a0rBOF5VTu7omsb11L/AWcVlcVZHSsqGuXLLp9ha8I//w3Mv+T4Ew7nTBsmgapoCrNFObIcN4pf/Ob/mrvHTGqqgAupL8qWjWPS9m/31jAe4DjA+4+uCoQoT/zOzlrNd3qd4SdphFxsUvYwGWbTWtISc3wNOWH+kHBMfc6kpmpwPgHWwqaSUG2ZWWheYOGQGaHB+eQ/kn6b3pOgLV+ODSn94wDvr8Bvb70/LLuiPPEr8OGVWfDmr45PZyccEmsVXZGe1pRNX9SU5+AVQkNTIVPCHF/jGmyDC9j4R9LfWcQvfiETmgMMUCMN1uNCakkweZsowdYobiMSlnKA93u7NzTXlSfe+SVbfnPQXmg9LpYAQxpwEtONyEyaueWM4FPjjyjG3uOaFmBTWDNgBXGEiQpsaWhnAqIijB07Dlsy3fUGeP989xbWkyf+FF2SNEtT1E0f4DYYVlxFlbaSMPIRMk/3iMU5pME2SIWJvjckciebkQuIRRyhUvkHg/iUljG5kzVog5hV7vIlCuBrmlhvgPfNHQM8lCf+FEGsYbMIBC0qC9a0uuy2wLXVbLBaP5kjHokCRxapkQyzI4QEcwgYHRZBp+XEFTqXFuNVzMtjXLJgX4gAid24Hjwc4N3dtVSe+NNiwTrzH4WVUOlDobUqr1FuAgYllc8pmzoVrELRHSIW8ViPxNy4xwjBpyR55I6J220qQTZYR4guvUICJiSpr9gFFle4RcF/OMB7BRiX8sSfhpNSO3lvEZCQfLUVTKT78Ek1LRLhWN+yLyTnp8qWUZ46b6vxdRGXfHVqx3eI75YaLa4iNNiK4NOW7wPW6lhbSOF9/M9qw8e/aoB3d156qTzxp8pXx5BKAsYSTOIIiPkp68GmTq7sZtvyzBQaRLNxIZ+paozHWoLFeExIhRBrWitHCAHrCF7/thhD8JhYz84wg93QRV88wLuLY8zF8sQ36qF1J455bOlgnELfshKVxYOXKVuKx0jaj22sczTQqPqtV/XDgpswmGTWWMSDw3ssyUunLLrVPGjYRsH5ggHeHSWiV8kT33ycFSfMgkoOK8apCye0J6VW6GOYvffgU9RWsukEi2kUV2nl4dOYUzRik9p7bcA4ggdJ53LxKcEe17B1R8eqAd7dOepV8sTXf5lhejoL85hUdhDdknPtKHFhljOT+bdq0hxbm35p2nc8+Ja1Iw+tJykgp0EWuAAZYwMVwac5KzYMslhvgHdHRrxKnvhTYcfKsxTxtTETkjHO7rr3zjoV25lAQHrqpV7bTiy2aXMmUhTBnKS91jhtR3GEoF0oLnWhWNnYgtcc4N0FxlcgT7yz3TgNIKkscx9jtV1ZKpWW+Ub1tc1eOv5ucdgpx+FJy9pgbLE7xDyXb/f+hLHVGeitHOi6A7ybo3sF8sS7w7cgdk0nJaOn3hLj3uyD0Zp5pazFIUXUpuTTU18d1EPkDoX8SkmWTnVIozEdbTcZjoqxhNHf1JrSS/AcvHjZ/SMHhL/7i5z+POsTUh/8BvNfYMTA8n+yU/MlTZxSJDRStqvEuLQKWwDctMTQogUDyQRoTQG5Kc6oQRE1yV1jCA7ri7jdZyK0sYTRjCR0Hnnd+y7nHxNgTULqw+8wj0mQKxpYvhjm9uSUxg+TTy7s2GtLUGcywhXSKZN275GsqlclX90J6bRI1aouxmgL7Q0Nen5ziM80SqMIo8cSOo+8XplT/5DHNWsSUr/6lLN/QQ3rDyzLruEW5enpf7KqZoShEduuSFOV7DLX7Ye+GmXb6/hnNNqKsVXuMDFpb9Y9eH3C6NGEzuOuI3gpMH/I6e+zDiH1fXi15t3vA1czsLws0TGEtmPEJdiiFPwlwKbgLHAFk4P6ZyPdymYYHGE0dutsChQBl2JcBFlrEkY/N5bQeXQ18gjunuMfMfsBlxJSx3niO485fwO4fGD5T/+3fPQqkneWVdwnw/3bMPkW9Wbqg+iC765Zk+xcT98ibKZc2EdgHcLoF8cSOo/Oc8fS+OyEULF4g4sJqXVcmfMfsc7A8v1/yfGXmL9I6Fn5pRwZhsPv0TxFNlAfZCvG+Oohi82UC5f/2IsJo0cTOm9YrDoKhFPEUr/LBYTUNht9zelHXDqwfPCIw4owp3mOcIQcLttWXFe3VZ/j5H3cIc0G6oPbCR+6Y2xF2EC5cGUm6wKC5tGEzhsWqw5hNidUiKX5gFWE1GXh4/Qplw4sVzOmx9QxU78g3EF6wnZlEN4FzJ1QPSLEZz1KfXC7vd8ssGdIbNUYpVx4UapyFUHzJoTOo1McSkeNn1M5MDQfs4qQuhhX5vQZFw8suwWTcyYTgioISk2YdmkhehG4PkE7w51inyAGGaU+uCXADabGzJR1fn3lwkty0asIo8cROm9Vy1g0yDxxtPvHDAmpu+PKnM8Ix1wwsGw91YJqhteaWgjYBmmQiebmSpwKKzE19hx7jkzSWOm66oPbzZ8Yj6kxVSpYjVAuvLzYMCRo3oTQecOOjjgi3NQ4l9K5/hOGhNTdcWVOTrlgYNkEXINbpCkBRyqhp+LdRB3g0OU6rMfW2HPCFFMV9nSp+uB2woepdbLBuJQyaw/ZFysXrlXwHxI0b0LovEkiOpXGA1Ijagf+KUNC6rKNa9bQnLFqYNkEnMc1uJrg2u64ELPBHpkgWbmwKpJoDhMwNbbGzAp7Yg31wS2T5rGtzit59PrKhesWG550CZpHEzpv2NGRaxlNjbMqpmEIzygJqQfjypycs2pg2cS2RY9r8HUqkqdEgKTWtWTKoRvOBPDYBltja2SO0RGjy9UHtxwRjA11ujbKF+ti5cIR9eCnxUg6owidtyoU5tK4NLji5Q3HCtiyF2IqLGYsHViOXTXOYxucDqG0HyttqYAKqYo3KTY1ekyDXRAm2AWh9JmsVh/ccg9WJ2E8YjG201sPq5ULxxX8n3XLXuMInbft2mk80rRGjCGctJ8/GFdmEQ9Ug4FlE1ll1Y7jtiraqm5Fe04VV8lvSVBL8hiPrfFVd8+7QH3Qbu2ipTVi8cvSGivc9cj8yvH11YMHdNSERtuOslM97feYFOPKzGcsI4zW0YGAbTAOaxCnxdfiYUmVWslxiIblCeAYr9VYR1gM7GmoPrilunSxxeT3DN/2eBQ9H11+nk1adn6VK71+5+Jfct4/el10/7KBZfNryUunWSCPxPECk1rdOv1WVSrQmpC+Tl46YD3ikQYcpunSQgzVB2VHFhxHVGKDgMEY5GLlQnP7FMDzw7IacAWnO6sBr12u+XanW2AO0wQ8pknnFhsL7KYIqhkEPmEXFkwaN5KQphbkUmG72wgw7WSm9RiL9QT925hkjiVIIhphFS9HKI6/8QAjlpXqg9W2C0apyaVDwKQwrwLY3j6ADR13ZyUNByQXHQu6RY09Hu6zMqXRaNZGS/KEJs0cJEe9VH1QdvBSJv9h09eiRmy0V2uJcqHcShcdvbSNg5fxkenkVprXM9rDVnX24/y9MVtncvbKY706anNl3ASll9a43UiacVquXGhvq4s2FP62NGKfQLIQYu9q1WmdMfmUrDGt8eDS0cXozH/fjmUH6Jruvm50hBDSaEU/2Ru2LEN/dl006TSc/g7tfJERxGMsgDUEr104pfWH9lQaN+M4KWQjwZbVc2rZVNHsyHal23wZtIs2JJqtIc/WLXXRFCpJkfE9jvWlfFbsNQ9pP5ZBS0zKh4R0aMFj1IjTcTnvi0Zz2rt7NdvQb2mgbju1plsH8MmbnEk7KbK0b+wC2iy3aX3szW8xeZvDwET6hWZYwqTXSSG+wMETKum0Dq/q+x62gt2ua2ppAo309TRk9TPazfV3qL9H8z7uhGqGqxNVg/FKx0HBl9OVUORn8Q8Jx9gFttGQUDr3tzcXX9xGgN0EpzN9mdZ3GATtPhL+CjxFDmkeEU6x56kqZRusLzALXVqkCN7zMEcqwjmywDQ6OhyUe0Xao1Qpyncrg6wKp9XfWDsaZplElvQ/b3sdweeghorwBDlHzgk1JmMc/wiERICVy2VJFdMjFuLQSp3S0W3+sngt2njwNgLssFGVQdJ0tu0KH4ky1LW4yrbkuaA6Iy9oz/qEMMXMMDWyIHhsAyFZc2peV9hc7kiKvfULxCl9iddfRK1f8kk9qvbdOoBtOg7ZkOZ5MsGrSHsokgLXUp9y88smniwWyuFSIRVmjplga3yD8Uij5QS1ZiM4U3Qw5QlSm2bXjFe6jzzBFtpg+/YBbLAWG7OPynNjlCw65fukGNdkJRf7yM1fOxVzbxOJVocFoYIaGwH22mIQkrvu1E2nGuebxIgW9U9TSiukPGU+Lt++c3DJPKhyhEEbXCQLUpae2exiKy6tMPe9mDRBFCEMTWrtwxN8qvuGnt6MoihKWS5NSyBhbH8StXoAz8PLOrRgLtOT/+4vcu+7vDLnqNvztOq7fmd8sMmY9Xzn1zj8Dq8+XVdu2Nv0IIySgEdQo3xVHps3Q5i3fLFsV4aiqzAiBhbgMDEd1uh8qZZ+lwhjkgokkOIv4xNJmyncdfUUzgB4oFMBtiu71Xumpz/P+cfUP+SlwFExwWW62r7b+LSPxqxn/gvMZ5z9C16t15UbNlq+jbGJtco7p8wbYlL4alSyfWdeuu0j7JA3JFNuVAwtst7F7FhWBbPFNKIUORndWtLraFLmMu7KFVDDOzqkeaiN33YAW/r76wR4XDN/yN1z7hejPau06EddkS/6XThfcz1fI/4K736fO48vlxt2PXJYFaeUkFS8U15XE3428xdtn2kc8GQlf1vkIaNRRnOMvLTWrZbElEHeLWi1o0dlKPAh1MVgbbVquPJ5+Cr8LU5/H/+I2QlHIU2ClXM9G8v7Rr7oc/hozfUUgsPnb3D+I+7WF8kNO92GY0SNvuxiE+2Bt8prVJTkzE64sfOstxuwfxUUoyk8VjcTlsqe2qITSFoSj6Epd4KsT6BZOWmtgE3hBfir8IzZDwgV4ZTZvD8VvPHERo8v+vL1DASHTz/i9OlKueHDjK5Rnx/JB1Vb1ioXdBra16dmt7dgik10yA/FwJSVY6XjA3oy4SqM2frqDPPSRMex9qs3XQtoWxMj7/Er8GWYsXgjaVz4OYumP2+9kbxvny/6kvWsEBw+fcb5bInc8APdhpOSs01tEqIkoiZjbAqKMruLbJYddHuHFRIyJcbdEdbl2sVLaySygunutBg96Y2/JjKRCdyHV+AEFtTvIpbKIXOamknYSiB6KV/0JetZITgcjjk5ZdaskBtWO86UF0ap6ozGXJk2WNiRUlCPFir66lzdm/SLSuK7EUdPz8f1z29Skq6F1fXg8+5UVR6bszncP4Tn4KUkkdJ8UFCY1zR1i8RmL/qQL3rlei4THG7OODlnKko4oI01kd3CaM08Ia18kC3GNoVaO9iDh+hWxSyTXFABXoau7Q6q9OxYg/OVEMw6jdbtSrJ9cBcewGmaZmg+bvkUnUUaGr+ZfnMH45Ivevl61hMcXsxYLFTu1hTm2zViCp7u0o5l+2PSUh9bDj6FgYypufBDhqK2+oXkiuHFHR3zfj+9PtA8oR0xnqX8qn+sx3bFODSbbF0X8EUvWQ8jBIcjo5bRmLOljDNtcqNtOe756h3l0VhKa9hDd2l1eqmsnh0MNMT/Cqnx6BInumhLT8luljzQ53RiJeA/0dxe5NK0o2fA1+GLXr6eNQWHNUOJssQaTRlGpLHKL9fD+IrQzTOMZS9fNQD4AnRNVxvTdjC+fJdcDDWQcyB00B0t9BDwTxXgaAfzDZ/DBXzRnfWMFRwuNqocOmX6OKNkY63h5n/fFcB28McVHqnXZVI27K0i4rDLNE9lDKV/rT+udVbD8dFFu2GGZ8mOt0kAXcoX3ZkIWVtw+MNf5NjR2FbivROHmhV1/pj2egv/fMGIOWTIWrV3Av8N9imV9IWml36H6cUjqEWNv9aNc+veb2sH46PRaHSuMBxvtW+twxctq0z+QsHhux8Q7rCY4Ct8lqsx7c6Sy0dl5T89rIeEuZKoVctIk1hNpfavER6yyH1Vvm3MbsUHy4ab4hWr/OZPcsRBphnaV65/ZcdYPNNwsjN/djlf9NqCw9U5ExCPcdhKxUgLSmfROpLp4WSUr8ojdwbncbvCf+a/YzRaEc6QOvXcGO256TXc5Lab9POvB+AWY7PigWYjzhifbovuunzRawsO24ZqQQAqguBtmpmPB7ysXJfyDDaV/aPGillgz1MdQg4u5MYaEtBNNHFjkRlSpd65lp4hd2AVPTfbV7FGpyIOfmNc/XVsPfg7vzaS/3nkvLL593ANLvMuRMGpQIhiF7kUEW9QDpAUbTWYBcbp4WpacHHY1aacqQyjGZS9HI3yCBT9kUZJhVOD+zUDvEH9ddR11fzPcTDQ5TlgB0KwqdXSavk9BC0pKp0WmcuowSw07VXmXC5guzSa4p0UvRw2lbDiYUx0ExJJRzWzi6Gm8cnEkfXXsdcG/M/jAJa0+bmCgdmQ9CYlNlSYZOKixmRsgiFxkrmW4l3KdFKv1DM8tk6WxPYJZhUUzcd8Kdtgrw/gkfXXDT7+avmfVak32qhtkg6NVdUS5wgkru1YzIkSduTW1FDwVWV3JQVJVuieTc0y4iDpFwc7/BvSalvKdQM8sv662cevz/+8sQVnjVAT0W2wLllw1JiMhJRxgDjCjLQsOzSFSgZqx7lAW1JW0e03yAD3asC+GD3NbQhbe+mN5GXH1F83KDOM4n/e5JIuH4NpdQARrFPBVptUNcjj4cVMcFSRTE2NpR1LEYbYMmfWpXgP9KejaPsLUhuvLCsVXznAG9dfx9SR1ud/3hZdCLHb1GMdPqRJgqDmm76mHbvOXDtiO2QPUcKo/TWkQ0i2JFXpBoo7vij1i1Lp3ADAo+qvG3V0rM//vFnnTE4hxd5Ka/Cor5YEdsLVJyKtDgVoHgtW11pWSjolPNMnrlrVj9Fv2Qn60twMwKPqr+N/wvr8z5tZcDsDrv06tkqyzESM85Ycv6XBWA2birlNCXrI6VbD2lx2L0vQO0QVTVVLH4SE67fgsfVXv8n7sz7/85Z7cMtbE6f088wSaR4kCkCm10s6pKbJhfqiUNGLq+0gLWC6eUAZFPnLjwqtKd8EwGvWX59t7iPW4X/eAN1svgRVSY990YZg06BD1ohLMtyFTI4pKTJsS9xREq9EOaPWiO2gpms7397x6nQJkbh+Fz2q/rqRROX6/M8bJrqlVW4l6JEptKeUFuMYUbtCQ7CIttpGc6MY93x1r1vgAnRXvY5cvwWPqb9uWQm+lP95QxdNMeWhOq1x0Db55C7GcUv2ZUuN6n8iKzsvOxibC//Yfs9Na8r2Rlz02vXXDT57FP/zJi66/EJSmsJKa8QxnoqW3VLQ+jZVUtJwJ8PNX1NQCwfNgdhhHD9on7PdRdrdGPF28rJr1F+3LBdeyv+8yYfLoMYet1vX4upNAjVvwOUWnlNXJXlkzk5Il6kqeoiL0C07qno+/CYBXq/+utlnsz7/Mzvy0tmI4zm4ag23PRN3t/CWryoUVJGm+5+K8RJ0V8Hc88/XHUX/HfiAq7t+BH+x6v8t438enWmdJwFA6ZINriLGKv/95f8lT9/FnyA1NMVEvQyaXuu+gz36f/DD73E4pwqpLcvm/o0Vle78n//+L/NPvoefp1pTJye6e4A/D082FERa5/opeH9zpvh13cNm19/4v/LDe5xMWTi8I0Ta0qKlK27AS/v3/r+/x/2GO9K2c7kVMonDpq7//jc5PKCxeNPpFVzaRr01wF8C4Pu76hXuX18H4LduTr79guuFD3n5BHfI+ZRFhY8w29TYhbbLi/bvBdqKE4fUgg1pBKnV3FEaCWOWyA+m3WpORZr/j+9TKJtW8yBTF2/ZEODI9/QavHkVdGFp/Pjn4Q+u5hXapsP5sOH+OXXA1LiKuqJxiMNbhTkbdJTCy4llEt6NnqRT4dhg1V3nbdrm6dYMecA1yTOL4PWTE9L5VzPFlLBCvlG58AhehnN4uHsAYinyJ+AZ/NkVvELbfOBUuOO5syBIEtiqHU1k9XeISX5bsimrkUUhnGDxourN8SgUsCZVtKyGbyGzHXdjOhsAvOAswSRyIBddRdEZWP6GZhNK/yjwew9ehBo+3jEADu7Ay2n8mDc+TS7awUHg0OMzR0LABhqLD4hJEh/BEGyBdGlSJoXYXtr+3HS4ijzVpgi0paWXtdruGTknXBz+11qT1Q2inxaTzQCO46P3lfLpyS4fou2PH/PupwZgCxNhGlj4IvUuWEsTkqMWm6i4xCSMc9N1RDQoCVcuGItJ/MRWefais+3synowi/dESgJjkilnWnBTGvRWmaw8oR15257t7CHmCf8HOn7cwI8+NQBXMBEmAa8PMRemrNCEhLGEhDQKcGZWS319BX9PFBEwGTbRBhLbDcaV3drFcDqk5kCTd2JF1Wp0HraqBx8U0wwBTnbpCadwBA/gTH/CDrcCs93LV8E0YlmmcyQRQnjBa8JESmGUfIjK/7fkaDJpmD2QptFNVJU1bbtIAjjWQizepOKptRjbzR9Kag6xZmMLLjHOtcLT3Tx9o/0EcTT1XN3E45u24AiwEypDJXihKjQxjLprEwcmRKclaDNZCVqr/V8mYWyFADbusiY5hvgFoU2vio49RgJLn5OsReRFN6tabeetiiy0V7KFHT3HyZLx491u95sn4K1QQSPKM9hNT0wMVvAWbzDSVdrKw4zRjZMyJIHkfq1VAVCDl/bUhNKlGq0zGr05+YAceXVPCttVk0oqjVwMPt+BBefx4yPtGVkUsqY3CHDPiCM5ngupUwCdbkpd8kbPrCWHhkmtIKLEetF2499eS1jZlIPGYnlcPXeM2KD9vLS0bW3ktYNqUllpKLn5ZrsxlIzxvDu5eHxzGLctkZLEY4PgSOg2IUVVcUONzUDBEpRaMoXNmUc0tFZrTZquiLyKxrSm3DvIW9Fil+AkhXu5PhEPx9mUNwqypDvZWdKlhIJQY7vn2OsnmBeOWnYZ0m1iwbbw1U60by5om47iHRV6fOgzjMf/DAZrlP40Z7syxpLK0lJ0gqaAK1c2KQKu7tabTXkLFz0sCftuwX++MyNeNn68k5Buq23YQhUh0SNTJa1ioQ0p4nUG2y0XilF1JqODqdImloPS4Bp111DEWT0jJjVv95uX9BBV7eB3bUWcu0acSVM23YZdd8R8UbQUxJ9wdu3oMuhdt929ME+mh6JXJ8di2RxbTi6TbrDquqV4aUKR2iwT6aZbyOwEXN3DUsWr8Hn4EhwNyHuXHh7/pdaUjtR7vnDh/d8c9xD/s5f501eQ1+CuDiCvGhk1AN/4Tf74RfxPwD3toLarR0zNtsnPzmS64KIRk861dMWCU8ArasG9T9H0ZBpsDGnjtAOM2+/LuIb2iIUGXNgl5ZmKD/Tw8TlaAuihaFP5yrw18v4x1898zIdP+DDAX1bM3GAMvPgRP/cJn3zCW013nrhHkrITyvYuwOUkcHuKlRSW5C6rzIdY4ppnF7J8aAJbQepgbJYBjCY9usGXDKQxq7RZfh9eg5d1UHMVATRaD/4BHK93/1iAgYZ/+jqPn8Dn4UExmWrpa3+ZOK6MvM3bjwfzxNWA2dhs8+51XHSPJiaAhGSpWevEs5xHLXcEGFXYiCONySH3fPWq93JIsBiSWvWyc3CAN+EcXoT7rCSANloPPoa31rt/5PUA/gp8Q/jDD3hyrjzlR8VkanfOvB1XPubt17vzxAfdSVbD1pzAnfgyF3ycadOTOTXhpEUoLC1HZyNGW3dtmjeXgr2r56JNmRwdNNWaQVBddd6rh4MhviEB9EFRD/7RGvePvCbwAL4Mx/D6M541hHO4D3e7g6PafdcZVw689z7NGTwo5om7A8sPhccT6qKcl9NJl9aM/9kX+e59Hh1yPqGuCCZxuITcsmNaJ5F7d0q6J3H48TO1/+M57085q2icdu2U+W36Ldllz9Agiv4YGljoEN908EzvDOrBF98/vtJwCC/BF2AG75xxEmjmMIcjxbjoaxqOK3/4hPOZzhMPBpYPG44CM0dTVm1LjLtUWWVz1Bcf8tEx0zs8O2A2YVHRxKYOiy/aOVoAaMu0i7ubu43njjmd4ibMHU1sIDHaQNKrZND/FZYdk54oCXetjq7E7IVl9eAL7t+oHnwXXtLx44czzoRFHBztYVwtH1d+NOMkupZ5MTM+gUmq90X+Bh9zjRlmaQ+m7YMqUL/veemcecAtOJ0yq1JnVlN27di2E0+Klp1tAJ4KRw1eMI7aJjsO3R8kPSI3fUFXnIOfdQe86sIIVtWDL7h//Ok6vj8vwDk08NEcI8zz7OhBy+WwalzZeZ4+0XniRfst9pAJqQHDGLzVQ2pheZnnv1OWhwO43/AgcvAEXEVVpa4db9sGvNK8wjaENHkfFQ4Ci5i7dqnQlPoLQrHXZDvO3BIXZbJOBrOaEbML6sFL798I4FhKihjHMsPjBUZYCMFr6nvaArxqXPn4lCa+cHfSa2cP27g3Z3ziYTRrcbQNGLQmGF3F3cBdzzzX7AILx0IB9rbwn9kx2G1FW3Inic+ZLIsVvKR8Zwfj0l1fkqo8LWY1M3IX14OX3r9RKTIO+d9XzAI8qRPGPn/4NC2n6o4rN8XJ82TOIvuVA8zLKUHRFgBCetlDZlqR1gLKjS39xoE7Bt8UvA6BxuEDjU3tFsEijgA+615tmZkXKqiEENrh41iLDDZNq4pKTWR3LZfnos81LOuNa15cD956vLMsJd1rqYp51gDUQqMYm2XsxnUhD2jg1DM7SeuJxxgrmpfISSXVIJIS5qJJSvJPEQ49DQTVIbYWJ9QWa/E2+c/oPK1drmC7WSfJRNKBO5Yjvcp7Gc3dmmI/Xh1kDTEuiSnWqQf37h+fTMhGnDf6dsS8SQfQWlqqwXXGlc/PEZ/SC5mtzIV0nAshlQdM/LvUtYutrEZ/Y+EAFtq1k28zQhOwLr1AIeANzhF8t9qzTdZf2qRKO6MWE9ohBYwibbOmrFtNmg3mcS+tB28xv2uKd/agYCvOP+GkSc+0lr7RXzyufL7QbkUpjLjEWFLqOIkAGu2B0tNlO9Eau2W1qcOUvVRgKzypKIQZ5KI3q0MLzqTNRYqiZOqmtqloIRlmkBHVpHmRYV6/HixbO6UC47KOFJnoMrVyr7wYz+SlW6GUaghYbY1I6kkxA2W1fSJokUdSh2LQ1GAimRGm0MT+uu57H5l7QgOWxERpO9moLRPgTtquWCfFlGlIjQaRly9odmzMOWY+IBO5tB4sW/0+VWGUh32qYk79EidWKrjWuiLpiVNGFWFRJVktyeXWmbgBBzVl8anPuXyNJlBJOlKLTgAbi/EYHVHxWiDaVR06GnHQNpJcWcK2jJtiCfG2sEHLzuI66sGrMK47nPIInPnu799935aOK2cvmvubrE38ZzZjrELCmXM2hM7UcpXD2oC3+ECVp7xtIuxptJ0jUr3sBmBS47TVxlvJ1Sqb/E0uLdvLj0lLr29ypdd/eMX3f6lrxGlKwKQxEGvw0qHbkbwrF3uHKwVENbIV2wZ13kNEF6zD+x24aLNMfDTCbDPnEikZFyTNttxWBXDaBuM8KtI2rmaMdUY7cXcUPstqTGvBGSrFWIpNMfbdea990bvAOC1YX0qbc6smDS1mPxSJoW4fwEXvjMmhlijDRq6qale6aJEuFGoppYDoBELQzLBuh/mZNx7jkinv0EtnUp50lO9hbNK57lZaMAWuWR5Yo9/kYwcYI0t4gWM47Umnl3YmpeBPqSyNp3K7s2DSAS/39KRuEN2bS4xvowV3dFRMx/VFcp2Yp8w2nTO9hCXtHG1kF1L4KlrJr2wKfyq77R7MKpFKzWlY9UkhYxyHWW6nBWPaudvEAl3CGcNpSXPZ6R9BbBtIl6cHL3gIBi+42CYXqCx1gfGWe7Ap0h3luyXdt1MKy4YUT9xSF01G16YEdWsouW9mgDHd3veyA97H+Ya47ZmEbqMY72oPztCGvK0onL44AvgC49saZKkWRz4veWljE1FHjbRJaWv6ZKKtl875h4CziFCZhG5rx7tefsl0aRT1bMHZjm8dwL/6u7wCRysaQblQoG5yAQN5zpatMNY/+yf8z+GLcH/Qn0iX2W2oEfXP4GvwQHuIL9AYGnaO3zqAX6946nkgqZNnUhx43DIdQtMFeOPrgy/y3Yd85HlJWwjLFkU3kFwq28xPnuPhMWeS+tDLV9Otllq7pQCf3uXJDN9wFDiUTgefHaiYbdfi3b3u8+iY6TnzhgehI1LTe8lcd7s1wJSzKbahCRxKKztTLXstGAiu3a6rPuQs5pk9TWAan5f0BZmGf7Ylxzzk/A7PAs4QPPPAHeFQ2hbFHszlgZuKZsJcUmbDC40sEU403cEjczstOEypa+YxevL4QBC8oRYqWdK6b7sK25tfE+oDZgtOQ2Jg8T41HGcBE6fTWHn4JtHcu9S7uYgU5KSCkl/mcnq+5/YBXOEr6lCUCwOTOM1taOI8mSxx1NsCXBEmLKbMAg5MkwbLmpBaFOPrNSlO2HnLiEqW3tHEwd8AeiQLmn+2gxjC3k6AxREqvKcJbTEzlpLiw4rNZK6oJdidbMMGX9FULKr0AkW+2qDEPBNNm5QAt2Ik2nftNWHetubosHLo2nG4vQA7GkcVCgVCgaDixHqo9UUn1A6OshapaNR/LPRYFV8siT1cCtJE0k/3WtaNSuUZYKPnsVIW0xXWnMUxq5+En4Kvw/MqQmVXnAXj9Z+9zM98zM/Agy7F/qqj2Nh67b8HjFnPP3iBn/tkpdzwEJX/whIcQUXOaikeliCRGUk7tiwF0rItwMEhjkZ309hikFoRAmLTpEXWuHS6y+am/KB/fM50aLEhGnSMwkpxzOov4H0AvgovwJ1iGzDLtJn/9BU+fAINfwUe6FHSLhu83viV/+/HrOePX+STT2B9uWGbrMHHLldRBlhS/CJQmcRxJFqZica01XixAZsYiH1uolZxLrR/SgxVIJjkpQP4PE9sE59LKLr7kltSBogS5tyszzH8Fvw8/AS8rNOg0xUS9fIaHwb+6et8Q/gyvKRjf5OusOzGx8evA/BP4IP11uN/grca5O0lcsPLJ5YjwI4QkJBOHa0WdMZYGxPbh2W2nR9v3WxEWqgp/G3+6VZbRLSAAZ3BhdhAaUL33VUSw9yjEsvbaQ9u4A/gGXwZXoEHOuU1GSj2chf+Mo+f8IcfcAxfIKVmyunRbYQVnoevwgfw3TXXcw++xNuP4fhyueEUNttEduRVaDttddoP0eSxLe2LENk6itYxlrxBNBYrNNKSQmeaLcm9c8UsaB5WyO6675yyQIAWSDpBVoA/gxmcwEvwoDv0m58UE7gHn+fJOa8/Ywan8EKRfjsopF83eCglX/Sfr7OeaRoQfvt1CGvIDccH5BCvw1sWIzRGC/66t0VTcLZQZtm6PlAasbOJ9iwWtUo7biktTSIPxnR24jxP1ZKaqq+2RcXM9OrBAm/AAs7hDJ5bNmGb+KIfwCs8a3jnjBrOFeMjHSCdbKr+2uOLfnOd9eiA8Hvvwwq54VbP2OqwkB48Ytc4YEOiH2vTXqodabfWEOzso4qxdbqD5L6tbtNPECqbhnA708DZH4QOJUXqScmUlks7Ot6FBuZw3n2mEbaUX7kDzxHOOQk8nKWMzAzu6ZZ8sOFw4RK+6PcuXo9tB4SbMz58ApfKDXf3szjNIIbGpD5TKTRxGkEMLjLl+K3wlWXBsCUxIDU+jbOiysESqAy1MGUJpXgwbTWzNOVEziIXZrJ+VIztl1PUBxTSo0dwn2bOmfDRPD3TRTGlfbCJvO9KvuhL1hMHhB9wPuPRLGHcdOWG2xc0U+5bQtAJT0nRTewXL1pgk2+rZAdeWmz3jxAqfNQQdzTlbF8uJ5ecEIWvTkevAHpwz7w78QujlD/Lr491bD8/1vhM2yrUQRrWXNQY4fGilfctMWYjL72UL/qS9eiA8EmN88nbNdour+PBbbAjOjIa4iBhfFg6rxeKdEGcL6p3EWR1Qq2Qkhs2DrnkRnmN9tG2EAqmgPw6hoL7Oza7B+3SCrR9tRftko+Lsf2F/mkTndN2LmzuMcKTuj/mX2+4Va3ki16+nnJY+S7MefpkidxwnV+4wkXH8TKnX0tsYzYp29DOOoSW1nf7nTh2akYiWmcJOuTidSaqESrTYpwjJJNVGQr+rLI7WsqerHW6Kp/oM2pKuV7T1QY9gjqlZp41/WfKpl56FV/0kvXQFRyeQ83xaTu5E8p5dNP3dUF34ihyI3GSpeCsywSh22ZJdWto9winhqifb7VRvgktxp13vyjrS0EjvrRfZ62uyqddSWaWYlwTPAtJZ2oZ3j/Sgi/mi+6vpzesfAcWNA0n8xVyw90GVFGuZjTXEQy+6GfLGLMLL523f5E0OmxVjDoOuRiH91RKU+vtoCtH7TgmvBLvtFXWLW15H9GTdVw8ow4IlRLeHECN9ym1e9K0I+Cbnhgv4Yu+aD2HaQJ80XDqOzSGAV4+4yCqBxrsJAX6ZTIoX36QnvzhhzzMfFW2dZVLOJfo0zbce5OvwXMFaZ81mOnlTVXpDZsQNuoYWveketKb5+6JOOsgX+NTm7H49fUTlx+WLuWL7qxnOFh4BxpmJx0p2gDzA/BUARuS6phR+pUsY7MMboAHx5xNsSVfVZcYSwqCKrqon7zM+8ecCkeS4nm3rINuaWvVNnMRI1IRpxTqx8PZUZ0Br/UEduo3B3hNvmgZfs9gQPj8vIOxd2kndir3awvJ6BLvoUuOfFWNYB0LR1OQJoUySKb9IlOBx74q1+ADC2G6rOdmFdJcD8BkfualA+BdjOOzP9uUhGUEX/TwhZsUduwRr8wNuXKurCixLBgpQI0mDbJr9dIqUuV+92ngkJZ7xduCk2yZKbfWrH1VBiTg9VdzsgRjW3CVXCvAwDd+c1z9dWw9+B+8MJL/eY15ZQ/HqvTwVdsZn5WQsgRRnMaWaecu3jFvMBEmgg+FJFZsnSl0zjB9OqPYaBD7qmoVyImFvzi41usesV0julaAR9dfR15Xzv9sEruRDyk1nb+QaLU67T885GTls6YgcY+UiMa25M/pwGrbCfzkvR3e0jjtuaFtnwuagHTSb5y7boBH119HXhvwP487jJLsLJ4XnUkHX5sLbS61dpiAXRoZSCrFJ+EjpeU3puVfitngYNo6PJrAigKktmwjyQdZpfq30mmtulaAx9Zfx15Xzv+cyeuiBFUs9zq8Kq+XB9a4PVvph3GV4E3y8HENJrN55H1X2p8VyqSKwVusJDKzXOZzplWdzBUFK9e+B4+uv468xvI/b5xtSAkBHQaPvtqWzllVvEOxPbuiE6+j2pvjcKsbvI7txnRErgfH7LdXqjq0IokKzga14GzQ23SSbCQvO6r+Or7SMIr/efOkkqSdMnj9mBx2DRsiY29Uj6+qK9ZrssCKaptR6HKURdwUYeUWA2kPzVKQO8ku2nU3Anhs/XWkBx3F/7wJtCTTTIKftthue1ty9xvNYLY/zo5KSbIuKbXpbEdSyeRyYdAIwKY2neyoc3+k1XUaufYga3T9daMUx/r8z1s10ITknIO0kuoMt+TB8jK0lpayqqjsJ2qtXAYwBU932zinimgmd6mTRDnQfr88q36NAI+tv24E8Pr8zxtasBqx0+xHH9HhlrwsxxNUfKOHQaZBITNf0uccj8GXiVmXAuPEAKSdN/4GLHhs/XWj92dN/uetNuBMnVR+XWDc25JLjo5Mg5IZIq226tmCsip2zZliL213YrTlL2hcFjpCduyim3M7/eB16q/blQsv5X/esDRbtJeabLIosWy3ycavwLhtxdWzbMmHiBTiVjJo6lCLjXZsi7p9PEPnsq6X6wd4bP11i0rD5fzPm/0A6brrIsllenZs0lCJlU4abakR59enZKrKe3BZihbTxlyZ2zl1+g0wvgmA166/bhwDrcn/7Ddz0eWZuJvfSESug6NzZsox3Z04FIxz0mUjMwVOOVTq1CQ0AhdbBGVdjG/CgsfUX7esJl3K/7ytWHRv683praW/8iDOCqWLLhpljDY1ZpzK75QiaZoOTpLKl60auHS/97oBXrv+umU9+FL+5+NtLFgjqVLCdbmj7pY5zPCPLOHNCwXGOcLquOhi8CmCWvbcuO73XmMUPab+ug3A6/A/78Bwe0bcS2+tgHn4J5pyS2WbOck0F51Vq3LcjhLvZ67p1ABbaL2H67bg78BfjKi/jr3+T/ABV3ilLmNXTI2SpvxWBtt6/Z//D0z/FXaGbSBgylzlsEGp+5//xrd4/ae4d8DUUjlslfIYS3t06HZpvfQtvv0N7AHWqtjP2pW08QD/FLy//da38vo8PNlKHf5y37Dxdfe/oj4kVIgFq3koLReSR76W/bx//n9k8jonZxzWTANVwEniDsg87sOSd/z7//PvMp3jQiptGVWFX2caezzAXwfgtzYUvbr0iozs32c3Uge7varH+CNE6cvEYmzbPZ9hMaYDdjK4V2iecf6EcEbdUDVUARda2KzO/JtCuDbNQB/iTeL0EG1JSO1jbXS+nLxtPMDPw1fh5+EPrgSEKE/8Gry5A73ui87AmxwdatyMEBCPNOCSKUeRZ2P6Myb5MRvgCHmA9ywsMifU+AYXcB6Xa5GibUC5TSyerxyh0j6QgLVpdyhfArRTTLqQjwe4HOD9s92D4Ap54odXAPBWLAwB02igG5Kkc+piN4lvODIFGAZgT+EO4Si1s7fjSR7vcQETUkRm9O+MXyo9OYhfe4xt9STQ2pcZRLayCV90b4D3jR0DYAfyxJ+eywg2IL7NTMXna7S/RpQ63JhWEM8U41ZyQGjwsVS0QBrEKLu8xwZsbi4wLcCT+OGidPIOCe1PiSc9Qt+go+vYqB7cG+B9d8cAD+WJPz0Am2gxXgU9IneOqDpAAXOsOltVuMzpdakJXrdPCzXiNVUpCeOos5cxnpQT39G+XVLhs1osQVvJKPZyNq8HDwd4d7pNDuWJPxVX7MSzqUDU6gfadKiNlUFTzLeFHHDlzO4kpa7aiKhBPGKwOqxsBAmYkOIpipyXcQSPlRTf+Tii0U3EJGaZsDER2qoB3h2hu0qe+NNwUooYU8y5mILbJe6OuX+2FTKy7bieTDAemaQyQ0CPthljSWO+xmFDIYiESjM5xKd6Ik5lvLq5GrQ3aCMLvmCA9wowLuWJb9xF59hVVP6O0CrBi3ZjZSNOvRy+I6klNVRJYRBaEzdN+imiUXQ8iVF8fsp+W4JXw7WISW7fDh7lptWkCwZ4d7QTXyBPfJMYK7SijjFppGnlIVJBJBYj7eUwtiP1IBXGI1XCsjNpbjENVpSAJ2hq2LTywEly3hUYazt31J8w2+aiLx3g3fohXixPfOMYm6zCGs9LVo9MoW3MCJE7R5u/WsOIjrqBoHUO0bJE9vxBpbhsd3+Nb4/vtPCZ4oZYCitNeYuC/8UDvDvy0qvkiW/cgqNqRyzqSZa/s0mqNGjtKOoTm14zZpUauiQgVfqtQiZjq7Q27JNaSK5ExRcrGCXO1FJYh6jR6CFqK7bZdQZ4t8g0rSlPfP1RdBtqaa9diqtzJkQ9duSryi2brQXbxDwbRUpFMBHjRj8+Nt7GDKgvph9okW7LX47gu0SpGnnFQ1S1lYldOsC7hYteR574ZuKs7Ei1lBsfdz7IZoxzzCVmmVqaSySzQbBVAWDek+N4jh9E/4VqZrJjPwiv9BC1XcvOWgO8275CVyBPvAtTVlDJfZkaZGU7NpqBogAj/xEHkeAuJihWYCxGN6e8+9JtSegFXF1TrhhLGP1fak3pebgPz192/8gB4d/6WT7+GdYnpH7hH/DJzzFiYPn/vjW0SgNpTNuPIZoAEZv8tlGw4+RLxy+ZjnKa5NdFoC7UaW0aduoYse6+bXg1DLg6UfRYwmhGEjqPvF75U558SANrElK/+MdpXvmqBpaXOa/MTZaa1DOcSiLaw9j0NNNst3c+63c7EKTpkvKHzu6bPbP0RkuHAVcbRY8ijP46MIbQeeT1mhA+5PV/inyDdQipf8LTvMXbwvoDy7IruDNVZKTfV4CTSRUYdybUCnGU7KUTDxLgCknqUm5aAW6/1p6eMsOYsphLzsHrE0Y/P5bQedx1F/4yPHnMB3/IOoTU9+BL8PhtjuFKBpZXnYNJxTuv+2XqolKR2UQgHhS5novuxVySJhBNRF3SoKK1XZbbXjVwWNyOjlqWJjrWJIy+P5bQedyldNScP+HZ61xKSK3jyrz+NiHG1hcOLL/+P+PDF2gOkekKGiNWKgJ+8Z/x8Iv4DdQHzcpZyF4v19I27w9/yPGDFQvmEpKtqv/TLiWMfn4sofMm9eAH8Ao0zzh7h4sJqYtxZd5/D7hkYPneDzl5idlzNHcIB0jVlQ+8ULzw/nc5/ojzl2juE0apD7LRnJxe04dMz2iOCFNtGFpTuXA5AhcTRo8mdN4kz30nVjEC4YTZQy4gpC7GlTlrePKhGsKKgeXpCYeO0MAd/GH7yKQUlXPLOasOH3FnSphjHuDvEu4gB8g66oNbtr6eMbFIA4fIBJkgayoXriw2XEDQPJrQeROAlY6aeYOcMf+IVYTU3XFlZufMHinGywaW3YLpObVBAsbjF4QJMsVUSayjk4voPsHJOQfPWDhCgDnmDl6XIRerD24HsGtw86RMHOLvVSHrKBdeVE26gKB5NKHzaIwLOmrqBWJYZDLhASG16c0Tn+CdRhWDgWXnqRZUTnPIHuMJTfLVpkoYy5CzylHVTGZMTwkGAo2HBlkQplrJX6U+uF1wZz2uwS1SQ12IqWaPuO4baZaEFBdukksJmkcTOm+YJSvoqPFzxFA/YUhIvWxcmSdPWTWwbAKVp6rxTtPFUZfKIwpzm4IoMfaYQLWgmlG5FME2gdBgm+J7J+rtS/XBbaVLsR7bpPQnpMFlo2doWaVceHk9+MkyguZNCJ1He+kuHTWyQAzNM5YSUg/GlTk9ZunAsg1qELVOhUSAK0LABIJHLKbqaEbHZLL1VA3VgqoiOKXYiS+HRyaEKgsfIqX64HYWbLRXy/qWoylIV9gudL1OWBNgBgTNmxA6b4txDT4gi3Ri7xFSLxtXpmmYnzAcWDZgY8d503LFogz5sbonDgkKcxGsWsE1OI+rcQtlgBBCSOKD1mtqYpIU8cTvBmAT0yZe+zUzeY92fYjTtGipXLhuR0ePoHk0ofNWBX+lo8Z7pAZDk8mEw5L7dVyZZoE/pTewbI6SNbiAL5xeygW4xPRuLCGbhcO4RIeTMFYHEJkYyEO9HmJfXMDEj/LaH781wHHZEtqSQ/69UnGpzH7LKIAZEDSPJnTesJTUa+rwTepI9dLJEawYV+ZkRn9g+QirD8vF8Mq0jFQ29js6kCS3E1+jZIhgPNanHdHFqFvPJLHqFwQqbIA4jhDxcNsOCCQLDomaL/dr5lyJaJU6FxPFjO3JOh3kVMcROo8u+C+jo05GjMF3P3/FuDLn5x2M04xXULPwaS6hBYki+MrMdZJSgPHlcB7nCR5bJ9Kr5ACUn9jk5kivdd8tk95SOGrtqu9lr2IhK65ZtEl7ZKrp7DrqwZfRUSN1el7+7NJxZbywOC8neNKTch5vsTEMNsoCCqHBCqIPRjIPkm0BjvFODGtto99rCl+d3wmHkW0FPdpZtC7MMcVtGFQjJLX5bdQ2+x9ypdc313uj8xlsrfuLgWXz1cRhZvJYX0iNVBRcVcmCXZs6aEf3RQF2WI/TcCbKmGU3IOoDJGDdDub0+hYckt6PlGu2BcxmhbTdj/klhccLGJMcqRjMJP1jW2ETqLSWJ/29MAoORluJ+6LPffBZbi5gqi5h6catQpmOT7/OFf5UorRpLzCqcMltBLhwd1are3kztrSzXO0LUbXRQcdLh/RdSZ+swRm819REDrtqzC4es6Gw4JCKlSnjYVpo0xeq33PrADbFLL3RuCmObVmPN+24kfa+AojDuM4umKe2QwCf6EN906HwjujaitDs5o0s1y+k3lgbT2W2i7FJdnwbLXhJUBq/9liTctSmFC/0OqUinb0QddTWamtjbHRFuWJJ6NpqZ8vO3fZJ37Db+2GkaPYLGHs7XTTdiFQJ68SkVJFVmY6McR5UycflNCsccHFaV9FNbR4NttLxw4pQ7wJd066Z0ohVbzihaxHVExd/ay04oxUKWt+AsdiQ9OUyZ2krzN19IZIwafSTFgIBnMV73ADj7V/K8u1MaY2sJp2HWm0f41tqwajEvdHWOJs510MaAqN4aoSiPCXtN2KSi46dUxHdaMquar82O1x5jqhDGvqmoE9LfxcY3zqA7/x3HA67r9ZG4O6Cuxu12/+TP+eLP+I+HErqDDCDVmBDO4larujNe7x8om2rMug0MX0rL1+IWwdwfR+p1TNTyNmVJ85ljWzbWuGv8/C7HD/izjkHNZNYlhZcUOKVzKFUxsxxN/kax+8zPWPSFKw80rJr9Tizyj3o1gEsdwgWGoxPezDdZ1TSENE1dLdNvuKL+I84nxKesZgxXVA1VA1OcL49dFlpFV5yJMhzyCmNQ+a4BqusPJ2bB+xo8V9u3x48VVIEPS/mc3DvAbXyoYr6VgDfh5do5hhHOCXMqBZUPhWYbWZECwVJljLgMUWOCB4MUuMaxGNUQDVI50TQ+S3kFgIcu2qKkNSHVoM0SHsgoZxP2d5HH8B9woOk4x5bPkKtAHucZsdykjxuIpbUrSILgrT8G7G5oCW+K0990o7E3T6AdW4TilH5kDjds+H64kS0mz24grtwlzDHBJqI8YJQExotPvoC4JBq0lEjjQkyBZ8oH2LnRsQ4Hu1QsgDTJbO8fQDnllitkxuVskoiKbRF9VwzMDvxHAdwB7mD9yCplhHFEyUWHx3WtwCbSMMTCUCcEmSGlg4gTXkHpZXWQ7kpznK3EmCHiXInqndkQjunG5kxTKEeGye7jWz9cyMR2mGiFQ15ENRBTbCp+Gh86vAyASdgmJq2MC6hoADQ3GosP0QHbnMHjyBQvQqfhy/BUbeHd5WY/G/9LK/8Ka8Jd7UFeNWEZvzPb458Dn8DGLOe3/wGL/4xP+HXlRt+M1PE2iLhR8t+lfgxsuh7AfO2AOf+owWhSZRYQbd622hbpKWKuU+XuvNzP0OseRDa+mObgDHJUSc/pKx31QdKffQ5OIJpt8GWjlgTwMc/w5MPCR/yl1XC2a2Yut54SvOtMev55Of45BOat9aWG27p2ZVORRvnEk1hqWMVUmqa7S2YtvlIpspuF1pt0syuZS2NV14mUidCSfzQzg+KqvIYCMljIx2YK2AO34fX4GWdu5xcIAb8MzTw+j/lyWM+Dw/gjs4GD6ehNgA48kX/AI7XXM/XAN4WHr+9ntywqoCakCqmKP0rmQrJJEErG2Upg1JObr01lKQy4jskWalKYfJ/EDLMpjNSHFEUAde2fltaDgmrNaWQ9+AAb8I5vKjz3L1n1LriB/BXkG/wwR9y/oRX4LlioHA4LzP2inzRx/DWmutRweFjeP3tNeSGlaE1Fde0OS11yOpmbIp2u/jF1n2RRZviJM0yBT3IZl2HWImKjQOxIyeU325b/qWyU9Moj1o07tS0G7qJDoGHg5m8yeCxMoEH8GU45tnrNM84D2l297DQ9t1YP7jki/7RmutRweEA77/HWXOh3HCxkRgldDQkAjNTMl2Iloc1qN5JfJeeTlyTRzxURTdn1Ixv2uKjs12AbdEWlBtmVdk2k7FFwj07PCZ9XAwW3dG+8xKzNFr4EnwBZpy9Qzhh3jDXebBpYcpuo4fQ44u+fD1dweEnHzI7v0xuuOALRUV8rXpFyfSTQYkhd7IHm07jpyhlkCmI0ALYqPTpUxXS+z4jgDj1Pflvmz5ecuItpIBxyTHpSTGWd9g1ApfD/bvwUhL4nT1EzqgX7cxfCcNmb3mPL/qi9SwTHJ49oj5ZLjccbTG3pRmlYi6JCG0mQrAt1+i2UXTZ2dv9IlQpN5naMYtviaXlTrFpoMsl3bOAFEa8sqPj2WCMrx3Yjx99qFwO59Aw/wgx+HlqNz8oZvA3exRDvuhL1jMQHPaOJ0+XyA3fp1OfM3qObEVdhxjvynxNMXQV4+GJyvOEFqeQBaIbbO7i63rpxCltdZShPFxkjM2FPVkn3TG+Rp9pO3l2RzFegGfxGDHIAh8SteR0C4HopXzRF61nheDw6TFN05Ebvq8M3VKKpGjjO6r7nhudTEGMtYM92HTDaR1FDMXJ1eThsbKfywyoWwrzRSXkc51flG3vIid62h29bIcFbTGhfV+faaB+ohj7dPN0C2e2lC96+XouFByen9AsunLDJZ9z7NExiUc0OuoYW6UZkIyx2YUR2z6/TiRjyKMx5GbbjLHvHuf7YmtKghf34LJfx63Yg8vrvN2zC7lY0x0tvKezo4HmGYDU+Gab6dFL+KI761lDcNifcjLrrr9LWZJctG1FfU1uwhoQE22ObjdfkSzY63CbU5hzs21WeTddH2BaL11Gi7lVdlxP1nkxqhnKhVY6knS3EPgVGg1JpN5cP/hivujOelhXcPj8HC/LyI6MkteVjlolBdMmF3a3DbsuAYhL44dxzthWSN065xxUd55Lmf0wRbOYOqH09/o9WbO2VtFdaMb4qBgtFJoT1SqoN8wPXMoXLb3p1PUEhxfnnLzGzBI0Ku7FxrKsNJj/8bn/H8fPIVOd3rfrklUB/DOeO+nkghgSPzrlPxluCMtOnDL4Yml6dK1r3vsgMxgtPOrMFUZbEUbTdIzii5beq72G4PD0DKnwjmBULUVFmy8t+k7fZ3pKc0Q4UC6jpVRqS9Umv8bxw35flZVOU1X7qkjnhZlsMbk24qQ6Hz7QcuL6sDC0iHHki96Uh2UdvmgZnjIvExy2TeJdMDZNSbdZyAHe/Yd1xsQhHiKzjh7GxQ4yqMPaywPkjMamvqrYpmO7Knad+ZQC5msCuAPWUoxrxVhrGv7a+KLXFhyONdTMrZ7ke23qiO40ZJUyzgYyX5XyL0mV7NiUzEs9mjtbMN0dERqwyAJpigad0B3/zRV7s4PIfXSu6YV/MK7+OrYe/JvfGMn/PHJe2fyUdtnFrKRNpXV0Y2559aWPt/G4BlvjTMtXlVIWCnNyA3YQBDmYIodFz41PvXPSa6rq9lWZawZ4dP115HXV/M/tnFkkrBOdzg6aP4pID+MZnTJ1SuuB6iZlyiox4HT2y3YBtkUKWooacBQUDTpjwaDt5poBHl1/HXltwP887lKKXxNUEyPqpGTyA699UqY/lt9yGdlUKra0fFWS+36iylVWrAyd7Uw0CZM0z7xKTOduznLIjG2Hx8cDPLb+OvK6Bv7n1DYci4CxUuRxrjBc0bb4vD3rN5Zz36ntLb83eVJIB8LiIzCmn6SMPjlX+yNlTjvIGjs+QzHPf60Aj62/jrzG8j9vYMFtm1VoRWCJdmw7z9N0t+c8cxZpPeK4aTRicS25QhrVtUp7U578chk4q04Wx4YoQSjFryUlpcQ1AbxZ/XVMknIU//OGl7Q6z9Zpxi0+3yFhSkjUDpnCIUhLWVX23KQ+L9vKvFKI0ZWFQgkDLvBoylrHNVmaw10zwCPrr5tlodfnf94EWnQ0lFRWy8pW9LbkLsyUVDc2NSTHGDtnD1uMtchjbCeb1mpxFP0YbcClhzdLu6lfO8Bj6q+bdT2sz/+8SZCV7VIxtt0DUn9L7r4cLYWDSXnseEpOGFuty0qbOVlS7NNzs5FOGJUqQpl2Q64/yBpZf90sxbE+//PGdZ02HSipCbmD6NItmQ4Lk5XUrGpDMkhbMm2ZVheNYV+VbUWTcv99+2NyX1VoafSuC+AN6q9bFIMv5X/eagNWXZxEa9JjlMwNWb00akGUkSoepp1/yRuuqHGbUn3UdBSTxBU6SEVklzWRUkPndVvw2PrrpjvxOvzPmwHc0hpmq82npi7GRro8dXp0KXnUQmhZbRL7NEVp1uuZmO45vuzKsHrktS3GLWXODVjw+vXXLYx4Hf7njRPd0i3aoAGX6W29GnaV5YdyDj9TFkakje7GHYzDoObfddHtOSpoi2SmzJHrB3hM/XUDDEbxP2/oosszcRlehWXUvzHv4TpBVktHqwenFo8uLVmy4DKLa5d3RtLrmrM3aMFr1183E4sewf+85VWeg1c5ag276NZrM9IJVNcmLEvDNaV62aq+14IAOGFsBt973Ra8Xv11YzXwNfmft7Jg2oS+XOyoC8/cwzi66Dhmgk38kUmP1CUiYWOX1bpD2zWXt2FCp7uq8703APAa9dfNdscR/M/bZLIyouVxqJfeWvG9Je+JVckHQ9+CI9NWxz+blX/KYYvO5n2tAP/vrlZ7+8/h9y+9qeB/Hnt967e5mevX10rALDWK//FaAT5MXdBXdP0C/BAes792c40H+AiAp1e1oH8HgH94g/Lttx1gp63op1eyoM/Bvw5/G/7xFbqJPcCXnmBiwDPb/YKO4FX4OjyCb289db2/Noqicw4i7N6TVtoz8tNwDH+8x/i6Ae7lmaQVENzJFb3Di/BFeAwz+Is9SjeQySpPqbLFlNmyz47z5a/AF+AYFvDmHqibSXTEzoT4Gc3OALaqAP4KPFUJ6n+1x+rGAM6Zd78bgJ0a8QN4GU614vxwD9e1Amy6CcskNrczLx1JIp6HE5UZD/DBHrFr2oNlgG4Odv226BodoryjGJ9q2T/AR3vQrsOCS0ctXZi3ruLlhpFDJYl4HmYtjQCP9rhdn4suySLKDt6wLcC52h8xPlcjju1fn+yhuw4LZsAGUuo2b4Fx2UwQu77uqRHXGtg92aN3tQCbFexc0uk93vhTXbct6y7MulLycoUljx8ngDMBg1tvJjAazpEmOtxlzclvj1vQf1Tx7QlPDpGpqgtdSKz/d9/hdy1vTfFHSmC9dGDZbLiezz7Ac801HirGZsWjydfZyPvHXL/Y8Mjzg8BxTZiuwKz4Eb8sBE9zznszmjvFwHKPIWUnwhqfVRcd4Ck0K6ate48m1oOfrX3/yOtvAsJ8zsPAM89sjnddmuLuDPjX9Bu/L7x7xpMzFk6nWtyQfPg278Gn4Aekz2ZgOmU9eJ37R14vwE/BL8G3aibCiWMWWDQ0ZtkPMnlcGeAu/Ag+8ZyecU5BPuy2ILD+sQqyZhAKmn7XZd+jIMTN9eBL7x95xVLSX4On8EcNlXDqmBlqS13jG4LpmGbkF/0CnOi3H8ETOIXzmnmtb0a16Tzxj1sUvQCBiXZGDtmB3KAefPH94xcUa/6vwRn80GOFyjEXFpba4A1e8KQfFF+259tx5XS4egYn8fQsLGrqGrHbztr+uByTahWuL1NUGbDpsnrwBfePPwHHIf9X4RnM4Z2ABWdxUBlqQ2PwhuDxoS0vvqB1JzS0P4h2nA/QgTrsJFn+Y3AOjs9JFC07CGWX1oNX3T/yHOzgDjwPn1PM3g9Jk9lZrMEpxnlPmBbjyo2+KFXRU52TJM/2ALcY57RUzjObbjqxVw++4P6RAOf58pcVsw9Daje3htriYrpDOonre3CudSe6bfkTEgHBHuDiyu5MCsc7BHhYDx7ePxLjqigXZsw+ijMHFhuwBmtoTPtOxOrTvYJDnC75dnUbhfwu/ZW9AgYd+peL68HD+0emKquiXHhWjJg/UrkJYzuiaL3E9aI/ytrCvAd4GcYZMCkSQxfUg3v3j8c4e90j5ZTPdvmJJGHnOCI2nHS8081X013pHuBlV1gB2MX1YNmWLHqqGN/TWmG0y6clJWthxNUl48q38Bi8vtMKyzzpFdSDhxZ5WBA5ZLt8Jv3895DduBlgbPYAj8C4B8hO68FDkoh5lydC4FiWvBOVqjYdqjiLv92t8yPDjrDaiHdUD15qkSURSGmXJwOMSxWAXYwr3zaAufJ66l+94vv3AO+vPcD7aw/w/toDvL/2AO+vPcD7aw/wHuD9tQd4f+0B3l97gPfXHuD9tQd4f+0B3l97gG8LwP8G/AL8O/A5OCq0Ys2KIdv/qOIXG/4mvFAMF16gZD+2Xvu/B8as5+8bfllWyg0zaNO5bfXj6vfhhwD86/Aq3NfRS9t9WPnhfnvCIw/CT8GLcFTMnpntdF/z9V+PWc/vWoIH+FL3Znv57PitcdGP4R/C34avw5fgRVUInCwbsn1yyA8C8zm/BH8NXoXnVE6wVPjdeCI38kX/3+Ct9dbz1pTmHFRu+Hm4O9Ch3clr99negxfwj+ER/DR8EV6B5+DuQOnTgUw5rnkY+FbNU3gNXh0o/JYTuWOvyBf9FvzX663HH/HejO8LwAl8Hl5YLTd8q7sqA3wbjuExfAFegQdwfyDoSkWY8swzEf6o4Qyewefg+cHNbqMQruSL/u/WWc+E5g7vnnEXgDmcDeSGb/F4cBcCgT+GGRzDU3hZYburAt9TEtHgbM6JoxJ+6NMzzTcf6c2bycv2+KK/f+l6LBzw5IwfqZJhA3M472pWT/ajKxnjv4AFnMEpnBTPND6s2J7qHbPAqcMK74T2mZ4VGB9uJA465It+/eL1WKhYOD7xHOkr1ajK7d0C4+ke4Hy9qXZwpgLr+Znm/uNFw8xQOSy8H9IzjUrd9+BIfenYaylf9FsXr8fBAadnPIEDna8IBcwlxnuA0/Wv6GAWPd7dDIKjMdSWueAsBj4M7TOd06qBbwDwKr7oleuxMOEcTuEZTHWvDYUO7aHqAe0Bbq+HEFRzOz7WVoTDQkVds7A4sIIxfCQdCefFRoIOF/NFL1mPab/nvOakSL/Q1aFtNpUb/nFOVX6gzyg/1nISyDfUhsokIzaBR9Kxm80s5mK+6P56il1jXic7nhQxsxSm3OwBHl4fFdLqi64nDQZvqE2at7cWAp/IVvrN6/BFL1mPhYrGMBfOi4PyjuSGf6wBBh7p/FZTghCNWGgMzlBbrNJoPJX2mW5mwZfyRffXo7OFi5pZcS4qZUrlViptrXtw+GQoyhDPS+ANjcGBNRiLCQDPZPMHuiZfdFpPSTcQwwKYdRNqpkjm7AFeeT0pJzALgo7g8YYGrMHS0iocy+YTm2vyRUvvpXCIpQ5pe666TJrcygnScUf/p0NDs/iAI/nqDHC8TmQT8x3NF91l76oDdQGwu61Z6E0ABv7uO1dbf/37Zlv+Zw/Pbh8f1s4Avur6657/+YYBvur6657/+YYBvur6657/+YYBvur6657/+aYBvuL6657/+VMA8FXWX/f8zzcN8BXXX/f8zzcNMFdbf93zP38KLPiK6697/uebtuArrr/u+Z9vGmCusP6653/+1FjwVdZf9/zPN7oHX339dc//fNMu+irrr3v+50+Bi+Zq6697/uebA/jz8Pudf9ht/fWv517J/XUzAP8C/BAeX9WCDrUpZ3/dEMBxgPcfbtTVvsYV5Yn32u03B3Ac4P3b8I+vxNBKeeL9dRMAlwO83959qGO78sT769oB7g3w/vGVYFzKE++v6wV4OMD7F7tckFkmT7y/rhHgpQO8b+4Y46XyxPvrugBeNcB7BRiX8sT767oAvmCA9woAHsoT76+rBJjLBnh3txOvkifeX1dswZcO8G6N7sXyxPvr6i340gHe3TnqVfLE++uKAb50gHcXLnrX8sR7gNdPRqwzwLu7Y/FO5Yn3AK9jXCMGeHdgxDuVJ75VAI8ljP7PAb3/RfjcZfePHBB+79dpfpH1CanN30d+mT1h9GqAxxJGM5LQeeQ1+Tb+EQJrElLb38VHQ94TRq900aMIo8cSOo+8Dp8QfsB8zpqE1NO3OI9Zrj1h9EV78PqE0WMJnUdeU6E+Jjyk/hbrEFIfeWbvId8H9oTRFwdZaxJGvziW0Hn0gqYB/wyZ0PwRlxJST+BOw9m77Amj14ii1yGM/txYQudN0qDzGe4EqfA/5GJCagsHcPaEPWH0esekSwmjRxM6b5JEcZ4ww50ilvAOFxBSx4yLW+A/YU8YvfY5+ALC6NGEzhtmyZoFZoarwBLeZxUhtY4rc3bKnjB6TKJjFUHzJoTOozF2YBpsjcyxDgzhQ1YRUse8+J4wenwmaylB82hC5w0zoRXUNXaRBmSMQUqiWSWkLsaVqc/ZE0aPTFUuJWgeTei8SfLZQeMxNaZSIzbII4aE1Nmr13P2hNHjc9E9guYNCZ032YlNwESMLcZiLQHkE4aE1BFg0yAR4z1h9AiAGRA0jyZ03tyIxWMajMPWBIsxYJCnlITU5ShiHYdZ94TR4wCmSxg9jtB5KyPGYzymAYexWEMwAPIsAdYdV6aObmNPGD0aYLoEzaMJnTc0Ygs+YDw0GAtqxBjkuP38bMRWCHn73xNGjz75P73WenCEJnhwyVe3AEe8TtKdJcYhBl97wuhNAObK66lvD/9J9NS75v17wuitAN5fe4D31x7g/bUHeH/tAd5fe4D3AO+vPcD7aw/w/toDvL/2AO+vPcD7aw/w/toDvAd4f/24ABzZ8o+KLsSLS+Pv/TqTb3P4hKlQrTGh+fbIBT0Axqznnb+L/V2mb3HkN5Mb/nEHeK7d4IcDld6lmDW/iH9E+AH1MdOw/Jlu2T1xNmY98sv4wHnD7D3uNHu54WUuOsBTbQuvBsPT/UfzNxGYzwkP8c+Yz3C+r/i6DcyRL/rZ+utRwWH5PmfvcvYEt9jLDS/bg0/B64DWKrQM8AL8FPwS9beQCe6EMKNZYJol37jBMy35otdaz0Bw2H/C2Smc7+WGB0HWDELBmOByA3r5QONo4V+DpzR/hFS4U8wMW1PXNB4TOqYz9urxRV++ntWCw/U59Ty9ebdWbrgfRS9AYKKN63ZokZVygr8GZ/gfIhZXIXPsAlNjPOLBby5c1eOLvmQ9lwkOy5x6QV1j5TYqpS05JtUgUHUp5toHGsVfn4NX4RnMCe+AxTpwmApTYxqMxwfCeJGjpXzRF61nbcHhUBPqWze9svwcHJ+S6NPscKrEjug78Dx8Lj3T8D4YxGIdxmJcwhi34fzZUr7olevZCw5vkOhoClq5zBPZAnygD/Tl9EzDh6kl3VhsHYcDEb+hCtJSvuiV69kLDm+WycrOTArHmB5/VYyP6jOVjwgGawk2zQOaTcc1L+aLXrKeveDwZqlKrw8U9Y1p66uK8dEzdYwBeUQAY7DbyYNezBfdWQ97weEtAKYQg2xJIkuveAT3dYeLGH+ShrWNwZgN0b2YL7qznr3g8JYAo5bQBziPjx7BPZ0d9RCQp4UZbnFdzBddor4XHN4KYMrB2qHFRIzzcLAHQZ5the5ovui94PCWAPefaYnxIdzRwdHCbuR4B+tbiy96Lzi8E4D7z7S0mEPd+eqO3cT53Z0Y8SV80XvB4Z0ADJi/f7X113f+7p7/+UYBvur6657/+YYBvur6657/+aYBvuL6657/+aYBvuL6657/+aYBvuL6657/+aYBvuL6657/+VMA8FXWX/f8z58OgK+y/rrnf75RgLna+uue//lTA/CV1V/3/M837aKvvv6653++UQvmauuve/7nTwfAV1N/3fM/fzr24Cuuv+75nz8FFnxl9dc9//MOr/8/glixwRuUfM4AAAAASUVORK5CYII=";
@@ -2877,27 +3072,27 @@ class Ft extends C {
2877
3072
  this.edgesRT.dispose(), this.weightsRT.dispose(), this.areaTexture.dispose(), this.searchTexture.dispose(), this.materialEdges.dispose(), this.materialWeights.dispose(), this.materialBlend.dispose(), this.fsQuad.dispose();
2878
3073
  }
2879
3074
  }
2880
- const xo = /* @__PURE__ */ u({
3075
+ const Po = /* @__PURE__ */ u({
2881
3076
  __name: "SMAA",
2882
3077
  props: {
2883
3078
  width: {},
2884
3079
  height: {}
2885
3080
  },
2886
- setup(r, { expose: e }) {
2887
- const t = r, { sizes: o } = y(), { pixelRatio: s } = Ue(), a = L(() => t.width ?? o.width.value * s.value), i = L(() => t.height ?? o.height.value * s.value), { pass: n } = N(() => new Ft(a.value, i.value), t);
2888
- return e({ pass: n }), x(() => {
2889
- n.value.setSize(a.value, i.value);
3081
+ setup(n, { expose: t }) {
3082
+ const e = n, { sizes: o } = y(), { pixelRatio: s } = Ye(), a = O(() => e.width ?? o.width.value * s.value), r = O(() => e.height ?? o.height.value * s.value), { pass: i } = U(() => new Gt(a.value, r.value), e);
3083
+ return t({ pass: i }), w(() => {
3084
+ i.value.setSize(a.value, r.value);
2890
3085
  }), () => {
2891
3086
  };
2892
3087
  }
2893
- }), Ie = {
3088
+ }), Ke = {
2894
3089
  name: "LuminosityHighPassShader",
2895
3090
  shaderID: "luminosityHighPass",
2896
3091
  uniforms: {
2897
3092
  tDiffuse: { value: null },
2898
3093
  luminosityThreshold: { value: 1 },
2899
3094
  smoothWidth: { value: 1 },
2900
- defaultColor: { value: new k(0) },
3095
+ defaultColor: { value: new K(0) },
2901
3096
  defaultOpacity: { value: 0 }
2902
3097
  },
2903
3098
  vertexShader: (
@@ -2941,80 +3136,80 @@ const xo = /* @__PURE__ */ u({
2941
3136
  }`
2942
3137
  )
2943
3138
  };
2944
- class B extends C {
2945
- constructor(e, t, o, s) {
2946
- super(), this.strength = t !== void 0 ? t : 1, this.radius = o, this.threshold = s, this.resolution = e !== void 0 ? new d(e.x, e.y) : new d(256, 256), this.clearColor = new k(0, 0, 0), this.renderTargetsHorizontal = [], this.renderTargetsVertical = [], this.nMips = 5;
2947
- let a = Math.round(this.resolution.x / 2), i = Math.round(this.resolution.y / 2);
2948
- this.renderTargetBright = new D(a, i, { type: T }), this.renderTargetBright.texture.name = "UnrealBloomPass.bright", this.renderTargetBright.texture.generateMipmaps = !1;
2949
- for (let v = 0; v < this.nMips; v++) {
2950
- const c = new D(a, i, { type: T });
2951
- c.texture.name = "UnrealBloomPass.h" + v, c.texture.generateMipmaps = !1, this.renderTargetsHorizontal.push(c);
2952
- const b = new D(a, i, { type: T });
2953
- b.texture.name = "UnrealBloomPass.v" + v, b.texture.generateMipmaps = !1, this.renderTargetsVertical.push(b), a = Math.round(a / 2), i = Math.round(i / 2);
3139
+ class z extends D {
3140
+ constructor(t, e, o, s) {
3141
+ super(), this.strength = e !== void 0 ? e : 1, this.radius = o, this.threshold = s, this.resolution = t !== void 0 ? new f(t.x, t.y) : new f(256, 256), this.clearColor = new K(0, 0, 0), this.renderTargetsHorizontal = [], this.renderTargetsVertical = [], this.nMips = 5;
3142
+ let a = Math.round(this.resolution.x / 2), r = Math.round(this.resolution.y / 2);
3143
+ this.renderTargetBright = new F(a, r, { type: P }), this.renderTargetBright.texture.name = "UnrealBloomPass.bright", this.renderTargetBright.texture.generateMipmaps = !1;
3144
+ for (let b = 0; b < this.nMips; b++) {
3145
+ const c = new F(a, r, { type: P });
3146
+ c.texture.name = "UnrealBloomPass.h" + b, c.texture.generateMipmaps = !1, this.renderTargetsHorizontal.push(c);
3147
+ const S = new F(a, r, { type: P });
3148
+ S.texture.name = "UnrealBloomPass.v" + b, S.texture.generateMipmaps = !1, this.renderTargetsVertical.push(S), a = Math.round(a / 2), r = Math.round(r / 2);
2954
3149
  }
2955
- const n = Ie;
2956
- this.highPassUniforms = P.clone(n.uniforms), this.highPassUniforms.luminosityThreshold.value = s, this.highPassUniforms.smoothWidth.value = 0.01, this.materialHighPassFilter = new A({
3150
+ const i = Ke;
3151
+ this.highPassUniforms = L.clone(i.uniforms), this.highPassUniforms.luminosityThreshold.value = s, this.highPassUniforms.smoothWidth.value = 0.01, this.materialHighPassFilter = new T({
2957
3152
  uniforms: this.highPassUniforms,
2958
- vertexShader: n.vertexShader,
2959
- fragmentShader: n.fragmentShader
3153
+ vertexShader: i.vertexShader,
3154
+ fragmentShader: i.fragmentShader
2960
3155
  }), this.separableBlurMaterials = [];
2961
3156
  const l = [3, 5, 7, 9, 11];
2962
- a = Math.round(this.resolution.x / 2), i = Math.round(this.resolution.y / 2);
2963
- for (let v = 0; v < this.nMips; v++)
2964
- this.separableBlurMaterials.push(this.getSeparableBlurMaterial(l[v])), this.separableBlurMaterials[v].uniforms.invSize.value = new d(1 / a, 1 / i), a = Math.round(a / 2), i = Math.round(i / 2);
2965
- this.compositeMaterial = this.getCompositeMaterial(this.nMips), this.compositeMaterial.uniforms.blurTexture1.value = this.renderTargetsVertical[0].texture, this.compositeMaterial.uniforms.blurTexture2.value = this.renderTargetsVertical[1].texture, this.compositeMaterial.uniforms.blurTexture3.value = this.renderTargetsVertical[2].texture, this.compositeMaterial.uniforms.blurTexture4.value = this.renderTargetsVertical[3].texture, this.compositeMaterial.uniforms.blurTexture5.value = this.renderTargetsVertical[4].texture, this.compositeMaterial.uniforms.bloomStrength.value = t, this.compositeMaterial.uniforms.bloomRadius.value = 0.1;
2966
- const f = [1, 0.8, 0.6, 0.4, 0.2];
2967
- this.compositeMaterial.uniforms.bloomFactors.value = f, this.bloomTintColors = [new O(1, 1, 1), new O(1, 1, 1), new O(1, 1, 1), new O(1, 1, 1), new O(1, 1, 1)], this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors;
2968
- const h = He;
2969
- this.copyUniforms = P.clone(h.uniforms), this.blendMaterial = new A({
3157
+ a = Math.round(this.resolution.x / 2), r = Math.round(this.resolution.y / 2);
3158
+ for (let b = 0; b < this.nMips; b++)
3159
+ this.separableBlurMaterials.push(this.getSeparableBlurMaterial(l[b])), this.separableBlurMaterials[b].uniforms.invSize.value = new f(1 / a, 1 / r), a = Math.round(a / 2), r = Math.round(r / 2);
3160
+ this.compositeMaterial = this.getCompositeMaterial(this.nMips), this.compositeMaterial.uniforms.blurTexture1.value = this.renderTargetsVertical[0].texture, this.compositeMaterial.uniforms.blurTexture2.value = this.renderTargetsVertical[1].texture, this.compositeMaterial.uniforms.blurTexture3.value = this.renderTargetsVertical[2].texture, this.compositeMaterial.uniforms.blurTexture4.value = this.renderTargetsVertical[3].texture, this.compositeMaterial.uniforms.blurTexture5.value = this.renderTargetsVertical[4].texture, this.compositeMaterial.uniforms.bloomStrength.value = e, this.compositeMaterial.uniforms.bloomRadius.value = 0.1;
3161
+ const d = [1, 0.8, 0.6, 0.4, 0.2];
3162
+ this.compositeMaterial.uniforms.bloomFactors.value = d, this.bloomTintColors = [new B(1, 1, 1), new B(1, 1, 1), new B(1, 1, 1), new B(1, 1, 1), new B(1, 1, 1)], this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors;
3163
+ const p = qe;
3164
+ this.copyUniforms = L.clone(p.uniforms), this.blendMaterial = new T({
2970
3165
  uniforms: this.copyUniforms,
2971
- vertexShader: h.vertexShader,
2972
- fragmentShader: h.fragmentShader,
2973
- blending: xt,
3166
+ vertexShader: p.vertexShader,
3167
+ fragmentShader: p.fragmentShader,
3168
+ blending: Mt,
2974
3169
  depthTest: !1,
2975
3170
  depthWrite: !1,
2976
3171
  transparent: !0
2977
- }), this.enabled = !0, this.needsSwap = !1, this._oldClearColor = new k(), this.oldClearAlpha = 1, this.basic = new We(), this.fsQuad = new R(null);
3172
+ }), this.enabled = !0, this.needsSwap = !1, this._oldClearColor = new K(), this.oldClearAlpha = 1, this.basic = new Ve(), this.fsQuad = new R(null);
2978
3173
  }
2979
3174
  dispose() {
2980
- for (let e = 0; e < this.renderTargetsHorizontal.length; e++)
2981
- this.renderTargetsHorizontal[e].dispose();
2982
- for (let e = 0; e < this.renderTargetsVertical.length; e++)
2983
- this.renderTargetsVertical[e].dispose();
3175
+ for (let t = 0; t < this.renderTargetsHorizontal.length; t++)
3176
+ this.renderTargetsHorizontal[t].dispose();
3177
+ for (let t = 0; t < this.renderTargetsVertical.length; t++)
3178
+ this.renderTargetsVertical[t].dispose();
2984
3179
  this.renderTargetBright.dispose();
2985
- for (let e = 0; e < this.separableBlurMaterials.length; e++)
2986
- this.separableBlurMaterials[e].dispose();
3180
+ for (let t = 0; t < this.separableBlurMaterials.length; t++)
3181
+ this.separableBlurMaterials[t].dispose();
2987
3182
  this.compositeMaterial.dispose(), this.blendMaterial.dispose(), this.basic.dispose(), this.fsQuad.dispose();
2988
3183
  }
2989
- setSize(e, t) {
2990
- let o = Math.round(e / 2), s = Math.round(t / 2);
3184
+ setSize(t, e) {
3185
+ let o = Math.round(t / 2), s = Math.round(e / 2);
2991
3186
  this.renderTargetBright.setSize(o, s);
2992
3187
  for (let a = 0; a < this.nMips; a++)
2993
- this.renderTargetsHorizontal[a].setSize(o, s), this.renderTargetsVertical[a].setSize(o, s), this.separableBlurMaterials[a].uniforms.invSize.value = new d(1 / o, 1 / s), o = Math.round(o / 2), s = Math.round(s / 2);
3188
+ this.renderTargetsHorizontal[a].setSize(o, s), this.renderTargetsVertical[a].setSize(o, s), this.separableBlurMaterials[a].uniforms.invSize.value = new f(1 / o, 1 / s), o = Math.round(o / 2), s = Math.round(s / 2);
2994
3189
  }
2995
- render(e, t, o, s, a) {
2996
- e.getClearColor(this._oldClearColor), this.oldClearAlpha = e.getClearAlpha();
2997
- const i = e.autoClear;
2998
- e.autoClear = !1, e.setClearColor(this.clearColor, 0), a && e.state.buffers.stencil.setTest(!1), this.renderToScreen && (this.fsQuad.material = this.basic, this.basic.map = o.texture, e.setRenderTarget(null), e.clear(), this.fsQuad.render(e)), this.highPassUniforms.tDiffuse.value = o.texture, this.highPassUniforms.luminosityThreshold.value = this.threshold, this.fsQuad.material = this.materialHighPassFilter, e.setRenderTarget(this.renderTargetBright), e.clear(), this.fsQuad.render(e);
2999
- let n = this.renderTargetBright;
3190
+ render(t, e, o, s, a) {
3191
+ t.getClearColor(this._oldClearColor), this.oldClearAlpha = t.getClearAlpha();
3192
+ const r = t.autoClear;
3193
+ t.autoClear = !1, t.setClearColor(this.clearColor, 0), a && t.state.buffers.stencil.setTest(!1), this.renderToScreen && (this.fsQuad.material = this.basic, this.basic.map = o.texture, t.setRenderTarget(null), t.clear(), this.fsQuad.render(t)), this.highPassUniforms.tDiffuse.value = o.texture, this.highPassUniforms.luminosityThreshold.value = this.threshold, this.fsQuad.material = this.materialHighPassFilter, t.setRenderTarget(this.renderTargetBright), t.clear(), this.fsQuad.render(t);
3194
+ let i = this.renderTargetBright;
3000
3195
  for (let l = 0; l < this.nMips; l++)
3001
- this.fsQuad.material = this.separableBlurMaterials[l], this.separableBlurMaterials[l].uniforms.colorTexture.value = n.texture, this.separableBlurMaterials[l].uniforms.direction.value = B.BlurDirectionX, e.setRenderTarget(this.renderTargetsHorizontal[l]), e.clear(), this.fsQuad.render(e), this.separableBlurMaterials[l].uniforms.colorTexture.value = this.renderTargetsHorizontal[l].texture, this.separableBlurMaterials[l].uniforms.direction.value = B.BlurDirectionY, e.setRenderTarget(this.renderTargetsVertical[l]), e.clear(), this.fsQuad.render(e), n = this.renderTargetsVertical[l];
3002
- this.fsQuad.material = this.compositeMaterial, this.compositeMaterial.uniforms.bloomStrength.value = this.strength, this.compositeMaterial.uniforms.bloomRadius.value = this.radius, this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors, e.setRenderTarget(this.renderTargetsHorizontal[0]), e.clear(), this.fsQuad.render(e), this.fsQuad.material = this.blendMaterial, this.copyUniforms.tDiffuse.value = this.renderTargetsHorizontal[0].texture, a && e.state.buffers.stencil.setTest(!0), this.renderToScreen ? (e.setRenderTarget(null), this.fsQuad.render(e)) : (e.setRenderTarget(o), this.fsQuad.render(e)), e.setClearColor(this._oldClearColor, this.oldClearAlpha), e.autoClear = i;
3003
- }
3004
- getSeparableBlurMaterial(e) {
3005
- const t = [];
3006
- for (let o = 0; o < e; o++)
3007
- t.push(0.39894 * Math.exp(-0.5 * o * o / (e * e)) / e);
3008
- return new A({
3196
+ this.fsQuad.material = this.separableBlurMaterials[l], this.separableBlurMaterials[l].uniforms.colorTexture.value = i.texture, this.separableBlurMaterials[l].uniforms.direction.value = z.BlurDirectionX, t.setRenderTarget(this.renderTargetsHorizontal[l]), t.clear(), this.fsQuad.render(t), this.separableBlurMaterials[l].uniforms.colorTexture.value = this.renderTargetsHorizontal[l].texture, this.separableBlurMaterials[l].uniforms.direction.value = z.BlurDirectionY, t.setRenderTarget(this.renderTargetsVertical[l]), t.clear(), this.fsQuad.render(t), i = this.renderTargetsVertical[l];
3197
+ this.fsQuad.material = this.compositeMaterial, this.compositeMaterial.uniforms.bloomStrength.value = this.strength, this.compositeMaterial.uniforms.bloomRadius.value = this.radius, this.compositeMaterial.uniforms.bloomTintColors.value = this.bloomTintColors, t.setRenderTarget(this.renderTargetsHorizontal[0]), t.clear(), this.fsQuad.render(t), this.fsQuad.material = this.blendMaterial, this.copyUniforms.tDiffuse.value = this.renderTargetsHorizontal[0].texture, a && t.state.buffers.stencil.setTest(!0), this.renderToScreen ? (t.setRenderTarget(null), this.fsQuad.render(t)) : (t.setRenderTarget(o), this.fsQuad.render(t)), t.setClearColor(this._oldClearColor, this.oldClearAlpha), t.autoClear = r;
3198
+ }
3199
+ getSeparableBlurMaterial(t) {
3200
+ const e = [];
3201
+ for (let o = 0; o < t; o++)
3202
+ e.push(0.39894 * Math.exp(-0.5 * o * o / (t * t)) / t);
3203
+ return new T({
3009
3204
  defines: {
3010
- KERNEL_RADIUS: e
3205
+ KERNEL_RADIUS: t
3011
3206
  },
3012
3207
  uniforms: {
3013
3208
  colorTexture: { value: null },
3014
- invSize: { value: new d(0.5, 0.5) },
3209
+ invSize: { value: new f(0.5, 0.5) },
3015
3210
  // inverse texture size
3016
- direction: { value: new d(0.5, 0.5) },
3017
- gaussianCoefficients: { value: t }
3211
+ direction: { value: new f(0.5, 0.5) },
3212
+ gaussianCoefficients: { value: e }
3018
3213
  // precomputed Gaussian coefficients
3019
3214
  },
3020
3215
  vertexShader: `varying vec2 vUv;
@@ -3045,10 +3240,10 @@ class B extends C {
3045
3240
  }`
3046
3241
  });
3047
3242
  }
3048
- getCompositeMaterial(e) {
3049
- return new A({
3243
+ getCompositeMaterial(t) {
3244
+ return new T({
3050
3245
  defines: {
3051
- NUM_MIPS: e
3246
+ NUM_MIPS: t
3052
3247
  },
3053
3248
  uniforms: {
3054
3249
  blurTexture1: { value: null },
@@ -3092,70 +3287,74 @@ class B extends C {
3092
3287
  });
3093
3288
  }
3094
3289
  }
3095
- B.BlurDirectionX = new d(1, 0);
3096
- B.BlurDirectionY = new d(0, 1);
3097
- const bo = /* @__PURE__ */ u({
3290
+ z.BlurDirectionX = new f(1, 0);
3291
+ z.BlurDirectionY = new f(0, 1);
3292
+ const Do = /* @__PURE__ */ u({
3098
3293
  __name: "UnrealBloom",
3099
3294
  props: {
3100
3295
  radius: { default: 0 },
3101
3296
  strength: { default: 1 },
3102
3297
  threshold: { default: 0 }
3103
3298
  },
3104
- setup(r, { expose: e }) {
3105
- const t = r, { sizes: o } = y(), { pass: s } = N(() => new B(
3106
- new d(o.width.value, o.height.value),
3107
- t.radius,
3108
- t.strength,
3109
- t.threshold
3110
- ), t);
3111
- return e({ pass: s }), x(() => {
3299
+ setup(n, { expose: t }) {
3300
+ const e = n, { sizes: o } = y(), { pass: s } = U(() => new z(
3301
+ new f(o.width.value, o.height.value),
3302
+ e.radius,
3303
+ e.strength,
3304
+ e.threshold
3305
+ ), e);
3306
+ return t({ pass: s }), w(() => {
3112
3307
  var a;
3113
- s.value.radius = t.radius ?? ((a = s.value.getCompositeMaterial().uniforms.bloomRadius) == null ? void 0 : a.value) ?? 0.1;
3114
- }), x(() => {
3308
+ s.value.radius = e.radius ?? ((a = s.value.getCompositeMaterial().uniforms.bloomRadius) == null ? void 0 : a.value) ?? 0.1;
3309
+ }), w(() => {
3115
3310
  var a;
3116
- s.value.strength = t.strength ?? ((a = s.value.getCompositeMaterial().uniforms.bloomStrength) == null ? void 0 : a.value) ?? 1;
3117
- }), x(() => {
3311
+ s.value.strength = e.strength ?? ((a = s.value.getCompositeMaterial().uniforms.bloomStrength) == null ? void 0 : a.value) ?? 1;
3312
+ }), w(() => {
3118
3313
  var a;
3119
- s.value.threshold = t.threshold ?? ((a = Ie.uniforms.luminosityThreshold) == null ? void 0 : a.value) ?? 1;
3314
+ s.value.threshold = e.threshold ?? ((a = Ke.uniforms.luminosityThreshold) == null ? void 0 : a.value) ?? 1;
3120
3315
  }), () => {
3121
3316
  };
3122
3317
  }
3123
3318
  });
3124
3319
  export {
3125
- qt as BarrelBlurPmndrs,
3126
- Ht as BloomPmndrs,
3127
- fo as BrightnessContrastPmndrs,
3128
- Kt as ChromaticAberrationPmndrs,
3129
- $t as ColorAveragePmndrs,
3130
- lo as ColorDepthPmndrs,
3131
- Xt as DepthOfFieldPmndrs,
3132
- io as DepthPickingPassPmndrs,
3133
- so as DotScreenPmndrs,
3134
- ho as EffectComposer,
3135
- Gt as EffectComposerPmndrs,
3136
- co as FishEyePmndrs,
3137
- po as Glitch,
3138
- It as GlitchPmndrs,
3139
- no as GodRaysPmndrs,
3140
- uo as GridPmndrs,
3141
- mo as Halftone,
3142
- Jt as HueSaturationPmndrs,
3143
- _t as KuwaharaPmndrs,
3144
- eo as LensDistortionPmndrs,
3145
- ro as LinocutPmndrs,
3146
- jt as NoisePmndrs,
3147
- Vt as OutlinePmndrs,
3148
- go as Output,
3149
- vo as Pixelation,
3150
- Yt as PixelationPmndrs,
3151
- xo as SMAA,
3152
- Zt as ScanlinePmndrs,
3153
- ao as SepiaPmndrs,
3154
- to as ShockWavePmndrs,
3155
- oo as TiltShiftPmndrs,
3156
- Qt as ToneMappingPmndrs,
3157
- bo as UnrealBloom,
3158
- kt as VignettePmndrs,
3159
- N as useEffect,
3160
- p as useEffectPmndrs
3320
+ Ao as ASCIIPmndrs,
3321
+ $t as BarrelBlurPmndrs,
3322
+ kt as BloomPmndrs,
3323
+ xo as BrightnessContrastPmndrs,
3324
+ to as ChromaticAberrationPmndrs,
3325
+ ro as ColorAveragePmndrs,
3326
+ mo as ColorDepthPmndrs,
3327
+ qt as DepthOfFieldPmndrs,
3328
+ ho as DepthPickingPassPmndrs,
3329
+ uo as DotScreenPmndrs,
3330
+ yo as EffectComposer,
3331
+ Yt as EffectComposerPmndrs,
3332
+ So as FXAAPmndrs,
3333
+ go as FishEyePmndrs,
3334
+ Mo as Glitch,
3335
+ Qt as GlitchPmndrs,
3336
+ po as GodRaysPmndrs,
3337
+ vo as GridPmndrs,
3338
+ To as Halftone,
3339
+ oo as HueSaturationPmndrs,
3340
+ ao as KuwaharaPmndrs,
3341
+ no as LensDistortionPmndrs,
3342
+ fo as LinocutPmndrs,
3343
+ Kt as NoisePmndrs,
3344
+ Jt as OutlinePmndrs,
3345
+ Eo as Output,
3346
+ Co as Pixelation,
3347
+ Zt as PixelationPmndrs,
3348
+ Po as SMAA,
3349
+ bo as SMAAPmndrs,
3350
+ so as ScanlinePmndrs,
3351
+ co as SepiaPmndrs,
3352
+ io as ShockWavePmndrs,
3353
+ wo as TexturePmndrs,
3354
+ lo as TiltShiftPmndrs,
3355
+ eo as ToneMappingPmndrs,
3356
+ Do as UnrealBloom,
3357
+ _t as VignettePmndrs,
3358
+ U as useEffect,
3359
+ h as useEffectPmndrs
3161
3360
  };