@tsparticles/engine 3.6.0-beta.0 → 3.6.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.
Files changed (223) hide show
  1. package/browser/Core/Engine.js +1 -1
  2. package/browser/Options/Classes/AnimatableColor.js +2 -2
  3. package/browser/Options/Classes/AnimationOptions.js +3 -2
  4. package/browser/Options/Classes/Background/Background.js +2 -1
  5. package/browser/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
  6. package/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
  7. package/browser/Options/Classes/ColorAnimation.js +2 -1
  8. package/browser/Options/Classes/FullScreen/FullScreen.js +2 -1
  9. package/browser/Options/Classes/HslAnimation.js +2 -1
  10. package/browser/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
  11. package/browser/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  12. package/browser/Options/Classes/Interactivity/Events/Events.js +2 -1
  13. package/browser/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
  14. package/browser/Options/Classes/Interactivity/Events/Parallax.js +2 -1
  15. package/browser/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
  16. package/browser/Options/Classes/Interactivity/Interactivity.js +2 -1
  17. package/browser/Options/Classes/Interactivity/Modes/Modes.js +2 -1
  18. package/browser/Options/Classes/ManualParticle.js +2 -1
  19. package/browser/Options/Classes/Options.js +2 -2
  20. package/browser/Options/Classes/OptionsColor.js +5 -3
  21. package/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
  22. package/browser/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  23. package/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
  24. package/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
  25. package/browser/Options/Classes/Particles/Effect/Effect.js +2 -1
  26. package/browser/Options/Classes/Particles/Move/Move.js +2 -2
  27. package/browser/Options/Classes/Particles/Move/MoveAngle.js +2 -1
  28. package/browser/Options/Classes/Particles/Move/MoveAttract.js +2 -1
  29. package/browser/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  30. package/browser/Options/Classes/Particles/Move/MoveGravity.js +2 -1
  31. package/browser/Options/Classes/Particles/Move/MoveTrail.js +2 -1
  32. package/browser/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
  33. package/browser/Options/Classes/Particles/Move/OutModes.js +2 -1
  34. package/browser/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
  35. package/browser/Options/Classes/Particles/Move/Spin.js +2 -1
  36. package/browser/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
  37. package/browser/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
  38. package/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  39. package/browser/Options/Classes/Particles/Opacity/Opacity.js +2 -1
  40. package/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  41. package/browser/Options/Classes/Particles/ParticlesOptions.js +2 -1
  42. package/browser/Options/Classes/Particles/Shadow.js +2 -1
  43. package/browser/Options/Classes/Particles/Shape/Shape.js +2 -1
  44. package/browser/Options/Classes/Particles/Size/Size.js +2 -1
  45. package/browser/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  46. package/browser/Options/Classes/Particles/Stroke.js +2 -1
  47. package/browser/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
  48. package/browser/Options/Classes/Responsive.js +5 -4
  49. package/browser/Options/Classes/Theme/Theme.js +2 -1
  50. package/browser/Options/Classes/Theme/ThemeDefault.js +2 -1
  51. package/browser/Options/Classes/ValueWithRandom.js +4 -3
  52. package/browser/Utils/HslColorManager.js +1 -1
  53. package/browser/Utils/RgbColorManager.js +1 -1
  54. package/browser/Utils/TypeUtils.js +3 -0
  55. package/cjs/Core/Engine.js +1 -1
  56. package/cjs/Options/Classes/AnimatableColor.js +1 -1
  57. package/cjs/Options/Classes/AnimationOptions.js +3 -2
  58. package/cjs/Options/Classes/Background/Background.js +2 -1
  59. package/cjs/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
  60. package/cjs/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
  61. package/cjs/Options/Classes/ColorAnimation.js +2 -1
  62. package/cjs/Options/Classes/FullScreen/FullScreen.js +2 -1
  63. package/cjs/Options/Classes/HslAnimation.js +2 -1
  64. package/cjs/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
  65. package/cjs/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  66. package/cjs/Options/Classes/Interactivity/Events/Events.js +2 -1
  67. package/cjs/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
  68. package/cjs/Options/Classes/Interactivity/Events/Parallax.js +2 -1
  69. package/cjs/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
  70. package/cjs/Options/Classes/Interactivity/Interactivity.js +2 -1
  71. package/cjs/Options/Classes/Interactivity/Modes/Modes.js +2 -1
  72. package/cjs/Options/Classes/ManualParticle.js +2 -1
  73. package/cjs/Options/Classes/Options.js +2 -2
  74. package/cjs/Options/Classes/OptionsColor.js +4 -2
  75. package/cjs/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
  76. package/cjs/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  77. package/cjs/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
  78. package/cjs/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
  79. package/cjs/Options/Classes/Particles/Effect/Effect.js +2 -1
  80. package/cjs/Options/Classes/Particles/Move/Move.js +1 -1
  81. package/cjs/Options/Classes/Particles/Move/MoveAngle.js +2 -1
  82. package/cjs/Options/Classes/Particles/Move/MoveAttract.js +2 -1
  83. package/cjs/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  84. package/cjs/Options/Classes/Particles/Move/MoveGravity.js +2 -1
  85. package/cjs/Options/Classes/Particles/Move/MoveTrail.js +2 -1
  86. package/cjs/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
  87. package/cjs/Options/Classes/Particles/Move/OutModes.js +2 -1
  88. package/cjs/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
  89. package/cjs/Options/Classes/Particles/Move/Spin.js +2 -1
  90. package/cjs/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
  91. package/cjs/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
  92. package/cjs/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  93. package/cjs/Options/Classes/Particles/Opacity/Opacity.js +2 -1
  94. package/cjs/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  95. package/cjs/Options/Classes/Particles/ParticlesOptions.js +2 -1
  96. package/cjs/Options/Classes/Particles/Shadow.js +2 -1
  97. package/cjs/Options/Classes/Particles/Shape/Shape.js +2 -1
  98. package/cjs/Options/Classes/Particles/Size/Size.js +2 -1
  99. package/cjs/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  100. package/cjs/Options/Classes/Particles/Stroke.js +2 -1
  101. package/cjs/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
  102. package/cjs/Options/Classes/Responsive.js +5 -4
  103. package/cjs/Options/Classes/Theme/Theme.js +2 -1
  104. package/cjs/Options/Classes/Theme/ThemeDefault.js +2 -1
  105. package/cjs/Options/Classes/ValueWithRandom.js +4 -3
  106. package/cjs/Utils/HslColorManager.js +1 -1
  107. package/cjs/Utils/RgbColorManager.js +1 -1
  108. package/cjs/Utils/TypeUtils.js +4 -0
  109. package/esm/Core/Engine.js +1 -1
  110. package/esm/Options/Classes/AnimatableColor.js +2 -2
  111. package/esm/Options/Classes/AnimationOptions.js +3 -2
  112. package/esm/Options/Classes/Background/Background.js +2 -1
  113. package/esm/Options/Classes/BackgroundMask/BackgroundMask.js +2 -2
  114. package/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js +2 -1
  115. package/esm/Options/Classes/ColorAnimation.js +2 -1
  116. package/esm/Options/Classes/FullScreen/FullScreen.js +2 -1
  117. package/esm/Options/Classes/HslAnimation.js +2 -1
  118. package/esm/Options/Classes/Interactivity/Events/ClickEvent.js +2 -1
  119. package/esm/Options/Classes/Interactivity/Events/DivEvent.js +2 -1
  120. package/esm/Options/Classes/Interactivity/Events/Events.js +2 -1
  121. package/esm/Options/Classes/Interactivity/Events/HoverEvent.js +2 -1
  122. package/esm/Options/Classes/Interactivity/Events/Parallax.js +2 -1
  123. package/esm/Options/Classes/Interactivity/Events/ResizeEvent.js +2 -1
  124. package/esm/Options/Classes/Interactivity/Interactivity.js +2 -1
  125. package/esm/Options/Classes/Interactivity/Modes/Modes.js +2 -1
  126. package/esm/Options/Classes/ManualParticle.js +2 -1
  127. package/esm/Options/Classes/Options.js +2 -2
  128. package/esm/Options/Classes/OptionsColor.js +5 -3
  129. package/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js +2 -1
  130. package/esm/Options/Classes/Particles/Collisions/Collisions.js +2 -1
  131. package/esm/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +2 -1
  132. package/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js +2 -1
  133. package/esm/Options/Classes/Particles/Effect/Effect.js +2 -1
  134. package/esm/Options/Classes/Particles/Move/Move.js +2 -2
  135. package/esm/Options/Classes/Particles/Move/MoveAngle.js +2 -1
  136. package/esm/Options/Classes/Particles/Move/MoveAttract.js +2 -1
  137. package/esm/Options/Classes/Particles/Move/MoveCenter.js +2 -1
  138. package/esm/Options/Classes/Particles/Move/MoveGravity.js +2 -1
  139. package/esm/Options/Classes/Particles/Move/MoveTrail.js +2 -1
  140. package/esm/Options/Classes/Particles/Move/MoveTrailFill.js +2 -1
  141. package/esm/Options/Classes/Particles/Move/OutModes.js +2 -1
  142. package/esm/Options/Classes/Particles/Move/Path/MovePath.js +2 -1
  143. package/esm/Options/Classes/Particles/Move/Spin.js +2 -1
  144. package/esm/Options/Classes/Particles/Number/ParticlesDensity.js +2 -1
  145. package/esm/Options/Classes/Particles/Number/ParticlesNumber.js +2 -1
  146. package/esm/Options/Classes/Particles/Number/ParticlesNumberLimit.js +2 -1
  147. package/esm/Options/Classes/Particles/Opacity/Opacity.js +2 -1
  148. package/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js +2 -1
  149. package/esm/Options/Classes/Particles/ParticlesOptions.js +2 -1
  150. package/esm/Options/Classes/Particles/Shadow.js +2 -1
  151. package/esm/Options/Classes/Particles/Shape/Shape.js +2 -1
  152. package/esm/Options/Classes/Particles/Size/Size.js +2 -1
  153. package/esm/Options/Classes/Particles/Size/SizeAnimation.js +2 -1
  154. package/esm/Options/Classes/Particles/Stroke.js +2 -1
  155. package/esm/Options/Classes/Particles/ZIndex/ZIndex.js +2 -1
  156. package/esm/Options/Classes/Responsive.js +5 -4
  157. package/esm/Options/Classes/Theme/Theme.js +2 -1
  158. package/esm/Options/Classes/Theme/ThemeDefault.js +2 -1
  159. package/esm/Options/Classes/ValueWithRandom.js +4 -3
  160. package/esm/Utils/HslColorManager.js +1 -1
  161. package/esm/Utils/RgbColorManager.js +1 -1
  162. package/esm/Utils/TypeUtils.js +3 -0
  163. package/package.json +1 -1
  164. package/report.html +1 -1
  165. package/tsparticles.engine.js +57 -57
  166. package/tsparticles.engine.min.js +1 -1
  167. package/tsparticles.engine.min.js.LICENSE.txt +1 -1
  168. package/types/Core/Interfaces/Colors.d.ts +28 -0
  169. package/types/Utils/TypeUtils.d.ts +1 -0
  170. package/umd/Core/Engine.js +1 -1
  171. package/umd/Options/Classes/AnimatableColor.js +1 -1
  172. package/umd/Options/Classes/AnimationOptions.js +4 -3
  173. package/umd/Options/Classes/Background/Background.js +3 -2
  174. package/umd/Options/Classes/BackgroundMask/BackgroundMask.js +3 -3
  175. package/umd/Options/Classes/BackgroundMask/BackgroundMaskCover.js +3 -2
  176. package/umd/Options/Classes/ColorAnimation.js +3 -2
  177. package/umd/Options/Classes/FullScreen/FullScreen.js +3 -2
  178. package/umd/Options/Classes/HslAnimation.js +3 -2
  179. package/umd/Options/Classes/Interactivity/Events/ClickEvent.js +3 -2
  180. package/umd/Options/Classes/Interactivity/Events/DivEvent.js +3 -2
  181. package/umd/Options/Classes/Interactivity/Events/Events.js +3 -2
  182. package/umd/Options/Classes/Interactivity/Events/HoverEvent.js +3 -2
  183. package/umd/Options/Classes/Interactivity/Events/Parallax.js +3 -2
  184. package/umd/Options/Classes/Interactivity/Events/ResizeEvent.js +3 -2
  185. package/umd/Options/Classes/Interactivity/Interactivity.js +3 -2
  186. package/umd/Options/Classes/Interactivity/Modes/Modes.js +3 -2
  187. package/umd/Options/Classes/ManualParticle.js +3 -2
  188. package/umd/Options/Classes/Options.js +3 -3
  189. package/umd/Options/Classes/OptionsColor.js +4 -2
  190. package/umd/Options/Classes/Particles/Bounce/ParticlesBounce.js +3 -2
  191. package/umd/Options/Classes/Particles/Collisions/Collisions.js +3 -2
  192. package/umd/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +3 -2
  193. package/umd/Options/Classes/Particles/Collisions/CollisionsOverlap.js +3 -2
  194. package/umd/Options/Classes/Particles/Effect/Effect.js +3 -2
  195. package/umd/Options/Classes/Particles/Move/Move.js +1 -1
  196. package/umd/Options/Classes/Particles/Move/MoveAngle.js +3 -2
  197. package/umd/Options/Classes/Particles/Move/MoveAttract.js +3 -2
  198. package/umd/Options/Classes/Particles/Move/MoveCenter.js +3 -2
  199. package/umd/Options/Classes/Particles/Move/MoveGravity.js +3 -2
  200. package/umd/Options/Classes/Particles/Move/MoveTrail.js +3 -2
  201. package/umd/Options/Classes/Particles/Move/MoveTrailFill.js +3 -2
  202. package/umd/Options/Classes/Particles/Move/OutModes.js +3 -2
  203. package/umd/Options/Classes/Particles/Move/Path/MovePath.js +3 -2
  204. package/umd/Options/Classes/Particles/Move/Spin.js +3 -2
  205. package/umd/Options/Classes/Particles/Number/ParticlesDensity.js +3 -2
  206. package/umd/Options/Classes/Particles/Number/ParticlesNumber.js +3 -2
  207. package/umd/Options/Classes/Particles/Number/ParticlesNumberLimit.js +3 -2
  208. package/umd/Options/Classes/Particles/Opacity/Opacity.js +3 -2
  209. package/umd/Options/Classes/Particles/Opacity/OpacityAnimation.js +3 -2
  210. package/umd/Options/Classes/Particles/ParticlesOptions.js +3 -2
  211. package/umd/Options/Classes/Particles/Shadow.js +3 -2
  212. package/umd/Options/Classes/Particles/Shape/Shape.js +3 -2
  213. package/umd/Options/Classes/Particles/Size/Size.js +3 -2
  214. package/umd/Options/Classes/Particles/Size/SizeAnimation.js +3 -2
  215. package/umd/Options/Classes/Particles/Stroke.js +3 -2
  216. package/umd/Options/Classes/Particles/ZIndex/ZIndex.js +3 -2
  217. package/umd/Options/Classes/Responsive.js +6 -5
  218. package/umd/Options/Classes/Theme/Theme.js +3 -2
  219. package/umd/Options/Classes/Theme/ThemeDefault.js +3 -2
  220. package/umd/Options/Classes/ValueWithRandom.js +5 -4
  221. package/umd/Utils/HslColorManager.js +1 -1
  222. package/umd/Utils/RgbColorManager.js +1 -1
  223. package/umd/Utils/TypeUtils.js +4 -0
