From 3a1e8745e85f9e2cf71a888e81262ecb671cee4d Mon Sep 17 00:00:00 2001 From: greggman Date: Sun, 11 Aug 2024 05:11:11 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2058b24?= =?UTF-8?q?63140ad05e946379ee096395c804727fc8f=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- atom.xml | 606 ++++++------ contributors.js | 2 +- package-lock.json | 933 ++++++++++-------- sitemap.xml | 2 +- webgl/lessons/atom.xml | 606 ++++++------ webgl/lessons/fr/atom.xml | 62 +- webgl/lessons/ja/atom.xml | 94 +- webgl/lessons/ko/atom.xml | 282 +++--- webgl/lessons/pl/atom.xml | 18 +- webgl/lessons/pt-br/atom.xml | 26 +- webgl/lessons/ru/atom.xml | 170 ++-- webgl/lessons/ru/webgl-ramp-textures.html | 595 ++++++++++- .../screenshots/webgl-ramp-textures_ru.jpg | Bin 0 -> 144730 bytes webgl/lessons/uk/atom.xml | 6 +- webgl/lessons/zh_cn/atom.xml | 258 ++--- 15 files changed, 2178 insertions(+), 1482 deletions(-) create mode 100644 webgl/lessons/screenshots/webgl-ramp-textures_ru.jpg diff --git a/atom.xml b/atom.xml index 867993d04..969e54457 100644 --- a/atom.xml +++ b/atom.xml @@ -2,7 +2,7 @@ WebGL Fundamentals - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,1811 +16,1811 @@ https://webglfundamentals.org/webgl/lessons/webgl-2-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Implementing DrawImage]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-drawimage.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Matrices]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-matrices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Implementing A Matrix Stack]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-matrix-stack.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Rotation]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Scale]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Translation]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Rasterization vs 3D libraries]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-vs-3d-library.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Cameras]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D Geometry - Lathe]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-geometry-lathe.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Directional Lighting]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-directional.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Normal Mapping]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-normal-mapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Point Lighting]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-point.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Spot Lighting]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-spot.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Orthographic 3D]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-orthographic.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D Perspective Correct Texture Mapping]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D Perspective]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-perspective.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL and Alpha]]> https://webglfundamentals.org/webgl/lessons/webgl-and-alpha.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Animation]]> https://webglfundamentals.org/webgl/lessons/webgl-animation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Anti-Patterns]]> https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Attributes]]> https://webglfundamentals.org/webgl/lessons/webgl-attributes.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Boilerplate]]> https://webglfundamentals.org/webgl/lessons/webgl-boilerplate.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Cross Origin Images]]> https://webglfundamentals.org/webgl/lessons/webgl-cors-permission.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Cross Platform Issues]]> https://webglfundamentals.org/webgl/lessons/webgl-cross-platform-issues.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Cubemaps]]> https://webglfundamentals.org/webgl/lessons/webgl-cube-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Data Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-data-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Drawing Multiple Things]]> https://webglfundamentals.org/webgl/lessons/webgl-drawing-multiple-things.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Drawing Without Data]]> https://webglfundamentals.org/webgl/lessons/webgl-drawing-without-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Environment Maps (reflections)]]> https://webglfundamentals.org/webgl/lessons/webgl-environment-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Fog]]> https://webglfundamentals.org/webgl/lessons/webgl-fog.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Framebuffers]]> https://webglfundamentals.org/webgl/lessons/webgl-framebuffers.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Fundamentals]]> https://webglfundamentals.org/webgl/lessons/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL GPGPU]]> https://webglfundamentals.org/webgl/lessons/webgl-gpgpu.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL How It Works]]> https://webglfundamentals.org/webgl/lessons/webgl-how-it-works.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Image Processing Continued]]> https://webglfundamentals.org/webgl/lessons/webgl-image-processing-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Image Processing]]> https://webglfundamentals.org/webgl/lessons/webgl-image-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Indexed Vertices]]> https://webglfundamentals.org/webgl/lessons/webgl-indexed-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Optimization - Instanced Drawing]]> https://webglfundamentals.org/webgl/lessons/webgl-instanced-drawing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Less Code, More Fun]]> https://webglfundamentals.org/webgl/lessons/webgl-less-code-more-fun.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Load Obj with Mtl]]> https://webglfundamentals.org/webgl/lessons/webgl-load-obj-w-mtl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Load Obj]]> https://webglfundamentals.org/webgl/lessons/webgl-load-obj.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Matrices vs Math Matrices]]> https://webglfundamentals.org/webgl/lessons/webgl-matrix-vs-math.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Multiple Views, Multiple Canvases]]> https://webglfundamentals.org/webgl/lessons/webgl-multiple-views.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Picking]]> https://webglfundamentals.org/webgl/lessons/webgl-picking.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Planar and Perspective Projection Mapping]]> https://webglfundamentals.org/webgl/lessons/webgl-planar-projection-mapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Points, Lines, and Triangles]]> https://webglfundamentals.org/webgl/lessons/webgl-points-lines-triangles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Post Processing]]> https://webglfundamentals.org/webgl/lessons/webgl-post-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Precision Issues]]> https://webglfundamentals.org/webgl/lessons/webgl-precision-issues.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Pulling Vertices]]> https://webglfundamentals.org/webgl/lessons/webgl-pulling-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[A simple way to show the load on the GPU's vertex and fragment processing?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-a-simple-way-to-show-the-load-on-the-gpu-s-vertex-and-fragment-processing-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Accessing textures by pixel coordinate in WebGL2]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-accessing-textures-by-pixel-coordinate-in-webgl2.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Apply a displacement map and specular map]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-apply-a-displacement-map-and-specular-map.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Can anyone explain what this GLSL fragment shader is doing?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-can-anyone-explain-what-this-glsl-fragment-shader-is-doing-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Can I mute the warning about vertex attrib 0 being disabled?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-can-i-mute-the-warning-about-vertex-attrib-0-being-disabled-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Create image warping effect in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-create-image-warping-effect-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Creating a smudge/liquify effect]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-creating-a-smudge-liquify-effect.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to draw Depth Sprites]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-depth-sprites.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Determine min/max values for the entire image]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-determine-min-max-values-for-the-entire-image.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Don't blend a polygon that crosses itself]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-don-t-blend-a-polygon-that-crosses-itself.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing 2D image with depth map to achieve pseudo-3D effect]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-2d-image-with-depth-map-to-achieve-pseudo-3d-effect.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing a heightmap]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-a-heightmap.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing layers with different points]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-layers-with-different-points.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing Many different models in a single draw call]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-many-different-models-in-a-single-draw-call.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing textured sprites with instanced drawing]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-textured-sprites-with-instanced-drawing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Efficient particle system in javascript? (WebGL)]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-efficient-particle-system-in-javascript---webgl-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Emulating palette based graphics in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-emulating-palette-based-graphics-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[FPS-like camera movement with basic matrix transformations]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-fps-like-camera-movement-with-basic-matrix-transformations.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Get the size of a point for collision checking]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-get-the-size-of-a-point-for-collision-checking.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[GLSL shader to support coloring and texturing]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-glsl-shader-to-support-coloring-and-texturing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I compute for 500 points which of 1000 line segments is nearest to each point?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-compute-for-500-points-which-of-1000-line-segments-is-nearest-to-each-point-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I create a 16bit historgram of 16bit data]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-create-a-16bit-historgram-of-16bit-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I get all the uniforms and uniformBlocks]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-get-all-the-uniforms-and-uniformblocks.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I move the perspective vanishing point from the center of the canvas?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-move-the-perspective-vanishing-point-from-the-center-of-the-canvas-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to Achieve Moving Line with Trail Effects]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-achieve-moving-line-with-trail-effects.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to bind an array of textures to a WebGL shader uniform?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-bind-an-array-of-textures-to-a-webgl-shader-uniform-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to blend colors across 2 triangles]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-blend-colors-across-2-triangles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to combine more text drawing into fewer draw calls]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-combine-more-text-drawing-into-fewer-draw-calls.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to control the color between vertices]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-control-the-color-between-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to create a torus]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-create-a-torus.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to detect clipped triangles in the framgment shader]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-detect-clipped-triangles-in-the-framgment-shader.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to determine the average brightness in a scene?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-determine-the-average-brightness-in-a-scene-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to draw correctly textured trapezoid polygons]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-draw-correctly-textured-trapezoid-polygons.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to fade the drawing buffer]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-fade-the-drawing-buffer.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to figure out how much GPU work to do without crashing WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-figure-out-how-much-gpu-work-to-do-without-crashing-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get audio data into a shader]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-audio-data-into-a-shader.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get code completion for WebGL in Visual Studio Code]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-code-completion-for-webgl-in-visual-studio-code.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get pixelize effect in webgl?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-pixelize-effect-in-webgl-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get the 3d coordinates of a mouse click]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-the-3d-coordinates-of-a-mouse-click.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to implement zoom from mouse in 2D WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-implement-zoom-from-mouse-in-2d-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to import a heightmap in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-import-a-heightmap-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to load images in the background with no jank]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-load-images-in-the-background-with-no-jank.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to make a smudge brush tool]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-make-a-smudge-brush-tool.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to make WebGL canvas transparent]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-make-webgl-canvas-transparent.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to optimize rendering a UI]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-optimize-rendering-a-ui.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to prevent texture bleeding with a texture atlas]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-prevent-texture-bleeding-with-a-texture-atlas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to process particle positions]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-process-particle-positions.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to read a single component with readPixels]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-read-a-single-component-with-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to render large scale images like 32000x32000]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-render-large-scale-images-like-32000x32000.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to simulate a 3D texture in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-simulate-a-3d-texture-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to support both WebGL and WebGL2]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-support-both-webgl-and-webgl2.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to tell if an image has an alpha channel]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-tell-if-an-image-has-an-alpha-channel.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use a 2d sprite's transparency as a mask]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-a-2d-sprite-s-transparency-as-a-mask.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use texture, and color also in WebGL?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-texture--and-color-also-in-webgl-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use textures as data]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-textures-as-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use the stencil buffer]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-the-stencil-buffer.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to write a web-based music visualizer]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-write-a-web-based-music-visualizer.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[I get invalid type error when calling readPixels]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-i-get-invalid-type-error-when-calling-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Is it possible to measure rendering time in webgl using gl.finish()?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-is-it-possible-to-measure-rendering-time-in-webgl-using-gl-finish---.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Is there the notion of a generalized vertex and fragment shader?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-is-there-the-notion-of-a-generalized-vertex-and-fragment-shader-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Optimize drawing lots of large images]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-optimize-drawing-lots-of-large-images.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Passing in per sprite alpha values when batching]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-passing-in-per-sprite-alpha-values-when-batching.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Pure WebGL Dashed Line]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-pure-webgl-dashed-line.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Recording FPS in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-recording-fps-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Rendering slowly over time]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-rendering-slowly-over-time.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Setting the values of a struct array from JS to GLSL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-setting-the-values-of-a-struct-array-from-js-to-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Show a night view vs a day view on a 3D Earth sphere]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-show-a-night-view-vs-a-day-view-on-a-3d-earth-sphere.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Sorting and optimizing instanced rendering]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-sorting-and-optimizing-instanced-rendering.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Tex image TEXTURE_2D level 0 is incurring lazy initialization]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-tex-image-texture_2d-level-0-is-incurring-lazy-initialization.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[The fastest way to draw many circles]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-the-fastest-way-to-draw-many-circles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D tilemaps]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-webgl-2d-tilemaps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Droste effect]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-webgl-droste-effect.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[What is the local origin of a 3D model?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-what-is-the-local-origin-of-a-3d-model-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[When to choose highp, mediump, lowp in shaders]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-when-to-choose-highp--mediump--lowp-in-shaders.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Why does WebGL take more memory than Canvas 2D]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-why-does-webgl-take-more-memory-than-canvas-2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Working around gl_PointSize limitations webGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-working-around-gl_pointsize-limitations-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Zooming to and stopping at object in a scene in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-zooming-to-and-stopping-at-object-in-a-scene-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Questions and Answers]]> https://webglfundamentals.org/webgl/lessons/webgl-qna.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Ramp Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-ramp-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL readPixels]]> https://webglfundamentals.org/webgl/lessons/webgl-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[References]]> https://webglfundamentals.org/webgl/lessons/webgl-references.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Rendering to a Texture]]> https://webglfundamentals.org/webgl/lessons/webgl-render-to-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Resizing the Canvas.]]> https://webglfundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Scene Graph]]> https://webglfundamentals.org/webgl/lessons/webgl-scene-graph.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Setup and Installation]]> https://webglfundamentals.org/webgl/lessons/webgl-setup-and-installation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shaders and GLSL]]> https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shadertoy]]> https://webglfundamentals.org/webgl/lessons/webgl-shadertoy.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shadows Continued]]> https://webglfundamentals.org/webgl/lessons/webgl-shadows-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shadows]]> https://webglfundamentals.org/webgl/lessons/webgl-shadows.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Skinning]]> https://webglfundamentals.org/webgl/lessons/webgl-skinning.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL SkyBox]]> https://webglfundamentals.org/webgl/lessons/webgl-skybox.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Smallest Programs]]> https://webglfundamentals.org/webgl/lessons/webgl-smallest-programs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Sprites]]> https://webglfundamentals.org/webgl/lessons/webgl-sprites.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL State Diagram]]> https://webglfundamentals.org/webgl/lessons/webgl-state-diagram.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - Canvas 2D]]> https://webglfundamentals.org/webgl/lessons/webgl-text-canvas2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - Using a Glyph Texture]]> https://webglfundamentals.org/webgl/lessons/webgl-text-glyphs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - HTML]]> https://webglfundamentals.org/webgl/lessons/webgl-text-html.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-text-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Texture Units]]> https://webglfundamentals.org/webgl/lessons/webgl-texture-units.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Tips]]> https://webglfundamentals.org/webgl/lessons/webgl-tips.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Visualizing the Camera]]> https://webglfundamentals.org/webgl/lessons/webgl-visualizing-the-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/contributors.js b/contributors.js index 9b8d951b7..517983474 100644 --- a/contributors.js +++ b/contributors.js @@ -1,2 +1,2 @@ -const contributors = [{"login":"greggman","id":234804,"node_id":"MDQ6VXNlcjIzNDgwNA==","avatar_url":"https://avatars.githubusercontent.com/u/234804?v=4","gravatar_id":"","url":"https://api.github.com/users/greggman","html_url":"https://github.com/greggman","followers_url":"https://api.github.com/users/greggman/followers","following_url":"https://api.github.com/users/greggman/following{/other_user}","gists_url":"https://api.github.com/users/greggman/gists{/gist_id}","starred_url":"https://api.github.com/users/greggman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greggman/subscriptions","organizations_url":"https://api.github.com/users/greggman/orgs","repos_url":"https://api.github.com/users/greggman/repos","events_url":"https://api.github.com/users/greggman/events{/privacy}","received_events_url":"https://api.github.com/users/greggman/received_events","type":"User","site_admin":false,"contributions":1217},{"login":"PrincessGod","id":20556748,"node_id":"MDQ6VXNlcjIwNTU2NzQ4","avatar_url":"https://avatars.githubusercontent.com/u/20556748?v=4","gravatar_id":"","url":"https://api.github.com/users/PrincessGod","html_url":"https://github.com/PrincessGod","followers_url":"https://api.github.com/users/PrincessGod/followers","following_url":"https://api.github.com/users/PrincessGod/following{/other_user}","gists_url":"https://api.github.com/users/PrincessGod/gists{/gist_id}","starred_url":"https://api.github.com/users/PrincessGod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PrincessGod/subscriptions","organizations_url":"https://api.github.com/users/PrincessGod/orgs","repos_url":"https://api.github.com/users/PrincessGod/repos","events_url":"https://api.github.com/users/PrincessGod/events{/privacy}","received_events_url":"https://api.github.com/users/PrincessGod/received_events","type":"User","site_admin":false,"contributions":79},{"login":"kolosov-sergey","id":2675210,"node_id":"MDQ6VXNlcjI2NzUyMTA=","avatar_url":"https://avatars.githubusercontent.com/u/2675210?v=4","gravatar_id":"","url":"https://api.github.com/users/kolosov-sergey","html_url":"https://github.com/kolosov-sergey","followers_url":"https://api.github.com/users/kolosov-sergey/followers","following_url":"https://api.github.com/users/kolosov-sergey/following{/other_user}","gists_url":"https://api.github.com/users/kolosov-sergey/gists{/gist_id}","starred_url":"https://api.github.com/users/kolosov-sergey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kolosov-sergey/subscriptions","organizations_url":"https://api.github.com/users/kolosov-sergey/orgs","repos_url":"https://api.github.com/users/kolosov-sergey/repos","events_url":"https://api.github.com/users/kolosov-sergey/events{/privacy}","received_events_url":"https://api.github.com/users/kolosov-sergey/received_events","type":"User","site_admin":false,"contributions":47},{"login":"diska","id":2702618,"node_id":"MDQ6VXNlcjI3MDI2MTg=","avatar_url":"https://avatars.githubusercontent.com/u/2702618?v=4","gravatar_id":"","url":"https://api.github.com/users/diska","html_url":"https://github.com/diska","followers_url":"https://api.github.com/users/diska/followers","following_url":"https://api.github.com/users/diska/following{/other_user}","gists_url":"https://api.github.com/users/diska/gists{/gist_id}","starred_url":"https://api.github.com/users/diska/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diska/subscriptions","organizations_url":"https://api.github.com/users/diska/orgs","repos_url":"https://api.github.com/users/diska/repos","events_url":"https://api.github.com/users/diska/events{/privacy}","received_events_url":"https://api.github.com/users/diska/received_events","type":"User","site_admin":false,"contributions":25},{"login":"lolosssss","id":3444544,"node_id":"MDQ6VXNlcjM0NDQ1NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/3444544?v=4","gravatar_id":"","url":"https://api.github.com/users/lolosssss","html_url":"https://github.com/lolosssss","followers_url":"https://api.github.com/users/lolosssss/followers","following_url":"https://api.github.com/users/lolosssss/following{/other_user}","gists_url":"https://api.github.com/users/lolosssss/gists{/gist_id}","starred_url":"https://api.github.com/users/lolosssss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lolosssss/subscriptions","organizations_url":"https://api.github.com/users/lolosssss/orgs","repos_url":"https://api.github.com/users/lolosssss/repos","events_url":"https://api.github.com/users/lolosssss/events{/privacy}","received_events_url":"https://api.github.com/users/lolosssss/received_events","type":"User","site_admin":false,"contributions":16},{"login":"vinci-mz","id":13175283,"node_id":"MDQ6VXNlcjEzMTc1Mjgz","avatar_url":"https://avatars.githubusercontent.com/u/13175283?v=4","gravatar_id":"","url":"https://api.github.com/users/vinci-mz","html_url":"https://github.com/vinci-mz","followers_url":"https://api.github.com/users/vinci-mz/followers","following_url":"https://api.github.com/users/vinci-mz/following{/other_user}","gists_url":"https://api.github.com/users/vinci-mz/gists{/gist_id}","starred_url":"https://api.github.com/users/vinci-mz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinci-mz/subscriptions","organizations_url":"https://api.github.com/users/vinci-mz/orgs","repos_url":"https://api.github.com/users/vinci-mz/repos","events_url":"https://api.github.com/users/vinci-mz/events{/privacy}","received_events_url":"https://api.github.com/users/vinci-mz/received_events","type":"User","site_admin":false,"contributions":12},{"login":"bbbbx","id":22176164,"node_id":"MDQ6VXNlcjIyMTc2MTY0","avatar_url":"https://avatars.githubusercontent.com/u/22176164?v=4","gravatar_id":"","url":"https://api.github.com/users/bbbbx","html_url":"https://github.com/bbbbx","followers_url":"https://api.github.com/users/bbbbx/followers","following_url":"https://api.github.com/users/bbbbx/following{/other_user}","gists_url":"https://api.github.com/users/bbbbx/gists{/gist_id}","starred_url":"https://api.github.com/users/bbbbx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbbbx/subscriptions","organizations_url":"https://api.github.com/users/bbbbx/orgs","repos_url":"https://api.github.com/users/bbbbx/repos","events_url":"https://api.github.com/users/bbbbx/events{/privacy}","received_events_url":"https://api.github.com/users/bbbbx/received_events","type":"User","site_admin":false,"contributions":10},{"login":"nikolas","id":59292,"node_id":"MDQ6VXNlcjU5Mjky","avatar_url":"https://avatars.githubusercontent.com/u/59292?v=4","gravatar_id":"","url":"https://api.github.com/users/nikolas","html_url":"https://github.com/nikolas","followers_url":"https://api.github.com/users/nikolas/followers","following_url":"https://api.github.com/users/nikolas/following{/other_user}","gists_url":"https://api.github.com/users/nikolas/gists{/gist_id}","starred_url":"https://api.github.com/users/nikolas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikolas/subscriptions","organizations_url":"https://api.github.com/users/nikolas/orgs","repos_url":"https://api.github.com/users/nikolas/repos","events_url":"https://api.github.com/users/nikolas/events{/privacy}","received_events_url":"https://api.github.com/users/nikolas/received_events","type":"User","site_admin":false,"contributions":9},{"login":"NikitaIT","id":16810067,"node_id":"MDQ6VXNlcjE2ODEwMDY3","avatar_url":"https://avatars.githubusercontent.com/u/16810067?v=4","gravatar_id":"","url":"https://api.github.com/users/NikitaIT","html_url":"https://github.com/NikitaIT","followers_url":"https://api.github.com/users/NikitaIT/followers","following_url":"https://api.github.com/users/NikitaIT/following{/other_user}","gists_url":"https://api.github.com/users/NikitaIT/gists{/gist_id}","starred_url":"https://api.github.com/users/NikitaIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NikitaIT/subscriptions","organizations_url":"https://api.github.com/users/NikitaIT/orgs","repos_url":"https://api.github.com/users/NikitaIT/repos","events_url":"https://api.github.com/users/NikitaIT/events{/privacy}","received_events_url":"https://api.github.com/users/NikitaIT/received_events","type":"User","site_admin":false,"contributions":8},{"login":"joaonnetonunes","id":30477926,"node_id":"MDQ6VXNlcjMwNDc3OTI2","avatar_url":"https://avatars.githubusercontent.com/u/30477926?v=4","gravatar_id":"","url":"https://api.github.com/users/joaonnetonunes","html_url":"https://github.com/joaonnetonunes","followers_url":"https://api.github.com/users/joaonnetonunes/followers","following_url":"https://api.github.com/users/joaonnetonunes/following{/other_user}","gists_url":"https://api.github.com/users/joaonnetonunes/gists{/gist_id}","starred_url":"https://api.github.com/users/joaonnetonunes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joaonnetonunes/subscriptions","organizations_url":"https://api.github.com/users/joaonnetonunes/orgs","repos_url":"https://api.github.com/users/joaonnetonunes/repos","events_url":"https://api.github.com/users/joaonnetonunes/events{/privacy}","received_events_url":"https://api.github.com/users/joaonnetonunes/received_events","type":"User","site_admin":false,"contributions":7},{"login":"trusktr","id":297678,"node_id":"MDQ6VXNlcjI5NzY3OA==","avatar_url":"https://avatars.githubusercontent.com/u/297678?v=4","gravatar_id":"","url":"https://api.github.com/users/trusktr","html_url":"https://github.com/trusktr","followers_url":"https://api.github.com/users/trusktr/followers","following_url":"https://api.github.com/users/trusktr/following{/other_user}","gists_url":"https://api.github.com/users/trusktr/gists{/gist_id}","starred_url":"https://api.github.com/users/trusktr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trusktr/subscriptions","organizations_url":"https://api.github.com/users/trusktr/orgs","repos_url":"https://api.github.com/users/trusktr/repos","events_url":"https://api.github.com/users/trusktr/events{/privacy}","received_events_url":"https://api.github.com/users/trusktr/received_events","type":"User","site_admin":false,"contributions":6},{"login":"jiebai","id":5625498,"node_id":"MDQ6VXNlcjU2MjU0OTg=","avatar_url":"https://avatars.githubusercontent.com/u/5625498?v=4","gravatar_id":"","url":"https://api.github.com/users/jiebai","html_url":"https://github.com/jiebai","followers_url":"https://api.github.com/users/jiebai/followers","following_url":"https://api.github.com/users/jiebai/following{/other_user}","gists_url":"https://api.github.com/users/jiebai/gists{/gist_id}","starred_url":"https://api.github.com/users/jiebai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jiebai/subscriptions","organizations_url":"https://api.github.com/users/jiebai/orgs","repos_url":"https://api.github.com/users/jiebai/repos","events_url":"https://api.github.com/users/jiebai/events{/privacy}","received_events_url":"https://api.github.com/users/jiebai/received_events","type":"User","site_admin":false,"contributions":6},{"login":"anderspitman","id":7820200,"node_id":"MDQ6VXNlcjc4MjAyMDA=","avatar_url":"https://avatars.githubusercontent.com/u/7820200?v=4","gravatar_id":"","url":"https://api.github.com/users/anderspitman","html_url":"https://github.com/anderspitman","followers_url":"https://api.github.com/users/anderspitman/followers","following_url":"https://api.github.com/users/anderspitman/following{/other_user}","gists_url":"https://api.github.com/users/anderspitman/gists{/gist_id}","starred_url":"https://api.github.com/users/anderspitman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anderspitman/subscriptions","organizations_url":"https://api.github.com/users/anderspitman/orgs","repos_url":"https://api.github.com/users/anderspitman/repos","events_url":"https://api.github.com/users/anderspitman/events{/privacy}","received_events_url":"https://api.github.com/users/anderspitman/received_events","type":"User","site_admin":false,"contributions":5},{"login":"afilahkle","id":90985041,"node_id":"MDQ6VXNlcjkwOTg1MDQx","avatar_url":"https://avatars.githubusercontent.com/u/90985041?v=4","gravatar_id":"","url":"https://api.github.com/users/afilahkle","html_url":"https://github.com/afilahkle","followers_url":"https://api.github.com/users/afilahkle/followers","following_url":"https://api.github.com/users/afilahkle/following{/other_user}","gists_url":"https://api.github.com/users/afilahkle/gists{/gist_id}","starred_url":"https://api.github.com/users/afilahkle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afilahkle/subscriptions","organizations_url":"https://api.github.com/users/afilahkle/orgs","repos_url":"https://api.github.com/users/afilahkle/repos","events_url":"https://api.github.com/users/afilahkle/events{/privacy}","received_events_url":"https://api.github.com/users/afilahkle/received_events","type":"User","site_admin":false,"contributions":5},{"login":"technohippy","id":10354,"node_id":"MDQ6VXNlcjEwMzU0","avatar_url":"https://avatars.githubusercontent.com/u/10354?v=4","gravatar_id":"","url":"https://api.github.com/users/technohippy","html_url":"https://github.com/technohippy","followers_url":"https://api.github.com/users/technohippy/followers","following_url":"https://api.github.com/users/technohippy/following{/other_user}","gists_url":"https://api.github.com/users/technohippy/gists{/gist_id}","starred_url":"https://api.github.com/users/technohippy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technohippy/subscriptions","organizations_url":"https://api.github.com/users/technohippy/orgs","repos_url":"https://api.github.com/users/technohippy/repos","events_url":"https://api.github.com/users/technohippy/events{/privacy}","received_events_url":"https://api.github.com/users/technohippy/received_events","type":"User","site_admin":false,"contributions":4},{"login":"meglio","id":282177,"node_id":"MDQ6VXNlcjI4MjE3Nw==","avatar_url":"https://avatars.githubusercontent.com/u/282177?v=4","gravatar_id":"","url":"https://api.github.com/users/meglio","html_url":"https://github.com/meglio","followers_url":"https://api.github.com/users/meglio/followers","following_url":"https://api.github.com/users/meglio/following{/other_user}","gists_url":"https://api.github.com/users/meglio/gists{/gist_id}","starred_url":"https://api.github.com/users/meglio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meglio/subscriptions","organizations_url":"https://api.github.com/users/meglio/orgs","repos_url":"https://api.github.com/users/meglio/repos","events_url":"https://api.github.com/users/meglio/events{/privacy}","received_events_url":"https://api.github.com/users/meglio/received_events","type":"User","site_admin":false,"contributions":4},{"login":"alicialics","id":31378877,"node_id":"MDQ6VXNlcjMxMzc4ODc3","avatar_url":"https://avatars.githubusercontent.com/u/31378877?v=4","gravatar_id":"","url":"https://api.github.com/users/alicialics","html_url":"https://github.com/alicialics","followers_url":"https://api.github.com/users/alicialics/followers","following_url":"https://api.github.com/users/alicialics/following{/other_user}","gists_url":"https://api.github.com/users/alicialics/gists{/gist_id}","starred_url":"https://api.github.com/users/alicialics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alicialics/subscriptions","organizations_url":"https://api.github.com/users/alicialics/orgs","repos_url":"https://api.github.com/users/alicialics/repos","events_url":"https://api.github.com/users/alicialics/events{/privacy}","received_events_url":"https://api.github.com/users/alicialics/received_events","type":"User","site_admin":false,"contributions":3},{"login":"paulmasson","id":3289562,"node_id":"MDQ6VXNlcjMyODk1NjI=","avatar_url":"https://avatars.githubusercontent.com/u/3289562?v=4","gravatar_id":"","url":"https://api.github.com/users/paulmasson","html_url":"https://github.com/paulmasson","followers_url":"https://api.github.com/users/paulmasson/followers","following_url":"https://api.github.com/users/paulmasson/following{/other_user}","gists_url":"https://api.github.com/users/paulmasson/gists{/gist_id}","starred_url":"https://api.github.com/users/paulmasson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulmasson/subscriptions","organizations_url":"https://api.github.com/users/paulmasson/orgs","repos_url":"https://api.github.com/users/paulmasson/repos","events_url":"https://api.github.com/users/paulmasson/events{/privacy}","received_events_url":"https://api.github.com/users/paulmasson/received_events","type":"User","site_admin":false,"contributions":3},{"login":"zanllp","id":25872019,"node_id":"MDQ6VXNlcjI1ODcyMDE5","avatar_url":"https://avatars.githubusercontent.com/u/25872019?v=4","gravatar_id":"","url":"https://api.github.com/users/zanllp","html_url":"https://github.com/zanllp","followers_url":"https://api.github.com/users/zanllp/followers","following_url":"https://api.github.com/users/zanllp/following{/other_user}","gists_url":"https://api.github.com/users/zanllp/gists{/gist_id}","starred_url":"https://api.github.com/users/zanllp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zanllp/subscriptions","organizations_url":"https://api.github.com/users/zanllp/orgs","repos_url":"https://api.github.com/users/zanllp/repos","events_url":"https://api.github.com/users/zanllp/events{/privacy}","received_events_url":"https://api.github.com/users/zanllp/received_events","type":"User","site_admin":false,"contributions":3},{"login":"billytrend","id":6671020,"node_id":"MDQ6VXNlcjY2NzEwMjA=","avatar_url":"https://avatars.githubusercontent.com/u/6671020?v=4","gravatar_id":"","url":"https://api.github.com/users/billytrend","html_url":"https://github.com/billytrend","followers_url":"https://api.github.com/users/billytrend/followers","following_url":"https://api.github.com/users/billytrend/following{/other_user}","gists_url":"https://api.github.com/users/billytrend/gists{/gist_id}","starred_url":"https://api.github.com/users/billytrend/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/billytrend/subscriptions","organizations_url":"https://api.github.com/users/billytrend/orgs","repos_url":"https://api.github.com/users/billytrend/repos","events_url":"https://api.github.com/users/billytrend/events{/privacy}","received_events_url":"https://api.github.com/users/billytrend/received_events","type":"User","site_admin":false,"contributions":3},{"login":"ray-zero2","id":42022035,"node_id":"MDQ6VXNlcjQyMDIyMDM1","avatar_url":"https://avatars.githubusercontent.com/u/42022035?v=4","gravatar_id":"","url":"https://api.github.com/users/ray-zero2","html_url":"https://github.com/ray-zero2","followers_url":"https://api.github.com/users/ray-zero2/followers","following_url":"https://api.github.com/users/ray-zero2/following{/other_user}","gists_url":"https://api.github.com/users/ray-zero2/gists{/gist_id}","starred_url":"https://api.github.com/users/ray-zero2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ray-zero2/subscriptions","organizations_url":"https://api.github.com/users/ray-zero2/orgs","repos_url":"https://api.github.com/users/ray-zero2/repos","events_url":"https://api.github.com/users/ray-zero2/events{/privacy}","received_events_url":"https://api.github.com/users/ray-zero2/received_events","type":"User","site_admin":false,"contributions":3},{"login":"fuzhenn","id":13678919,"node_id":"MDQ6VXNlcjEzNjc4OTE5","avatar_url":"https://avatars.githubusercontent.com/u/13678919?v=4","gravatar_id":"","url":"https://api.github.com/users/fuzhenn","html_url":"https://github.com/fuzhenn","followers_url":"https://api.github.com/users/fuzhenn/followers","following_url":"https://api.github.com/users/fuzhenn/following{/other_user}","gists_url":"https://api.github.com/users/fuzhenn/gists{/gist_id}","starred_url":"https://api.github.com/users/fuzhenn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fuzhenn/subscriptions","organizations_url":"https://api.github.com/users/fuzhenn/orgs","repos_url":"https://api.github.com/users/fuzhenn/repos","events_url":"https://api.github.com/users/fuzhenn/events{/privacy}","received_events_url":"https://api.github.com/users/fuzhenn/received_events","type":"User","site_admin":false,"contributions":3},{"login":"francoisRoyen","id":72133959,"node_id":"MDQ6VXNlcjcyMTMzOTU5","avatar_url":"https://avatars.githubusercontent.com/u/72133959?v=4","gravatar_id":"","url":"https://api.github.com/users/francoisRoyen","html_url":"https://github.com/francoisRoyen","followers_url":"https://api.github.com/users/francoisRoyen/followers","following_url":"https://api.github.com/users/francoisRoyen/following{/other_user}","gists_url":"https://api.github.com/users/francoisRoyen/gists{/gist_id}","starred_url":"https://api.github.com/users/francoisRoyen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/francoisRoyen/subscriptions","organizations_url":"https://api.github.com/users/francoisRoyen/orgs","repos_url":"https://api.github.com/users/francoisRoyen/repos","events_url":"https://api.github.com/users/francoisRoyen/events{/privacy}","received_events_url":"https://api.github.com/users/francoisRoyen/received_events","type":"User","site_admin":false,"contributions":3},{"login":"Astrak","id":10037511,"node_id":"MDQ6VXNlcjEwMDM3NTEx","avatar_url":"https://avatars.githubusercontent.com/u/10037511?v=4","gravatar_id":"","url":"https://api.github.com/users/Astrak","html_url":"https://github.com/Astrak","followers_url":"https://api.github.com/users/Astrak/followers","following_url":"https://api.github.com/users/Astrak/following{/other_user}","gists_url":"https://api.github.com/users/Astrak/gists{/gist_id}","starred_url":"https://api.github.com/users/Astrak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Astrak/subscriptions","organizations_url":"https://api.github.com/users/Astrak/orgs","repos_url":"https://api.github.com/users/Astrak/repos","events_url":"https://api.github.com/users/Astrak/events{/privacy}","received_events_url":"https://api.github.com/users/Astrak/received_events","type":"User","site_admin":false,"contributions":3},{"login":"kawaguchi1102","id":30929824,"node_id":"MDQ6VXNlcjMwOTI5ODI0","avatar_url":"https://avatars.githubusercontent.com/u/30929824?v=4","gravatar_id":"","url":"https://api.github.com/users/kawaguchi1102","html_url":"https://github.com/kawaguchi1102","followers_url":"https://api.github.com/users/kawaguchi1102/followers","following_url":"https://api.github.com/users/kawaguchi1102/following{/other_user}","gists_url":"https://api.github.com/users/kawaguchi1102/gists{/gist_id}","starred_url":"https://api.github.com/users/kawaguchi1102/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kawaguchi1102/subscriptions","organizations_url":"https://api.github.com/users/kawaguchi1102/orgs","repos_url":"https://api.github.com/users/kawaguchi1102/repos","events_url":"https://api.github.com/users/kawaguchi1102/events{/privacy}","received_events_url":"https://api.github.com/users/kawaguchi1102/received_events","type":"User","site_admin":false,"contributions":2},{"login":"vanzo16-github","id":141827057,"node_id":"U_kgDOCHQb8Q","avatar_url":"https://avatars.githubusercontent.com/u/141827057?v=4","gravatar_id":"","url":"https://api.github.com/users/vanzo16-github","html_url":"https://github.com/vanzo16-github","followers_url":"https://api.github.com/users/vanzo16-github/followers","following_url":"https://api.github.com/users/vanzo16-github/following{/other_user}","gists_url":"https://api.github.com/users/vanzo16-github/gists{/gist_id}","starred_url":"https://api.github.com/users/vanzo16-github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanzo16-github/subscriptions","organizations_url":"https://api.github.com/users/vanzo16-github/orgs","repos_url":"https://api.github.com/users/vanzo16-github/repos","events_url":"https://api.github.com/users/vanzo16-github/events{/privacy}","received_events_url":"https://api.github.com/users/vanzo16-github/received_events","type":"User","site_admin":false,"contributions":2},{"login":"code945","id":9688970,"node_id":"MDQ6VXNlcjk2ODg5NzA=","avatar_url":"https://avatars.githubusercontent.com/u/9688970?v=4","gravatar_id":"","url":"https://api.github.com/users/code945","html_url":"https://github.com/code945","followers_url":"https://api.github.com/users/code945/followers","following_url":"https://api.github.com/users/code945/following{/other_user}","gists_url":"https://api.github.com/users/code945/gists{/gist_id}","starred_url":"https://api.github.com/users/code945/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/code945/subscriptions","organizations_url":"https://api.github.com/users/code945/orgs","repos_url":"https://api.github.com/users/code945/repos","events_url":"https://api.github.com/users/code945/events{/privacy}","received_events_url":"https://api.github.com/users/code945/received_events","type":"User","site_admin":false,"contributions":2},{"login":"daiyi","id":1589186,"node_id":"MDQ6VXNlcjE1ODkxODY=","avatar_url":"https://avatars.githubusercontent.com/u/1589186?v=4","gravatar_id":"","url":"https://api.github.com/users/daiyi","html_url":"https://github.com/daiyi","followers_url":"https://api.github.com/users/daiyi/followers","following_url":"https://api.github.com/users/daiyi/following{/other_user}","gists_url":"https://api.github.com/users/daiyi/gists{/gist_id}","starred_url":"https://api.github.com/users/daiyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daiyi/subscriptions","organizations_url":"https://api.github.com/users/daiyi/orgs","repos_url":"https://api.github.com/users/daiyi/repos","events_url":"https://api.github.com/users/daiyi/events{/privacy}","received_events_url":"https://api.github.com/users/daiyi/received_events","type":"User","site_admin":false,"contributions":2},{"login":"ahaoboy","id":19884146,"node_id":"MDQ6VXNlcjE5ODg0MTQ2","avatar_url":"https://avatars.githubusercontent.com/u/19884146?v=4","gravatar_id":"","url":"https://api.github.com/users/ahaoboy","html_url":"https://github.com/ahaoboy","followers_url":"https://api.github.com/users/ahaoboy/followers","following_url":"https://api.github.com/users/ahaoboy/following{/other_user}","gists_url":"https://api.github.com/users/ahaoboy/gists{/gist_id}","starred_url":"https://api.github.com/users/ahaoboy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahaoboy/subscriptions","organizations_url":"https://api.github.com/users/ahaoboy/orgs","repos_url":"https://api.github.com/users/ahaoboy/repos","events_url":"https://api.github.com/users/ahaoboy/events{/privacy}","received_events_url":"https://api.github.com/users/ahaoboy/received_events","type":"User","site_admin":false,"contributions":2},{"login":"dcrystalj","id":1460727,"node_id":"MDQ6VXNlcjE0NjA3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1460727?v=4","gravatar_id":"","url":"https://api.github.com/users/dcrystalj","html_url":"https://github.com/dcrystalj","followers_url":"https://api.github.com/users/dcrystalj/followers","following_url":"https://api.github.com/users/dcrystalj/following{/other_user}","gists_url":"https://api.github.com/users/dcrystalj/gists{/gist_id}","starred_url":"https://api.github.com/users/dcrystalj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcrystalj/subscriptions","organizations_url":"https://api.github.com/users/dcrystalj/orgs","repos_url":"https://api.github.com/users/dcrystalj/repos","events_url":"https://api.github.com/users/dcrystalj/events{/privacy}","received_events_url":"https://api.github.com/users/dcrystalj/received_events","type":"User","site_admin":false,"contributions":2}]; +const contributors = [{"login":"greggman","id":234804,"node_id":"MDQ6VXNlcjIzNDgwNA==","avatar_url":"https://avatars.githubusercontent.com/u/234804?v=4","gravatar_id":"","url":"https://api.github.com/users/greggman","html_url":"https://github.com/greggman","followers_url":"https://api.github.com/users/greggman/followers","following_url":"https://api.github.com/users/greggman/following{/other_user}","gists_url":"https://api.github.com/users/greggman/gists{/gist_id}","starred_url":"https://api.github.com/users/greggman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greggman/subscriptions","organizations_url":"https://api.github.com/users/greggman/orgs","repos_url":"https://api.github.com/users/greggman/repos","events_url":"https://api.github.com/users/greggman/events{/privacy}","received_events_url":"https://api.github.com/users/greggman/received_events","type":"User","site_admin":false,"contributions":1217},{"login":"PrincessGod","id":20556748,"node_id":"MDQ6VXNlcjIwNTU2NzQ4","avatar_url":"https://avatars.githubusercontent.com/u/20556748?v=4","gravatar_id":"","url":"https://api.github.com/users/PrincessGod","html_url":"https://github.com/PrincessGod","followers_url":"https://api.github.com/users/PrincessGod/followers","following_url":"https://api.github.com/users/PrincessGod/following{/other_user}","gists_url":"https://api.github.com/users/PrincessGod/gists{/gist_id}","starred_url":"https://api.github.com/users/PrincessGod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PrincessGod/subscriptions","organizations_url":"https://api.github.com/users/PrincessGod/orgs","repos_url":"https://api.github.com/users/PrincessGod/repos","events_url":"https://api.github.com/users/PrincessGod/events{/privacy}","received_events_url":"https://api.github.com/users/PrincessGod/received_events","type":"User","site_admin":false,"contributions":79},{"login":"kolosov-sergey","id":2675210,"node_id":"MDQ6VXNlcjI2NzUyMTA=","avatar_url":"https://avatars.githubusercontent.com/u/2675210?v=4","gravatar_id":"","url":"https://api.github.com/users/kolosov-sergey","html_url":"https://github.com/kolosov-sergey","followers_url":"https://api.github.com/users/kolosov-sergey/followers","following_url":"https://api.github.com/users/kolosov-sergey/following{/other_user}","gists_url":"https://api.github.com/users/kolosov-sergey/gists{/gist_id}","starred_url":"https://api.github.com/users/kolosov-sergey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kolosov-sergey/subscriptions","organizations_url":"https://api.github.com/users/kolosov-sergey/orgs","repos_url":"https://api.github.com/users/kolosov-sergey/repos","events_url":"https://api.github.com/users/kolosov-sergey/events{/privacy}","received_events_url":"https://api.github.com/users/kolosov-sergey/received_events","type":"User","site_admin":false,"contributions":47},{"login":"diska","id":2702618,"node_id":"MDQ6VXNlcjI3MDI2MTg=","avatar_url":"https://avatars.githubusercontent.com/u/2702618?v=4","gravatar_id":"","url":"https://api.github.com/users/diska","html_url":"https://github.com/diska","followers_url":"https://api.github.com/users/diska/followers","following_url":"https://api.github.com/users/diska/following{/other_user}","gists_url":"https://api.github.com/users/diska/gists{/gist_id}","starred_url":"https://api.github.com/users/diska/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diska/subscriptions","organizations_url":"https://api.github.com/users/diska/orgs","repos_url":"https://api.github.com/users/diska/repos","events_url":"https://api.github.com/users/diska/events{/privacy}","received_events_url":"https://api.github.com/users/diska/received_events","type":"User","site_admin":false,"contributions":25},{"login":"lolosssss","id":3444544,"node_id":"MDQ6VXNlcjM0NDQ1NDQ=","avatar_url":"https://avatars.githubusercontent.com/u/3444544?v=4","gravatar_id":"","url":"https://api.github.com/users/lolosssss","html_url":"https://github.com/lolosssss","followers_url":"https://api.github.com/users/lolosssss/followers","following_url":"https://api.github.com/users/lolosssss/following{/other_user}","gists_url":"https://api.github.com/users/lolosssss/gists{/gist_id}","starred_url":"https://api.github.com/users/lolosssss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lolosssss/subscriptions","organizations_url":"https://api.github.com/users/lolosssss/orgs","repos_url":"https://api.github.com/users/lolosssss/repos","events_url":"https://api.github.com/users/lolosssss/events{/privacy}","received_events_url":"https://api.github.com/users/lolosssss/received_events","type":"User","site_admin":false,"contributions":16},{"login":"vinci-mz","id":13175283,"node_id":"MDQ6VXNlcjEzMTc1Mjgz","avatar_url":"https://avatars.githubusercontent.com/u/13175283?v=4","gravatar_id":"","url":"https://api.github.com/users/vinci-mz","html_url":"https://github.com/vinci-mz","followers_url":"https://api.github.com/users/vinci-mz/followers","following_url":"https://api.github.com/users/vinci-mz/following{/other_user}","gists_url":"https://api.github.com/users/vinci-mz/gists{/gist_id}","starred_url":"https://api.github.com/users/vinci-mz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinci-mz/subscriptions","organizations_url":"https://api.github.com/users/vinci-mz/orgs","repos_url":"https://api.github.com/users/vinci-mz/repos","events_url":"https://api.github.com/users/vinci-mz/events{/privacy}","received_events_url":"https://api.github.com/users/vinci-mz/received_events","type":"User","site_admin":false,"contributions":12},{"login":"bbbbx","id":22176164,"node_id":"MDQ6VXNlcjIyMTc2MTY0","avatar_url":"https://avatars.githubusercontent.com/u/22176164?v=4","gravatar_id":"","url":"https://api.github.com/users/bbbbx","html_url":"https://github.com/bbbbx","followers_url":"https://api.github.com/users/bbbbx/followers","following_url":"https://api.github.com/users/bbbbx/following{/other_user}","gists_url":"https://api.github.com/users/bbbbx/gists{/gist_id}","starred_url":"https://api.github.com/users/bbbbx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbbbx/subscriptions","organizations_url":"https://api.github.com/users/bbbbx/orgs","repos_url":"https://api.github.com/users/bbbbx/repos","events_url":"https://api.github.com/users/bbbbx/events{/privacy}","received_events_url":"https://api.github.com/users/bbbbx/received_events","type":"User","site_admin":false,"contributions":10},{"login":"nikolas","id":59292,"node_id":"MDQ6VXNlcjU5Mjky","avatar_url":"https://avatars.githubusercontent.com/u/59292?v=4","gravatar_id":"","url":"https://api.github.com/users/nikolas","html_url":"https://github.com/nikolas","followers_url":"https://api.github.com/users/nikolas/followers","following_url":"https://api.github.com/users/nikolas/following{/other_user}","gists_url":"https://api.github.com/users/nikolas/gists{/gist_id}","starred_url":"https://api.github.com/users/nikolas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikolas/subscriptions","organizations_url":"https://api.github.com/users/nikolas/orgs","repos_url":"https://api.github.com/users/nikolas/repos","events_url":"https://api.github.com/users/nikolas/events{/privacy}","received_events_url":"https://api.github.com/users/nikolas/received_events","type":"User","site_admin":false,"contributions":9},{"login":"NikitaIT","id":16810067,"node_id":"MDQ6VXNlcjE2ODEwMDY3","avatar_url":"https://avatars.githubusercontent.com/u/16810067?v=4","gravatar_id":"","url":"https://api.github.com/users/NikitaIT","html_url":"https://github.com/NikitaIT","followers_url":"https://api.github.com/users/NikitaIT/followers","following_url":"https://api.github.com/users/NikitaIT/following{/other_user}","gists_url":"https://api.github.com/users/NikitaIT/gists{/gist_id}","starred_url":"https://api.github.com/users/NikitaIT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NikitaIT/subscriptions","organizations_url":"https://api.github.com/users/NikitaIT/orgs","repos_url":"https://api.github.com/users/NikitaIT/repos","events_url":"https://api.github.com/users/NikitaIT/events{/privacy}","received_events_url":"https://api.github.com/users/NikitaIT/received_events","type":"User","site_admin":false,"contributions":8},{"login":"joaonnetonunes","id":30477926,"node_id":"MDQ6VXNlcjMwNDc3OTI2","avatar_url":"https://avatars.githubusercontent.com/u/30477926?v=4","gravatar_id":"","url":"https://api.github.com/users/joaonnetonunes","html_url":"https://github.com/joaonnetonunes","followers_url":"https://api.github.com/users/joaonnetonunes/followers","following_url":"https://api.github.com/users/joaonnetonunes/following{/other_user}","gists_url":"https://api.github.com/users/joaonnetonunes/gists{/gist_id}","starred_url":"https://api.github.com/users/joaonnetonunes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joaonnetonunes/subscriptions","organizations_url":"https://api.github.com/users/joaonnetonunes/orgs","repos_url":"https://api.github.com/users/joaonnetonunes/repos","events_url":"https://api.github.com/users/joaonnetonunes/events{/privacy}","received_events_url":"https://api.github.com/users/joaonnetonunes/received_events","type":"User","site_admin":false,"contributions":7},{"login":"jiebai","id":5625498,"node_id":"MDQ6VXNlcjU2MjU0OTg=","avatar_url":"https://avatars.githubusercontent.com/u/5625498?v=4","gravatar_id":"","url":"https://api.github.com/users/jiebai","html_url":"https://github.com/jiebai","followers_url":"https://api.github.com/users/jiebai/followers","following_url":"https://api.github.com/users/jiebai/following{/other_user}","gists_url":"https://api.github.com/users/jiebai/gists{/gist_id}","starred_url":"https://api.github.com/users/jiebai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jiebai/subscriptions","organizations_url":"https://api.github.com/users/jiebai/orgs","repos_url":"https://api.github.com/users/jiebai/repos","events_url":"https://api.github.com/users/jiebai/events{/privacy}","received_events_url":"https://api.github.com/users/jiebai/received_events","type":"User","site_admin":false,"contributions":6},{"login":"trusktr","id":297678,"node_id":"MDQ6VXNlcjI5NzY3OA==","avatar_url":"https://avatars.githubusercontent.com/u/297678?v=4","gravatar_id":"","url":"https://api.github.com/users/trusktr","html_url":"https://github.com/trusktr","followers_url":"https://api.github.com/users/trusktr/followers","following_url":"https://api.github.com/users/trusktr/following{/other_user}","gists_url":"https://api.github.com/users/trusktr/gists{/gist_id}","starred_url":"https://api.github.com/users/trusktr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trusktr/subscriptions","organizations_url":"https://api.github.com/users/trusktr/orgs","repos_url":"https://api.github.com/users/trusktr/repos","events_url":"https://api.github.com/users/trusktr/events{/privacy}","received_events_url":"https://api.github.com/users/trusktr/received_events","type":"User","site_admin":false,"contributions":6},{"login":"anderspitman","id":7820200,"node_id":"MDQ6VXNlcjc4MjAyMDA=","avatar_url":"https://avatars.githubusercontent.com/u/7820200?v=4","gravatar_id":"","url":"https://api.github.com/users/anderspitman","html_url":"https://github.com/anderspitman","followers_url":"https://api.github.com/users/anderspitman/followers","following_url":"https://api.github.com/users/anderspitman/following{/other_user}","gists_url":"https://api.github.com/users/anderspitman/gists{/gist_id}","starred_url":"https://api.github.com/users/anderspitman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anderspitman/subscriptions","organizations_url":"https://api.github.com/users/anderspitman/orgs","repos_url":"https://api.github.com/users/anderspitman/repos","events_url":"https://api.github.com/users/anderspitman/events{/privacy}","received_events_url":"https://api.github.com/users/anderspitman/received_events","type":"User","site_admin":false,"contributions":5},{"login":"afilahkle","id":90985041,"node_id":"MDQ6VXNlcjkwOTg1MDQx","avatar_url":"https://avatars.githubusercontent.com/u/90985041?v=4","gravatar_id":"","url":"https://api.github.com/users/afilahkle","html_url":"https://github.com/afilahkle","followers_url":"https://api.github.com/users/afilahkle/followers","following_url":"https://api.github.com/users/afilahkle/following{/other_user}","gists_url":"https://api.github.com/users/afilahkle/gists{/gist_id}","starred_url":"https://api.github.com/users/afilahkle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afilahkle/subscriptions","organizations_url":"https://api.github.com/users/afilahkle/orgs","repos_url":"https://api.github.com/users/afilahkle/repos","events_url":"https://api.github.com/users/afilahkle/events{/privacy}","received_events_url":"https://api.github.com/users/afilahkle/received_events","type":"User","site_admin":false,"contributions":5},{"login":"technohippy","id":10354,"node_id":"MDQ6VXNlcjEwMzU0","avatar_url":"https://avatars.githubusercontent.com/u/10354?v=4","gravatar_id":"","url":"https://api.github.com/users/technohippy","html_url":"https://github.com/technohippy","followers_url":"https://api.github.com/users/technohippy/followers","following_url":"https://api.github.com/users/technohippy/following{/other_user}","gists_url":"https://api.github.com/users/technohippy/gists{/gist_id}","starred_url":"https://api.github.com/users/technohippy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technohippy/subscriptions","organizations_url":"https://api.github.com/users/technohippy/orgs","repos_url":"https://api.github.com/users/technohippy/repos","events_url":"https://api.github.com/users/technohippy/events{/privacy}","received_events_url":"https://api.github.com/users/technohippy/received_events","type":"User","site_admin":false,"contributions":4},{"login":"meglio","id":282177,"node_id":"MDQ6VXNlcjI4MjE3Nw==","avatar_url":"https://avatars.githubusercontent.com/u/282177?v=4","gravatar_id":"","url":"https://api.github.com/users/meglio","html_url":"https://github.com/meglio","followers_url":"https://api.github.com/users/meglio/followers","following_url":"https://api.github.com/users/meglio/following{/other_user}","gists_url":"https://api.github.com/users/meglio/gists{/gist_id}","starred_url":"https://api.github.com/users/meglio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meglio/subscriptions","organizations_url":"https://api.github.com/users/meglio/orgs","repos_url":"https://api.github.com/users/meglio/repos","events_url":"https://api.github.com/users/meglio/events{/privacy}","received_events_url":"https://api.github.com/users/meglio/received_events","type":"User","site_admin":false,"contributions":4},{"login":"paulmasson","id":3289562,"node_id":"MDQ6VXNlcjMyODk1NjI=","avatar_url":"https://avatars.githubusercontent.com/u/3289562?v=4","gravatar_id":"","url":"https://api.github.com/users/paulmasson","html_url":"https://github.com/paulmasson","followers_url":"https://api.github.com/users/paulmasson/followers","following_url":"https://api.github.com/users/paulmasson/following{/other_user}","gists_url":"https://api.github.com/users/paulmasson/gists{/gist_id}","starred_url":"https://api.github.com/users/paulmasson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulmasson/subscriptions","organizations_url":"https://api.github.com/users/paulmasson/orgs","repos_url":"https://api.github.com/users/paulmasson/repos","events_url":"https://api.github.com/users/paulmasson/events{/privacy}","received_events_url":"https://api.github.com/users/paulmasson/received_events","type":"User","site_admin":false,"contributions":3},{"login":"alicialics","id":31378877,"node_id":"MDQ6VXNlcjMxMzc4ODc3","avatar_url":"https://avatars.githubusercontent.com/u/31378877?v=4","gravatar_id":"","url":"https://api.github.com/users/alicialics","html_url":"https://github.com/alicialics","followers_url":"https://api.github.com/users/alicialics/followers","following_url":"https://api.github.com/users/alicialics/following{/other_user}","gists_url":"https://api.github.com/users/alicialics/gists{/gist_id}","starred_url":"https://api.github.com/users/alicialics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alicialics/subscriptions","organizations_url":"https://api.github.com/users/alicialics/orgs","repos_url":"https://api.github.com/users/alicialics/repos","events_url":"https://api.github.com/users/alicialics/events{/privacy}","received_events_url":"https://api.github.com/users/alicialics/received_events","type":"User","site_admin":false,"contributions":3},{"login":"zanllp","id":25872019,"node_id":"MDQ6VXNlcjI1ODcyMDE5","avatar_url":"https://avatars.githubusercontent.com/u/25872019?v=4","gravatar_id":"","url":"https://api.github.com/users/zanllp","html_url":"https://github.com/zanllp","followers_url":"https://api.github.com/users/zanllp/followers","following_url":"https://api.github.com/users/zanllp/following{/other_user}","gists_url":"https://api.github.com/users/zanllp/gists{/gist_id}","starred_url":"https://api.github.com/users/zanllp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zanllp/subscriptions","organizations_url":"https://api.github.com/users/zanllp/orgs","repos_url":"https://api.github.com/users/zanllp/repos","events_url":"https://api.github.com/users/zanllp/events{/privacy}","received_events_url":"https://api.github.com/users/zanllp/received_events","type":"User","site_admin":false,"contributions":3},{"login":"vanzo16-github","id":141827057,"node_id":"U_kgDOCHQb8Q","avatar_url":"https://avatars.githubusercontent.com/u/141827057?v=4","gravatar_id":"","url":"https://api.github.com/users/vanzo16-github","html_url":"https://github.com/vanzo16-github","followers_url":"https://api.github.com/users/vanzo16-github/followers","following_url":"https://api.github.com/users/vanzo16-github/following{/other_user}","gists_url":"https://api.github.com/users/vanzo16-github/gists{/gist_id}","starred_url":"https://api.github.com/users/vanzo16-github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanzo16-github/subscriptions","organizations_url":"https://api.github.com/users/vanzo16-github/orgs","repos_url":"https://api.github.com/users/vanzo16-github/repos","events_url":"https://api.github.com/users/vanzo16-github/events{/privacy}","received_events_url":"https://api.github.com/users/vanzo16-github/received_events","type":"User","site_admin":false,"contributions":3},{"login":"billytrend","id":6671020,"node_id":"MDQ6VXNlcjY2NzEwMjA=","avatar_url":"https://avatars.githubusercontent.com/u/6671020?v=4","gravatar_id":"","url":"https://api.github.com/users/billytrend","html_url":"https://github.com/billytrend","followers_url":"https://api.github.com/users/billytrend/followers","following_url":"https://api.github.com/users/billytrend/following{/other_user}","gists_url":"https://api.github.com/users/billytrend/gists{/gist_id}","starred_url":"https://api.github.com/users/billytrend/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/billytrend/subscriptions","organizations_url":"https://api.github.com/users/billytrend/orgs","repos_url":"https://api.github.com/users/billytrend/repos","events_url":"https://api.github.com/users/billytrend/events{/privacy}","received_events_url":"https://api.github.com/users/billytrend/received_events","type":"User","site_admin":false,"contributions":3},{"login":"ray-zero2","id":42022035,"node_id":"MDQ6VXNlcjQyMDIyMDM1","avatar_url":"https://avatars.githubusercontent.com/u/42022035?v=4","gravatar_id":"","url":"https://api.github.com/users/ray-zero2","html_url":"https://github.com/ray-zero2","followers_url":"https://api.github.com/users/ray-zero2/followers","following_url":"https://api.github.com/users/ray-zero2/following{/other_user}","gists_url":"https://api.github.com/users/ray-zero2/gists{/gist_id}","starred_url":"https://api.github.com/users/ray-zero2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ray-zero2/subscriptions","organizations_url":"https://api.github.com/users/ray-zero2/orgs","repos_url":"https://api.github.com/users/ray-zero2/repos","events_url":"https://api.github.com/users/ray-zero2/events{/privacy}","received_events_url":"https://api.github.com/users/ray-zero2/received_events","type":"User","site_admin":false,"contributions":3},{"login":"fuzhenn","id":13678919,"node_id":"MDQ6VXNlcjEzNjc4OTE5","avatar_url":"https://avatars.githubusercontent.com/u/13678919?v=4","gravatar_id":"","url":"https://api.github.com/users/fuzhenn","html_url":"https://github.com/fuzhenn","followers_url":"https://api.github.com/users/fuzhenn/followers","following_url":"https://api.github.com/users/fuzhenn/following{/other_user}","gists_url":"https://api.github.com/users/fuzhenn/gists{/gist_id}","starred_url":"https://api.github.com/users/fuzhenn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fuzhenn/subscriptions","organizations_url":"https://api.github.com/users/fuzhenn/orgs","repos_url":"https://api.github.com/users/fuzhenn/repos","events_url":"https://api.github.com/users/fuzhenn/events{/privacy}","received_events_url":"https://api.github.com/users/fuzhenn/received_events","type":"User","site_admin":false,"contributions":3},{"login":"francoisRoyen","id":72133959,"node_id":"MDQ6VXNlcjcyMTMzOTU5","avatar_url":"https://avatars.githubusercontent.com/u/72133959?v=4","gravatar_id":"","url":"https://api.github.com/users/francoisRoyen","html_url":"https://github.com/francoisRoyen","followers_url":"https://api.github.com/users/francoisRoyen/followers","following_url":"https://api.github.com/users/francoisRoyen/following{/other_user}","gists_url":"https://api.github.com/users/francoisRoyen/gists{/gist_id}","starred_url":"https://api.github.com/users/francoisRoyen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/francoisRoyen/subscriptions","organizations_url":"https://api.github.com/users/francoisRoyen/orgs","repos_url":"https://api.github.com/users/francoisRoyen/repos","events_url":"https://api.github.com/users/francoisRoyen/events{/privacy}","received_events_url":"https://api.github.com/users/francoisRoyen/received_events","type":"User","site_admin":false,"contributions":3},{"login":"Astrak","id":10037511,"node_id":"MDQ6VXNlcjEwMDM3NTEx","avatar_url":"https://avatars.githubusercontent.com/u/10037511?v=4","gravatar_id":"","url":"https://api.github.com/users/Astrak","html_url":"https://github.com/Astrak","followers_url":"https://api.github.com/users/Astrak/followers","following_url":"https://api.github.com/users/Astrak/following{/other_user}","gists_url":"https://api.github.com/users/Astrak/gists{/gist_id}","starred_url":"https://api.github.com/users/Astrak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Astrak/subscriptions","organizations_url":"https://api.github.com/users/Astrak/orgs","repos_url":"https://api.github.com/users/Astrak/repos","events_url":"https://api.github.com/users/Astrak/events{/privacy}","received_events_url":"https://api.github.com/users/Astrak/received_events","type":"User","site_admin":false,"contributions":3},{"login":"kawaguchi1102","id":30929824,"node_id":"MDQ6VXNlcjMwOTI5ODI0","avatar_url":"https://avatars.githubusercontent.com/u/30929824?v=4","gravatar_id":"","url":"https://api.github.com/users/kawaguchi1102","html_url":"https://github.com/kawaguchi1102","followers_url":"https://api.github.com/users/kawaguchi1102/followers","following_url":"https://api.github.com/users/kawaguchi1102/following{/other_user}","gists_url":"https://api.github.com/users/kawaguchi1102/gists{/gist_id}","starred_url":"https://api.github.com/users/kawaguchi1102/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kawaguchi1102/subscriptions","organizations_url":"https://api.github.com/users/kawaguchi1102/orgs","repos_url":"https://api.github.com/users/kawaguchi1102/repos","events_url":"https://api.github.com/users/kawaguchi1102/events{/privacy}","received_events_url":"https://api.github.com/users/kawaguchi1102/received_events","type":"User","site_admin":false,"contributions":2},{"login":"code945","id":9688970,"node_id":"MDQ6VXNlcjk2ODg5NzA=","avatar_url":"https://avatars.githubusercontent.com/u/9688970?v=4","gravatar_id":"","url":"https://api.github.com/users/code945","html_url":"https://github.com/code945","followers_url":"https://api.github.com/users/code945/followers","following_url":"https://api.github.com/users/code945/following{/other_user}","gists_url":"https://api.github.com/users/code945/gists{/gist_id}","starred_url":"https://api.github.com/users/code945/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/code945/subscriptions","organizations_url":"https://api.github.com/users/code945/orgs","repos_url":"https://api.github.com/users/code945/repos","events_url":"https://api.github.com/users/code945/events{/privacy}","received_events_url":"https://api.github.com/users/code945/received_events","type":"User","site_admin":false,"contributions":2},{"login":"daiyi","id":1589186,"node_id":"MDQ6VXNlcjE1ODkxODY=","avatar_url":"https://avatars.githubusercontent.com/u/1589186?v=4","gravatar_id":"","url":"https://api.github.com/users/daiyi","html_url":"https://github.com/daiyi","followers_url":"https://api.github.com/users/daiyi/followers","following_url":"https://api.github.com/users/daiyi/following{/other_user}","gists_url":"https://api.github.com/users/daiyi/gists{/gist_id}","starred_url":"https://api.github.com/users/daiyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daiyi/subscriptions","organizations_url":"https://api.github.com/users/daiyi/orgs","repos_url":"https://api.github.com/users/daiyi/repos","events_url":"https://api.github.com/users/daiyi/events{/privacy}","received_events_url":"https://api.github.com/users/daiyi/received_events","type":"User","site_admin":false,"contributions":2},{"login":"ahaoboy","id":19884146,"node_id":"MDQ6VXNlcjE5ODg0MTQ2","avatar_url":"https://avatars.githubusercontent.com/u/19884146?v=4","gravatar_id":"","url":"https://api.github.com/users/ahaoboy","html_url":"https://github.com/ahaoboy","followers_url":"https://api.github.com/users/ahaoboy/followers","following_url":"https://api.github.com/users/ahaoboy/following{/other_user}","gists_url":"https://api.github.com/users/ahaoboy/gists{/gist_id}","starred_url":"https://api.github.com/users/ahaoboy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahaoboy/subscriptions","organizations_url":"https://api.github.com/users/ahaoboy/orgs","repos_url":"https://api.github.com/users/ahaoboy/repos","events_url":"https://api.github.com/users/ahaoboy/events{/privacy}","received_events_url":"https://api.github.com/users/ahaoboy/received_events","type":"User","site_admin":false,"contributions":2},{"login":"dcrystalj","id":1460727,"node_id":"MDQ6VXNlcjE0NjA3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1460727?v=4","gravatar_id":"","url":"https://api.github.com/users/dcrystalj","html_url":"https://github.com/dcrystalj","followers_url":"https://api.github.com/users/dcrystalj/followers","following_url":"https://api.github.com/users/dcrystalj/following{/other_user}","gists_url":"https://api.github.com/users/dcrystalj/gists{/gist_id}","starred_url":"https://api.github.com/users/dcrystalj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcrystalj/subscriptions","organizations_url":"https://api.github.com/users/dcrystalj/orgs","repos_url":"https://api.github.com/users/dcrystalj/repos","events_url":"https://api.github.com/users/dcrystalj/events{/privacy}","received_events_url":"https://api.github.com/users/dcrystalj/received_events","type":"User","site_admin":false,"contributions":2}]; diff --git a/package-lock.json b/package-lock.json index ad29b9dc4..087032c84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,15 +29,6 @@ "servez": "1.11.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -47,22 +38,31 @@ "@babel/highlight": "^7.10.4" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -143,10 +143,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -154,6 +157,20 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -170,27 +187,55 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "peer": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -198,20 +243,30 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", + "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", "dev": true, "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@gfxfundamentals/lesson-builder": { @@ -254,15 +309,15 @@ "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, - "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, "engines": { "node": ">=10.10.0" @@ -283,11 +338,25 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", "dev": true, - "peer": true + "peer": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -328,9 +397,9 @@ } }, "node_modules/@types/linkify-it": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", - "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true }, "node_modules/@types/markdown-it": { @@ -344,9 +413,9 @@ } }, "node_modules/@types/mdurl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", - "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, "node_modules/@types/minimatch": { @@ -356,12 +425,12 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", + "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.13.0" } }, "node_modules/@types/node-forge": { @@ -383,13 +452,6 @@ "@types/node": "*" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "peer": true - }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -410,9 +472,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "peer": true, "bin": { @@ -1212,9 +1274,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1505,42 +1567,38 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", + "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.9.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -1554,10 +1612,18 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-plugin-google-camelcase": { @@ -1606,9 +1672,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dev": true, "peer": true, "dependencies": { @@ -1616,7 +1682,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1647,31 +1713,31 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, "peer": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1691,9 +1757,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -2013,6 +2079,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -2081,15 +2153,16 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "peer": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/file-sync-cmp": { @@ -2200,6 +2273,7 @@ "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "inflight": "^1.0.4", @@ -2238,17 +2312,17 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "peer": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { @@ -2415,6 +2489,7 @@ "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -2487,15 +2562,13 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "peer": true, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2545,13 +2618,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "peer": true - }, "node_modules/grunt": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.3.0.tgz", @@ -2633,6 +2699,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -2772,26 +2839,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/grunt-eslint/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/grunt-eslint/node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, "node_modules/grunt-eslint/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -2924,6 +2971,32 @@ "node": ">=4.0" } }, + "node_modules/grunt-eslint/node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/grunt-eslint/node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/grunt-eslint/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -2936,6 +3009,21 @@ "node": ">= 6" } }, + "node_modules/grunt-eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/grunt-eslint/node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -3385,6 +3473,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { "once": "^1.3.0", @@ -3460,12 +3549,15 @@ "dev": true }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3896,18 +3988,6 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/luxon": { "version": "1.28.1", "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz", @@ -4338,10 +4418,13 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4420,17 +4503,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -4458,6 +4541,7 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", "dev": true, "dependencies": { "os-homedir": "^1.0.0", @@ -4625,9 +4709,9 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/pkg-dir": { @@ -4836,7 +4920,7 @@ "version": "13.7.0", "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", - "deprecated": "< 21.8.0 is no longer supported", + "deprecated": "< 22.8.2 is no longer supported", "dev": true, "hasInstallScript": true, "dependencies": { @@ -4857,6 +4941,23 @@ "node": ">=10.18.1" } }, + "node_modules/puppeteer/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -5104,6 +5205,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -5200,13 +5302,10 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -5374,14 +5473,14 @@ } }, "node_modules/servez-lib": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/servez-lib/-/servez-lib-2.8.3.tgz", - "integrity": "sha512-zz4t8ie1uSO24qsHqH/FoUgD6SqJs4tLjWHbYquSE44ZUKvOnfXN4lWsdpLHTGh2Pzte9HIWmYtTOw0L5nZUIw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/servez-lib/-/servez-lib-2.9.4.tgz", + "integrity": "sha512-Y4Ob6Crha2asqvoD3tUKxerAAlHY6TGK3cV8NzXnGxGZXPVffruzmwFJ+sIUc16zT2EowCFDzmGshTDRTRh+ug==", "dev": true, "dependencies": { "basic-auth": "^2.0.1", "cors": "^2.8.5", - "debug": "^4.3.4", + "debug": "^4.3.5", "express": "^4.19.2", "secure-compare": "^3.0.1", "selfsigned": "^2.4.1", @@ -5891,15 +5990,15 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -5981,6 +6080,15 @@ "ms": "^2.1.1" } }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -6092,9 +6200,9 @@ "dev": true }, "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true, "bin": { @@ -6124,9 +6232,9 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true }, "node_modules/underscore.string": { @@ -6143,9 +6251,9 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", "dev": true }, "node_modules/union-value": { @@ -6413,12 +6521,6 @@ "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", @@ -6444,12 +6546,6 @@ } }, "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -6459,19 +6555,25 @@ "@babel/highlight": "^7.10.4" } }, + "@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true }, "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -6536,10 +6638,24 @@ } }, "@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", - "dev": true + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dev": true, + "requires": { + "@babel/types": "^7.25.2" + } + }, + "@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + } }, "@eslint-community/eslint-utils": { "version": "4.4.0", @@ -6549,26 +6665,47 @@ "peer": true, "requires": { "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "peer": true + } } }, "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "peer": true }, + "@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dev": true, + "peer": true, + "requires": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + } + }, "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "peer": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -6577,9 +6714,16 @@ } }, "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", + "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "dev": true, + "peer": true + }, + "@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, "peer": true }, @@ -6620,15 +6764,14 @@ "from": "@gfxfundamentals/thumbnail-gen@git://github.com/gfxfundamentals/thumbnail-gen.git#v1.0.3" }, "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, - "peer": true, "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, "@humanwhocodes/module-importer": { @@ -6639,9 +6782,15 @@ "peer": true }, "@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", "dev": true, "peer": true }, @@ -6675,9 +6824,9 @@ } }, "@types/linkify-it": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", - "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true }, "@types/markdown-it": { @@ -6691,9 +6840,9 @@ } }, "@types/mdurl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", - "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, "@types/minimatch": { @@ -6703,12 +6852,12 @@ "dev": true }, "@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", + "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", "dev": true, "requires": { - "undici-types": "~5.26.4" + "undici-types": "~6.13.0" } }, "@types/node-forge": { @@ -6730,13 +6879,6 @@ "@types/node": "*" } }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "peer": true - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -6754,9 +6896,9 @@ } }, "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "peer": true }, @@ -7365,9 +7507,9 @@ "dev": true }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, "requires": { "ms": "2.1.2" @@ -7578,42 +7720,38 @@ "dev": true }, "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", + "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", "dev": true, "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.9.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -7662,9 +7800,9 @@ "requires": {} }, "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dev": true, "peer": true, "requires": { @@ -7690,22 +7828,22 @@ } }, "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, "peer": true }, "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, "peer": true, "requires": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" } }, "esprima": { @@ -7715,9 +7853,9 @@ "dev": true }, "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -7981,6 +8119,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, "fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -8030,12 +8174,13 @@ } }, "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "peer": true, "requires": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" } }, "file-sync-cmp": { @@ -8160,14 +8305,14 @@ "dev": true }, "flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "peer": true, "requires": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" } }, "flatted": { @@ -8348,13 +8493,11 @@ } }, "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "requires": { - "type-fest": "^0.20.2" - } + "peer": true }, "globule": { "version": "1.3.4", @@ -8393,13 +8536,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "peer": true - }, "grunt": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.3.0.tgz", @@ -8602,23 +8738,6 @@ "strip-json-comments": "^3.1.1" } }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -8723,6 +8842,26 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -8732,6 +8871,15 @@ "is-glob": "^4.0.1" } }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -9094,12 +9242,12 @@ "dev": true }, "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "requires": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" } }, "is-data-descriptor": { @@ -9443,15 +9591,6 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "luxon": { "version": "1.28.1", "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz", @@ -9772,9 +9911,9 @@ } }, "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true }, "object-visit": { @@ -9836,17 +9975,17 @@ } }, "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" } }, "os-homedir": { @@ -9987,9 +10126,9 @@ "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "pkg-dir": { @@ -10162,6 +10301,17 @@ "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", "ws": "8.5.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "qs": { @@ -10396,13 +10546,10 @@ } }, "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true }, "send": { "version": "0.18.0", @@ -10590,14 +10737,14 @@ } }, "servez-lib": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/servez-lib/-/servez-lib-2.8.3.tgz", - "integrity": "sha512-zz4t8ie1uSO24qsHqH/FoUgD6SqJs4tLjWHbYquSE44ZUKvOnfXN4lWsdpLHTGh2Pzte9HIWmYtTOw0L5nZUIw==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/servez-lib/-/servez-lib-2.9.4.tgz", + "integrity": "sha512-Y4Ob6Crha2asqvoD3tUKxerAAlHY6TGK3cV8NzXnGxGZXPVffruzmwFJ+sIUc16zT2EowCFDzmGshTDRTRh+ug==", "dev": true, "requires": { "basic-auth": "^2.0.1", "cors": "^2.8.5", - "debug": "^4.3.4", + "debug": "^4.3.5", "express": "^4.19.2", "secure-compare": "^3.0.1", "selfsigned": "^2.4.1", @@ -10962,15 +11109,15 @@ }, "dependencies": { "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" } }, "json-schema-traverse": { @@ -11049,6 +11196,12 @@ } } }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -11135,9 +11288,9 @@ "dev": true }, "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "dev": true, "optional": true }, @@ -11158,9 +11311,9 @@ "dev": true }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true }, "underscore.string": { @@ -11174,9 +11327,9 @@ } }, "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", "dev": true }, "union-value": { @@ -11384,12 +11537,6 @@ "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/sitemap.xml b/sitemap.xml index 47eca29f3..7595d8048 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -128,7 +128,7 @@ https://webglfundamentals.org/webgl/lessons/webgl-qna-working-around-gl_pointsize-limitations-webgl.html monthly 0.5 https://webglfundamentals.org/webgl/lessons/webgl-qna-zooming-to-and-stopping-at-object-in-a-scene-in-webgl.html monthly 0.5 https://webglfundamentals.org/webgl/lessons/webgl-qna.html monthly 0.5 - https://webglfundamentals.org/webgl/lessons/webgl-ramp-textures.html monthly 0.5 + https://webglfundamentals.org/webgl/lessons/webgl-ramp-textures.html monthly 0.5 https://webglfundamentals.org/webgl/lessons/webgl-readpixels.html monthly 0.5 https://webglfundamentals.org/webgl/lessons/webgl-references.html monthly 0.5 https://webglfundamentals.org/webgl/lessons/webgl-render-to-texture.html monthly 0.5 diff --git a/webgl/lessons/atom.xml b/webgl/lessons/atom.xml index 867993d04..969e54457 100644 --- a/webgl/lessons/atom.xml +++ b/webgl/lessons/atom.xml @@ -2,7 +2,7 @@ WebGL Fundamentals - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,1811 +16,1811 @@ https://webglfundamentals.org/webgl/lessons/webgl-2-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Implementing DrawImage]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-drawimage.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Matrices]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-matrices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Implementing A Matrix Stack]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-matrix-stack.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Rotation]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Scale]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D Translation]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Rasterization vs 3D libraries]]> https://webglfundamentals.org/webgl/lessons/webgl-2d-vs-3d-library.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Cameras]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D Geometry - Lathe]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-geometry-lathe.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Directional Lighting]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-directional.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Normal Mapping]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-normal-mapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Point Lighting]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-point.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Spot Lighting]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-lighting-spot.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Orthographic 3D]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-orthographic.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D Perspective Correct Texture Mapping]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-perspective-correct-texturemapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D Perspective]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-perspective.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-3d-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL and Alpha]]> https://webglfundamentals.org/webgl/lessons/webgl-and-alpha.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Animation]]> https://webglfundamentals.org/webgl/lessons/webgl-animation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Anti-Patterns]]> https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Attributes]]> https://webglfundamentals.org/webgl/lessons/webgl-attributes.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Boilerplate]]> https://webglfundamentals.org/webgl/lessons/webgl-boilerplate.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Cross Origin Images]]> https://webglfundamentals.org/webgl/lessons/webgl-cors-permission.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Cross Platform Issues]]> https://webglfundamentals.org/webgl/lessons/webgl-cross-platform-issues.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Cubemaps]]> https://webglfundamentals.org/webgl/lessons/webgl-cube-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Data Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-data-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Drawing Multiple Things]]> https://webglfundamentals.org/webgl/lessons/webgl-drawing-multiple-things.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Drawing Without Data]]> https://webglfundamentals.org/webgl/lessons/webgl-drawing-without-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Environment Maps (reflections)]]> https://webglfundamentals.org/webgl/lessons/webgl-environment-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Fog]]> https://webglfundamentals.org/webgl/lessons/webgl-fog.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Framebuffers]]> https://webglfundamentals.org/webgl/lessons/webgl-framebuffers.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Fundamentals]]> https://webglfundamentals.org/webgl/lessons/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL GPGPU]]> https://webglfundamentals.org/webgl/lessons/webgl-gpgpu.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL How It Works]]> https://webglfundamentals.org/webgl/lessons/webgl-how-it-works.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Image Processing Continued]]> https://webglfundamentals.org/webgl/lessons/webgl-image-processing-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Image Processing]]> https://webglfundamentals.org/webgl/lessons/webgl-image-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Indexed Vertices]]> https://webglfundamentals.org/webgl/lessons/webgl-indexed-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Optimization - Instanced Drawing]]> https://webglfundamentals.org/webgl/lessons/webgl-instanced-drawing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Less Code, More Fun]]> https://webglfundamentals.org/webgl/lessons/webgl-less-code-more-fun.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Load Obj with Mtl]]> https://webglfundamentals.org/webgl/lessons/webgl-load-obj-w-mtl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Load Obj]]> https://webglfundamentals.org/webgl/lessons/webgl-load-obj.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Matrices vs Math Matrices]]> https://webglfundamentals.org/webgl/lessons/webgl-matrix-vs-math.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Multiple Views, Multiple Canvases]]> https://webglfundamentals.org/webgl/lessons/webgl-multiple-views.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Picking]]> https://webglfundamentals.org/webgl/lessons/webgl-picking.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Planar and Perspective Projection Mapping]]> https://webglfundamentals.org/webgl/lessons/webgl-planar-projection-mapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Points, Lines, and Triangles]]> https://webglfundamentals.org/webgl/lessons/webgl-points-lines-triangles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Post Processing]]> https://webglfundamentals.org/webgl/lessons/webgl-post-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Precision Issues]]> https://webglfundamentals.org/webgl/lessons/webgl-precision-issues.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Pulling Vertices]]> https://webglfundamentals.org/webgl/lessons/webgl-pulling-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[A simple way to show the load on the GPU's vertex and fragment processing?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-a-simple-way-to-show-the-load-on-the-gpu-s-vertex-and-fragment-processing-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Accessing textures by pixel coordinate in WebGL2]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-accessing-textures-by-pixel-coordinate-in-webgl2.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Apply a displacement map and specular map]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-apply-a-displacement-map-and-specular-map.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Can anyone explain what this GLSL fragment shader is doing?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-can-anyone-explain-what-this-glsl-fragment-shader-is-doing-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Can I mute the warning about vertex attrib 0 being disabled?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-can-i-mute-the-warning-about-vertex-attrib-0-being-disabled-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Create image warping effect in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-create-image-warping-effect-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Creating a smudge/liquify effect]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-creating-a-smudge-liquify-effect.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to draw Depth Sprites]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-depth-sprites.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Determine min/max values for the entire image]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-determine-min-max-values-for-the-entire-image.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Don't blend a polygon that crosses itself]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-don-t-blend-a-polygon-that-crosses-itself.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing 2D image with depth map to achieve pseudo-3D effect]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-2d-image-with-depth-map-to-achieve-pseudo-3d-effect.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing a heightmap]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-a-heightmap.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing layers with different points]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-layers-with-different-points.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing Many different models in a single draw call]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-many-different-models-in-a-single-draw-call.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Drawing textured sprites with instanced drawing]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-drawing-textured-sprites-with-instanced-drawing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Efficient particle system in javascript? (WebGL)]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-efficient-particle-system-in-javascript---webgl-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Emulating palette based graphics in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-emulating-palette-based-graphics-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[FPS-like camera movement with basic matrix transformations]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-fps-like-camera-movement-with-basic-matrix-transformations.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Get the size of a point for collision checking]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-get-the-size-of-a-point-for-collision-checking.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[GLSL shader to support coloring and texturing]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-glsl-shader-to-support-coloring-and-texturing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I compute for 500 points which of 1000 line segments is nearest to each point?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-compute-for-500-points-which-of-1000-line-segments-is-nearest-to-each-point-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I create a 16bit historgram of 16bit data]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-create-a-16bit-historgram-of-16bit-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I get all the uniforms and uniformBlocks]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-get-all-the-uniforms-and-uniformblocks.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How can I move the perspective vanishing point from the center of the canvas?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-can-i-move-the-perspective-vanishing-point-from-the-center-of-the-canvas-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to Achieve Moving Line with Trail Effects]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-achieve-moving-line-with-trail-effects.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to bind an array of textures to a WebGL shader uniform?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-bind-an-array-of-textures-to-a-webgl-shader-uniform-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to blend colors across 2 triangles]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-blend-colors-across-2-triangles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to combine more text drawing into fewer draw calls]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-combine-more-text-drawing-into-fewer-draw-calls.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to control the color between vertices]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-control-the-color-between-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to create a torus]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-create-a-torus.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to detect clipped triangles in the framgment shader]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-detect-clipped-triangles-in-the-framgment-shader.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to determine the average brightness in a scene?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-determine-the-average-brightness-in-a-scene-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to draw correctly textured trapezoid polygons]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-draw-correctly-textured-trapezoid-polygons.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to fade the drawing buffer]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-fade-the-drawing-buffer.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to figure out how much GPU work to do without crashing WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-figure-out-how-much-gpu-work-to-do-without-crashing-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get audio data into a shader]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-audio-data-into-a-shader.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get code completion for WebGL in Visual Studio Code]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-code-completion-for-webgl-in-visual-studio-code.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get pixelize effect in webgl?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-pixelize-effect-in-webgl-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to get the 3d coordinates of a mouse click]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-get-the-3d-coordinates-of-a-mouse-click.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to implement zoom from mouse in 2D WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-implement-zoom-from-mouse-in-2d-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to import a heightmap in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-import-a-heightmap-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to load images in the background with no jank]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-load-images-in-the-background-with-no-jank.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to make a smudge brush tool]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-make-a-smudge-brush-tool.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to make WebGL canvas transparent]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-make-webgl-canvas-transparent.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to optimize rendering a UI]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-optimize-rendering-a-ui.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to prevent texture bleeding with a texture atlas]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-prevent-texture-bleeding-with-a-texture-atlas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to process particle positions]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-process-particle-positions.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to read a single component with readPixels]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-read-a-single-component-with-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to render large scale images like 32000x32000]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-render-large-scale-images-like-32000x32000.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to simulate a 3D texture in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-simulate-a-3d-texture-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to support both WebGL and WebGL2]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-support-both-webgl-and-webgl2.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to tell if an image has an alpha channel]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-tell-if-an-image-has-an-alpha-channel.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use a 2d sprite's transparency as a mask]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-a-2d-sprite-s-transparency-as-a-mask.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use texture, and color also in WebGL?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-texture--and-color-also-in-webgl-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use textures as data]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-textures-as-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to use the stencil buffer]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-use-the-stencil-buffer.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[How to write a web-based music visualizer]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-how-to-write-a-web-based-music-visualizer.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[I get invalid type error when calling readPixels]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-i-get-invalid-type-error-when-calling-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Is it possible to measure rendering time in webgl using gl.finish()?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-is-it-possible-to-measure-rendering-time-in-webgl-using-gl-finish---.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Is there the notion of a generalized vertex and fragment shader?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-is-there-the-notion-of-a-generalized-vertex-and-fragment-shader-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Optimize drawing lots of large images]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-optimize-drawing-lots-of-large-images.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Passing in per sprite alpha values when batching]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-passing-in-per-sprite-alpha-values-when-batching.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Pure WebGL Dashed Line]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-pure-webgl-dashed-line.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Recording FPS in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-recording-fps-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Rendering slowly over time]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-rendering-slowly-over-time.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Setting the values of a struct array from JS to GLSL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-setting-the-values-of-a-struct-array-from-js-to-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Show a night view vs a day view on a 3D Earth sphere]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-show-a-night-view-vs-a-day-view-on-a-3d-earth-sphere.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Sorting and optimizing instanced rendering]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-sorting-and-optimizing-instanced-rendering.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Tex image TEXTURE_2D level 0 is incurring lazy initialization]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-tex-image-texture_2d-level-0-is-incurring-lazy-initialization.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[The fastest way to draw many circles]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-the-fastest-way-to-draw-many-circles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D tilemaps]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-webgl-2d-tilemaps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Droste effect]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-webgl-droste-effect.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[What is the local origin of a 3D model?]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-what-is-the-local-origin-of-a-3d-model-.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[When to choose highp, mediump, lowp in shaders]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-when-to-choose-highp--mediump--lowp-in-shaders.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Why does WebGL take more memory than Canvas 2D]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-why-does-webgl-take-more-memory-than-canvas-2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Working around gl_PointSize limitations webGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-working-around-gl_pointsize-limitations-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Zooming to and stopping at object in a scene in WebGL]]> https://webglfundamentals.org/webgl/lessons/webgl-qna-zooming-to-and-stopping-at-object-in-a-scene-in-webgl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Questions and Answers]]> https://webglfundamentals.org/webgl/lessons/webgl-qna.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Ramp Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-ramp-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL readPixels]]> https://webglfundamentals.org/webgl/lessons/webgl-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[References]]> https://webglfundamentals.org/webgl/lessons/webgl-references.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Rendering to a Texture]]> https://webglfundamentals.org/webgl/lessons/webgl-render-to-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Resizing the Canvas.]]> https://webglfundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Scene Graph]]> https://webglfundamentals.org/webgl/lessons/webgl-scene-graph.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Setup and Installation]]> https://webglfundamentals.org/webgl/lessons/webgl-setup-and-installation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shaders and GLSL]]> https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shadertoy]]> https://webglfundamentals.org/webgl/lessons/webgl-shadertoy.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shadows Continued]]> https://webglfundamentals.org/webgl/lessons/webgl-shadows-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shadows]]> https://webglfundamentals.org/webgl/lessons/webgl-shadows.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Skinning]]> https://webglfundamentals.org/webgl/lessons/webgl-skinning.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL SkyBox]]> https://webglfundamentals.org/webgl/lessons/webgl-skybox.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Smallest Programs]]> https://webglfundamentals.org/webgl/lessons/webgl-smallest-programs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Sprites]]> https://webglfundamentals.org/webgl/lessons/webgl-sprites.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL State Diagram]]> https://webglfundamentals.org/webgl/lessons/webgl-state-diagram.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - Canvas 2D]]> https://webglfundamentals.org/webgl/lessons/webgl-text-canvas2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - Using a Glyph Texture]]> https://webglfundamentals.org/webgl/lessons/webgl-text-glyphs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - HTML]]> https://webglfundamentals.org/webgl/lessons/webgl-text-html.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Text - Textures]]> https://webglfundamentals.org/webgl/lessons/webgl-text-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Texture Units]]> https://webglfundamentals.org/webgl/lessons/webgl-texture-units.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Tips]]> https://webglfundamentals.org/webgl/lessons/webgl-tips.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Visualizing the Camera]]> https://webglfundamentals.org/webgl/lessons/webgl-visualizing-the-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/fr/atom.xml b/webgl/lessons/fr/atom.xml index 1c50a23a9..947103881 100644 --- a/webgl/lessons/fr/atom.xml +++ b/webgl/lessons/fr/atom.xml @@ -2,7 +2,7 @@ WebGL - Les bases - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,179 +16,179 @@ https://webglfundamentals.org/webgl/lessons/fr/webgl-2d-matrices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D - Les rotations]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D - Echelle]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D - Les translations]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Les Caméras]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-3d-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Lumière directionnelle]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-3d-lighting-directional.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Les lumières-point]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-3d-lighting-point.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 3D orthographique]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-3d-orthographic.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - La perspective]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-3d-perspective.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Textures]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-3d-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Dessiner plusieurs choses]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-drawing-multiple-things.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Les bases]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Comment ça marche]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-how-it-works.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Les Graphes de Scène]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-scene-graph.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Shaders et GLSL]]> https://webglfundamentals.org/webgl/lessons/fr/webgl-shaders-and-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/ja/atom.xml b/webgl/lessons/ja/atom.xml index 826640b68..b3bb4281d 100644 --- a/webgl/lessons/ja/atom.xml +++ b/webgl/lessons/ja/atom.xml @@ -2,7 +2,7 @@ WebGLを基本から学ぶ - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,275 +16,275 @@ https://webglfundamentals.org/webgl/lessons/ja/webgl-2-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL二次元行列数学]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-2d-matrices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 二次元での回転]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL二次元拡大と縮小]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL二次元で移動すること]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL三次元でカメラ]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-3d-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL三次元指向性光源]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-3d-lighting-directional.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL三次元点光源]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-3d-lighting-point.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 三次元正投影]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-3d-orthographic.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL三次元透視投影]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-3d-perspective.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLのテクスチャ]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-3d-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLのアニメーション]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-animation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLのひな型コード]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-boilerplate.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLのデータテクスチャ]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-data-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLの基本]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLの仕組み]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-how-it-works.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLにおける画像処理。続き]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-image-processing-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLにおける画像処理]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-image-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLの点、線、三角形]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-points-lines-triangles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[トレイル効果を使った動く線を書く方法]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-qna-how-to-achieve-moving-line-with-trail-effects.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLとcanvasのリサイズ]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-resizing-the-canvas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLの開発環境]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-setup-and-installation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGLのシェーダーとGLSL]]> https://webglfundamentals.org/webgl/lessons/ja/webgl-shaders-and-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/ko/atom.xml b/webgl/lessons/ko/atom.xml index 7cba7a927..78ab66e1b 100644 --- a/webgl/lessons/ko/atom.xml +++ b/webgl/lessons/ko/atom.xml @@ -2,7 +2,7 @@ WebGL 기초 - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,839 +16,839 @@ https://webglfundamentals.org/webgl/lessons/ko/webgl-2-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL DrawImage 구현]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-2d-drawimage.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D 행렬]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-2d-matrices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 행렬 스택 구현]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-2d-matrix-stack.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D 회전]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D 스케일]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D 평행 이동]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 래스터화 vs 3D 라이브러리]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-2d-vs-3d-library.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - 카메라]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D 지오메트리 - Lathe]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-geometry-lathe.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - 방향성 조명]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-lighting-directional.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - 점 조명]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-lighting-point.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - 스포트라이트]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-lighting-spot.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 3D 직교 투영]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-orthographic.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D 원근 교정 텍스처 매핑]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-perspective-correct-texturemapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D 원근 투영]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-perspective.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 텍스처]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-3d-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 알파]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-and-alpha.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 애니메이션]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-animation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 안티 패턴]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-anti-patterns.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 속성]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-attributes.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 상용구]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-boilerplate.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 교차 출처 이미지]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-cors-permission.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 크로스 플랫폼 문제]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-cross-platform-issues.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 큐브맵]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-cube-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - 데이터 텍스처]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-data-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 여러 물체 그리기]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-drawing-multiple-things.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 데이터 없이 그리기]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-drawing-without-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 환경맵 (반사)]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-environment-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 안개]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-fog.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 프레임 버퍼]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-framebuffers.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 기초]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 작동 방식]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-how-it-works.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 이미지 처리 심화]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-image-processing-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 이미지 처리]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-image-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 색인된 정점]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-indexed-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 최적화 - 인스턴스 드로잉]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-instanced-drawing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 유틸리티 함수]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-less-code-more-fun.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Mtl이 있는 Obj 로드]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-load-obj-w-mtl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Obj 로드]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-load-obj.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 행렬 vs 수학 행렬]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-matrix-vs-math.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 다중 뷰, 다중 캔버스]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-multiple-views.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 피킹]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-picking.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 평면 및 원근 투영 매핑]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-planar-projection-mapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 점, 선, 삼각형]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-points-lines-triangles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 정밀도 문제]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-precision-issues.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 정점 풀링]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-pulling-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[질문 및 답변]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-qna.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 램프 텍스처]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-ramp-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL readPixels]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[참고 자료]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-references.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 텍스처 렌더링]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-render-to-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 캔버스 크기 조정]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-resizing-the-canvas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 장면 그래프]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-scene-graph.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 설정 및 설치]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-setup-and-installation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 셰이더와 GLSL]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-shaders-and-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Shadertoy]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-shadertoy.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 그림자]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-shadows.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 스키닝]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-skinning.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 스카이박스]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-skybox.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 최소 프로그램]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-smallest-programs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 스프라이트]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-sprites.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 상태 다이어그램]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-state-diagram.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 텍스트 - Canvas 2D]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-text-canvas2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 텍스트 - 글리프 텍스처 사용]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-text-glyphs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 텍스트 - HTML]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-text-html.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 텍스트 - 텍스처]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-text-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 텍스처 유닛]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-texture-units.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Tip]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-tips.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 카메라 시각화]]> https://webglfundamentals.org/webgl/lessons/ko/webgl-visualizing-the-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/pl/atom.xml b/webgl/lessons/pl/atom.xml index 01b53f51e..48686ef8b 100644 --- a/webgl/lessons/pl/atom.xml +++ b/webgl/lessons/pl/atom.xml @@ -2,7 +2,7 @@ Podstawy WebGL - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,47 +16,47 @@ https://webglfundamentals.org/webgl/lessons/pl/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Przesunięcie dwuwymiarowe w WebGL]]> https://webglfundamentals.org/webgl/lessons/pl/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Rasteryzacja vs biblioteki 3D]]> https://webglfundamentals.org/webgl/lessons/pl/webgl-2d-vs-3d-library.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Podstawy WebGL]]> https://webglfundamentals.org/webgl/lessons/pl/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/pt-br/atom.xml b/webgl/lessons/pt-br/atom.xml index f250d1a46..017d5ac02 100644 --- a/webgl/lessons/pt-br/atom.xml +++ b/webgl/lessons/pt-br/atom.xml @@ -2,7 +2,7 @@ Fundamentos do WebGL - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,71 +16,71 @@ https://webglfundamentals.org/webgl/lessons/pt-br/webgl-2-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Escala 2D]]> https://webglfundamentals.org/webgl/lessons/pt-br/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL e Alpha]]> https://webglfundamentals.org/webgl/lessons/pt-br/webgl-and-alpha.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Animação]]> https://webglfundamentals.org/webgl/lessons/pt-br/webgl-animation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Configuração e instalação]]> https://webglfundamentals.org/webgl/lessons/pt-br/webgl-setup-and-installation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Texto WebGL - Telas 2D]]> https://webglfundamentals.org/webgl/lessons/pt-br/webgl-text-canvas2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/ru/atom.xml b/webgl/lessons/ru/atom.xml index 5309bac14..5af8836aa 100644 --- a/webgl/lessons/ru/atom.xml +++ b/webgl/lessons/ru/atom.xml @@ -2,7 +2,7 @@ Основы WebGL - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,467 +16,479 @@ https://webglfundamentals.org/webgl/lessons/ru/webgl-2-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Реализация DrawImage в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-2d-drawimage.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[2D-матрицы WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-2d-matrices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 2D - стек матриц]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-2d-matrix-stack.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[2D-поворот в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[2D-масштабирование в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[2D-перенос в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Растеризация или 3D-библиотека]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-2d-vs-3d-library.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Камеры]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Создание модели]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-geometry-lathe.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Направленное освещение]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-lighting-directional.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Точечное освещение]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-lighting-point.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Прожектор]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-lighting-spot.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Ортогональ]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-orthographic.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Перспективная коррекция текстур]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-perspective-correct-texturemapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Перспектива]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-perspective.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Текстуры]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-3d-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL и прозрачность]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-and-alpha.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Анимация]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-animation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Антипаттерны]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-anti-patterns.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Шаблон WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-boilerplate.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Кросс-доменные изображения]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-cors-permission.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 3D - Данные для текстур]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-data-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Отрисовка нескольких объектов]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-drawing-multiple-things.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Основы WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Как работает WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-how-it-works.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Продолжаем обработку изображений в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-image-processing-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Обработка изображений в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-image-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Меньше кода, больше веселья]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-less-code-more-fun.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z + + + <![CDATA[WebGL Ramp Textures]]> + https://webglfundamentals.org/webgl/lessons/ru/webgl-ramp-textures.html + + + 2024-08-11T05:09:49.000Z + + WebGLFundamentals Contributors + https://webglfundamentals.org/contributors.html + + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Рендеринг в текстуру]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-render-to-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Изменение размера Canvas в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-resizing-the-canvas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - Графы сцены]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-scene-graph.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Установка и настройка]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-setup-and-installation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Шейдеры и GLSL в WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-shaders-and-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[Небольшие программы WebGL]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-smallest-programs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL текст - Canvas 2D]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-text-canvas2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL текст - Используем глиф-текстуру]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-text-glyphs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL текст - HTML]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-text-html.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL текст - текстуры]]> https://webglfundamentals.org/webgl/lessons/ru/webgl-text-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/ru/webgl-ramp-textures.html b/webgl/lessons/ru/webgl-ramp-textures.html index 8abdb789f..1c924d22d 100644 --- a/webgl/lessons/ru/webgl-ramp-textures.html +++ b/webgl/lessons/ru/webgl-ramp-textures.html @@ -1,5 +1,5 @@ - + #Om8&+-^xT~8gZXsHg3qXvTl`SX0KMIcxn+f4axijvY zwbPONk624j2>%KxY?QCH@#0D z=(`Oohv?3QFntRa+9_5G@31oR*J;3}b%)0^sw!Xo}G!Df^c1E%67Gf;-tkM(ZiD}@*)jLD`JwTqp507(>Mw9c;v8vYX;ss4o- zs9d(0;8(8OpI)WL++Zk?{VDex(uHB%U=!l3YLjnN>R)+1F%nm9WBFe>BJxCI9ah*v z3bF1=ooASf(DLT(vfEs7OElr$r0oC&hN)O3R%^qpFl!htl6;L=&k1@|>kiSr8fg|1 zTCu6AiIYSq1{LMIhq%ii2pT%8HkRr*xVHUh4>fTPr#UZrajE7F4ncDSnAj z$RcK>uY;CkUjNllAIhj12U#Vo--Zp*ycJz5Q~$Oja0RDQ{GiFNHALV3eA0c9k6X6n z+f^1nvnucqs=@Q(TryovhBe@~Z^E77>Th$P_e06{_q6uaV3b*(^UtyH3yxp&DJXYpl z>NSa!Y>mNZV`e@vk!$AlLQ3vaYQBo3SQnc$_?p9uikd~O_GlOP<7FKe$#A_}*hQg3 z4~W!~eU?n`Y?kl00sQY0SVscBFl{6HGB|ZAl32BluY`-jf2e|N8j@gHNF{jXNcRqL z^`6jg;H6s(?|Yw}3L(VqTu61ICw_H@Q)^Q1hh1-4F0EcXjEjCO!imutoS*fDH{FCa zEonk4Xq5fX0$cL6UQ_fhc5%fuRb>@IgdDLUfP*_aE;Cx#$z_ME--$DgDGRjcn!U#g zGu9c#CZdLTaLU5rf1mI*!y_Yt-Eu4sCibF>(pYEX?dH5_QsE#s<&f#}VsQ&+S1n3RfwD&SZF=6k3`={UN7OLs6@2%MO>&AL@+NBE12rtC6X z4dFYUedzf}b-BB{TtX)P8@f^!-$=E%7bPC|pYJKcIe^R<& z){(c`N=NI##H?Wfe64yq%EH~uD^Q_*;&785UQi<)xa<$va$cZQbq1l;<|H7!d@+EPAlYq${YVHe8i(U$_T)lG6)z)96m%S~$6Mh(YqtzXs z#7sQwX)fkl@>r|p^2w-h+3P7pK6Jf(HFBuU@K_`T$P47c zOzrrp1Zn8%Tuvo~7HF29G43P}U}vzVYB`rlmsA*g=}|j~Qy!Ono7iyo_Z|Z`DP=Ij z$aqZ__B2q%su>~YI1-$t#g~rvX%AWC>gwt9o^ia(XsFp`yYw*(YR&$bY`i(5wJ0CEzqD?)5 zqkw#noQ)92Rml#)<^=shsr=vn34lGX?k)8zXBi;g%fw(X$8d3fB69GIiW={Bm@Mvp z%Y8|wWn`?w3MvgkC&cb8&^4^ymVY~$ye_Sd4E=+LvhE|of2;qm*jN5fCRf^Ov;WP{ zm8Z_yU6+~nt6l52!~j{;`~S6e^f_?EgjamWR&Bqe!%NPM~Q3! zf)RE{L{7n1!WV{2+=E5Q^o-4CZ)%me-qXAZ^;{+X9y^5~8@+Kj-HU-i^5i`-6KhIU zy%lQIOCS0?xEE?4B3iE1kTc)O6>*Fqh0qd6%`xBWb)RvOJ(0btBQ3=;O2>|pl`Ql# zXUd|`P5qINZ@Q}{q*OGY%&6s?&_VC9W%-D%aFq?Os@o)rn%&!5oWnRg{tCdsQpd^?wrR-T z_m>b)WB61NRbe=hgj3qVwsomQo(&yFNHli?9Nmpi5EEDkf)@& z;kZS-2Dep8pIga{a=}jl&J8V|4&`0wKOe;63s-!(NTt{&^s~cxWb<-*0^v z(F4na0y$9~cMAx=}T!Awg_L`{XDs;ftS>xOqZO+st^izWomoY zbk|bgYKB;ng}b$vGK5|GfxJ+5%QNJLtg3Y~Hzx1CS3@y2of}tj_IRNDtqmS^OF0`@ zTh$RkFDtPde-~gwNgfoAM!21AI5$lUtPED#of$Zqf{yq~lmWfx6iO!Uup2J5G zu^bF!j+IrdYF6`S2_#>LAmL=@)xNV0Zh>FnvcfZqHwE`>R{R9!mMO!tD*Tw?;Pn zI2uLud2Ik>XfvcF`~G$)qOVMiz2i|f6ERX|Tyx^1lSPd6I0?z#mWu-dTI1}4o8>Wi zvz-qEQAlRvbrkt;{ZVNy5nEI953$p&!<`vJ+$N#!WJ7qhzPj^x??eX@UE&g3R)uVl zRY|3aRAAYIzYtkx)3Gf%vU7Gc%(FvrDCnPs#5u(q~u?@@_QE4?BTDe~%gVUVV#P zd2cn5bq>Vygs+r!V^I~)cqMbbtZ42cv<&pfBKiA6p}*QBI9Q)1_r*(@<&jcD_<;(YD}+B zCBTM#Xx7mJrH!tou&Ij(%eMo{I^A^btU4Q$r@_j&;+N?8?~$%vEMj8HJDc!*4e#V)&;Q%Sv6wzsbBilj!=L-s5191dgFoP{)Z+0S6V{@+}?GK4lSk z2TZqWOP?tKCO55Wrc_Rc|;y#2B1QiVh=H){aC;bo^d47UC5R;cmO3A@#n z*QRb06h%g(@W-9$f4)R;`7JB>T-B|*Pa#4>ssloc+n+~-<8kz2U|=+TNOQ%(AWkbX zg=i(`FhUvCqIu+&1?7lawSjFZ;e%@+b7<;N+h4-LBpb@jsG9kVMP+C6Ifk~?y%%*{ zo;y;XWREqDOd-GILaR3|Lp8cDgaEM>Zs=sylXu^Bv2n0*UKzd6W+#0S{-PwAfg1pL z0$wNnKj#G~cbh~R{Az`XRf<#g$OV3}&}ooC+CIfXoQ#$I62)s58YQIf$Qz&oNt<|& zg>d2X^!*5|uFnVza^k?=G8=T3t8eV;0|u5UHpVNgr=+QFroAE;h|~1<-^d0TJ}KMK zx6plXprJ}ukxt}QMje$d9@I?NjYDJzy?2e-d7k8Cxzq!%OD7@Om)Zyoj2I$y|D<#*HV_#;KM8(cD{@q zCD{kd=b+{95cjm%;zhc#r6njKK2F;iFXLd7!l{V7Yj`DKPW!S=EYUq=Ah*D~MCy|g z_+2)>37FFo9dZXN?e=Cs^gSPysXq?;Hp0YBr+*-T2FGu*{$Y#-I|uwH0mR6!Uhv`{M(X|Qf8Lbg zHJp6KEzn2U#(Jhk-e+SP*&ERN&?YhVA4WcRPVSf}qQ5vJ+a=37nuvq<^L86J1frLj z1@ht^2*Ne0x{d zP>;;Ch+UxmobT{`mCPbL1q?o@ah6m?N%tP_qq))(e&=>eU;Iz>N@d=nY0Q0Z6g;Yn zTZ3=s94@4-#Z{QNr}Yz6ZQox$m&QKssa@3*+kVtbok-s*U0;YGh1nmaR9y#5N*KD1 zOmgzhVsUgiXD4KMpxA}|j$?GnM?F~5bq`JC5;%EBZH)<1+v0wq=?nA#DzyUfx~YA) zXEk(gMZ&+)eXNkeIM4S7lKD7B*Zh~EXQdsr`fL!t!)xivRsZKUYoq{adS;>4}bVt*~1oH)*T}{%gf` z39n*Mi9vd>SOTi}jdJ2B`>%YEVeO!`!dMxd@q~PSs@V2EzFy|W_*@d4Sy%PoN|xt-5J@RzU>-UJ0W0_tFrZ? zmTc80i42@rI#NaPJjz(Iy@xj{ki(}zV*dg4WKhq=&VXDgAFl&n*;V`KvcdAW{ zgdd@8zmd+{>Da4_IpfZ}^Nfz_UTJggCxY%bc8e#q{*+fl*gwKyLvrO!dVf9F@j7x! zuUCLG78Gi)vp*ck6z8zvoRN)+f$dPlDI&Xi2@zT3=K>K~^bdSq;qR~q=bEu;h9+K^V$ln@(sBJF1c|43)-cV!I-c~z(z@z zYE%DB-n~C&Icz$_I{TDq6ixz-(uV)V4!Gtu?ubzkw*CVwR%6M!0UOcCX89yEO}EK* zxvd$d6kDl>`EcM!*vM^37(24$gHHW;hj(Z9UKcIdrX(6)8%YG~ zw#6BO`r_kr!5&B)72PRo6{bzVVUOd^AzY6}M;FZ)cE zCbvPv36oEjayj*s52aOgIko?CcalZ9VK9eKtV18kEgAvgTz8XdB_FlNvlPDu4(+AT zWLdVFuol-Uk7~5_gP9@poZjn3s+n_*6Jn6+NnNk_kJx3lUSqiS=jnmD(E2y`ybQ{y zv!G=OfgLzFGdsB11xhJWI9DhX>DSLB$ZFM;8@*sRV*E-_aHLrP$Dld-2G?XDF7l#^ zh{@DQyFeuRniby2)21{AmeWR@%U6U|IoYSwSBke;8NGdD;#}g^b4MW@U{M>&@GM4j z-zYij@u_{?%umfmDu31tdIz-)>?;Cu zig#)sBM}imfscj*Gw(S(UH^T{T)?fz7JRi3Lfmk)J-?SiZ|z;@gf?bxEw@Ne zOn3QKQ9m+~l$G+$y(0d5>+t@Co2>JzZyRq=cz@y8b8{3&FJj&Y3d@9cya{5x*Dl!l zi>hX8QP@8-7o5>W3WpsU1z&EpSh^<6$>7fa!zfVtCCI1zWG0G2SO0bJ`7=6@-yG$(j;Zc*?5%PDLUs`=ak0McU^SmEB=d z`zeshxH^^s)~(#I2g3>15 z^QK`Rf?c(nj#P6eqW2q1hGS@(5TXLKkyP%eP45?a*51#E^mBU?21{VK?RdtTv}yVirz+E5}vd!jW*n$JBOx{%`3;B_|mii@YvO-71L%$9^p4f7 z0Bbqq&une-;<6RpFb!|Bm0I}4%-^*bO7X~qnOSt(qwZ+ORr=~kXv9A0O;C?XR^yc0 zRkqu}zdX;#H>5`LSbJpUM5{p4QJ%kO(AxugPa~=Jo z)4*vL!))C#MUhcG=MwLZ4HX6aI0JV@RnV{{@Gk3oBHcP<%1V9kjOpSU!+ChKcF{tR z^^GE=(k)l6Ow!tvlW;bzgEOQ7(S0_ z$HZ%Em#(wH$&9ic?f-PO(|RbDQ3k2_@?==c5YX>zn`g;uH7;Xf@oq9CM?|t?iWSp~DpfjPh)L@tc9CjZr%hWn* zvx@ptv6RMy#-5wVL^ix82mHghX^r}2i?%+26Y0+j%yiIAN@s3=slFC|f6qDgzH+*o zbkTEnHe~cztB-E!1>1bp>7OnAK11A8sX83Z3f+}opXXBih)Bqwl$BDlW(S(Vg3nLP7TccwHmBR~ zSAvHLnf&fpU1q(ryLi8yP`D~wD_EzjaYq*8BJFTin1DXXAcbIq+gG`X?U^T zA^=Nyfn7zX?5> zz!aZ91_?RMbe*_u%SMj4eRz4_#={*HeY8IHeg zJf;ztyzc{+K5@h~j}#ftcsti5>^^dsDSS+0mzA7K32+f|w1Ej8XoGpOu8C(vgP;CP z4Ex|$#wr}Vm*lX{Q_MX|X$#4d&1$;p;c(>PJOq3jO-|$L$3u4rP=8-&=XLb?7&x~I zQT=cr#|1UwaY{06Wsh%y5ZR>Te;=LwU$mB?y6|_@DK`On^WHNH22 zOZYYZtm*!|r}ii}RDk`tOW(6=HRJyZ9yqS5`#XdET{d0uNckm8ZY>H6v`v^KMHV$e=w0j zfse^Qj0!cvFIWZKNe!FrYz`EI_}9zX?KsnOOv``v9k-i6hB0b8hW8+2`k;g$a^*My zduz-Qr#~7ekg=^{{O!{5P}d{>kYJS64P(0-(m$jj>0FrkZ#B0#9rl;9gS%h4Nehu1 zePsvteKH*jN%u94V4I}z`8UHGI2J0uQ>8Y_RPdAOm7TzUR*^wuz0ZpMT0Y#%TWW5i zRJZG}XvuxUG-D?oixx^cWltE-ImX?*?wp*>p;N!Pisf6r4m$kBH~#Hy*3RLoZ}%qP zZ3S=gu)Z)7PZ{RSHt%&mD!8noqIOFZeYt&fwY>Vd0F4 z{ZjyQ8W;GAgOdqD&j`l?4zBTLL}ezKwc9V@8dqgKm2H{Sqoibidf!*61`mZT`EXtRU)pftmY>+j4xQ3Y)F%?xxdRD^>i&ZN9OOwIKnI=-XV(GG*0C1MaSt{6^C3@b;8dq1t(7 z-W9y4K3axPQWx~OLe!!)9fS?+P`w7f#yzPq`kJ_xy8}6)QuxayvZc z`!4`stc;S#BQyQ%Rg0RP;)$Nx@uvj!9!I>w3dtq4b-i(zlCw!!K8njDJ`T=e^=Va4 z>XQXDh@h=f=lD7Iwb;+)N(&rmPZqdsaLTH1Za|A`;0Z1lsiaI-iD5hG&}6BuwE}b~ zoRX3~83v(Nk&$GARJbVQtEfF=znZgb#~tgnL-UA-4%Tk*8K?3~VcaQ_T#24tsrnba zFxgi`d}C%L##d0zGzV#xn^bG@3KB5xZgYaJ=z3r#ZZkh^9Io`KJkU9Wu5Oh2q)mD`menc#obL%JXwrY1N$-{3=z40iznut~kUo=%`s8oyHc-j`sl59v@ z%D+O%xReGm?zwesRJIEVRYOy2(#)&BR)Tcd@)uw z)fI?hb68%bdMIEE?4rCyIF4)ivuM$oG#Tk6K(%fkv@{}Khu=01i>(-yXgN^OG$&}p z4Rf~_Fa_F;NT4dh7w%=t)z#*;vbvLPu2Si5A`dho$aC;IW>(aEh!IEBzwd^T%#*D( zjk%SZxb^2ndHL{7Zx@<_x17S?uSKot1#*ovuGi~`h`}tzSZzdX7Az*pZM-b{;ijNi zLzh=rJiQh#U>u*VJcQk!+<0HE%6Kvs;>RUUI&7&InB(F6Qj3xxGK^>X6wt%LCQ*R# zsP$37g$(1HCN{>?ySL97FffQiDaO$37tYNWsUI+&u)po-Yh_W=7mSgy0CB&dYK0bv zY`wFS8_}dyssT%T!T+#4|3SW6K>3pCZrSNEHMt{iR|{_`&qNT6Er(oZ=gjNpGES3| z3q^mPhRS`=!+F~Gv`<@$G_RNOog8N9fnBk4c7L#!DD;u&2l)YW{6_&=Pkf4|l-E8C z5nUwBmcnaTC+bh?vYPbEFsL+;4%be%7@r{|X5kWOSr(fE1LLKN(KWjkJBy=nADXvG zfP9K3sSu1{zEb#Pq4EzyJj5jQX4BkHY-gZ_H)4j0*J4egtK4hP@GnWV{?Hry%<(w6 zce}5q$b2&vSZTa_HtaDlM9WiOgr{E=a)&>mQ+`Xn=^1M?EHRMX6Z+I(t|-6RPr1eY z-g}9#W7KQBXf+3&xT!^&SOza7=l%J+6&3II#-wz}owvW^`&2vSxn>5?cJ9$iTla(@ zKPR+d;Uu)4dHUdUvoOn@o-ONiSTmXNpcJ`t0_^$2pZ7))Xlj!6rMNqb&25_Cd7M&T z{Edi*UV*qqrsJ-xc!f}?(_4m}O7freP$+fw{ENM(q*BuTaC7&Jq5|#y@64J%SG^wHCR@Js?e%T2@cK}_TPfEg*UeN) z2McxEx)AvgA4wp1EzxgL=Uopcb;jiq6<_Ta(?ni-i;@VTj#t^n%4dJg*{E@yuJjvdT@7j_efbv}Ko_HnmKmV~OA0a3lZBIUyaMq#;b5`E>3_#vv8VBq{BkV`z6mZ#x-Y zU7Z`vZ)AuXP|pb&Bdo`2i?6g(&LL$lz&)aU5Rhl`Y3RN$d>36Bw5M2=aK(q0$a z*WXS9d#%D^Q#{Y}oK2>=uh6LUpw5L5Kky%io@+X%#O>d8o?gTO3y&WnKj_R{=p9KB zpEitRJ2tnvaMHg%U{2Iq(NeofXvz8kRS|YN!4r3qJ;gSm+CuzEcN=G|p#mV3`Km_DIU=G>7o5#JUV z)i4f}3bpo0%o#EGno zIx{OXEGN9X^w}+`N#c;g94zj3w-guG0ZGg)dpk=+i0qQWw8;&r)Y{S7Wqetu?~>Dz zL)zO~9ea;dqpFY`o{)x0^JBlH-<>im79@1bm-~ z)*gYE8J=z$8<2xHI|274Qwcp^p6|V(3@%yNd$sfn%N!x@saOyJt8jCXkpIYxE{@xB z9t{C3P5^riolyAH?WSMnVw@KoS<=cP$oF8yJfM7= zEcTmJrA`oqc=}H;mR^Q0mSSX!foC$t{^x^e9siE=ZrN;+v|g_#GhNpLjFRQe|Y}-y%p0a^Sd3LxiMb6?Vq`lMLLA~t?RwR?rmxF{S{n7 z-A4xtIXT7}fupLx?6CkC+GUelMNU(+m4$@ea|W=2`gHzJ{xiZ0~A>*(hN%x zY59*Hf|9NC1q|~)?g>lszj;b>>Qyo)G$`v)5_PPS~0WInCa&6foZKc=x+IH3C zejIW7(wLSu#8)k>UI2&OOOEH=lNB?8~|*b#&xEpI!m-Beq}}Wnr;{L?0w#W)EkEcvIH|#v^>~Q`hYn+`K*Tv%Yds< zS`o0QLz1#O+Cswj2JAXUpnXjL(1&+_V{O`B%o={O^K$m6muME`F^jGQ8=u=u)-(&! zy@u0Qs@ihvnWO*?Qk;Qfc#iIh{%8qc)fQa~5O&ep!Nx0k(B=#Hr5ZunR)d6?BsZTD z)yJW^4#9=z7hLkWqF(``zywuYy=`#NpK2;IMDDN4Ky02Lz$2{qkt;!g^7p)zSNzR3 znpkJDg&)V1pRUz+a=xH)5UeM)O{h@W?|NbH@fTnA&Ea*lx|yeu$gZp*JWn`+e8Z{D zy_)CIA;9#om}V)wLY2M2Rh9a=b9N|Q*R0sQ;q= zVcdRuTyFND`=VYlt{5dn!Qc5cp2n@6kW$Jke%ov_&0pDv*n^hM2kSaHVYNoJ?*4vD_~`UeKB zpC5J~Ub@BG}7~|FJE{NUE5U*txaz;+&4VvhzgNkWU;>%DAoi`;M+fY>i&h0 zOWjgWXhB5el?%E|71Aho_e2_i(2*e= z#CwpBUL^h0@|Tc%WN763VOw#bkEv&>x6j3!4ipf)7OW48sLyd`aN;th(vU2S=@(gQ zZNzjLycQ=pEDvn@)t@!9@mUc3AfqXS;#!8uHiPbv`KLV>-+wYX<;@ijFr%YVfw>*TPAsvGpp@c(da(GtaF9PoV9v@|3CrnLM|c&ud13T$a-KT>A!yBxSU3*Gv?hQ< znR2JZXYgUw`eHJ;2J0)e{qA$88E+@8IK5Jh!i7?3m0KyaV#u)Vr=dDWyAcG)cG|BtDeFv2bwVAn5{x&$Og4+x(+NWfnZwE39g0El0D5jsEiO8Qz z*=>1Ph}dOY>RAFFzN9(L-oNBo^$n-89+$U!68`8%ERHpt`}|TsJ~Ptw)fCNenUbI& zePRTlVjaeLjEF$TZw703jz9IP$CUn6Hzm(rnXWdzLezZ9XBgk0)-m5=55Mdv zCK{`EsR6oMZ-sNUv88&TXPDo!%;mz@uYuxE*a~?WRrB22Uj~poOQKzIZR^LY{gw-1 z#A`$Mr798lP93YIRdJN5BUyGls;}2i!9V$s}e$8h!N;;u9sMXm2i~ zi2$jk7^*7AI2fqItMwqgB?A6)oaaH?=kzE+vQ-g!@FjJ-OC^79*>28#Zl?iH-le$& z*Oj#b@?hF0=j8t|avDCJdGm#^ALQcsDj3}kJDJw&I}o58g{d5YHj{{2J34o5+=UVuG$EGY zy=pLFh>G2rucU~d!37Zzn(?uRV%U9X>9Y3tV9>{Naev%N24Giq)aoY))tI#MtaH*x zPv*zSW3%)^%EkzA{&pK2Z8y+b{BIS1D9C>6w*DVRyUcn2r`eKc(n>+RmQxq5{g`AN zM^e-?d3Xh{tpmEUPd3sYEi4c6wY94jdiem<;&)%yg!?h@XI{4SgDWP+)$9hHBN7`2 z8!Ax)U;ef={5_p}e3SXqvB9v5;@QsT2=s22C)|Uv0Y`sm9-Gtx#F7Q>KHW$1!{oe|~R9uaaH) zW6g+b@bhdeuYQccQ>z0GS*Vj3rI<+wLsi!FMY^;!i1M$6Z;FQ8J|4;H&r09-I<}E; z7AS}4s*u@cDqZU+kV5t9Y(W||`Ws zXRW#BoX_vM#+)3lYAV~pYDB`GEJI4oGTc#-VoeBm$5-%eDZfke1J-%Q%TxME3aRBm zwAZd|T2Fb|fuUcF40rcrj;IsD(^LLE26?}|PfGbt>OUJ;m_V7MYeBe%B_8OCuuW1^ z4Eu(u^RT>09rKeNiowWPL6MRtgaoPjS7xNGVX`(X=C%TPohh{Xq2fCf?(#~D3l zl`@Vxt&4rmuL;r`bUA1v=ZCTvv-6(TfTSiRx!>5&-LirZ7LkZy># zKnZnh`ZdH+S8K%R{@BH$S$zC^NwYg_Iy0S{#}m)P)G|P&c3_y)xj=ze zS%Koa#lwjDo@4+YMk#&7$F-)nQCqvRCE)nchlTuNHkOkFRGRCeH#(>nJ~ zy&h|R4*x;1M3)6uQh6a|g4v5i1Yt)rm&=|YKn z7?CVZH=~pKU;^8SAk&^RIW&6iW&30sL!FvX3;lXR-c-XUnWA%zErvO0M)ta$Y*?=H ziJYQ;FLy7|EZTEjH%0O_dYS%IELZ)HpBd}A>f1^=p~t9Hze+x6R?KtUpp2C%CqlCh zQyMRgHETHUfzasjLFi52V;GJNAFUC*oXC2%KuDx@HcESvY5a!BdLvOh&UD9ORF=qM+xLn?xg6g0d`^f_mPrmR^fAl!0zLx+ZW$K)y-NtrREo*@yu zc|>pUe|?s_7-1oS=lHpLTMV+cyft+U#<0$@LycYnP;>^BYG=F<+z@$rDu8r=>D+qG z-j!qizt%kZIGXR+{CL*1+DjwjWZkeziY`n@o7`_mAPZ9kah#W9;?WYy|C`P9Diu_Y zF%I@r?4QEM>Bb@HsxHEgIErB-*QmwMv|ZIZF}VFdwUqtOX7=e@F=0Xyl`}bS?m#LD zst4U1F4iDe>5{lx36VG=WK^6Fa9&lKO*_5!&L zoT~5e{O`I9Uy8d3q)AyB{7xi2&!pcBedPrri;e%nqWFqFiXvwsqSC4AnVu`ITfQ5U zQ7$dhoin*!@P|C% zA3!^WkwJEy^o!iFN0-w1#Aap>STS+%`i-=+LD|B>Sd6Qr-xVG86T8WWDu%}xq)%$a z7_kR*@_m_h;rN)CNG$zezs)PDdMLz?h3Ac0%HYC{`0v1WrlV4m5QTJb6x*!*QBh$S zG0WaMvys=_DVfvr$62`Bud9m}0~y+^yIREx%(tqGUjGY z|KKs>>xiwxsp}{wn6a=JW5A?Hto*o?5r@QL&DSc^6t2OCkCQ6R3}eUa;d?~`?u<&V z@MOBq`|$BU_~8|Va>X^taBPZGbKYy6$`%QYCL(tB1sHZ$kwe#a=Em`cjl%ILml)ow zel2I5Yr%52l-P3p3=8UXrB50S&I8xg0?Y1f4B|*`fI$xKwhD%Zc^}YJ0Jcb2M5#*g zqFWSXqtU)fcQ>)*uwCT-b<-V7V(#7By1^*&IJwSTZFYY2W;3~W{!{ABrpISy1fK~kEwJk<#WLBsB&N9aa=h6N z_|}nPpQh`@*GX&S#D#_RkBFqct>r}*1&@E{x0O%9JDiIdR1ahSYzCMv;wEf zJyK>!uU)9v`!NgHy%Y1!M_qM>4Up-b|xaDGp2uONYMZ6a$<2-N2=!p$d>M zYC)PEBjUJj&Bn4o$r`Cysv1T*C7sa?%I{6PxRhd@^P0BWn^M`cp?Z8V-tf)BrP(W0 zL%+!AowXcHm=j-~@i1vh^g)?am*6BM*T?4Qj z@%yHU&uJl8x}9ox^`a+jG4j@x+Kl7!&6m<^(D+<^X1QY|H{k%DVP^l3*o zwcd1yx!vY}E6DC%plxZ&+Mv_eZ=_Gdmk73sZX50wJdfPE|HPe2+9fTv=FS~^ul_Ne z+G1dE0#hKDjqOatVo4ukh<$%RzMh&xWd+A-ZB0~VialZO<2gZ<^;~H#(fYx`VmYr# z=DUxLRHz>XN%x4x5Tf{B=s6bhm~oUoz0V4=#+*_)5Y8amC7M#OBCG`HeY3?S+X5A-Z2y z=u9|JJTKD7_#+fu;lWx@XGBWCiFrt_%ct~T4X9O%&W0mo`^u-qUBd5Nu`A^5-lvMg z*NeZO>HOU^{}73&M~y%1b99Hhme&b+Bmn@F<>$1toEnA!4KM%z4GG6#s(g>Ba~_by zScY>?&=H@Pe5O8`9B-%Dp4Tz7dfjw2V0*3To7ib;m)iQsAK2|>|JWxSE5&TuA!Xv5 z=3w`^#ZO1Zwz$R^Za0Bm4zXm6YV_|Gv-j_ipQLh ztCmsC&YY8Inz3a75|2EEuqNf)EJY?%Tls?Fd)6>gEn1tCjE>Xd8iULqL zoD>P-@kjuiwX{gK4_-Tg^aq_vZkmq+J(ddbB5Tn^&0Er$TvXPj;2(C9kwr)40>Y8} zXBkX>p9*7;30-0_oNBM&Y?H8JSzFyq?IgVA;N`%H7v7N;_ZM4Y)-1)yF8xLRm%Vr- zDDmH7T6f*ByR?(%FYu{7C1Yp~dGhKSE|RM&`!)7Ns#i=cd39w;_GN875)gUo zP2^Gf#(WvkSEp(IodipZn;hiqDOmTE#{8#o)o-&jY)V{T7Z*jvH?0aOWlgYhf9$7E zJ#(WGRUFh=X+0A3A5f~9WvrpnNoQ+IFlVT+N6bT{qu}OJ-JE>nWTuEN$)Pl7U^83d zCSQ;C&onuLt5St+_U6J!=V$4|RP^zPjg5i`%o7%)e*Ni6P5X*<$y!x^jS4(QA$H)w z#%j0*8wU4G!rLq(ya7=XSSy`;+pAy zW-x9WFA%k6h9oztTjul7@>=0;L5rg*<}Oa|IY^(O-+Zs#9P zp7akuwIaSH=iM!pg>r?rG3kLk*^Lghiv%ftT-{bnk3mV1{{S-e?CBp$Gnl3IZS#_f zG9Bv*cIkE6aV2()6UelTI1&SdvQI<#wYHY>wHD}8jx$w`>;ktLcqBEKwun5c+Oid<3Fe8BqfJIdf#yTy+*5-O1E9 zrTlV+1qz1z*kags@;-YCjn>Tt2vuLSl;7+j`os;h#GZZ0;WQXKF9q}thN7gzmEzco z%oZB_e>KmLzd9XU7vH)?Pmf&)6;;#b9i5JOA0-`l`W*=#iXYx3`@yetEfLozc!jJ>B@<(_1L{Z?Y)R=Kik=R zV4D*E&`iXJgTJR_;$Ls|(xtNqCDow8Ew|flkUZKoqpH`@Os~9Xji1|0pNyv|J)M+y zwB+X>&;@)nX{L@ z^-8WXpGfQc7R}I>UBh=cR*g3YOBz&}bJErJ?`;NhP(}uq6v~;7 z@KYh3W(~mQw*Q~gtf-GrSvr?rcqlz{MyovSlwnWT<`eRpVs0ys?ddq07 zLF?X9RZ()bfgbEZAgeG+jG9Qb|0l=FfL#*rkiTv!l92cz;582P{Q-)Vfylwx!Z&R9 z$_xsE8g$kL2eC4xve4zCm={-Ip~-$=m~czIAXuVQe7&+vvUa(g zi;8#&Qvw&uLcmDSw;@&-rH@_bM>|fB*i#Gz$e2MF=oBZ?OorUx#6fbQF^oiTi_Mb; z2WZ|mG3^v#IkXS38Ed(Dp}>K zpcBqssdPgwG+B)kq7S7xv+JoU-Pbw|wL)vDWU2P|6%0UaF>Nk3qa(X99@`2L^NBYl zw8)g(dbGIyZy)l^Oh!c1=Y=a zk0>=`XeqTT|J(4~O`;IkaP&Q9@rrMFqvZRY10TE}Hd5U6uHTuWn;S9s1ZpqD zm*helLusGjET-@0LeE?h$lNmxq8Gqmgm;;XvEa17HF4=Hk+hrbZHi*e?c;rg_ znGNSAoW#u!+?WGDau;#3g6%Z1OZ7@?!OI(gOpM8OQ`QMlZW|a%%(W;H@fSFCPrB2p zf=6aRSa=`hF6fEnjAHM%PK~MsydKsB<>PbsVm%WA$Fw&bLN&=E9&2C%zABAtt1q;J9W*Z)F zPB~w7vzWFCD+Jw39+Vi}V9Z?})@W)|8)E0PL9(s;G{`;nGZ{_VV&YUqsBjBPXgO*k zdnMAb<5zLy;&(@)e+nDBs9Gp{S9A($Zd0QS1R|OfV-wu_vNqE@r)N{Q+@;6Er?{hi zI|U4nLsc)k?J`4Gzv3Kd=v8SJX=eGi#gS(!RkJl};GY2Lbxf1FL=T{zmik!lLQ*=P zzx1Gz_T5T1)2bLevFQna1vRdxc2k9Zt8#AFS>8x4AG>AX6hu@HuDD~eq*x|0jM3xx z2Hki0v)d22$M04CeHrdH3UB6+S|J4a0L>H?IB%)uwVF|ddSiIER$9LV7sZ+QC7#$> zzqmvt?9Kc0+k*l$MQ_tVfwz?ZxwKCO5vd zZ{!_$FZ~Ls`GG)xrQwee@&+@<)kIY$u)JSMR$K!$GtGJJmSLK&LF@5bXPNd-)48$z zyK^jJY9^Ka1@_)-xcKSiBGmdGm=41TT$!N112N&ZsC>= z2EGPM;i~bb8<{Nht1R-t_LYe~DMoA3)*j;~jKo9!P;)D5`yqU%H~Ajne!?WbrQ2ri z)U;#x*p|jXp=(mLTtzm5Fmrt*A?nd6NVna~`Ev)^;AtmQ9En0&qIPxp4#}iW{3!0% zQY`7C#>s5`Tu8ON;E|I#JIBuFCQL|^c1x<${LhAEXrm=$mD{2yd4qsGH;{bi&F4AF zoxbHrqPvZ3vS_A}JuS;ec^SDpQzaQd>qyLXXNW^fkQNTE|-}tnheY!igpCIxMg3I zfo+Vs@3YPeMTIzGuje?cuPNfZpjh%%L?%d?1^WP#o?d*?_NlwhtPoeTg`ylHG=CXy zDXWi9N;|3V#RrQ~!5$eAY?gGo@AqyNy3V#2+?MS;4*Cc1J0VqRb?d7#68+E=cV;-P zUnRuN*-%)#o8>BK)~{YhOKJKE!k#9kufTn)Zh--A`IroEdnd zlrtY{nTsxPXFmjqF^_)ubdsJsNKZ!mtJwit?rapS(~e`>l7pL@wd%v&9eu_$0~DX_ z`O!g9j(@RLOH+S}dpQ)!-_|GP12wR=>dU|kZR8)(G~o&7&Hq&i)zGnra}5ZUdGEo- z_1eI{W@88vsgk?}BLY!PCp|Kw9#os74vm~Xo1p~-dtlaC$CX-mD%;rC;xyXMRqsrj z#9!G2KE_g%9I4Ag5bLQVhHZlhh4Sxyw!U#1t=U9xGzhjkMBl4V-a&MgP{_noxqS zN9m5B=P7OjTq5}+O>o|uY-$O0` z)J(Hqvk5y(#cFPe;XBaVjtUTl3#6ygr4t0nS1mi)`$`5rawaHcG_`Jztu(62Rp?)m zehf{N3|Kql@LPvsU5w z?l7mq_Ig-ywB+5-v==I2I`wC7%5lYb;~!CzI;gIXat7cH0=bTyWAVdIneP;A+{y%e zdKPw>28!Fn^#!vUk^a*+p@(r_rKbIjJ`{YCWwVN>mBp9OWdB>LotjfQa#tC%WQ6nj z3!LTMr}JSWCt87l^)RiY`GVnO{zMHUdSpAUy_F~Mlr;(t1pTG(0dWG6rH!2(QpMBXrc2dJP3HEu2(X!IX^e3F@8--SOpE+?%#*K71a zh**kvpCzu8_mfIuzyhpe@t0F@k>a=z#B*?rjhhL-ehMU=fvMAPMZEq;o z{)NdHgfZ8ouXXzqs$yjgFN=_cF^oz2HQo$4m&i?!wRV_Av~Zit_O+@TzQ$Dy1PhUe zoN#>|@o3EwT<6TgI&t&=lb! zk=fuig`oRApv)f>=}}PTLUk^J;f?Eju_WI{?z-IJF*DdLwZc+h5LeTS+B%=sg9r)V zJ2k%kiRLz32P_4LJ|5J2P&lBZdK8^6nk1vM+j}{_w~Iin8nu1eT{?-bjpOlnjyrgl z(kY@!WHlkz`xq*RbiS>2zR)Jxo{SEXb~PZbGQ7P`_t_Kuwn_wY*D|pAzBaQ#@oQ#7 z-z#(|w_H$5oME&#E|azQ)=;f*+R%No@*J_@_Qz03&-J}qQr7r`$mzGDL$(sCPhfF} zrVHj`N2x;9y#6TsRz7NjRkt+QNg#;LP;q>nU%U-1%ws@>f>k(EBZRYv>P>!zU~9Xd zU-sr;T=T#;=`UGNdVet1VdW^yes0G_ zF>I>&7Q+T@fAM4T$2l6Zf7;F_KZPG#Q0?Zm254eU1xLusyMC-cvzm4y-4Wzq(Av!F z{3R=-8Ky;?PDY{t+N4`y-)20ebwZu($4Ekhk2E#sIuFNZL04>{GS&F_mDV{bDgIgg zMn8STmltDD-0qTwuUY1|bTsKenZa^hVrrbx?>2DJcu&?|#+VLe?JTUqav96F7|T}t z7djOZeB9ejTFjkP=C;PLp1HQ5934fmAt zeQGP)a5v7;$rn5RA?y~0yx1EKdk?LsRy9Vy((49Or_x2+yrjv8}(VV z=Jd30lyX&bXW~+ANAuy&=#X5kWOhn_V-vRI_F}=THhyq|#S(=)=OIOS>snFC@3vhn z(|m)|xmCt`;y1&7P&AmOQ6xX`B*v_#uQHK{Tlkv8Acnn3(`$_R69d20=ahzpHgs-n z*5Rn6fn3?fY%P?kCQ|Cibu-N`$n-tE`&LeC-(Sr&*hUII}fN&8zQDAt<4Ckr_e<{pHiibOC9yu5KyXp9muAH{&mF{?lu8+-F z(;nL{o_1TL&Vp{#b2}73}-+I4A@49cvasMbCW|})4e4zi&#-cPgKPyO3@?dtQ;!_t>ll2u9BAcLoCfCEf!OT8;#x_KfPTB5`?JdRzS?276hFoVD(exu>DK@8_jB*dx<3skI6LHSMAjn`epxD`N*yF0iitvSINq z(%p_%&WD5g_fvx3OGPS1y7N_f|m590{ga$z5{6pY>m5!wpz|PhK}%Y zQ~JXNcj|Sx3*E9nh$Hg>$4Psx*ANAM`gfz>h`gHUT%nTQ-NykWubw>NKY<4fKvdmB zD-8g=uy{G$j&k{p&ERDKAc;jLwAM}T+k0I@%7hcL_~n^l5EkPHiZCrlNJwg3BZU{N z_ZoF`zRV!V^)mx*)mcM8UXlw6c6nKaH;m}NL_bD3F_B^!M$iB9K!3r;sz9q(;EC}K z4MPFO(oFCoIWS}WZjsP;G2w4(lP^nJPfRKCbogDAp=xuD0|8PyGJiLJGlH)dIOVi0 zVe=1=$aGnk-Bf*qZi=~!YO(nCC1(d`0N@om$M6enN20gJXc#eMn#Fun5}K364L9?$ z1V9oynKBc^xYj=au6Foh!=>U!%&L9Mz|%-KHoI#sehP}#W(s-Zq6Az$;)MW}!I0fq z2QVuDfFuS5qkJ=`b(LUZr$)7U4p%$2IYKh}O0Fj|zVOYxA(|5f_s#g?Q!?44&w(({ zv!uW9rc%7#RsD=Ef|6;pQJ245uwV+mVhs5axb|Wg?aIl(S|E$3f2eM+gD0~2 zY$$Qs)>)q(q(Bc5lRd;2{F2V)V#yTy&~Nwwt1PO@IQhZ7OGVydhL{Z9nq9IY4GgN|bQH1*A0Dxf-#!N%6) z(U;skcC@Q}^h-0q-}dFbL^HwTtH$8w_)cELKsLFoI9Cf*hh;(rp>8E?t4HdRjmyrx z_k@Oc6~8)`{FB*Pe8YU@;Cb4OkWtDyIr_B#$#|T=Q!yDqbQ@8Zg@=4TUGRvhJ!c~% zimtpQj?IN+)&RI59-~k%Ic%Si#G55dt0-aH{Q5`uTyEfRFWaK78C#jywSl`&#rQUv zgxZ&g$1tHsy74991sgMR^)<5fH<}U^rIRBq;m>Smx>awD*|XYRA&@nuV`^`FI|k~` z_GA~NBRG_g=^Hie$4ykx1$(^_Q48>yA6?J)6^Ed%c3i1#sCWUCxT5H&vKk$M8j>Qi zl@oVZws7RKRw1OBNEM-48O;cfkyf%qVxtA4DzT26Ba?Q*yGXIcisdG(ZpM6M3QZ_q zAhV;xlDQxP{UI^l1n2%H|Btqq<_$WV#vkE`n%5Y%7`C_XgY#Yopg{nNfZ%);)Auhh z+J7L303_P(->O&v^uvoMK_40bFD#K4NLPq~cw`x^0rejs;CrHSqNkfo}|z^?1U|8vIW=fRH{AD`Z{Dc z5KTSch^f{hSJC!3z10o9M1sXq{IYu<1BcLL10Cf?|5h}MvC}Kg!ILwKOxw*Zdp)*F zu36CL&e3i&5e04lKzOZeo`@u_;E0df>;giQndX`wyH4aUj^GVE#opM08rn6VIw;EY z>?%}}F-Wu=*Wi;>f%XrusquC9&T6n_;h6u4L{SkCXF{~!RJr7YXo2<*SgZ;TD^cZZ z-m~-QggpOrD`BPijnXHgQIEg=;i@%!>K>H#v0{S}GjQ|!r4rua6f`pHQ90MoG$&q1 zUMKfn!1464$2A8}S)r-0CxuS18hl5KK_xHqS!0^Ca9^drNP7-IFtT`u z_rHpn|1-p@#>i=(Fkl2uX%8gOxQ_D4IP^Idr2PX}e;6dIB*aZB9ZCy31l2J3r*h8A zV7%H`r=>2=8cc#&U&|IXDP}n#l^n7nQfKN%t@E{OZqR+_DX%bgiBW3O%y-?+M%QZL zeY?kO(@Wo_=GCChpe*kPyl+SSeGxF7Q-yJI~O|JG{cKn+1`}pWR)|9NN#)C4vug zBx-7FBpvm9-GjeHPrNI+-~Lu2#1RK7OTVud>8s`$~^Rj~wZ+f&vP89}J)c zNb8|=eYAan@oS}SjDX$igZp5$W}H#ttYUPrc?34u_3%5txcK2{8_^#KG+*-DlvX3+ z86G|o9ga^wJZv)@(B`$`HgDMs?s{aL4$qn|QppwsBc+bBKl zw^OhpFS^iF{DsbNBGF-<0bu|(2bc3I@jo$=Ykg@;vkrRclZiJ_GRWCoxtgo7i*ZqU zC!LrcOs7NZ-M26B5|=9CwF}{Jox2G-$az#-h!8VUVq&b&ZD1ApVf6&B@lBvSBs$iT z1-|T397$ID&S;0UQ{1bzHzGVuP9Qfqlqloo#e6EMdX&h)lfn2y7~1Tf!o;v&R*_M= zCl2=fW?|lWLu?O;Pye&_qU+um^IU4XD7{6F#(QSM?WMSisotu4G8+}hE6ZYeSE@np zSYiAs7Jc(`BUAqux8}M>O=J01;tNzmi6o+r)^<(LVXxAg?Zy~hSBIq+%pU3_6IZ2N zu1M=c;+)wAauzBRL1by6ncJbH)Mvrf?INowzLxS}WB$w`QMt*_bgGO~a2WRw`_%5l zyTgcE$aRiGc%zX=zM zeeTa*Vl$ch5G)^Oww!E3m8hi&O6TMXEoty+aGy_PEH66IwC23pCQdjx^w=>i{YZnw z%(D4gMzbFEwViBXA!AlCnQU3USmQQ9wgNx59E0Ayj$t3F_a8>lQYvRv;X)uZ1!+)m z3LLjj^A6FaW}b(DNH7q+T3{dBB5Tu}L%(}!ZxTx+YP$Ysx05-uM`D*tFKQ+R<`BWG4cF^YHXpl&Hv|WJ{onT9qnuteBr>$uS?E4Y-Td)z7zCmk3A4yO@kPK>7J>B2NlOiT}y@gNruYV7ufDdWK?Csv?q}>VTJK8FbQNF9L~}L*Z5cJz6I4A|x<` zxE0fCHftbypTbf-E{7b|ox!lL$vK4!?O~}u_v5%-1Uh?EHc48zWMlg%RJ4E;##I<^ zjIJ`tCf91L2saFw4<;_FQ7hv3+T}+2F3z21hJjMqQ-ziS(Nd0iY{9XvxM>CwIgVq2 zwqDw8q)nV1Bf~S{r0o9|^Vd8{oB)U-5}ioZ z73&^wX1i39)9|VLOkR{V;r)%uT3LH*leF-|P_?#Lh#X<7mZNgme{a(iq7@mymBh7c z)0`|^V_wRel#Ps7QB6SA8n7=i{i#Nm4P;i$O4btA{3NxCqb`4xIr)a5dl5iXYLvC5 zYAv5n(h0y}J@?5`&BkSleh4F4sAc%Derl#`={q-H&%LDUVnj><&TK1<#w#@Y?tg$0 z8@{T;IJYU`HMg6NsWmbyL^QKttApg1OjF+=zA9|fRv9am3zko^v-TY*A=zQgP2gQI z?u}Bgx4&i_Fk>Or+$%Zw7Sdj6l6jYVK_OX}C(LZkMcMQ6i+vvIpwp{ku`V0-o=j}; z@TsV0ldhkkIDX&Fv4z##?R^mpX#?sY-QGj_n&+b{3S66IwLt87-?N%n4?nB|X%jR< zxYpWz2k)Xezc;MzXK8b{xQO`&K<);g27cwHi3Bcj5Ys)4A@3+VK*L1Wxj-?g(W2OR zIrl_3BrYDd;Jk1UlJY$H`2riyeFA^ei>_#ps!-PuTB7zS%OzvZ=h@y_aqP2%(lsPpFn zF|xS`6ZBP!?r($|TxVaaxaT&^APRs{rtVTJRUFKd^a8TR@2rnb3qU1N=c@E-1#p(D z{>Q;FlptsGnq`unNS#*({{Y87ll}n$4qryD3BLZ}u?(!{ ziH}BwvubnL#VjYI@00bG`8A0aEmxY_t=55(4i(%;?%bNbGWwryx2pZ5hufh&tZGB! zJ3CbH{mkCEoW#SefJtfmT;@ALX5IUf%>COP(DnwK2(_#dnHXv`*9hT+SeO{8r)rWX zb*;+FjM|-rpQKR`pWBv6AD5`+n!8_L+8#e9(>N~k{{7tGc36z-cZadbuvT7J3Z0+J?p9y6Xs zj-_ zE9bm5o2%TYd2QzpKmG=G)(aE$^xO8AYCYsaGc?}ohvTJ62FUqv)KYxr7{*jhY5v27 zQIX@96nke!`zFcKza{|YA{cZ1d4p}HREgvBgoe%G8Myn-z^x8GZwz9u%NeW?+pG%s zJPM>x;8*+6E^;6HC(=D)ws~5o22S4o6{hCLC90)wd$hff`1eHNA~cV+x=#|CwzUTq zAygF2{!Mg>2@#{Sn4>Sr8It}72*28PNWSKT{18cD{LC_vp-JC?zrUTKm?7N=C91mJ z-ILJ(EE4z#=#Ypa#FZ-47!MoxmVs}?L`t?N`>ec>ne)AmJ^t?IU4u|mTw#t^91~?TUSmGJGp$OC*{2qTk|kLeyQ^+NK%76py*BCn zs}ipR1?~v8u0S-oZ*5c7Us}wlv@$E$C1nVhk2tdd-z8IIgnkW5yGfC^K#{~|hRXeh ztB_;Y7}>|h*oue)Sjkh~`^d@TW+4s9aN(Peu^et@cPoyh?X4;)}zKncQ z;u%f)#_X%?;Do9Fo9SmrLe=)q>0ln6(raabiHB77BZb{i|3-u^DgZ!#^h^Kg-GfMh zPchxGp@2-l@@V|evr@@=xHTcp-4Q@^{$E^mXOBa07_VRYz5mg9H#rcU6v z#)G}dxl2;Id8^2;>{0xrB({paG>aTW0H>pW%RGiJg%q5>XuJ9;r(`eTP7(Yhz2$uS z4d-yW)9)XB{ z#;>Imy6*Vh=Tk|)P9&%fX#f>p6(>Ev5MA6n(qf&8Dw^TcPI(Y7Ysq?s^dEA3rTyzA ztNVzwPbqz4ihR`HXwBcccAS?60H!g)l{XSvquzhi!%etY9pR-T)}tra_@0AukQb}t z3FidWO*t1&Y-<4mMTaVW#l|XB#`8RXrMKK_y1YNlB>z3Jcs9*tQ@Xff^h2pU8vpa1 z@#H=EH)~_BqthTokn05oPqYaa7x#vN1(ne=ebn}wq~g2#6dW1En+eBG!g7FJJiMZH zhjwCAjx#w&pQPUJ)4YMEu5$CtM~+oY?(Br*jH)7$L%olE;oRK6uv>ek;bIInCxYXS zo$nZT-c!KbDl2myzhEFC#(L$}ni{(;A9EjjhdfUnS-S&#Pk$T4DlQD24|Q%_Z|=z3 ze8S;cjC=8IcFE-0DcR=C|%8O1a-GV6D62Q%Ow0Ctjo*JaOy; z%G04~+a=Bp<;p_Csb)-lJVr^mUfd+XNgm^|##4e)pWzwNp;tUc^FXxOYI$FKIE^dg zW8bGHcmPL4>EbW427AsZdS3~ATB3=OMx+2HHsNtTovtvs6Ml;m*1_q7 zvQ1H>0Z@uxf5R=&CkI8aR*0g33okOlG*X~#=VFLA;o3&eACcaYt9PbDvE|6zUiCrv zfo>9`*1@r8)tf)I8+~r+aWiZ`pS^Y55)nIYBko8EQH=b=*G#Vi01z#m zU-5Mzm(l+PyrZKpwL4h>5aT%jC8DVU?U>p3kV@R8nkss|L}$Cu=7Fh^9zicz%B``w zxdJS9hnNOGc+Tb4$uknA}|h%hV6@P zs;~D1&(c32RlFc#MA`~1+}a4YT+XuqaHyAtXcFbFNLeZ3sBt#tsgq$1&5YLP@6}fW zS}kB~Q63Xr8HymCb6)^`tHKHKom@Co){XF-Ts(c5lF9yGMk3;a zL9GqjKy9@;zBzKNtMxD)Pp6A)Yz%nGS&0mrRlW>^9%=O(YU)5C$cx1jq+i++0H9mB zWX--Ib{2>yDhBa=Kc8(rWMepV%-g`@HuM_DH7EsF_K@DwB7i&wOp ziYeChRjl0>M}?D*^55@Yi!WEGBvwyWyx$VqLs4*o1O|v`U;md6e2;?bR7Ma_P*W@= zJ+~p8hviAb|-L9!}n<~VpFza9&H;7~0@&jczGO=-=LCiKAq0U;}n~%ARiC(wGndXW9RJhoeRy?1vCzfi>l{)ygpe3xb z*O$fMs_)?0oK4kYor~#NeYAfz_rmgTQ?1-ihb!ylW88)d^08Yhwtj(d@*P5SJ1Vpp z77M_hSc0_FJt?U*rh1|t)Y4h&4gV&j&5_Q$tF{qJa%iIeu==TG`?3KT!EzU)Pw z1S`GN0l@(mUcAeQLEmbhE;+1rhZdoDvT5%pQk7$~JfvVQ1EuFd+r)O2;ICG5~{5C;S|n=2A7@|M{tx)FEBPudpkB<_Wcu zR%qoT=&SQ*{0Q#Rh4qhnf4 zWrg2zEYbx~Q7D4Q>obm_-Bp~=1qve6-SLqJmvx2jlrm;L<1tc{WZm?z!cQ4rO(HX) zo;66J$Nw)SiX4*o=G|2a+T{vtmyf~ac{V@KM13iB-Js5>oyK_g>L;}y`vbp1`P!eb z^vhUa;go`J>yRLN{%;;wn)AcDl%3bY6^O9;cc)AWhjVOc49))=_0&%mnO@aU@s_Ww^3ltFhWHy_QUM(rSNg;OnWg{It)yj%Pk?Z=JFSJ^)0pXDw!J74rZ zuS!$~0oV)!WsMCFkQJIF3|1|Gv?6jX&O;vllZjgyIqCfJ>Cn)1&hr5I1^@t2O4qrP zVDh@>pga-je!G=vfqp8jTs<++GCx%?A0m-c9~*`vrh%tu(O@s}?KCU3DgrAl;S+^t ziVK$FiL&dQ*{dp)(Q^&XyNfl*Zi1rg%9sP+fGjaM&=~+k=U1CT?`F>V8hKbGI zpEvToa+U+?ar}pKUHY+hqLTP0a_SviPoHGR^UWD1V#3`w54(7lqzN5%(7 z=xrvVuOe53t(dfhb}jgeFCwPL;GWZw_RGu>#!5>hX2GOoopN0b(+l@6tL>E=(b20RC@=b1{2mD|w&>Kk8de{znD zD2nAjS%V9|bjDo%)%8A3VBV6+=$WAVPDA&oTq0Tj@XUgzTbw>}O^h-jt*^K+jT7cz zFzS;rAty23^k<-dy=jL-A9R${Qfc%%`aOUT{EN=_RT}4tqi;e@$*=OiI^B0r=a+{N zcTJZCcco`*k4oJ*qKNRYv0jod$=DoR$hKV^y||m>VH&tq#?+g#cpn zID%x+k1gwtE~}bRi@k&unGNNYw?EIR58lrBG1&^8jV1Pwn$FTyjN8aZj0=KawKL3J{PoO+F~jpr!shZ>vkEC^ zeuMj)1(i3pIls1-h|b)O`i!RXo?*jo(~-v+4@sY!zU9T+p#=P}!YHhQybqBet_}sf z`M5-4A*7;twBQTHIA73tsOu`nV)w-S7Er=~N?IopIKg~c>93VL5Z|%cUb%nxq>n`| z@-mPB>#fO;JrkY;?&*hZ-6vcB&Cff^@V}ip-#7n+Ss~E3#a^jJC_TOq@?)wxO7~Q7 z+4@e;Re$rh@zn4)PHy2IHPp?!Yu6}gu|${V3x2Qg6*en9Bnbj!06QMaJ4T;iTx8d$ zjJ&tTu|*lY4sVmwjl-TU7-FiK9E~Gt!<)~@*Z0^zPy@&;k|xHpU8WRdy+{vXcXGCFRc*#aCVhM1X| zV`iq9nR(0@Gcz-@J;s=sIffWw=9rn8nK3*0-tNBl_UxbCKho%&YDv>-sjI8*y)|X= zv~8(=FYOFcba?9@oFFcFeMY80`JE|N0i;%6~0A(J1S`{JH&R2sN1za%~EdxByj@MFv z;GhD&NC7^9TH#44fQh$!*(1>fv&S5)raF^GUR$zu2_?6%`FBW|+T%_f5@GR1DTsB( z)l%=U*2;yRb6BWnoJqJ!d)Ue5gxQ#XR%AY5k7A)WJph9GeC2+N72+W9^Yg4 z{~uz>TvR-aiRs%r(}Azq~{w{%DC`&y1yk(D}Rl;n9GxbUPUT9$kit$^GZ@*^oG|)DNH7crsxjW*`MtTRKRuyv<9|}hI zj)#k13DLURzTLW^O1^BWL z=c3c;)mbN9#O!lBjy4p68|yT2NE7HG-|ANfhDuNwc#vu|+n+Ls-l#u@1l;N5c;vaL z=6KZFvFxS3`a;k>1QWj~UlQ#TeE`%yn*O{c`fi0PThS=g&syPi6&ZL)eHU+AtX%zE zuy#6s9=I2Hmkn#ui(qgp+5Hz_6?a?mN9Y!|JGr)lC=Kdd;K6?NeNoFZNS>AT%eru> zcZHw|X_t#hmq&ie&zg*fYNN~)sJ&NT+Ju_?y_~x;MohLK4?o}Yf#({Yv!AXa8We@a zx6T8#+1|!TG1Ch<%+VickFM7rNqT0mwXXB&N%*{%f!@kGWj&h3t{_)iCJ+_5YDnaS zEx8V3LnKZoh})!o6>bx(sVcL(Oj8NVxwT}kD%n2x>3ZK5 z#dL&1y0yh@q1kBg>uOgfQq zt1WDnZK+5s;06{(5BTz!jM^^t;JwkDR4*J=$=vn>62D;Y~EHvRvr|XK|06@pv=B>E4wV6LPcG{ZwUL>?uZ2 zzv0JyB3jx{I&iztDuzU z1~(0yP-)kmcPY(^2S>(cniQMv+kqf$nv0p*2wzaiO zb7qC=M3(QiEs$cBca`qmG>x;;cRQYH{ET3mZo8Ox)xBL+7vMrnCeVEpSO1ji-Mcv) zDY|fM$D32T0>rto8T^y*(}%6lm-JC@Eer5D>lxLODDs3j`6o&>Dosb4*q@OBL@(US<(hwG4B4TaWR2K648pKYv&v?DR)oO z+Iw$d(#=eb6%w9^>ovkByrwuaO_n^CVOX6p_0UTMhlILf^z($-DBOtT`tXayPB8Q} zK5u339Ybm+2~Mk#yv;B1tK$w6MKj2kxxbn{pqekS0r+ag+Jx|5Ix;H^tRKgnr@`z% zgZ7ii4;sOzS>pMWdG)6h1%SKaWuL{-2+DyBX z8-(xGyTQh^u1r?F{xKir&^+4*vF}mx$>ASV)XV4aK)8QVm6` zzHQ5^xe8R8X_9k|6qLRD!w}efPGfnHUh5L!;&O=xV$sIRjS;LrlU3Mu&{5cS<@=rf zBL(amL-ogsThnO_m_Lp4SET`06ql5t#|g7{ZPo2$SsUT9V2_>jOw>zeel*9k@<;QB z!)icp9xK$ZG~8Syz6vKfp>JFPXB?IX)nk*{W*Tm4O)aV||14~AAQoGI*Y)_Lbuw=< zt{rp=AMrjw4a7|vh40pLzUA(H{-3dz_y^>m6eN$AFS$A`N$``?#l1=`SLXlCL_mI; zj-(%d7Rx`r5+Ep=-eT6NQN%@@J!Wk*lOX16nRt*_G@tkM`F*oq2F9}ECv4s;6io^ zOWgq>Ob!IE4#AZN@4%6~x_~^p5Gc02;uYqEre|77m&l2%5RcwJ#S6?VYkP~p!=1?` zHqr%fJ&=}e|BAB1nB)fxK9u7cctt*k6S%@r=z}@pK^P@XG}^C;%EZb+sd3-_VIUzX zK;!7eu2b1}K$T8+zO85a8ZldS=#<)CZ6taIsbd_6cbdrX=$;3!*ZICHyEp~biQ`KZ z$51zC?!Yj&`3as!Bl${EvF3V03fn@hNu%#A2{w#I6d0}?u=?}lG{FusX~C)dDhd_A zLdj!qi-o7bKTq2>Urd)m50_I#(ODo_jDDQjwKW{Z8QF+|McF9)7(S0zvB$~GUkP6h zBy19|nGEM-9Lyev>zEm?VpV;y;T17WTS!7XJKfmIm&hATpJ264M5i1|4R+QvHy3X; z5|nxN3nTwfskz#Fil;8D$2v}&cLYhpExfUj)_jrO>Y^`&1dccbcSBL zWg&5F3d+Lbb#l}#_;k0&cL<=k^kmDs$3zP2YI+^r&c%BKdw=<|y<@8*Au}C+B{Z@b z$&ZH(i@7R6COaplro+TSD~$VUOvW;JmpX&`PHxvO?j(-OPF^Z}BuJ9G8|m3<&G9|a zIZo_r^{!6Np``+=nl|j0AM71`e6}OA9iVRj2-y37b6)^BG5kg3S+XF5xS%5Cf&WHU z>S2rwD@mISmIKX^2)p(Wd%Hnul&~j?C0$Ke=x!n%qU~a9`&uqEbk1;h}!wo>~!HW=;GZ zGNbtgVGXzfz|+5!8gLKc{m#NECGo zR&^BICj{Z`FoS zvx+y`OCFCAm8B`~DsX@G3U|8e(v9f=3#sqMjX+wYxhWf0;)yC;xf$mb<~b zn(Y!cdjSm>3N7Jt*x6RI!pz?u&l;(Dl*Fc_M>yVi)onUJYa?q-Cj&xEs3T)Le7#hHqn;JS+{HcF;~Yh}Y`w zY&9BK%SJVRPbv0A>w9CcyV5q^Pxt0$6A{wW+Zqk;ioUgUr$rWOw6dQCk8tANY`ugT zd2Cd@4}p;#k2-BwHcCC08P*LMm0!JGbg7yJ74Eyp9k?zWjta7$Hm~5X6&qVh_DcNtgNb)$7m6t5ORJ@J zuY>D9lTv(StW8`f#&Ux!t9eJ-EHk|FLi=|pYpNFs*=|C@7zPTfrDQTCS$)g+jaIP) zA!K~{+Jbz`yKO;st(LhU>Mq8Trxx}0?V=B@O&{hzl-+!a%`hmNTDexpIDG%?V^P<~ z(QoDV?de?I(rX|4-FuVWr$BRyG+=cMFZ(VWP0{8Bmt918v zzPUK9rC&$`)g?AE^E?Zh6_KdzG`PHRw(rVLIJUg*>uRTyQrNUEk+FY5_VI`+V_Ib? za%9+~_j6`;)agrQHL##+RQdvK@_mYddMa(DV-gotXj-do-;V*= z0eHYX;^rIS?^zjY?A1DM(du{R|Mi|)Q~Il5Z{R`J^M zaVY<*Bqts6{281mf(fHwsUeUAY7upy+LQsFSjGkXT}UAT0RHdXF40Tw_>`~Xj)C$Y z0avExL5n^(((_NHt1JI<1+#3DO1pJs)3y|w@HKWBJk8-}>dG{Vh`#v6}YBni) z*lcH2QGpRE&fq6CdGkhd z`3fojuIf-Ilz)S-2?=am;CS;c`Qq{y0LO}X4Oc1!|4e+`PuCt3cQphz5h(;X5&BOO z_r`THJ#f%1m{%bo?M7%;zOp@Hri+AHs`43XR()CU1dXqcpA9^=)jEIv%i=~4x&?Xs zo`RQJeWqPiiK%_0K*+F!_qyx;W&EKK$e3q(cA(bHt5vQ+ zGHuw#S;$g`syvHdOQ+Up=dipq^Xb+T+Psx=`AE4!*L5XyVo0u1!Ogk|WLD)_EKsoa zEieJSfU=Z~qnc=9O%aO(qSGEUyc~x$YmaD;MR8}?9{ODLAnn9ZO8i~Ll_qk+pxCndV}Siq1R!>q4y#Ltjr7Ej_O*nL_H?vbokNHJYb)6=uCc(a20j7X28Z z>5d|kVV(X8@}vb}*VEC&CBZ@L?MCi;S_dzio|3%i3`}%W4Y0Okc3?%bK2CU?(Z7H< zepSxpfd_`Qy(^;hy=4dGctY|%-?GT-@ZuaE3jp9O2SQ(l$h_Z`l|F&1P$zK7Q9s`c z@SpjZ$k~4@S;_4$0NYg*mj6%JS@2#R)Aw_jv9YUtMXi~I&{4vL1%W8WY^C>{H;v6- zKmpF-P&!vRl>)x}ud|%GW-w0zI>4@q9SpZJ0zm&m=COvZFw;%o>Yqr;DO~q5 zFQRTOqZ|xo!O1lZyCR|16{XgQr>+}K6&|Bnfvd{&-cy7AoQ2?g!(OO_o1pcg-;=5{ zO#9@}{1dT=;en4)N~2OrHR^!kfc2U|`|>1nDt-UY&d*m!c1TN2`=8omn`J+9z&aH0 zxs+zz_o=1l37pVu+RE-T){@XNiKBdrs?pzvgbyk2d3}bLL>aI$ps5zLY(RgiOE2P> zvuUe4^_rqG6|;&jW8UOE3dW;mk3yAXuz-6qBJRXB1eB%)@=43)ho~hZ1p-(NP`e@y zFz!ZrlCfvOv1f5kKWqvrE5dn%0`#t3xhF+6uh5g<65abE3n!7cQWp2LFAD?+PxG%! z7eB`fwmN6DZrk^S-IW4!2RMI>&-CEF?m`0- z?4Gu|oqr`cYW6&NPaN)&=A)YgFA3?uO{BDmHDupX2Khy-k0x1rMqWzqCLd)^vvCe{ z=vIRZ32q0x9fuB&SKY?)!MS8L1~zKXE9HguG+3gGZ4 zooUjNUu)~zF`Ifdnds!#x9dKZmXSm}n;V$ZM6+csEc9{iNk9zqP@7vunlEQ={Y$cG zjcKKx{#NhEz*ofF3%5OKO(CUR7pJB~>T>L{a(u`b&KEJz%nE&@09{UKhx7n#@X9(e zW-9uy)r2_S%lW07K2(&&dszOY?B~53DwnU*W4y|pLyafJYE8X!b%7~<8YVusu3W|O`Dl-1+5CQ}I zsORz}L}&PtOgFLCnz^L`dva=X@5)s_{We)^*t8`R_hN}-1%2n7Rq@@P|Hx0hPwGo7x(gE7 z$|1qtTrl<1hHk*N>~|ATFCq4^jOPQeSr#BYf}gLk&{My9hNUN+;1!DhdVt za&6f5(9eEl-AFy@sJ~#n*1Snqd4z8YX=y&qxr2k;%@?6oPoFM#(KnHz)W;M9E2lBP zOy9RS)+AcPo4KoC&Mg>z@CWX}98Z8R-4at-k?04}b^2>oPXl4&XwzQm4YRb1QE6=JQr5Yp}%7eeN@r;q}n%t$m1&q#6Z?VooVK)Rh z%pxxBDI32g_>JJK9|0wG+4WS!C(yiUK9HOvoY%)e7csn<*GC|ob{Uqb*>Tm$FNiDA zC5X%s$=ac~1Q)`YE8PW!PeW39Cg*_;NgkCskecyNxbc+9kBUq#j$J@@e%<-eXQ_#q zzVSkGIUWJrqWcd&cgml>m0t)PT-K>*5!Knl`f0!tUt!qlnpme+l%!(PWZ)_{MBC#b zT}UXat*%T8QV7dm5tjzvr@-Vyr;Be1)nCYyfr3K@x$2a3OUfwm%H%-&#(s-k`@aBO zGS#lJLNV2Vjl5^$Q`K)P*K_;xd-gbK^A(+Twq3u+q&Aq<2PACQ%Rdc3bao0(hdm4*rDx)0KIEv@IHQi0D zxARFWBU(yoFSXnr<|m~W0uc=`VFRWqB{j*kRyRU5MsaT9gH&MKz>~D^@XpVQnRV8t z<=KBFeK~{LUj~VV(7~rWU?mzKp0~<>tZ;mc8&-Jy=l&?ROq9-f*~e?lz$mFRoRf`_r)j zkOoX}rS3r8V!%J8M;<}nfJq{=au=4twMKq%zC_v^dD^=zl355Smtogyo}gV=^aFP9 zRt0;iBZYwrnA2KT&P84#%?EPV5)JEcuFY}b1)b)$ErcW~qYe;#uj}Z^`7nWHU#jcz zy)+}N-TzF7W~`SGE#=@wK?sPOn`wH`?@C^TbxklV{eY9R$AhMR%zQOq66;g&52(*O zUO4!fqNylfonisj_zwu2W=B+To4BeG&B7JzvqoFCkM3K;XmI~X4}UPaZ|1V@(Y0fp zpUi7%56G*STbMPJWd%DBKUO;YK!bt4; zL0rFtl|eoNTE!X|A(E?E`bi&{?;iUF>{vGZi_ZQBH~@g8tt=CqdQj^!30(W?37Y%r zMJvSi?Ltn%TCj?UJwE5(nr*=^!06F7np^%(@8hgH!i)AV;2R3KgRvY+kGh|s-b5!s z20G|z)ok2<0l($^ohD6y(NX!OX%g? ziBE0fM^or5Zcq#QnQW`noN~dCMW^$Cs~zz>2wUn{jw=}cD)7~=)nz;Q_G$EZ21_tH~c0m z1Yf>N{Lie1bi7jXluc*&gyyaj%XbT8@orvQekCr@X0XMww;UUsO>bt)XYxM1k@f9! zvPQg{e~y|zcq9RG6ECK3SHi(x*WX0)=}SB_U0AbzEx(>i)&P5clGc(ZnYp`T9SpUS zI&zV+Jo6YNE#(T-6c6LWCL@jbpR`8XjW~aG&SZIB;<~+rApW`eSp`Q%6fc#fTB)!m zBU`?MQnR7QRmDD6s!XE@6u{hCi4~9yWy5m9HH^&2@}=ro?30>dFFkUW&k7@BDMGHI z_l&v$ld7XZV|i5_$RtF^#BAMbWgdAxqf?Ipw-j;vB1{~`BlRD-wDaK7fTCpX`YXKM zzUA-BNC}H-Jk8{X%|h*@Gr*HzijUNbbLExVqV@I4r6H07clT+EkINlGmN?;wTBZW& z^@hg~5l814Kj!oGe52n0=w>=8{GaHRZw2W&?JVAV?1^pLD&3AIzNeZ;xdN@hS$ui}P>=U#BC;z4 zY4(Og@lF`|nhtBeP+c~uQ}K;T1F!$b@8@h8E4sVMQi7p2$Gl=YLQf#)e6yQo`SN?U z;WOSTu>nnPlnbda!#$t%PnByC40Ad(A-i*l+Y#50#2gol2-%#@%jdn^OQ% z`3)>dY$7{uvzoUPSt%jTy;zk;DIywX7v|!qb(XvH{VQ%*Q~YMQx0a^9kHDFq43^$tZRpn?_9=$ag?PNNe@ z5^H3Y8xO}%b!FGZ?~Nt=>4i7n=-lT)w_f!h_5>l==DiO{A zWzjmk(cB5)Yg+3|9v}A{$=R&YW|JSmepu9@qS7f=YNz8YP?+YCrnjkO?yYhehFhk{ z!U&;yLb3LXqR&{&g5(D*gjEFwzGP(R@_mr|&R;-3sg}JP#YcGQ2fgE!;)5cK3Naz* zMdP)v)A}1eTHVQs#H*M8PLO)IyA1jrpURtZaIk-aXOuzgXf`SsJ9A$H85`eAIC&3CQ(t2sdQb4KV7RqecZ*SrpY|eg8yX0hs2OQZo>#J>IUiDzUT(oM;64#bE;9-C z`x6A(Wfn~A*ft9N(#U!qGZeD&7qB1`zc+e`%$|uTgL?1=%iwOC;k_+yy|QIHrO|_j z-o)=5dY~dL-b9|Cb=&l+R0kh*O4@Is@j^&wCGOGW8fXXynN7zzL z(bYaiQa3THz7SL9t$7DqerUd+r6OmnoOCG-*oZj-<{v3~c$eSf+oow}Kvj4vvNq_b z;0mK96y=zj`s^8{Pn9wp<(RA$*w=8^_YJHu(idqsxten8j*cziEVhJs!%K}NLEN=S zcjzyf z9{>6JAt|zqP5$93pHOR5i0X+yjJ`rjqLm%Psb_$|*raliY13w>x+W?|dG>=%*(?$D zCgQ`o*p}v0g)+s$&Xnu$6APX@9UsM37si)0aw&>fl2~2uc@dFN-3?=jQcDN|15HXx4{R^B) z(Mp{o&5JSRW^CQ@a5TT;sIHb|SJ<|tMx}2Ij(r3U0E<067IHzHp3v3m6_MGLvF`_H zNZ>%W)Cqg>_PP89gIeiMYb|SY+1N5U?w~C`9+1r}Y`jyY;Bj2cc&c>k#bNmHOx}@> zA^4P(-wElyzcuWoKZL+-ex5Vlimy9zz4RU#Tz8nR3$2Q;3G`uJ^vH_b#p9F3(pcN( z{6?PoU@*?Nh$JITGyD_Pj#S*9u)BX{_61De|H|x()GB{BQm+0wD~G8Q)r_3kwZiei^rqz`sBoF6 zeT+NaqDmv#&kkFTeegu=yQcO^i;OTH74pJ=8py%)$}kh{5|jIC&3UGlk&YOpobK%QKJ%EvW z(&z32)7FG^(@1wwFg`tyCri*ZT{>L{qJiNsLC5ob9)6j!CyydX2^nDj2lHclrLi&C zuS>nwUEOc_T?Glw?rOtsccGn**j6Y)rd&T`eFYnlZh_C;LJKuD?``hUiG`d__~!es z#IGt^t<1G@=eu9noLgc@9D|RlnVaaVbb<<@3a!|m9FQ-D+CpgTA z3dw1Xzw(2JQ4D(>+YArjxugHI=af`4cc-x!X%_zm9d7LlQ+V#b<~rp}y%t(XT$;`l<5f6Dr7iM?PQ{wG|{g=N0mA552$Oytyiv9N@`lol2x9JN%Sy>4( zJ+SAiIPtKD@k6?O_9G|bd~kP%3H@{y%(Wv`M2!faTgZMBb|2(d;HsaCCoFtrcod>6 z^C({THzfmbF$Pa3K zqw??Pj>W_+T~exeSe>0XR>%FCOgK=glwzqM5qFwm?NepWx!(%8s#hi>r>gf!cQ-UN z;y2+!4@VpAZoQRE@@fo<9LKD4mzB}Uo(@Cd`I>8XYRLsb8hvq*4|5T69FnpvU z$IR7$!CMgEjD43iu6~E;zgT@5gkEYZS;2HF>yxETNXh(?tOh-f_kCh?g2y1p z_u2saHSNU8ze(_E;3-K%up<1a?-Gs6TY@|F92hKT zq<7_$(1PYwhH-lj+QhL(li4&tzRul3>!7Of+!Obw`2bvhe}yO05Aw6-)v(?RZxw7& z?F6~^en?e3F0{KhbUpp{NLutd$^|n90J&&he*x@5L!So>&gh?tKQDjhxzrKG6V=Gp zE>^4XOvJjY_PzGs3#@pz3O}pu;u(MSe8EU*dW)!Ow<2S&JLsylF&X%k?8!&YMna}A z_Wa0ehgcid+&w(kn&V6o#N)lF^-NMB1l;jhKE?JLFBxMWoMa!cxz}ORNn6Bg zg`Cj{luL^2{T=Z6=kd?eBR#acHX6;V1S5dk@#(jY*xuoe*q-|p^bCE&I)HQA*Q!pg z;V<5cduV(hWGL`YQ{-XY3pKJ^{p4g_19_`FfR=G*a+~I{kO1kU*=1bH)Ioym;|y6R zkN0i~M+e*FvE4p##f!X9HQn3>m|*T4y$a4?SrT0x%M~qFNXw+u%5cy%OjIk>{-WjJ z8PZl!P8wqrIgbdLqA+A^wX8Sljgymv2Yd527EfKu~(FWRciiw*TeZqTVxkxe%~|X!O%;kvg%aEn|MJ zE#dXx8`Yv<)5rtFw#cvh63r&uYmHZ-8nfDAcGcRqzW|P9of)c_W=cV5H8k_8NEr(E zflcfau7&51ULgyImZRBiIv$jT5wP%?l1OM^at05ja==rv92ayS8grct505M-y`|8a zrniKEa#w!Vx#}i%VjR0B*Wiy_Fv}VBH_nYQZfZ!F2?dSP9mmGC?lh}Y&IBU=zFRF; zJJ;N8H|7Uf?XDRbn~!l;y7a5TQylxoEtXX`U-mhQrJtN?RvzC5P(o1(8z6kB=lJHA zU)*U5;4?nXbi21C>iztZOX6|`mtA^an}tDINTC9y8Ef1S%=OMq-3 zd{o}fH!X~KqfXV&b=_Ta2%{IUhPY7$_0jR{3K zbgKR{R<{t)FV>$MqTAy5^M@wRJRaJdH0lsVVa%NxZobC~%{9$|y=Xtja?-s{AXaZd z1-Yb(`Ou}=JsdSgdltSGhlR&ZR+=Z)!@C}EvcOc&8j~B0ku~5(VA94TQTxi1Q&0-| zZt^tjr5c4b|c(XaE%tP)D{-9)pDI z8n++1UVLfF-WZlgf(b?Zx-V_syTc!}Rc}#f@eRA#+mp&2H2A|rvLN#UcTkgx8Sbt9 zXp7`EZ`Jl&HA3TAZWl+^Bx;S;oQW5QyrcSHB3`C6Rv(dRjQT;+)z6pq`Mme3@X_Da z3f3^Jm&u7B8#g4_c8SVr1+#5~@>3Uiue^g6(qRq#twBE0V?wq{#{qwwLLndR1w~y% z)BC;%05jZg)2|K#`AvwuqxlfPk<$RMhs^quA^>k-@*-HP?R|=D7@UDEX3|M-0na>R8Y z!Di-T#dO(zZs5sSt|33|{6~Ri>(_M+6UijgYM~IO7AG|&KRN4*2umLBcg5~gCt;VV zDWK=;d@ekuec6vksBU<5|1#YNDQ|vu#oL{SysK%Y+nI+?en{dE;irivg4QNp-iz_Q z>jo!K!T;IDe-Dca&%v(4+|J2g#I9qxa${-|(v6tRT-wOFi;{0s7T3=yHR4^B_HAac zT1#4_ALqkV-;&dJJYc?dvT7AB^Y~td=T-3V$%jp?y=pqmfu~@~xGuVlQ(6IO_A7QqxOp%`{BajX-+$A-1(WQ7Z93>u$&o-XJALz2S0qGoxvBy(Mrl3~mEn?|V2}#upBcQ4~fs=;_!=S2P3HtU4 zJkv%g9kp+|Cbjr^f&uU*e5AMueLCQZCRV4wON6!9UHX|;vX`-Idfn6qoZhO4)PjRG zPE32eotHwS1er~QbtM4cSO+vfdJL_r-ClTCVvarKip-mFMz2NmKs#GtW2G{qyRsbd zV;^B$+{L`V`CglHpl|v!$kPkYK70J30tQp{wk>xCH$=~Q_-DpfroNC3V?_OL=_^=q zXhPF*{v(F>-*4qU5>#Z0K-ScSNi}+UMp;+uY=3&T+rMYWcz!amklrTu#W@6mY5ARp zNUy3e|Fy%NL~?o=?Ae|%$R@G4;nyqop&0tl`JUQ@R6EZRxT`2km;1boUA;_Hqu49` z=8?$%W29+w^7yS){d;dSDAZ#`c8%q z&)ueNdgICgH?wp(sO>aoRSVV>XSEOI_0j>FOhEo%vy4Q4Wz;6C{FsFFJ&O$rG=oe^K8NiK;)P)KT#q2Z;;C z5@G^Gc(neyMKNDt=!y+n*T*3*;FW_B2lorp-RTR{1kB(yFTqIMaw2JgZ9%+K1KnbH z7AsbgvWe!z2jmjc)T`M^f)Ej_NYrcHCqopECI;lN>7yQ)tTqoHE{%`&(FgHv#QVvb zq%dhs4Yeoir;y_Ix34aBUk(l%u-5Ml%=%lS`XYgtnQF<$NoJ!0emK+j zu-+mtVG@4%OctUvtl zv$#_6owv`4*e=Xhg%(q0%7y3D>ZrSQWd_YwG+QMlA4dcig`{X(6#tnvtrWNp5m|-T zHa7KS9mse6Q*Atz84F(rhChw|7Z2}0>PaXmm#U}nW+n$(0weM0Ibv+`^V{gKlzm*W zd~C{J?p5G-0Si#Y0}~7m*bTa}FZIxLjwaOwqSEuyj;2f=MT=c!CfBC?8*nNgEz~P0 zwL$FN)yHpI(a)qGzje(q(CiFdnIxn1oNKMGO+WXyZ|cv0L-9oZke2>BvrqMkkd_8I zv**zKU=P@k-T_6Z^yE^16Qg~Tk2s1s7o*~mk2so0Kfc)4PH|@dlNEH|DLC~h?j0hK zIw0)@DR86Hk4F8XK7JsS9KDjUGm$iy{LubQGP;n4Sc&6YGE6R&NGPS>EQn#Hutq=X z1GR*L#kx8cl;(Z~IJne-iPBT8`o0oRsBu>@ufwV9ldzd73soV5cLiCUGQw?#Y)Tcx zow^`B#(c<$(+-wQ75~qegxa&i65q4?;uac|aH(Mg;gkP4(afy;FMuu0!gO|z(Jh7f z%CupXhryHh>o8d*!UK)9hHtPs)=X>gLEuVG|;q83+c|iWMY-}}s>KjFlNa;JVffs+qSHJJlmpYG8!MVz%tLe2- z&fUt`KUwmiVxEz5?|iL^WK$k^6}?uAjODd2$#!H5zn7WONd_} z18$irSh@&8s)#iaki_TVG$4h91Dq%V0EDM)`X(b0=0F?@d)y|$MScBYyDZ3+9w!Mr z?EKCHhPe+T7ubXme}q8SMN$DwDb<0pnkF`}VAMY78adIxhJ|lz0-t4H^4=2-J{$Tf z<&W$nc7oRXT8s{~ln@pJ>jcY`_z?r|MFMx~J5wCab`P|cYF*fWuH80MyazT@-3A|I z_+Lqd;pfr(1*j1>@OQ#1yyS0MaPVfKaWWe9SVj!9L1G67t*my@NDHO!SGKbfr8+{V zOBB$0N3fnYuoO8u@@zapr6fsP&rAHQTm2L=i{dc#wtkvETbx~X3!0vdoJySQcNG{x z(Tws@?8qn1L(n>yPi9^**g<*}8~qqyh5eFe!J5Kkg?#(#7p zR?_#U-9Abe>AP><&jTtE#^Tac-yW2M-+(-6M9FNE5wt91-c7v$Y=jS0K>RNa{VUO@ zKqY~3*3GR`L=4mWAY&DZZ5>V=S@vfww+Tb-p_rNFAHLL5PfH4sT zn&+_of}(z4nM_~!k?7|H`UvLbqb4MAS0b_QUc9BH`{~O0827+fUk4#8_AUfT3-}WF zK6}?#z{nHE-EY99e?#{w@p^lzyMGq-k!*DUuY~bD1Bgn&tO1 z{sLe{#pYzqJ3zJ7qsGCeya+H&yrd*0i&COgj{<~a`2}r~x2l>?^&U06WI}(i{DXMv zK7AmK5`NFNU|*6vBwi#tj%+UzeX+OS&m6qidQ9KU`C7N+kz)~USTsZy2)F{(84+`~zpztVNET8xp zE9>{^zJ2!+!5@2x)J|6uTabi&Y-KS<=@dCh)QIo%LMtqBSgu902qHcKSe50039}+keZbVqS1;f>&2` z1$smdkmiVyJo#R{lv6IUg?}Jo2G1lc^y4C32+@vi18`%PVx~IvFu+)xU(+}3hXRRP z0B+7Rt#N$p+8%1}&%*#H0CY$m06gDA$bun+|Flj1gUoHKIy9w=(*%kPe_|7!!J^09 z;C`8bA@H??{|0U1M%JUhJ6UDF1ViL&;`h7Z-$liPI)`$#HtQIvtfyaoO!4P|&FHa$ zI+5gcIyEHtw*XoI3++!}&-{NSlj$PZ^PYPKiM8SlbpXO9(rxfqvWtvOfi-%TkN}fl zyMApZ-S!!{UDXAYCV+$OQZ!wMl~*sk?OoGByYehDH#9dD_{tS8g%|+n`4lj{9W1Nx z<^SxcP)BGf!F0_S`zovej#Q4pedEzfoJ}p%Ox{Ts3INIq2ifSwFF*H-V0Pzd@SjpP zbLV`S0#&8@La@z-hpA6|VRS(1vTzo5ujqhcr1s{wJ}IkpHP2 ztlxs^8v5U3?0@uR$p7xx|KEoY&qq9Y`;kRm=<1B#IpvP3Rt}Z+s!Ho*s$Xnvi^B-W zSsl}mb+|yIIEHC)U%Kf+M;@1{w;V!cw|R?sq(>g*r3RRHV48F->t}uyZU3au;n&q> zo8Z4wYjV-4TtQ{93N_D*nnly|RS#crnXxU01a|1i->-G_6vN_eN56dSLsp)A=M-}a zw}-i%<)F_3W&MaSKKO zC2@fOjBX?v6stKqwf02V4N@ZyZ_#dU>H&jh4*H*Tga!D7JnK1+PzS_ATrQ58i zc7|Xo7$lA65&KDoaZiIPITuAHpS@1>qBI@-3w`4li>;@V* z=Ar&VcfqVJxy*JbG=+5-{IVnfGR*eZnsUh=k-bmIFw)LQ!LHWIPP2T%yJ1+wLKF@ zn#!lIdD(UXmy7kUh6{q`He$K;;L~u-f$cv`vYHiBr2HWbK)rjfXUSLGqS1^_Is7$p zoQ-0!SwFNh&!+4a9R=E-1{Tcn!iSi55V7T~vx!3oe}#%r+TkugL)Rkh<73!9bpa z?)N355q~&#N15RLkZ$dGGXA6D$&2p`gTA+e&hJQdp& zp7=6UPhw}IXjFJnvN+gJGgsEUZka%4sls{DN%6qM+R?}r7r7_XL~qoH+28;H*mepo z5jX3BC>W*bF(gZ^&NwVkmX@0;MtjFbxaX3rtUV*hO2_xB*X_n$9c1-4s4L>UcD86+ z1G?STNA8Z>&9a)QC^HH5*<+)-p&|OLh`ycx0=q-Ks@nhtA_wpbDqW|u_02~#*Ph){ z@AF`EFS1x#_x{vhK>PnXK(gK){R?RL^x@*a@_7jK7hnqYb_AC2!Qe{fr+ZcW3)l;O znl15($7a!^`~Q3rnEyVZ2lu()c$J~g6}5TC^5G?jVGdtg9P6cXpKYX zJ?`YIy|zxW1jGH z3qvb+>41Im%yJRIy5FJjkU7Z7iF<&{{9@FO`KC#YuTJ6pA?Lk%b5t}cR;d<~79($W zr8Y<8yF~4O$-xQ>M{Tg-X*d1HdVFx}8WE!a2Uk_Ks}+?F3+FAO&0^IE z4U^DTCi3g?WClkxDJ)0BO?!$=hxTH-D}T4h_ka*N)LIC_O{x|Hx&5ks#CN&;a4x34 z%DMELqPTc+6g>a&*YVGzxk6W5=_EF#a85kUmXsw6^Oy{c;O(nDpCt$%px_xy7`2Kn zEUpwOo^sE&t@HTJuN9s9+u-(7M{P;c8db!mFHjE^2|J=&Fgem2*M~l95Pu!RaQx>v z5dSI+oczB7JRkl<#Hin*7J=64Cu$4vr4T<$G{b))?}q; z*p%%Es6;J`l%*4As8o2m!|LO}FeHwBAu=wG=P%7SwGNI3`F1#{9|bVN(JcWVeolQ5 z?LAU(Q$2*SdsM#^$eh|e>N@<*wihB+QHi&%t&!mt^qe3CilKd48ZhoLCSOc7umYf0 zegplQet>S2lzoIaIpXOWO($SZak?z~a@jLkqhXNsDQvR0g2lc0M^Ig!)*;GGZFyIhpAxN z)FvWhIlYa%!~2Y;c=5ppt$Sg+wY(&buZ_XM=Qr#;S_zi&G;5OowX!w3UxQ1^{tEE^ zHigN95F13=83Mhuy#Ovyq647--feY#SF8O#ot2Jpr#Qxz_sER+=@ zBpFU`N?P1+Dh@%bwvCuBI_aCck664w!1DGtu%Xg_Ft?dU2nr-STtR$4kbTpKQj2qQ zP^>UYjtOAPq}+a;`Zcv57`rMhd}qP6+)5_Ricw`pE3t)#`aEb${u4etoB(U<+ zaqfV%Jnp8CXx#Gg+z2B_yLQjioK#*up2E${#F+mWW$y~UDIlFn-^_pzwX1wu$pH|1 zfm`}knRKK3e(GRF*2Ec?dylMU)3=T7_x>@>p4LqP+#s=|W0qdw`1N{3S0L{zg(taT z+i5S4hFjY~FG)FW4Ac-On|zazd6g4aMXtp$k~}iYu7x0d z2iNL?Y+k2A%eYdRxM<1j>o9JR)b!3}6rd@5p`jCn$%P$}oPmX6y9?X3N~;Ote@YaQdXk1ez6gMss;4?jmBA zERBkW)NC$Qo^CqaLv=NF_2=s(z{}$7~?v#GZ zTd`r#UB{c959H|;Zj?!$OVJb{_S3^hT!o^WW2wGK_8jmg8clV*q9I3C!(_@N(G7M3 ztp!V2(LP?piIxklYlU~r!OCN0+QKI55JcJ)0=@dVeiDLW{XYWY`=8;d#`yP-ZEUj< zO-NiQX)dpx;*hp64mj=*tp?%%4nrt^Pm&&l|2y?LfMDtZD zb;?{FFRMzFdwV#M;-)-}P3I>Bc<@^L+L;|Go-odip=2)5S}@gPZwM3=-BD85KPP2) z+TX0}OVxdyQomJcpsVvic*oq{mByLud>Z!sp)Z|DlY0fQhlp1#B$9vH?D3{s9TRLo+*Q*z~PtBPI{MF$6HV2ViEXCWs9) zhb$q}`k?riybHhP1c9P8?wka&Y`9t_x#sfnflAgVRSiQt*xNgzdNSPv^t!|3%OTQx zGSosCfIB+7gth-x_x$ydPm0T{H-6_)ePLoN%6xq7Q01}rv*UreLm+4z-3*f*QoDsVw%u}uM( zV(Qq;K^C;-6S^Z=FuPw&mlLJNuT?wP>k$ORQdGQ-#owOZzKqbT=BcozB2I%8QD^e~ z;#%`DK(7*tlm#EjO0&G}8_=GvuBcwlkJlq&+x7n2enF!sRs(3sBnI}5Sje5#O|vTZ zLN4x-Gr(+1iMk}2hl&m_3E$5lP3Q)666W>Y9osM*OU%Kq?-Ja5zo@KE5talMnvy&} z9=eTxxMPw%G-f>6cE^!WI_K1r0)tq%k$8i~51IgD@$Z6^VXusfS!-F=Tz=yd$c4pD zO75zQBk5BWCQe$4qfg~kmAwV|vV>Fm4;5HFry6Q=Na#?GC zlZz4@<4_-o0sJ?l(Ep34kUHF?uNBx-8-|%byHSxSc6^zJx9q*{B_9b$q+G$RSos_G zOY>=Y{4OL~L4iz%xd{B?g11Yk!{DvmUuQ&ZxIWYNn(2Q4hj%3o3(bO&|I0?$>=i{& zE^Ou;<_{ot(V2kiw{ptH8jfHEiNqc_OFd)cy^4HaNKK6HLK|SW%1(VfyXCT$=N-JY z(`2f!SKNKkD)EMT^qTcVd)XsctDaDwEQQQT31^c>?wnX$Y-HWzp8){#?7Nf)LhJE_Lv#S z@hNX7B#If?3T47F_LG?L=pM#c$y!p?Mw}BjCoR9Q$A6_%J?N_c9?IM^3vQa1jUmXD z6LsavTA*f~!|iYCb#*%3hDNrXYN8*N6Ai+sZh?$HRqmi!rE>KyWrJ5w_)?--&wUpn zw{}E5+B8-7qQPm2zi&RTVMBTrSQ<${tR4aeLzHeir(LV2O~RaIFDQ;RWZ2;U5*G|77wb9A&Y`)CO#V(QqCvld`UP7k65lJgO;rN4AeU+^YD z#Ua+BAh|RM%rhP&FHUl|Vr2mH!W5*5_zir0U3H zPp6Nm{V22a+ty_!xVKTsdz9%9z@$7@7u$zP(bs};DZxWKp4Xjhte&-!=NCfr=h0N@ zNc!kFg&5r9{qklM*Wc{MjL#%Bf=tP8vmAVc6<-@!%ty;+GY+MUfQ`^vg|lK642c_3 z@nx}MCb81d{(Y`HExcaQ6E_s%FHJSq*Nq7n#lH}S9>Ltr><7j@Ox3?}e)?|42SIIK z7OXbN1oemaZHRD+@7)Nt`2BSp)V>pWcy=!=IGR9wzSaLFV@&R&Tg>VX*>7K``r~8^ z@)1_PDC;em30JX^P<69Rzb+G&xI~{Eo8jLscBFlofn0CSGsVAq zL({Q9n{B6}xOMprWf77bs6?7P68oAPz30DIc5gd z;et!bs7Aelyrvt3Z&%vo=j`#0+0CZ#6ctZSxu<0{YZYa}SkQI;8Ww58;)w3x)1It2B)aaU@r{EG|=sF;AWo=UIOpXJ7n1q&~RyBwbJjs2)s4RZ~ z2R`;YS8nna`N9SCTM^ETmrIHSzUc>J31v1wZjsojTNz0P#GnI@tV@{K?FpFxqZK)NFeDa>%>{|yXR}eMEmLu zidnd!n*t9Nuez}JY?}pM$X}6AcKKL*L~-!VafSytJF3rr_W_}d_HIeZT=;gGkBd^mnpRS-7?yrC zR*IGW#TZX8^2nbk@WN+M53Ev1Fwz^e_cUG?GH)RN53q%Pe8G7}GU2^_q7{q=J)-HB zY(giR2bB6>Y!MV6&;$J7=veW8j5WJc9MNt^=XV8_mX!x&DEgWGJ)9{ZVo_xuRjy|< zV)3pQ+B8qhUfVaV&}NCkF8550 z+4KV90`BN!K4-2}cr7VkE#vpo)8Fu`-+JLWe>%+2-Ftvp(P8hX$A*&`7%3W4r9&vt z3~((B%UfkQwe-R46B{m+@9p}|?1tBkdgANpRGU_C8~*eq#k*^)QszRPK$6-DMt&4G z7Ok4t)6fTw=QxAhqjbYVqc3^i*N&ts=NLVtKB~v%Pm=h1 z6)zlc>_!%L>DXod185Hv?B?H_=w*82eNV^Xv>TGTH2YFM_@!i=qo3ZHldS9n;h>IZ z9xq_1O4@T*U5JS;!{M%G*oMnP1#NdddOvgXyD|;aCMqiJQ_?DYSY6l;1FW(M%|h4I z%XJxI|L7|AqK7tev@P6H$+e#=QnEVf8j2sX5%#j%>Qypsh&NR&PRn7VA2IH{5&zqT ziV|>T8? zywsyZDv!%*pcl6_;X6Q>hL42NUS`qyMr5L$jQ^#NtBhxwa(VNr*6dLzc=A}KG=&RS zNvl*laU-bj_jbH5g}@HoJblA$uJP3xv)|;}#S?}YfJr_ zq0zF%&>O;WyGC(R6MT(lnNZL?|a6g$g29nQhoq`%Ru(`st^%`^eA)LgKjg7nJbm0 zT{c_Fh95vU6uq4v-&8voA(l+buiZKrE=q~0C#r;3O&VsTKq(TWTvBXibhMvWB^Ee) zbb^PLyBhfwnF{HVpXrRS(w&oPjSI1;)OsR1WlucIaMor3in4;yu(%qMB3@U*JY_TH!qjg+4n_MC$3N+fl%ZaWHgH{GaO!{af-T2rTfK(mI(hj;=;d$zO5v0#FaTA zNOfpZ6N{{gEyE$u3~Jy*#TiZoH8NYpXhfEN_5txFQAcjV+m_T$s%)zAq3T{-e0{l0 zEWv1SEeOT!bRQ{9XpH+*7LPfl*i!4ZH8fu-Rnt8$hz3<%)6`0ac?mT&iqn0mrb4L1 z_TSkOCI?D~VYoI{R=L{3TWIAP8;~pi5MrBztG?Sk=bI@@z@FK_o|!#&JYO$RDIXyn zt3WKPotO$rG^4<(#5%tJctn`bP@aoO8l});Hs|igp_WAGKec4mhZZYhQr-{T5d3Vp zimWSD`fxs?TST(A75J>Pb+E=GSS)e9I0UjA>G0bn#vZS)jA-IJy8fju6T#( z2A_+}=UXn1cVXn0#kEJ7*PvI_4#SOA1T|I&ec=j+5&nN=Ee?ie+P zV>s+O^@=wkRJgnQb`I62dBHqUxJU3#P#u7oN;Q%5R_E}`c6 zlv3nWVP00$@sfH*?YScbs~lDWuZ_QAj_17*7Txi%&2s%*MRR3S&9z;UemWfz;@InB zvKp+a;j%oSi4`m1byH1WJr&-nv(*#y9v66CR!(^860maM;4G(*?^AxR1wA~$3 z;*F$?l$~+yKKd#YQrJa(z8P%}Wc%Cuhng0KiSk#i7HMPlKFgBJo>aGwV{r0Kg){m* zE4Le;X28avQfOo7ww@^#!K>-`t}fl{$Ar>6;qmLxYMkq{&Z5>K+}0GEp0RYa#GaAdNc{4hLy?H;zX{M0ohs1%Zc(ges& z#cmSkU{JEcn6e|1!aNwf%CVVR1b{f~o&E7IRK(}MVE+E6`sM$@r$5PF376IMjG?~g z8~b@`QwWzzRd#$cXHnXd81sw3{n&1tqG4m^!8Qu6Fi@khw^ySjM-;F-w}68_tK!0A z_XT1-vZO;iolWOe%7kLP@$D`rqWLrXR|t!+?3)q zcZ(e*WIH z4tA~o;aYFC&G2CM2xGFM*oIy*+lCTEmYvI)Kx46;>|{+xdP6PwE6yg?2Ilwhz4%Qe z@x5P)8B-oKww61;K0jkZ2xo*;F6Tx{uWJllwYJkPOAduUPU*F&~8m!PK>M zHIOa^H2k)k@h0CMXz+mTpI>ZXAUbo;kNeqx*$#@BbaK~5BbN-f$oJGNGNVy+iZvFG zxxtAT<7AibYm=UKzH2HkCH2w?;;}>Gn^#^hxzlG2FiHu&r-9a~ikbLJ)IXjmFFj5x z4Sl$`z>KuCG8ttH_RfWPrA(AskJ+8R1B)iy+{^PoF`Pr~E4{Dbo!w`jV6X5I7}Kbm zl!RMNE2e1sr*)`p49#cxt_9*JyuT{C{u>iS*zr$1&)RU8C@Hm8Jz9WbE=JYhsT(ql z9b%wto2ghTs-^Eq+3e~&!AH7;ZihZ;J6kdLXk-ss2~#T>2tH0dR4=AL)6&2#WG||{ z&3PLMNgkdT7Wx$eds&UZg;hs@#MQaF)t{2@rzeZ`;YZ8(W$fWh2+oUEHMx4?ks7!~ zJaM(&(bDx5lvofUAhXRj@$CUxcgOY!^Bx?FOP}dzgLC+=uaEqfV0??Rjn-8R-+-8` zs*)9kyo)UaU+u_uOd#@3wXZ0$MD5(1sUle3kQnePeokn+2=ItpMtv=(WMIuCix3r# zj21gdNvTGhqso`eFcuM}Db)G(OE?0LSH&uo^ZZi3nbcAoKWx*o!6`P0P2mJMtyC43 z=Fa_%#eSey>r>mbZwtJ=J^pDLxZxr#?I=6Dz5Dc9RR`{Y?54*y^ze4&3pR;E*YAp^qy}L{FaD z;={X(-1{ZP#NW%PfMgrd3*8d&IJeL8Cy)E$MBPcYKY&Q49XTBernB3k@T(@r&=;aV zfbpY^^^db4=Ji6*Y;Y`UF(n^oiW6?kaWOS1*tfR9Qyb#)+c5GVdm2D~`QjPp%73p` zBba6jt}{ZRFC8Yx8G-Jye9bToNVn|gb60IY*RBn5`V#O7>PEXT;_H0UItW4OrGxFx zSIw2Xt$-WcsRR!7&Kd^)nocQ)?#MGHpFMKGEmAU?-)$Nlj6{zB`q_@gCymC*+F`YLzV3W!08 z%?-o?pxOGrft0k8A@v@3)yTIXrpU1DS_##g%2JiON?1*=wkpJZSqw5-RF8`4wVkN; zN1{1(@q;8Pt1n*9)896wGym5wjrm5^jijoOrzi0x#>|iz4=xDp9^dj32zln22h-Hn zir$~Y_V)E|jLWr~#ba$AB$a45#EeqdJC9IpgTItB( zgk*JehJ=G3DI_zMbjFuG_(Z-k9NUqUQ*j)H6ac{8itV!#A}(Kzy2`_X5;pU?#iTD@)6)VmVSsH1@gcu4M($QJHlxiQUfySzf7R5!&`?z}f zzJ*&R^*i*9(r-^~=y!HURQ~o1$GI}w`LQRZ!AB%;O<>Lw_n;V5J6{O#Oi#GsQK_CH z*vr+CU(QWrO8154VL$1sSHNv3A7;#w!HKtk|5K;LgMBbter8;@SfjJRlUJ#HcQ`=V zMZI`{Z~-x&1Xwc`r)n5??0{NC-s(GnN#DlP}!iUs9H=PCHA;;q``MwJik-a^8aQ;Cl|n@FL}~VKpTqM8^x92X72_1= z4P(c|BpF)40W{M5oz6=iB|kJ=BvSsL9|`mT%+t-3S_m`r&NNnkrC$Ku){a>NuT0I3 zPQ4&)D%3N)d?^(qX_jq~iaxu8L{q-l`25k)iC_L?F!GSsS9`^AmXX~v-H4x~QaJOJ zwFvGPH=t7L1VW46%WQ6^1)_q+p~{Xy%`}YMbq#@g?D;gBaOBb?0=j>x{zso4<-E~Z z4J1fhFMsJpbW4qDtAZwWfddnBU(bKzt*TYR^7QaEwmO~Q0^*6UbH%D}0w4ROVt5Q! z#`>+`7JS zYTO#D5Hs3ONDN1Ftz0?)f-;Jnw{&2&D@W2?t7Ww($NzAM)?Nb(!U=UqrO3oC5} zKXdl@G|%{`|9JQQ%M`%wZz=TBsiB;&K+6_8D4eTbeU_3wS17EfPgW?0j#X&Lotq$A z$Gb+I!#!;IqFl~R9Ql2-UsKs;CaCc>3i5%({**34_O-Z%F{Bo2I zzv;KCOISSR{@i?HQMiJ%Qc%oR;7z1Jjl-Z&pqt>%p~3-o^<7!rN`}>n;bShBs{fsM z;uYG~gRR;&W@(U1`4i=FGxhxln%ULlNJ7Y%h;S&CvN?HbDE)*Pyahe0O5M=llNsfM zfKhUO)nF?eMAhk++DM#D#|j+On`MeMKe_s0&wt(MADis>lN;Do4idwdQ!X0sAHVI0 z#?MT*p#{E6X+rzombc|wDcryuT+41gEa?os+x5Ip691)(Q1Z%`Aqn+n)YB|^AbiyP zykI*f6L@^>UELU$8pRI;1cbQ}dXA&lrTS5;JVaNpNa#lS)&g4*W4X?xibpt6W^=TP z#mMZv5-Niee8;0<`rp7V%e_Bkm|$mbo0+-tj6qf1WeP0Wene?#j!-bYjqkHMF(3EQ z?Qt*h?@vM9s#M~CTXWx2<7A@TFqg8T$VOWBl-&ajuY9!VI@+&ebW&k@F^M~ zthI3&EO4W(nijqs>7`zxXAD-MQz9pah64X&w$qbS&YgJ+ET86b zm3Ktk7`uy9bH&|qd61GVNUTv4d-l+o5T>sROlwYmbnkSB1IV9|7n_gH5ksw=C{?

mBClnXEU-k9u=&(myXi`<*^yc1Nh*OGj`8AxxI_3<(xS@NER zm0V&V16r}3b7oL8 zbRHC&?yt3t?^m(8)@sU08LM#INMR1%2};G$i795ufrL&b*qnlY@ zF#@l$5(s;#@~w6hZig9q$#o@w2rspe)t^G7!iy860w6sls;3gITbfR!&@^t6qpx58 z_R?VfUS{@F?u&+=7;(kp7#h>s{(9n-QS9gg#t>Z~-(T@l;6LC^6*%LW`IJ7FLz%f@yZZH%Pk%L7b zsu)BlE-_-G)K*GD31?kh;pl!C@5qzu%4Qk+67=y$k4I(x&zqjeOt~_lm(3zi3Vp}_ zTAmpD&0>zZ8{LP4PwaCgE99J#mKA8=zvj_T*A+G3;##vPyJ9CKC#0oa1<84!0UsDDt{#7WaUo2>S!FtO-;yXRpZx5=50 zywM5zWm;54)4oxzi6%fIbZD$VS|m}@jAK9Dc}z6f7|*tbm7*djE|%W)bFfttw9Q_(~E0nOlaa=uUzYeI2D#@AKVn%VeM(gOtizkOa@ zYs8fXKYcR_qEdU+;`ulBV%8L%dP&ppp>j|&m39y5=sOAB-%c+~3gt0J6trCgTEItf z-xHB>4Lggx5T&(L9DFDQvoXfCU@ zXjxS(cTTuJcd%s|t=7v6N=wio&%3BU`|tH#?*b7VQ!vWZio(aRY)0mVxaFKtL*Squ zU1239rGnCq$27lJnfQ{D89zo}D`r3hRq5#vR^8{^ZAjycvS7CJ4M)KD_TOADa;6Xu zNZ<%6VE!I*tDdzmgwqR{`)R3wg_J(!Rdvm%x6g|9YiuFxw4qT+ z3b-_%81k?S`g&wr9J4#jXQlk5+G!0F<3|^nNba>s^>W7Ogi=)M`Fus$5&K_xY8(}+ zix!~3RpXP#qmFK^kolnSp0n6O2}P&q`j|vBR@S8^0ady?nUo=*WgjQ3r{bavgM-!y z5^S8Gw8ZB+=W>)SR`#Bhn?RZX*HxgXSCr3zb5fttPu-+7)1$^D)rJv zv9Tl1WB3TUni~1#{EC>vyi9+sJpa9O#E?_i%TPAr`&lR_30)O!y=Vu~xoT!d2)B&T zhQl;rQN11)4iw+ohhU5iJKqGNmE;}u3?qaP*kG4d?lM%;*UxmMi9f*3$Ge(Dsk@jf zl}X2!#$~Bs(h6%sP(+B0<&#HofrN&I>nPs}kcz;#vkaQkg7k}hG z{{LN+_W$os{@~Dv+=U0qi1i2l=2C7Eigss39?jwi+4MHwb?mnYv&wepL|mJtD#wb% zFFiIW_v*&r49PB|58hD+nL=BYnpg5`)Jw&0J*&nGFOL(gPDdHxfx>2Pe?KlB6*1gq zz)(v&y2||X4r+ovo=4LW$N1oW zMbPYd%(eHCW}DZ}ZPjKN)?irCM{3=+dZ%VXf@eM)qU|wqRmTPY+86VRxT!hETM?N? z@{P`IYNw_H{COxuyKBVi2`PJlfL10L^BCgL2Bu>B9f_9T@qO^XNkgQ_wmM-F$Vd%PR^T~4FWlSrF|BiwC1C_@5Vn5P+ zE4Q}e2Rlaq0AA_~v?@cZVtRdWzfYj#!>BRY)|l0~dbn4OBKlP%)wp!e?KZ?PR*;O4 zN!}%oY92&;AzY#P?HthEgTU=WZ;jf5xyeqj!;_-?5#-d)^!f&93cxjicBHFaoEa%0 zA7WW{uWA;s;z}{6@r98TGKwhi{`n;_l<}BueAI@BN=cwY$%g=Q+l_Y$llQ7eJdt9& z%8&QM%E>v1F{kactG9Wc-X?r2Kuq(&%2;kYpj{k^Sz>5*4ML6N80BZe6@g2x;ckB8?U0C)YI)a!r&gz%Rs(r zrZc33D7>Je3=IUX2xstbf=zjnk-EfzsVz;{3YZu{e`nt=6bONkB zjlUikbb}qrSZuOaPh@Q3!+}Ad=mN6`e8ttTV6Kmx<=6u}2dfgkC)tyeRM61;8If=a z)K`KoQX)=Gl736+z;pr;r%G@T=eXtDzkTEXv^S$gFDEr=ABx_5tb7z$Tw2balw&ht zY}w^fPA}(P%51}@q|#tG+N}Hi*{E{PslpC^9}avoVrHkb$&}EG@Wm%rcnfz*K~t}- zp*=SrGgI^rdJppU^X{mgo&VgI)ETBbMVB%8(s@a`a4U6CCvZ8CNb#1RiGz>a;*nTC zd2;X|`m@0m-MkP?RNZ{?`K3Dp8kDk>-hE*c#uB5RIIrk$cbcJJ{{^wMGfZs?4SbgY zs$vKdX>gA6a+;V291VMB3ov_jPrr$!vbQ`Ul*kI)W7rR-PzkdK03iPFUUaSPR?fjhLIy@IzB-@MM|#c=}TiDh*)jn^~=F^+wZxb zcwkVy^&=2C+rEU=KT&MzrSk1ng2RfqgzBBVUsPXHLjyIc>fERdVENn-H3uGgG(Fs9 z9WTKvA#b&W<=P%%z10y-z@pA&Rqhcj$Hxat)K>$18jShZ(43q0RR{TgPR?T5i*)O+ z4IED!?2%vF0NAVw6wqE$jqrL?703`{T=4n;Kvf>?m3FipB}PQ2OI!ncb1%8p`VcT9 z?Ps5}Xw^sC06I*E&{MzA(=daLPrQt5DN_~Rox(ep`g;@u>{^vXIqui@qOKK#;~Z#d z9@{4mj71&_@;S+`HFQVk+N1V(;VcCwX`}4sd?Sj0C1UTz@Z(f4G}X}3oWCoH`I{uy zioY93H^LHC5*xvVb>RowIxJWqin90HzhPGdzfIilBGXA<<@&o+o!g9k2e2JyT6tM! zK2Bp1q*@azjtTMSXZ4GM)X(;%knNrV^g3DT;zR|>?0vS(T?S&FP@)EBpI>T8s+9Ml z#t-Sfj|;Mwk{)0#Va!W_uwogq2UAUjBxi4TX^Jx1+GDJY#VR_p#O$PMTK_qZHm9m& zG9-&&HrBTD<116oKmO-jO@(yvPQ(g+cNyg|*>{gTZOX|6d}%bhq3sBsC~yX&r6|0# zzKqAy%};_(9)Xj=^@Ew@mmB3>x@HAm&DmeF6jFKR?!$A}--490*|mJ5DH$#C+jwxjCZ)|(& zcwJHx&J7uncY%Om##|YJg7_;RruPpM12giERB^90K8DmP6nC+S1agTP0SDWypSN2{ zEbKCwrNy`4;Z)5iu&EFIxR7|p0<9H)P-tzBWUj$rX}up75_l&qV(cJSFnxDi&FP~H zWAt&vE5_J~ntp-cN#a59RS4DHg4b_O;z3q+!P_29G$T6=2U31-hUJ1EgoqPKY}xPI z9knPkSVpqJ!^f&XIaU9Ta7@wvoWVL!jNB!7Lp^dAZoxK2%$|qS>p5Nj1JTz=ia;fs zLek8A{g<03QOI3Frlo;e{MHA{>BNQh?yYpPb{AUc2(C4OA-UJqSEzKH>d3c_tNqz*RclEVT9KeM<)R7-U?d3x^)+8uCJBkSbl^fvubH4P z-=qD$Q)GjITaus&M){(MWm3M_;$)5-9O#@BlXts&iJD)>BE0tVBNe@kF^t)|vhc zD_Ktz{8W^KWxh^P&WP^v(Yy!-X5?kdkZ@8}@`UVFxV0bi75 z+HaNuLVa_xnEK4s10d z)I8l%kG{n}e=FBxZ)svM@NJ%&5h(JxD!K5>$$Pr#h!A+Z`N25C7dA76=J_*%#X*drOsX&|r6}>6Y*IOV&wy++dAD z6M;0cz+h!IaeCWH0WSVdw=Y^I1krJWUcLdxAE{3PcpkiCWl~n=@G@wh=AfgDXU?;i z((aFQtVmve5OUuWy;D|@KomJ&ZKWADm@pJ8;wzLlU`$*}HEbc741Q-+l`r`LedArqC{dOvP{eFA&i~UzqJ?v#RuVYd|Glsx`UZO$Lpcd``*4Ug?FuYreKls6}Q1?*;)31FgtfcJ7PEkc@GeRlPVW#9i3j;DraWqY30y+`RB?BW zqOGfwI%4V2gZKfd0p_-@#iAbk=FdN-f*!x4qtA{;=nVjx>eeUYLI2?KAx$R>dh};Sv+J` zG-#R6SLlQ=W>Tv@@%h}S=uWJXY0SiUk(xrTU9DhTK&IcK)++Kl-WMRt@-KTw#OBwv zJ{g-9BjHH>d7M`N#^ROff?6dz1TGT!x}|)m3NbfB&m}nCnAQcV5=7a&s?dW&=tf)d_Pw)UT@3ZBg|HJVdxmI#gPM-6qK=;LpG z$Mgo7^n(c=rrOyvgYACu6+}IHD?iC#CE^d~G$Ic9u-2~@-ioDh;Szm~+#{KF7jhP# zt-{o$AlW23E{shwRn3%3R!^9mBIZns9G6a6xak0r06p_QnqF z>z|r8mf+}5vhq6j^Ro&PtzkgT@;4ipJ>%0vuK#2BN|^4cwZ7)bdU)jF1K^+ z;A>9j6E|SEe->fi+v|^tl)9zYKhI89Yr5(D2!da`7kIO3?ZP zz|SsD8y-XCU^%b7VmvQLIvP|hsdPrGP~KfQ3w;ez&J;U+Venqu5+GZc$g&8#u~^$I zxYU1jaSE}cV|s1g2>0VkqV&q1tnHNbIrdvK+14Hc5l^F}8|lhW@Hcc=!cAfM?N@>m z(!Q4OliLEMYG8~n>7W~r^v#A#E);Fm5=;D_QZE_5FVzzF!H3A4uwft8X5 z$C{pCefgSM&YV6AMcQHtjZXBox(p_pKl9mKmAMSWg7L&S5z~X}J@QKfWqSLf25KT1 zfKmH~n&1RASE}g_UTl0aE|K^N%u8@e^(||#=YybI3_qQMbY7MNfCUEe^MVYd?<08#M$P(0nAxJ#>7_F^P>O&s*`%KpZ_;SrWDXQ z8p&Kc;(C3Q`nt+uIRbr8=owrHrul0M`D|X(>~M5E=T@?fP_l;~&o+~P$Wek1ncCdh zLlD((H0k=Ir9#a@rYRg=GUQVAFl}0nR;c0xGNE$%^4Z2@Y?e~ei7FbJl(bQtNKy`l?5i8|JPC@Mj?;@9eo z$I3z7uy;SuYk9`w*7d5Dg80|XEhE7@n;R4NbI_y1w?A_MnH|pLXxc7jko7;@(P4{(ay#Z6t8m@j$=kOJb zz!2ON&e?feOnZ4KX4LxN0>-MYtj~I9VF0dU=1^6Y_)%Pidipi>9GVj!V1da?Dh8mp zImsfv4-}r1{sE+74Q>1Q>V(HUnSf&rVI^Dds8S|C9nxw@NgJ+28xrkye}n#XXqEu8 z`O6LnfdmywhfhyX)nO+ek;g5O_V+Ab5MM3QHnOtg*ynk9!O$@KJ@eRX&D01AMBCf* zW(oaK{A$G)coU=tk}-HDAqwmwc^!iEWN#sQa)rt?be@gaTT4QDcf>o`y?PP2 z71PUC6rXWnZVW|krJ+s=`8r^wzN;NMFrj3PR*wVyg51|2>t&N&gP`>y?Pdvh7nreQ znn3)8RX5lQO#-c7-Dta8s-p9q^vL3mq&3XBV#Y8F(`j+vPqGc(&UGcz+Y#cU@rGc&Vg2AL^lW@aXt8Rd+=|IVFR zbJx5{YMqx}r%&%)Rl7=nP0%`igW4;|?1W~aD@=+IZL?^m?IZ2MOh#_?3hrr@w2(O^ z&+_pdan`ipeB2iI5yvmk3a8roVV{F_6L0N&Q=2^%QWEIS4@lGH&ceKC(6i5mcDzg~ zAGJ1@o(!9%0VJJovrPXPWm6SxiH82V^1*O0w}b2!U3uq^&h2C&igAB>njIVNHerlF zvp%{2@!Pv3$Wtl%@7I}l9@44(O*X_kT_yV)sJ(*fQ$gU{xM9GJ0x8=SB5%8SDZ|Jv z(PgkF#V>qfNJ$n6!D_9^L0zoI-5Us0|HOVwn_4*tp=;fg^_wOFSNN9j5%%OZNu zj1M#^yv<5RQ7?%%0HuA;byG0XsynfL6QA@z?@UO->Sk{dZU(7NB)FhxuVV`m-l>+i zdYw=#-1fqjPFKvmQn5w)n~ee&Twz#caNaZhw7!&Du*$Scc!_LEK-etiW>bDujC(#l z66z(^6rB?7W-^-e^H5j8KKgC0Tth_CNZ5=tbNe%p@+*HI_+_c}YPWg#a$K8NxqxV>aDf=zSwZ%R(%$uwcDMwn8gyfY}TH4y8PPU)t z90v(_2NE>_=Z#f}&Mu)DZ*)m_sSLcj4wk1D?0AEyn~OI|>berm*qUDDALpg-hwG7? z%F*JlgE32;zdd|Wkg%K|GHvEYA8-87v{G4n_60bo<1E&BL6UqKEj^#5I`2$p?K>u2 zx`l5ZV^-!;uhBdPzll#7osR~$BH#>&2QjqK=GE(SAjLhdkrhGqNK>Mf@<27I+G>*B zAEciKzwr$`Jf=l=kwXe6)kG*Zep6*VR`pWYOb8f+*O8>Vj~`qIFI2D7=hx3AoDIac z6iQR1;A?pO9JjIF2a*C3A`)%Uy2L0!KL z-_mQ=K0=LWyy$7*E($re2oOFADrLTCy5`*HlF7U(K5lHbXFin%&AwE?=?Kn;%v|CO zN_SjEzn4r_aXhqsQ|z+fe)>ANK$Uqs=m8C)(3SqRC4Nb~c`&=b-eT5SIm;LZ0m|2G z;gp_o8v70(4CXc^!aYV=!x3Ul^hJpOjK^~q@e}W2jxG8lf7eQ+yNG4mFfBfAI%c}u zfQJFf{IuJ-I8&5d)2da99+Flqt6ZgxmMe|*K9fd!0vYvB76l6TBJioi0o5z&1!blV zoK1P!mq?o$13hI`Bnlr7rZ8eDe4CQC?&bQ5Qq+33H>q+QgFEIL!YHkhfjA1*4qop| zM0uGcpBjD_ydx{FMrmZMwk<7-Aa9W71m=GwP*_m2lZ_`y9-iGh_1P;skcUc{pcvWw zTXnJM-TF>vEMa)+m(b}YnB=k-l@dp|v2cw8&NbS{;Q1@}HEB(Gw{h6VHnyI z(W6|qYSol^#bUve3puF|Pfr_A)49mNYrFU10#82sSg~f9-4#fjFI^FY^if8#&zovC z*R6y}ajb{Zz2hoW#Qb3JM9D1Y;5*?TZb1fi2CD4?ACm@f=Kg(%={{joSNo!0(qri7 zLDjhe6s_BFRkKa4S@QUd+t3A?V#$`$p@r|K2d>4X5rh5S`%0FfmDWKXp9n5yMhnvk!doB(HPE zS$a!Jo>MtN3TUGcyc%u@|HeeobRu(B+-Vr*#)F4tcxFoz?v^gS|D8cf$ekR9NnB1L zys{v_j+EwBZo+QDpmr*mg7A2V;M6F$SmMrayCVAYbWEwbHWe{sAXhQud!fqeTL3b}jfy+Ogn*8FM0JUM!+B|Kjw;h8dMlT__8|FB@) z^T_#Vt}G0@cDY=DxKrORCuC@5=hM?PU3=W$6E!>9Oh8E`UYVF35VjFWy!iwVL<_bXk<6_=MMWnMgT-D0mCS2e%Hl9)k8JG(MtM zjBZF45)kLr|wBX;mA(vGXmCXle$8@mH2hh=K>Xjb$h-( zSp1IBXG%@SI=ZR2giaqkM(yG3pkEcTs71!rV0yl^Ya?nVR|^#SVe5hPT7gENEW=dDm)?dSu)dq?hcB{D z5N1){MeRu~-jM+mH>S8KbJTc`(czpP({?#tpm3i%J@Htlh=*M~hR)QhlCQ><3J=|e zK!9J54lqTSicxOY%11&t<>n~`c#9N%;LmRtm&7`3i+@QJgMA<{!-80vFx^EBH5b&% zPE`_{;Dl8N#U3HPs$d**^6zxphz2c~wyY;ks?v23hh`m3iBWk#MvWJIj8)~|-a$%# zPW)}6x3J!nu5wS$3!l{-o*o@f1l2wn=D|5-Gz^dq{)9uk6$2>PSQ zElZ&084>}fs6#0VB-{NH2E45nLKW@NKY75fWMsUA)pdgNe>_7vpm&H!HHsa5Qln@4 zP|tMFv1@0uc);WRs|5S0`dP|UB4hAV*q3l_0>hJbx_^N4*Ix3cl$ZWjC1-~F@P|Sq z;E+=t*8!d7*@dCrxQj)h)TNC;@#|efCl&r|v)NBBhdC6umMcWwSe8dQYePA)kg!U-`zk zM$TGrNU$v-QJM^66TIIJSUwaAu$EcApKW0p&sTPYex4^Ij1uyyi1-{)rX-cT3MF=B6iov&csxG@NFAl3b~^4a8n4K1<}E$( z7J{{~3pc$qtOXZpu95y2+#?w|qSOc+kT+DYOyRud8=GIS5Vomw4w~N2oFEqYAm&LG zMelO4$Housb#4coN;4VPld|PU4tlJd!->c5-o_&@2pGHm0(`WnDxP5va5O|ssIEsZ ze?;SZJKyJ4h&ib7lh))A@IQ&WxNXa?3%OK^7-Y-*rRRf>{kkBp_%c%QLLQ6M96bsd zl2g1MeGL7M{^A5`_wt^P$h@|=xzBT~O)DPFn%8Oc%5>o=WlOoUBxEDoO3-B}Vb^#| z{zUOJMWwKGmbeRtwW)$dqNqPBnH-9`>*<+nv%6FeH3vDFpO+Fa^7IgX>(!nCndNb> zJ$~8HX*a`~ll*--Xu4X|AOux@)f8{WHt~z~=Vg?geXm~#mv(N@v>V~cttR*VG=}~x zsa}phF~o$=;R=rwjGaBgV-q`gNY-LEY2O<7<56boMMK0NT~w*U}v zp@-9Z@)w*3bO^yEA`?)3>v(T{ZZ!mY!U&uJw-}nRDdq#@ zj|f&#b=oVJ!-9GoY47U{4HETivREhe^y+R%pG31ux8~l!qf!;>^8buWbBlq_a|)?1 z^Y?>H+usxr3}alCDeeVQQbbD-GzXlJRx!w06K~jMg4)0L+*UesEe+=jL5K`(o`Qbu zz9_qvuP;!uI8$IQe=2FkVq3X&#W{wf0@ZQpjBNd4HofIjDsGGpRJe=+kOclQN(*8eJdXwWpk zQRNx{KtK5JdHLU&$s|yswfa9M@lG#CZfSMcYw3;H&YMw@((&AkbfG)5)7G)lk#^-W zH$TGTXYR~bB!7w z6p#-xFZr$+d;G1L98E-W{i}l1C@uNA{CEq_EE|pl)b?w7Nk>NZ1*%_ZcC|IM*=lOy zT`e0}Yc{pgp{h-P`do@478ST}7`-HROv(GROR6QRl3)dg6uqS^)|*kTQD@jKOHHSyZiCO)01 zLBC=)i-7VqtnXId0dd098rK8kPXK_0W)y@`T`VkvwRuDFNY14z+^RsERb}O@m|gVR zFAy}V;RU{1-|LaqXyk{v&E(})=529W z1Oy&5r(<8o*e|V;XQ{s0{teh6hHk2R;uk6ZJ)czHXI|&bna{`*@*cs7bD4OZXnk+< zL!M5-4)_q@??>|^H2Mr%W|aOQ+a_09M3zeZVq65vZkr{%c;RFRUoR_pd|53%tm_+> zJ4W(2DvIgn#i!wUJi8?K@kR2=&H-c*H>APfQX%;H zy9Z1)%P#EKN%m#IZ(M5K{{T8Y3!tt6-d7ukQq7`yl>jwmGN!E`v)TO_13D(shd>7B z$b{XxY*3{^*Bb9P>Hf6uf;;( zuW?@dYFoa-{(K7=f)vBL4sQym3XHA0Y1&XITB%?tSH|A|sQ&pec>mZV-2B~E_N}G8 z_dHxRL1@sCTbW!V?&arek8{!`-UUf1FTJ{}lwt=#1UpZEE_d;}HZ&sIf4n1xwZr&*d^v~nT?X9Ume0UgGn9Lr?PnxTyq07-EWGO$@6_}pW-5}Cs_ z$?$y8{Op>$@->z)<>g0-AuRCIbBRw6rxFZ%4l=){rrLee*6S|R6J`zmy2Du&Jmz}S z`2N>0b`(OQ#Um*}Ji(UDNdhC0gLI~(;%yV%l6ZI=iu@8dqP%@Spe1)Y;JsBwHyO`h zC3FG}^@I7JWezIJ>vojslbPIS+%8qNg4o8kOm5m$$H|d*h~`43@(DR@IpFW_f1)ht zBW1cB)=Keegv(V4tq)GgLxqLIk?hdzzAf*TSVSbzPESTbSfCTxcrhc6>C z2Kc3tq7(cB+}!WXNcCagk#rrbOjx(9Mm{0Nqy zfG$%P0}-R4%}EC@v^wG8*}_Zv_<_zSF`2m6v5hZfVYkuGo1^C4*`tg9ou)arkQQq9 z#MNzOn@{_Jf?8$_g6|dTvYZ<3k&swkG1^@o@SM2?Vt6Xh?}~&1*I8ST{9jPtV55{@ zLLoe%E|WQ=`du~`HPB0{0S|vVlrGNo)%6z+sM6KBpmmPX$FIt}R|3Ds`BF68SM-2X zG>xN4{iV)AG&YapUifU#(dCn*8g~AISDR<)pKNG0@ZGz5-xgM}#uq`_d5ELiF#1hb z8sVD7!kN77>egsFRPv~%O;vi&yyhrt##YavF{u|7lLt}$DKVpvqtDR`UYrTD5CX|o zNwTGVl9t9vE_}Sb<;=2A#o+~AnDXE{lL}0Iy9i$o-w)|rM zP$)7)`=>YnF4u;Ca!uCox!133MHTb@9ucQ2Lv_+!BH=vhX)Nf2?@t_N#b#+6KlsV}|#{-&}LSkKTcCztM@IoWU zHEG<%mOtq4b4{yBs$D(YyGYmJa zMJlwIFf0tWa$1v8?4Bq&naY%v4SPNxg(Y$$=MrUmGe>pW3@Bq60h;^|Gs_PXMRHzq2(KwPPf++Cq?I+}^43l3|G|cV?bkQx*V<0-8Tgpo^4*+5?J)wN zuKPC$?c=Wx!O3fP6yY;%s@l{Gi}Nm`?+d|csqyG<#POczH1?1DhX@C+^cnsv^mK$b zdlPCu^?C2H5TghkpdNO-$xaERYckD~3JF><4g2N5`ZtX4K?78tA&4Z!cm9041kv{P z&?vwuP-Pd%xjbvw3^g$~(%G}VNmn*u*G*!M1; zHtIKgPem=L5fdu7sk#3sb(-KtOjowyytt@y2-p7jn>F-=9lCa<% z-eW1b(R{Z8z2bikG+b`B+yOl)Uu3MQnU71i4dIN%I0q#Tza%iPX_X#N3Eot!V~azS zTe7oRM$A#u93_l-hjM`6qWNyK!2V|ZE{kN-X0((<^@2z-Z*oPOL3Q2BAt#6RMxa6X_xB%{o;Dd{7JL)Q6OOnf zIrfCM)d4hgHSK0JmyY-u(uV-3GpnaSUT1eGQzvhoZmxb=*ANN_Bu*G)3A!2MAgI7`>s#k1JNE@WH54k)B8LvpPK3aOt;77Mr zR-A-sYjR->L?Y2pf#atE@Iw02j|dkERD~xE>$`Fjyp1sE-MQpAHF2`Ag7s5x`;X_y za8Ez3+$pNIv(+bitrZ@F8+KrNwkmAl{sCt7@bQyXE3xcOf4!R1#JRLqP1u@#fQ->^ z26F#cdiiSd?5Zw4_g>r1CPF}(1)^DVU%*2z7gNpNIEzA#!448q*A!x}B-JB*g0`0~ zEj4m#jc+ytbK0UrKZ!rFu^Vgz_s5td?>-yJpW|nb89l==+fEn!12A|z^sY^Ze#M36 zd63T@xwFi@w=Amnk_Uw=%9P*4X8!Gann&G>+!4}t^0$XRrnoI$Le^#1cC}Eg=aI{5 zmxvzr9nsW*qyKXE4W?0dp4C=TJ0x$`*Ex&+C1&^SSGS$6M^FF)T6IdUb4yNpUV_2v zZ$UPya}LY?`o9paj*I)QLXk6Ud+!0L7n-pO5i5kbJ8tNUAK>qs>((lg%h5L?TvFVU zL}#Gh2JD~rmgc?0o$f`x*c*#(J0cEBK_|&D^WQIyP_VGnH)NUNL8#=_vKxfyC|Zdl z(?ItzHP`LrA3)Eg*eS($SABLZl{Imyzv0yw$tiUi7Hl7x95BLc2y|GBSD&pFQ=BXf0Sxef=3yW_DW zyyzk-&D7}l(MR*-r#)x3W;h~UEEz9`thEIgJ>C8+Y?Ptb$Zg*z|4y|#7PuJEE0B(e z5_&y^vN3ux{MhdsIIfvWuowP4`;)f5q38wwp z4@7mkjNg#MgwDy`(`R&Og>Jy!ipxKYsBUpRNFmm8W|L8MancLV;yid=^V&CLw{gut z1|QrN)PI1MfYr>eFjU9!hTxIMd3I{tMAp5N6U=*n!adi0FjHqe_u|WY?d(15_to?hf1)06R}gPyq$-RqKVJp zAf)5#U}O-l1DEerp>a@I$aB$7xnJbvJ78*rM96MZ_li3fse3yAtL5?xv5ho* z>x5$pG&_$XG#Lh|l#stzhUsbu5 zn{P?U&NR10J}U4Fj35c;tDxQ9gaXR*{fg>i4*%tby&#h#ec`vwfF`yBZGS-k`#(=Z~7uZ!%y@rNs5wS1`^EsGFEo>B>vv~Fa1Jk6B|%x6JZYhL{-*~VuGI~dmj8GAg@>=&ybf(_jfr!4=CBQVf6OofBi$!8faA?zo)m@X)7EP~&&)okuY;42S8Pl<&nGt%m1- zD}ucLV&O)uI##1xqEd`3Y>TS`g0;KOCO)2`G5eyBnXapRmX!{NFL%CR zI{O0~1T|hesFz?ZaNr*xxitp~e6>!nJl#XAy%DXjhvq3{7n$uS+juw%I%F!L)P>C8 z^LLy}R_1C8*P3t!KV=)WoQ}`R9F}~4w<@4s^!ll@T>pSzfMOz!`;;l^Um zuy92vUJ~+~Heu|fRTc*A;p}IQ&xRt+dYaUT}>Y{8S0@m>*t-zRyZMB5F|%8`=auvTICiQ4Cq6NRrq-gj1TN5(`~ zBhA-Q;!RaHUw90`$B!ZU-BB!Ji{;6>tLIO3IG`39>aLqai$f{<47L{4 zIiA%%Jzbm(bUEKZ7DQ04-l%V57XsoQD(xHAi~oI6}Q4RS+WBVRm60%?a!Lg)=+`224#w_d#@LJlxIEdDp1}WWnEx6Z8cNKY>dgx z{)!RKUK!MmR*0m7Ji+>ceTieV_aV$mg`O9jp^~m+nts|;D1F9yK$^&U$ezH?DCLI3 zhMJBT%P>h|!>dRZf3HSPs#BiQtG)=F#ZXs4;{`g;ZSdwi1sOyqRF$Wa%A6)aHJ}j* zFE2o3x;A&o>yU1G;=+@+q+?HxPtQ|V{{XG>LxCv%Rgq739s}J77*o|OLNt=TB9eGV zIi2SVTUgxPay53QL|Q_UbI%mWU!&eDUjwgcI`oI6B-J&7a=@}so$dy^8kM$sgtzKR z3D*`%ggu46hRj70Lpd8QLzztE9D{b2=&U2?L+;=AIDwAJ3Pkv01Vw(`H64j%5|4 zC+JAFC8xz!hgeR|or`!AR@Zj^!T;iKT$qt{DtS z(_-1oHg~a-9kA1sWSk&*A+b6zxB`4wkxBRgK$N!nrlj;ShFS^$Kuh{9?tlqUL4(Q9 zj`ks+WRhU=m7=zo3v|}{8MN>8yvaFOK$pQQyTMXR<+M=SILX;l{D4;ffMIH_u)V;! zz7iIAO4KN+*vx4|=U;cK4mVHXND}YNH-zRuQ{d*-U19F8)b(`HhA`+|Q7oP&>vhDP z6A|Yb=`-|xaMvaV#CbY-)=*fzVl>zEwwlnhngPvRXS9=e*`-z1y8 zKySv#)2i75t+#QyjT5JEL}@n|FTKAQdW>6`B=mJPw&QAl6(>Q5eNfOa(9l%o3bywm z98XA^U2fp$laJO^t)KdfV5hgogG#U4b`p;;*vQ|g5;xHd2q++5M9eE1%A1xKV>ajE zsMVB3fj{DM%GyOx>m)QKc7u19XQ&Dt+V->U9eDFey&l$; zL(7eBvpncDN!E_W`HURpUsI?70Dp~}g5ZzA7@uhfr>%3SBx!BlZt@xYdvBgXZIU}h z6OS#1M31LzUOdeC&U086DI5uEA!MFQndKLg<#NQ;mmRA3bLZ!_i?g;>P_df%dKbxJ zU*g=%xt&@b*O8mwMstdB6I@eO)SEu!w*ikJo3+YbBq)!BURgJgN9B7Q;1lc*z=xpk z&`xyVBPjm^sYt{(Z8+!wniTiHhNI|%TesVN{n?hOp@c|{$VqpKaQG0zAt|=xpp1mT z&MfA9whL2BNB;)aE%N-7@Y;fW%Hb^v%z}V**9rI$v!EEPv)XnN5wmp>GA?G*9B#Su z$s>Hm+gjY&gj2SZ$@f7&9`#y;0xKpbs96sRTVEgUtl@DD~1N@vP+!;jBTXM=;T7 zp!ZqaE3t1`fX8tCIm~VGjoQ)aIBXXa&mgf098d$v{ehX6%V?ui6NnkD9Rts&xCi!(tWZ zAEG>PbF|6ab3FVhd z0`VV1N@D|rQ6M_8o`Wma5JVLLsjUtUe&3gGq2PX>L2gPv)koUd>>H3!laJDvju`N;{}Z^Xrj)1j6>efy1b~G|1HFbB_i=r?GBWhbrW|F(C+Sp(2b}!^D?3%z^Z#Sp}b)DFqWl?;GE5KOyvvXiSG^;i-{7f)5 z%3@91d;x*s9rUEDDVIz6BXj(PLYzX71KCq={sVyv|Fz(u3Mn-4XLDxGuu7PPyc*FuO&r|te`~+Gw z-2@CWQ;~K!sW0jsO7PG}_e;{RUFKw83u2Ymuh7#GfBN!?+j|k?`z`-TfE2a0GJnaS zbhni|W_zipjt9KSt_MP^+5rREc2m5QjWjh*=5-hAa82qj`^Mu<4f@!+H`8UTzw;2BrAW48RwxJ z(O^14@nV%#3};)BThDUWVUtykN)3N#Zw>g2G&CKafk&ZtIj11M`qPE;sn8Jb=pM;#f zY);Y&npf1`Z$uho6no)*yj$m7$v2Ap9_Q-0jHJ`p0^r|`X4Qm~n)mEQfHh>iH)OmP zSf-Z0P0$g;LQ%^FD7^jy=0^@vrMgNz&%>&Z0M^livGw-e0J+9$Rc*q7V7SLCOWbU& zOG=bbhNGg3?Vo+Wp*5t`!L9zSnv|)%9LR65WuOmg<`mzbwTCJHzi!3-cHc_6NNb0H zq|b`t&4Zb9>!3<}*Qh!jMP1U~r@^!Az9QrIpe4UTk)NL@$aFmgnvff+l zt++WA43{MDB)frHJLE~uceX03Zvqy00(OfvVYcDNNw4A#eiDF}zAEvwkG-F~@8CWv zdbTlCIH@Snkif&@K>6+>)Q%e+ds^p%JD@!%y-IRiOjqukD8}s*Q(;CO)?55=gr1v^ zB~K=gu$`!lAd{^dJeMYQy8Sc{n0#f>{#JwGsiF^V#M7x)GzubX zwbrZO7d+8*FD1~e&<4-t3V_*8#TLGtK1kYu6tO#lFN%{0D&0}UKEnR=Yg`k5idlfO z*J_r{7OyhU(3>BE&L}Z-@U~}blrzx%mO1r>_jwSTzwV5)eUNmFU>Dv?- z#mek`U0JXx7;nMwbNoH!5q!79@Bprtk9PvfY`m@>dCEQF8STjt@%!Z@#J@_%mTPxi z>tRdiT9i6K_o$`n(cgGDTb2}uLB9sk=!`73;o*n4tzuPkI$*?6BmQCQPjUB0+4=xw)bd^Jj+%2Q+u5SeK|v}PDQUt+MJ#*cSzIyebjgZqjJBXq@Ko@ z5PD|f4LLe`wSJs!s+mLy&3IbW@uc&Y!Iz{(MW&LXgPk$fPf}J*JR4x5E{Qj-R|36& zgn+R28@Ao0<=yUQ9*_RN&}?bfXCmSzZ*0SJG7q(Oo{i0dFT9K<;4!V*n}+6U`|tiw z9oZPpzoo}3;i@;=m16ILI(}IWU-=bIC%#JNzI+Wx^$tt9lNqEaWnWhRc#*OiP|4I> zfW*qHogB#=JI4KhNUDnK|w)hi&Wh82*yt4zBY$~}2fp)u$sFkhkyF)F!Z z98C4jB$d7>sm(q8W(DB?Z^buakWKD%-=W8@GWTXs%lySD$G3}e0y+y9M^L2k}ldHwpcGJlM2w-gOfxfzuE45R3SeGy5`d?P;?^VQk@^Op#2fz`Vwbi z(IB4Oow$G-k(G!JNuT#IV7TB%oRFS4RZ!X%SvW?DUYxV5w!)q1o4D+56RMG9KXS5 zw6RMwcGVyX&9R}H@fn`ba7x8KTRsxywO0qyU$?2~5K=Z3P|&rGB%h+W)yeP0eJU^F_K%J{F|3QeRHtOIjHwWwq+_Z4Xyw~O&$cc^Hl z+8yp3DKolTz?!I3^90H4NU3_d!lKhBF&lrExtXXwTOD}EA^jg%H+Ow|Oi5gU{zA$5 zs(I{?2-f%q5VO&`ze7b|7>` z^2XYrTbtpzE%HO8`G?w6Y!FJtS#>POx7tiP-06`nk~NFuHGan^(wCHm=K;SR*TJ`* z%QD*TtaU;d*y{o!(jhV2!FBxKMR#WxqWcEc-BFfbC5~9W6ZNI9-tz}1v$@-lyy~exHSg2T0QhU^03%mM$Drg~@UG7QSN}2b zpA!WGtb>aB^2mRHCMI%WJ!}ydKJ^7}b4AaoyCFXSzY0t(&mYBJ+SYd)s;-Oso|(Ku zc-Gu}R!w(~+xM2X&7d^e$>wLg(c9DFj({b?@ec-cpOy(mzILk%O^87S^(_VL3_TjE zcZjI^bC<;b08R{@2u|9>PhWGYPlgm<_CNq42AE}n9+D;6(C4(A*Y+iRiBKH+*nfc1 zyPDoT#VxJ2Y~)&F+Lh2G*YkW!i1E^2WURn5B%`{6w%mIb0jRoPZZjN*dv-*sZu2E4R7!aCn!TzK zmG!Bw|Dpj%oERbf*OxbI3Ja1dOkBLz~9&+~qG%mr7o#O(63z{ams_r|*%=3-) zv^>TNd`9EzeGFqH@c!ET4?tqu!IkYl%<)QY2#>zXe^v9J=|(N+?qY z67R>&V@ygTV^|V{z=m`d0HAu;sDwJZZ zQ^sk#Vu^{SZLCtP-n*!RxHg;j&snXB8BGNbbX8ArE_fmF`bM1OYk5%PEcqWl-MB+@ zP7?Incnz8oG;WMa8c})P+On$5&GbqFPdcwB4(dyEGR7u=sVZ~fst(_0L3gDcu~rHC zE@#m$XSEEctGsEIvt(0?(xp*4tj;_sx>(xOP)Hw#3g*lAlujb&OmmvG&S8DpSQ+R;kbv5>HRRHioUT?`mLC44wW2h0+{vDV6$zW5g#d zvVm`8B*R*VC-Bo4X9dLz^b~std$$TOX(#(_homI3;jTc9+VbWg8ivX;sHF@w;n9~^ zogo>oVxDUx1iqZFtyLCndUIF?J6{lK8Iu0oz?>s3Ob7R0z)GqKTd%Vos9=C1|E!Al zR2C({t6MycatIS#>qF476TX>ODW>S1aT|=vk@kHFvzUU3qWn1(*SsF5m5&89pQu$6 z(=7Pb3N7C0%juk?w0=m5e93o%KlmD)Y(@S36CKSDz(*Bz43s04>U}*}jctm+2=|{R z5$fsU%BB1}%?m%_N$XX?4aXPGah6gcU2S}$k{zZ>eVW|s0?i9!(?yb}xY1EEq`T9e zp(=Tn5_aPngbD)Yj&51@oyRX7>V7BRPAMsvu-mkwSCfnNy;+Jm@c3y)4peDX>7It2 zQILK;MqB6KB+LkKn^pjM;VhCh?xNMEO4MjZ4^*vXM;;NP9Fnr^>MK6$$@gF;=cXlR zQbEW_#(tN};s^B&CT*a_LS2R=_L8MO^9Jcea6@N2#uWAXin=|$d5wwVi}=2I&*ZqU zwyrqMTq2gIMruZ*jIcP+LG1)~o@=m%$5zx7itO;4sd^9;SKu6*q_^&9QU7MqFh4x8)^% zOAkeoRh1_#q9XR)qT{Pto~4^#M0e#H7B3_uiWfU>%-U^!jW?*?p7>90j1eh0MK_8 z!cowLBl@3*eaCX!u=hv>9M7IurxKa@`l}Z%L)Ewo{V|>ZEt|+=AfrOFAP^?NSa}-- zi&}h;JBdnrNVATim?tB)RvhGn>HFI)u5PjRQS42*A4Iz9S9{O<@x^Saq9Q+YEGt}} zwbKO2qGx-hSd3lBNAJca#;eRN$Qj|CMY{|V6n*v^_32k32SQQNoCEpL=QGDFZ)Sob zO0=kTF9uRL=Y{_%=Yf*TWUIXI#8#;hX>s!HUzfd;KlrgIR958cj%6iOXB*UgW9@rG zti9?ideUwL-W`p-on`D1Y1$7Q*0?!}HYSM5PO(;jiBLBpt*;mc-vatQl16JE15IL4 zrXlBU(iMD%`Ln3g=1p+O;gx(Q0W2_A(?9Fe0S7ui%6C<~Tof+v%ajCPSJy!GFtu6RQjZctE>eVF0PYb+E?QMM zbdqL{-<*u7p)FN7v?Eg^w9GUA0O&$t;v`8IXrUZ#w$42F?q${xHdGU`du09L8vb~! zk^pD$Hvl{=V!1^-QRswohT_hWNuJFEo>ICpG9CuU;EAjWRr=%7>;tY=nlo9+OS9t{ zT+W!O*Rm-1XVQF&tY$@_EzMC)ACq$*s^|BkpoIy&4<+P`)!q1x){L->2!?&EKzz zV?jRX5!(=jrX)8ZS^12Bt1y9RzN}r4LA$rT-XyDE>NIXBOrrOyT#u%7>9={5SpoI+vj>v`UFZ>ZWCPR_~`qBr#-Ga%eZ0`jYTCh3;w0@Qg z1kU-O%H%uuG?27c5oJjwa?jk0B+iyzso)*3C(D-gXT+pCZ^#Z)I4Bp36-+JT!X0>< z59yYvQ?)gN(X&;nE61#XGUG$VH>MON2UKqkUg`OP6aDy!!B&sv>i@eZmQU}IKQr)ZSB&WT*;lNd;rbFh->crU_{Ysj_c<4H zcBNBRnUHH#%ivFuupX+w-aNzkbGr ztt76914a+MUP>vxwEY7>fj9495Aq^Y$0;b-7JC=U5voSAT3@C@kok2NZvD zZO43?>O?))D~6^?9H0wK z>4W*Za+$_(>1Au?N5q4W9St^>+QXHM>zKkiDdtb8?VzpptJ;%0HD%!aK_-Et#FSq@ zcfsOt*gYq)o$crjbr=6c?hnPA%iKXu-eShSj9tf;YAIZFt@IFb5mQ-(z$_SH6`~J> z4o(SM5jT7qn~qnxLQ!7pJ7oQ$hSH9@6Q!Bzd+)VN2h#SXY1O~u)cbDnFTargLT#%? z?T}VUDw?SRm1ahGJOsxQ7-IN0uXQK1Lh^=^&0C&RrhZ{oML+&Yh=ZNdgms{&;i1TM zr#(8xgzEO_nSzM1)%0o4?;cbYGzYhbl8gUauySsyZQ1!u!v%<<;{H+R=O>qe?>E8M zm2a=(Z;G~1Un~iwdHdfiSPs0PRCo8vf$6GcM*v(B3T%r;F3xzPttX3|q%nKbJBzW7 zhbdP9tYOB=C4!g1*WTn;z6u|^BcWg!r_X8?3U<~DFSOCmjj=0O>LrWpRd`(lDEdir zrj{=s1T}x3Oam}2S6s^ZLmidn!e>K^d&_VqHM0Cy@wYogq%#+X`{;o z4je=AOPtwE;m23=&(1w~Qfmi@VUH+AZkf?`Hz|5*X(W2K6dmkF>#w~zdxRjGVAp%2 z4Fy`?zV!)>T>*mtp_1$g1IbhrCgMX+Y;s+s);gjl6`dO2^`IMg9)sDI84@_1{K}EN z#5`%~K@<12rV(ZKP+-@!e8Mx_rGjCrONPjUr2#di%G~e~FL`P^GW$A~zV889MC;0$ ztJ=I{QYAjzo6)$5mUAyT(}dpZsI5>zQDj*9_Oy^pa|bn~F>IXxbJSZe*;FrT5hW)L zcpr4l_>chhR)yAk3wi^u&kHoNT@IMkkMGYsTSV?A!Qdir`E?CA=kAH@(bw8t1HC)M zt2cGd#i3KK!C3LnmiYuDAr+D=edBfD;~+k_x$A19jHvetMsmHav4q|f75i(U0(;^ObMS{g5% zIn@ak1F)1c>MAp-VF!oEVUht@(n|TQfcWMS%2v0z@D{);YzMiEVP*FysDIE@?VzUM z>kX-oQ&+)EvDS9Y8(Sfv@`?<*Q42cJxy(pkJ6Z6XJ=BTZVEzrx+QJkx;ayr+yo>Vc z7xw;6@KFi?pdeA!4gP_qk^lf8`j^r|#$zf$%T>#ocJZRyL{R~$sL_E690SXyU6i5(

7Fn&13dD`uDPlj-K9?LtWhusq-RYf`layK4&&gSg}shJvmZ`7{Pt^UOLa3+ay& zQNo?vJIM?BqJ=!T<*9W#DS}m@{bLan2!$Rj9L1-;HOOE%CV6GM?lPQTKXz`Crk^+9 zR9Gp4@2ECCyl=yWwMNk4>b|!xNFyOBND3ky(jC&BBHaywz|bj-Akq!e4Bg!g!b^8acb9~u z-$mcw`riMVwPwwovu2%p&+PN;XYcczv%|24ckP=FQwMIc83^}KA2Q@S5}*q$M>=!PzuB%yl74fP3sl$J;SJn z6XIn%huZ$)m3oLu+fk$gaS<)LxR4_j#8D+Lt#@hlgVh_!Lu{n6#6k|@y^7Tk-KqP~FQ}%HBP{PGJI>D}=+6((%mgeGEb5mwCrHMf z2o~NgNS5U_xW(M77-`EI_s1nyyj;I4(_ACjQF%+kVPN?)wn8attet(q-f>5EoCP1m zI%Ce>V&DB-Mz>aD`#JdayOqpLKf|72pO4#g`byE{?G}won~l6-ZozvHP45L+CGJnm zu026)F89tgnw|^vERBk;-(hg!&mP9M87yPti7B}kNe9ea@mMq=kYj$Rc2k?z(tW1c zpjcDNyQ%~`ciCGIjt?=MpAa3*yZ6shh!9hT8!c3Yw3I@Nv@``FvO)$3py1t3)2zL; zaIKgDEQ{32;xpRiXTq~jXH3HOQ;JoKy?!4}X{0b$cah}y5FM>peL7V`eGiSfMm1rX zjP*+pZmz8qXRZo242#j*b;?aNQ;>fF^!_J}w4PGR*KMzUX$giRM zwm6+~jQm#DJgU1z?*o0;>IJn!7bWihSx6JgbMlNKHa4D@>}(EHSQZK)!woU zw}(>uCAQl6^tbA5s&&U0a%8Rk>o*N;ZoN-O3S2g|`anEAOslMao&^Zood{S z*h53OE?;=$vV?P)3i)p0W+xllzTV9w{<8Qr7t+zVpI?Q<2a+Daz(`OC0=hXccmuHg z;_T4?>^}kpuz$qZNVI%q)W=3@fRO^!GXRtTC}8kEcz3!^w#-Vl8#J+TsJ&c3?IQm~ z^VrU|A>IC5{$s@qE2;rQY4!w1nM2pfcsAtJ!&yWFFH#YX0qckYbGl zEjF`*4U-I*lK`BP_EbLSw1R3&Y~=1292tA{#s26LZm#U--exN5$9VXPr{hUDe&Hf$ zc@6}aP-Q@EFp{7KTtBb`=MQ#dVd|w!{jk$& z`WSC#O}ROl&wEcjZR)9}Q1)J|wV3 znwny!ituzz(fm$%Ix!`48927nfZTpa%DNkF&1gn$Cp|6f#iu59jJkHHEKm)B8P(Y| zVR`KN0SI5ztaF-aDd7yYh_N4YZqFh*t@yJl=Ka3c4Nf9Z50p&1_n`7T)99q5-Lzt7 z3$wi;j=~^^BYa;PE2?0ad77|Uazy5I|JZR3?M0c}K zMwa54XVB7K?ySAd*>5dh8E{LK`zmU_(!8qW0+BVmcZK8t04ZudjaFyqZXTNLR&)Qp zdG;N_J1RRdiF&og$qI-2*4EOSmd^+fl;YzufmGScfBe762DL0&Q2@wjad}i78zV$H zq(s^+5?t0Tv8JygC8UsF@ZHGu3iHGIHLD86G`gcx_uMrY;>|Az?xUvFs8{8{WuEnY z#MZ{jvzE_TtyDQWfk6(r4Mi44dz_7hFsRwQ<=6FR+ewh6m7QQo$QQMP#A|v&7A?iD z0GTR%z8Q^@NoB&L=DDZKC}eEEtXtQ#IJP0Xwb!RH7-)S7Y%+^?$y_dznM2Ne-Svs0 zTHQ7U7uAkbKfL5=2wQd;yb>}uc^0n6_i9ktw*(qgH+kyP+;!B~Cf)N#YRy?9 z5UZ7l!*8lpwz}%=UxdfpXTwgJUDX1$H)OU$pHF{2ro!#xn+XJf3!G?hDq#Qj5Btw0 zkq3r?GhZ=XPf|2~bqh=K)pv>~X#z;{ozBlc9Xe2iWqid8Di^mhsm55PI(dJ2WPxjC*bSd~3Sa{XDmL;y9E(S-&8D@QjSUz%<7k@4!+y z$5^oBBU}gU6DPI^pV*XAz}omh;CgVImSX(W&5N9yq&7F}_owG5y+z-^6k&V?k&bim z)j5NyPx}Ain`8fNC8=;H&=(A}ak7EdlmlY>dp5 zfHS2BZ$uRyzWwhkp!I}`AW(Rs>fi{-E|~EAu;gm~`r)U_2WC)BO!#VTlS3=mA?vd_ zQi>>d1674hh@IKWEMF}g!<7PrEUM~C-YLeic~_jz9K|{-?>%*txh;1cV;$}LsdQu~ zJZ&%SfGzEn0YhSmBasOoPLh&(K5$JKv%ImrkqJF3$1zW~K6O=k16A<^=7?b-E2@dZ z%)RmD2wDw&UHIH_Qcb%}XYJTy&36XRr>`9&4>x)36b)Q=3B8Y|A};?TPT*OWR^uy^ zvin|YuP&d0npQ;=z5LJPfp{Ma^FstP>HXMD=$Z6Otd)^?IC$`tnl@t>L)M%SQd=;* zmkBS8>aBKnrPlm*KE$$2Ijc(jCM~C}#5$q>nRTqbVn!i->YBgh2B|flzxok~sw>nD z>L8Tn1Ch~qIP_qZB0m5{T22ZaZAz8N7h_BIrD78YQJ-Cl3UdhAk~}jvI8wnA-3~6_ ziWahuUdZI{lWTdRu}&yo=lL2}oQcl%TFf2lD+6$u@ArF|v?~mRrF~9P7HFX>=7id8 z5Qtl{fVkPb5j;lph&bO5eYfiDxi^#o?+*0+>UN`QAa227oC%I|*e=I-SuvUi zJO%SCKN|f+N5)IcGir{LCH7~OKzZg&rZj?n)v6*Jf=xCIh1hzjeX^4Mf=x(Aq%HW|%?k z2cXJ|{KePDJHr9RQvW(-_z-+NWdgA7Dj2Ljx+tLB@6k~Q0`OmFB@MOEjLxYnGS4-- zs`vJiGw3Y#n^(iPbb4QmUWb1kOTg6G%AwTn4}D;pLw8FOAqZUTDsZpOw-+S2clBNa z6`daxR@oHs35Eah;&7WFa~d~&<0;<@?Wp*MM*hUJC{+wc<|@BZS=WLao3 zL5}FdakB;R~p0oZ?7e*7DTHHsZ4TAqx59R#%PiHVCq}4BoWli?gxd z^!`+^M27EJA0OE!j_0ciiY4htEu_^S9>zvuGUIOE#^g(Gc{{afe`>Ncpy^of=+6M) z`qLx9^_G$@L^x{j1e`xhHjm^JeG?ohzrR!il>%Qm17{R8ere#n$RB@3vM1R?w3QOr zPuOhJzbC2nsh{6!oAJJ5$M*?Kjo8OFmAs_oq#@eQsO7#r5oTi=fInz?QqY+i8ZL&=J`&YrotKxcc#EcM9VIOc_bplY>% z{pYQwfr(OPiIzTfm07#rF0pp0^yT!|QdNxu*yj}PP;+~=XVzp%7z}gLW8JDO#V%)M z$se0zaW8ZxK~7|?`1dg)A6XfS0quME#|#pXsSPwTJEYu+PVP4`cgSHQM`C%EvD&Z))+HEXAY%9wfrzrSGLEiaWCr;1gI$QeEFcog z2L~;%92~XA-stQ`4CZ~C;6@v8Z>{U%JEPgWLJZGmb8Bqyt>KCxoP?#~MwMQAVFKPE z-qFn9k)$DuC5Ly@m2etpNE#Mp8Wm6XG&RtOUcX zgLljg@d#nJ8mT?=?35ADdOL}!Un8~ou|?zd+hig+8g9_aG)cB#iulC9N#avO!6Q6m z;r=F6Qd=VHOI;~9w$lUK;7)%=p46*_V%;?IvwHrBB{~uOY3AlmNZ_uth6wXVn|+eY zPc4|oDJRoWr2&DZEl$wp0r}K;ME2tz%F$nmOm}hhBYIv>*O)XNANwrrjI4ZdNj;_4Mga zvm!q`nJ$kR?cQ~;)qZ+l$!?lCiGD zod#mw!(Hx9abqztwb92>bIjFCVTo$ryeH1Jy@_mo|=l)j~!!PJV}WY39Rb78JetBTNPiuR|Ef*3#tpn-cN0%4%%#)k7|H7zRmd{ebp*x%G)1)J2E z9N*4wVbnSAP1*ZodB}nN&+}5V_4%-+H7TtP5YeZ~aq`i5EP*25pF+Z~Unw z1~bX3v1UIu7nj4)QA|VdsfiiT@`*S9#`Hdb1TPhTEup%Bfn<+6KkU6p#^ z@acGPtPM0a);l@m2{qD`wVI5k5>&V^E7eKpA97vf{IMJJ>ZMQl!VT-V~* zj#F-P5}#dDrsT_s9fxdLkB|f{$*c=A+5z9! z(qii;W&-`MBn7m(5@+7Dr?3s9w%XHKIe?<6&-|nk>}NTH)7PoXmL{H^w9!^?Lp)!>}HCarRN&org%p{ zLS~fcXV}e%iTOn5BXZiJY?IePkwU$)t3ks@YDYxOoiNzNDs?J`=7vxrSrK zFSdwQ-e24Y+N5CF2hs6*kwVw-n=o9xUC5FCQnAu0;aHZ5&xak?6QhK~z(jk#_!yPA z%Slg@5XbJ!dx}8GgJVHC{B&rguzZ11S?I--!MqhYj z#F4&_L|ciA6}*kKqBvS2>!UfAA=3%PVH?H(u1lx-5=D>ka1fS};!3p}uTt%FZ$iP- z@O#c3thGE^1n2Zs8z2hN5BW12bE&BeRjVynyGo7fo@lhv*8eYS$`QvZh7y>^tuzDVfM?QFiwa=oIOro7<#!;`W-6b@a`2TpsQyk zEcJI&aPD5)oeV0`LRFNBlXjapjBGJh?tt~euY9V)>cpTs#_%K?tM;E=Q}l_t3?_!w3=VOw5H6ck8A0V8RllNv*bSuuIpP=wO>70oEt2&e>mAWk; zb}mzYXEz}T2c6xRYc`i};VwtkRx&1-YG(({6 z4%g$K#lhczN97xSdEdj|fMZ8n&6EqbXVxqra2S`kiSQe^sSrASmzDwYGKoKQQyoNT zz_2(F08q8S4*teae#1wA411`X+(ev2m*?FgG&`$GM~hV zjH09I7Z(8Hl93^$xTSrkh3Nc*%q7BF1c=lvEti>&8^v({;WNpQ@wG$*VAXwx%Kxq@ zIBN7Ovqx>zRv7dLNtiG1i(6|yxRMmg@S6)f!S<`@9Np*t8+eniXCUCM1TmDp4+L06f@ij z`E7PeJ6z~`jq#>A?c6ES(vW&l&H=_-(pLZM$8>o++~z`=iP5BafJ8+b51~RdIjH22 z`vguvfd0ZEr()yq$_mVyuMc?wfNSLSLTX`K|MH5j>#ZtOtr@`VZ(#Vki}iCU=rTcA z+R+e@qWK%A(Eg26vY?NFN+$ronZW@-hZYK9W)w;O_4S&sv>%Xa^IB9jAp3~1O*frj zrdZ;GPJsoFlT3AVbS$h&?D}lu-Gjr*FBnHkbRcyTDh2R95|xoqU!wm3e#Hj>`F1+9K z#f+U^w=^(CPaOF@Ay!S6Q|R2(d>2YErJ`&0YCB(*Kr5P<@hJK!l0vNhQzn1#E8US1Q<>0hZg}d%Kb6`M8gaX z{&pZ1G-*Ig)fE#pBL8JeR(|MZr=;0_BEXa9twgJO5PvQ1oxp4j08&$pZNKOK9~iAj ACIA2c literal 0 HcmV?d00001 diff --git a/webgl/lessons/uk/atom.xml b/webgl/lessons/uk/atom.xml index 66d226569..d2105e700 100644 --- a/webgl/lessons/uk/atom.xml +++ b/webgl/lessons/uk/atom.xml @@ -2,7 +2,7 @@ Основи WebGL - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,11 +16,11 @@ https://webglfundamentals.org/webgl/lessons/uk/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file diff --git a/webgl/lessons/zh_cn/atom.xml b/webgl/lessons/zh_cn/atom.xml index 1ed6ddb90..9709b1253 100644 --- a/webgl/lessons/zh_cn/atom.xml +++ b/webgl/lessons/zh_cn/atom.xml @@ -2,7 +2,7 @@ WebGL 理论基础 - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z https://github.com/jpmonette/feed WebGLFundamentals Contributors @@ -16,767 +16,767 @@ https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 实现 DrawImage 接口]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2d-drawimage.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 二维矩阵]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2d-matrices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 实现二维矩阵栈]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2d-matrix-stack.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 二维旋转]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2d-rotation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 二维缩放]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2d-scale.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 二维平移]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2d-translation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 光栅化 vs 三维库]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-2d-vs-3d-library.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维相机]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维几何加工]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-geometry-lathe.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维方向光源]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-lighting-directional.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维点光源]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-lighting-point.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维聚光灯]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-lighting-spot.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维正射投影]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-orthographic.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 纹理映射的透视纠正]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-perspective-correct-texturemapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维透视投影]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-perspective.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 三维纹理]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-3d-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 和阿尔法通道]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-and-alpha.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 动画]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-animation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 反面模式]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-anti-patterns.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 属性]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-attributes.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 样板]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-boilerplate.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 跨域图像]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-cors-permission.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 跨平台相关问题]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-cross-platform-issues.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 立方体贴图]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-cube-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 数据纹理]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-data-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 绘制多个物体]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-drawing-multiple-things.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 中的无数据绘图]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-drawing-without-data.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 环境贴图 (反射)]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-environment-maps.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 雾]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-fog.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 帧缓冲]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-framebuffers.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 基础概念]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-fundamentals.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 工作原理]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-how-it-works.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 进一步处理图像]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-image-processing-continued.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 图像处理]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-image-processing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 顶点索引]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-indexed-vertices.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL性能优化 - 实例化绘制]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-instanced-drawing.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 码少趣多]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-less-code-more-fun.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 加载带 Mtl 的 Obj]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-load-obj-w-mtl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 加载 .obj 文件]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-load-obj.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 矩阵 vs 数学中的矩阵]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-matrix-vs-math.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 抓取]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-picking.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 平面的和透视的投影映射]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-planar-projection-mapping.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 点、线和三角]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-points-lines-triangles.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL Ramp Textures]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-ramp-textures.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL readPixels]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-readpixels.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 参考]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-references.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 渲染到纹理]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-render-to-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 重置画布尺寸]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-resizing-the-canvas.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL - 场景图]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-scene-graph.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 设置和安装]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-setup-and-installation.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 着色器和GLSL]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-shaders-and-glsl.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 阴影]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-shadows.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 蒙皮]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-skinning.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 天空盒]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-skybox.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 最小的程序]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-smallest-programs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 精灵]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-sprites.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 文字 - 二维Canvas]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-text-canvas2d.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 文字 - 使用字形纹理]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-text-glyphs.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 文字 - HTML]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-text-html.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 文字 - 使用纹理]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-text-texture.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 纹理单元]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-texture-units.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 小技巧]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-tips.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z <![CDATA[WebGL 可视化相机]]> https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-visualizing-the-camera.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z WebGLFundamentals Contributors https://webglfundamentals.org/contributors.html - 2024-04-02T16:51:51.000Z + 2024-08-11T05:09:49.000Z \ No newline at end of file