@@ -1,4 +1,5 @@
1
1
  import { ThemeMode } from "../../../Enums/Modes/ThemeMode.js";
2
+ import { isNull } from "../../../Utils/TypeUtils.js";
2
3
  export class ThemeDefault {
3
4
  constructor() {
4
5
  this.auto = false;
@@ -6,7 +7,7 @@ export class ThemeDefault {
6
7
  this.value = false;
7
8
  }
8
9
  load(data) {
9
- if (!data) {
10
+ if (isNull(data)) {
10
11
  return;
11
12
  }
12
13
  if (data.auto !== undefined) {
@@ -1,14 +1,15 @@
1
1
  import { AnimationOptions, RangedAnimationOptions } from "./AnimationOptions.js";
2
+ import { isNull } from "../../Utils/TypeUtils.js";
2
3
  import { setRangeValue } from "../../Utils/NumberUtils.js";
3
4
  export class ValueWithRandom {
4
5
  constructor() {
5
6
  this.value = 0;
6
7
  }
7
8
  load(data) {
8
- if (!data) {
9
+ if (isNull(data)) {
9
10
  return;
10
11
  }
11
- if (data.value !== undefined) {
12
+ if (!isNull(data.value)) {
12
13
  this.value = setRangeValue(data.value);
13
14
  }
14
15
  }
@@ -20,7 +21,7 @@ export class AnimationValueWithRandom extends ValueWithRandom {
20
21
  }
21
22
  load(data) {
22
23
  super.load(data);
23
- if (!data) {
24
+ if (isNull(data)) {
24
25
  return;
25
26
  }
26
27
  const animation = data.animation;
@@ -32,7 +32,7 @@ export class HslColorManager {
32
32
  if (!input.startsWith("hsl")) {
33
33
  return;
34
34
  }
35
- const regex = /hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i, result = regex.exec(input), minLength = 4, defaultAlpha = 1, radix = 10;
35
+ const regex = /hsla?\(\s*(\d+)\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i, result = regex.exec(input), minLength = 4, defaultAlpha = 1, radix = 10;
36
36
  return result
37
37
  ? hslaToRgba({
38
38
  a: result.length > minLength ? parseAlpha(result[HslIndexes.a]) : defaultAlpha,
@@ -31,7 +31,7 @@ export class RgbColorManager {
31
31
  if (!input.startsWith(this.stringPrefix)) {
32
32
  return;
33
33
  }
34
- const regex = /rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i, result = regex.exec(input), radix = 10, minLength = 4, defaultAlpha = 1;
34
+ const regex = /rgba?\(\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i, result = regex.exec(input), radix = 10, minLength = 4, defaultAlpha = 1;
35
35
  return result
36
36
  ? {
37
37
  a: result.length > minLength ? parseAlpha(result[RgbIndexes.a]) : defaultAlpha,
@@ -16,3 +16,6 @@ export function isObject(arg) {
16
16
  export function isArray(arg) {
17
17
  return Array.isArray(arg);
18
18
  }
19
+ export function isNull(arg) {
20
+ return arg === null || arg === undefined;
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/engine",
3
- "version": "3.6.0-beta.0",
3
+ "version": "3.6.0",
4
4
  "description": "Easily create highly customizable particle, confetti and fireworks animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
5
5
  "homepage": "https://particles.js.org",
6
6
  "scripts": {
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/engine [7 Oct 2024 at 10:30]</title>
6
+ <title>@tsparticles/engine [18 Nov 2024 at 23:49]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>