From 598c6a3602c8152156da43952cafa25e0565f96d Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Mon, 20 Jul 2026 21:35:17 -0400 Subject: [PATCH] feat: add vse-gamma-cross example witnessing the blend-curve closed form MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AI-generated sequencer code assumes GAMMA_CROSS is the naive linear mix; it blends in a gamma-0.5 space and the mid dips 0.115 below the sRGB lerp. Per-frame sample renders pin the closed form ((1-t)*sqrt(A)+t*sqrt(B))^2 with t=(frame-start)/duration — never 1 inside the effect — on both versions. Documents the AgX-default sampling trap that poisons pixel witnesses and the orphan-delete of effects whose inputs are removed first. Signed-off-by: fOuttaMyPaint --- .cursor-plugin/plugin.json | 1 + .github/workflows/blender-smoke.yml | 10 + README.md | 22 +- ROADMAP.md | 2 +- docs/gallery/assets/vse-gamma-cross-hero.webp | Bin 0 -> 10114 bytes .../vse-gamma-cross-contact-sheet.webp | Bin 0 -> 36970 bytes docs/gallery/index.html | 11 + docs/gallery/vse-gamma-cross/index.html | 662 ++++++++++++++++++ examples/gallery.json | 12 + examples/vse-gamma-cross/README.md | 54 ++ examples/vse-gamma-cross/preview.webp | Bin 0 -> 9332 bytes examples/vse-gamma-cross/vse_gamma_cross.py | 416 +++++++++++ 12 files changed, 1186 insertions(+), 4 deletions(-) create mode 100644 docs/gallery/assets/vse-gamma-cross-hero.webp create mode 100644 docs/gallery/contact-sheets/vse-gamma-cross-contact-sheet.webp create mode 100644 docs/gallery/vse-gamma-cross/index.html create mode 100644 examples/vse-gamma-cross/README.md create mode 100644 examples/vse-gamma-cross/preview.webp create mode 100644 examples/vse-gamma-cross/vse_gamma_cross.py diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index 24e00ba..18ba287 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -86,6 +86,7 @@ "examples/uv-layer-grid", "examples/vertex-weight-limit", "examples/vse-cut-list", + "examples/vse-gamma-cross", "examples/wave-displace" ] } diff --git a/.github/workflows/blender-smoke.yml b/.github/workflows/blender-smoke.yml index 8ab1309..fc8a357 100644 --- a/.github/workflows/blender-smoke.yml +++ b/.github/workflows/blender-smoke.yml @@ -427,3 +427,13 @@ jobs: # re-imported rig. Exits non-zero on failure. xvfb-run -a "$BLENDER" --background \ --python examples/gltf-skin-roundtrip/gltf_skin_roundtrip.py -- + + - name: Shipped example - VSE gamma cross (blend-curve closed form) + run: | + set -euo pipefail + # Check only: renders tiny frames across a GAMMA_CROSS and asserts + # every sample against the gamma-0.5 closed form ((1-t)*sqrt(A) + + # t*sqrt(B))^2 with t = (frame-start)/duration, plus the material + # lerp deviation at mid. Exits non-zero on failure. + xvfb-run -a "$BLENDER" --background \ + --python examples/vse-gamma-cross/vse_gamma_cross.py -- diff --git a/README.md b/README.md index 54ef199..e8f805b 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@

- 12 skills  •  6 rules  •  2 templates  •  17 snippets  •  28 examples + 12 skills  •  6 rules  •  2 templates  •  17 snippets  •  29 examples

@@ -36,7 +36,7 @@ ## Overview -This repository ships **12 skills, 6 rules, 2 templates, 17 snippets, and 28 runnable examples** for Blender Python development targeting Blender 5.1 (current stable) with Blender 4.5 LTS fallback support. +This repository ships **12 skills, 6 rules, 2 templates, 17 snippets, and 29 runnable examples** for Blender Python development targeting Blender 5.1 (current stable) with Blender 4.5 LTS fallback support. The content is consumed by AI coding agents (Cursor, Claude Code, any MCP-capable client) when working on Blender add-ons, geometry nodes scripts, batch pipelines, or animation tooling. There is no build step. Edit the markdown and Python files directly. @@ -186,7 +186,7 @@ byte images stay straight 8-bit. Also witnesses `EXR color_mode='RGB'` dropping

-Mesh, curves & text — 8 examples +Mesh, curves & text — 9 examples @@ -306,6 +306,22 @@ ending in `length=` vs `frame_end=`, and `left_handle`/`right_handle`/`duration` the deprecated `frame_final_*`. Asserts closed-form spans, GC wiring and clamping, the consumed-input compositing contract, and a save/reload round-trip. + + + + +
+VSE gamma cross: a mixing bench in a dark studio - eight emissive panels fading crimson to teal across the cross, with the brighter naive-lerp midpoint framed in hazard orange on the console below + + +### [vse-gamma-cross](examples/vse-gamma-cross/) + +The GAMMA_CROSS fade is not the naive linear mix: it blends in a gamma-0.5 +space, `((1-t)·√A + t·√B)²` with `t = (frame − start) / duration` — never 1 +inside the effect. Per-frame sample renders assert the closed form (mid dips +0.115 below the sRGB lerp), and the AgX-default sampling trap is documented +(`view_transform = 'Standard'` is mandatory for any pixel witness). +
diff --git a/ROADMAP.md b/ROADMAP.md index 6e0a032..3aa72ba 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -110,7 +110,7 @@ Not committed; target list for the next content version. (v0.3.0 shipped the smo - UV-handle lifetime snippet: re-fetch attribute/UV layers by name after any CustomData-reallocating call (`calc_tangents`, `VertexGroup.add`, modifier edits) — held handles dangle silently on 4.5, survive by luck on 5.1 (found authoring `triangulate-tangents`) - glTF skinned-mesh export witness: follow-up to `gltf-export-roundtrip` + `vertex-weight-limit` — **SHIPPED** as `examples/gltf-skin-roundtrip/` — `skins[0].joints` names every bone, JOINTS_0/WEIGHTS_0 with unit sums (3e-8), weights bit-exact, rest matrices to 2.4e-07, deformation to 4.8e-07; exporter welds duplicate loops (sorted-multiset comparisons mispair — compare by rest-key); unparented skinned meshes make the exporter bind an armature by name - Degenerate-bevel weld hazard (snippet or rule): bevel width ≥ half a box dimension creates zero-area faces whose loops weld on glTF export (found authoring `gltf-export-roundtrip`, where the count check caught a 36-vertex weld) -- GAMMA_CROSS blend-curve witness: the cross blend is not the naive linear mix (mid-cross measured (0.341, 0.349, 0.463) from crimson (0.85, 0.10, 0.22) and teal (0.06, 0.75, 0.80)) — derive and assert the gamma-space closed form per frame; follow-up to `vse-cut-list` +- ~~GAMMA_CROSS blend-curve witness~~ **SHIPPED** as `examples/vse-gamma-cross/` — the cross blends in a gamma-0.5 space: `((1-t)·√A + t·√B)²` with `t = (frame − start)/duration`, never 1 inside the effect; mid-cross dips 0.115 below the sRGB lerp from crimson/teal (closed form (0.341, 0.349, 0.463) confirmed per frame); AgX-default sampling poisons the fit (0.146 red-channel error, `view_transform='Standard'` mandatory); deleting a consumed input orphans-and-deletes the effect — follow-up to `vse-cut-list` - Falsy `bpy_prop_collection` trap snippet: an empty collection is falsy, so `editor.strips or editor.sequences` silently falls through to the legacy accessor on an empty timeline — always branch on `hasattr`; likely generalizes across the API (found authoring `vse-cut-list`) ## Future (uncommitted) diff --git a/docs/gallery/assets/vse-gamma-cross-hero.webp b/docs/gallery/assets/vse-gamma-cross-hero.webp new file mode 100644 index 0000000000000000000000000000000000000000..2e950bf5db875c10d111d461345b1b40009a88c7 GIT binary patch literal 10114 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 kD*5T~ysiLT5*K#xc%wQ=zwow08!7K*Z=?k literal 0 HcmV?d00001 diff --git a/docs/gallery/contact-sheets/vse-gamma-cross-contact-sheet.webp b/docs/gallery/contact-sheets/vse-gamma-cross-contact-sheet.webp new file mode 100644 index 0000000000000000000000000000000000000000..f3003290aa0d7ed85ebef9dcede7136655e4b6eb GIT binary patch literal 36970 zcmV(~K+nHYNk&FukN^NzMM6+kP&gn~kN^Nsz5<;ADgX*-0X|VCkVd1TDW;;(X-O~& z31@Eqw73hk6><&CbA0n4XUo;~em>V@S4uve_12mVm-MmnTm6Tq4E~c-{1=D}Z}lJC z|C{~W_R;A7E&ikU&+?xAf7tN*nfze$xA{{)_%k|Bv~v-~XV0 z*5BDLTtD1Dcz@u(<$8|&to^(9x&OWUt?wKC->CoiPy1j0{k%P0|9L%$KXH9K|9OA; z{K9_d{_gvq|GNMG+0oL^+kf-^oxIBZ&xrnFzN!2N`Oo_t&!SWGAJ6~K{NeVe_J_&8 zlz&Tm1^z$$=lvJ=U)zuIKC(O@xBoJqc>fvy2lK=HZ^&Qh`2%WG{oD6v+P@NyQ1%4< zC+P|QkNTfb|D^w~|JnZ2;79q__YeAi;{CLJnf~Q}|MzYEv;Y1rc=7X&^ZIsFw)Hk( z$O7Omxf4s6AdIrWa)wG0}aVzo~6S-tvI` zRM|GY!ZDnZ+~d>xBNo24V0cbdO!?cGEBoE9$Pd*zd`omTbc-leTECcGzf;>0GVoGu z{Fv4$oF(fH&pg1WztZ-Xo{J0~>ODo|zzqADpy20AD-3h4{>bn@9(f{-vX9DfHBc&9 zx$=;@8u}I-Fi#78{!f4cg|Z;`#%=D`pv03HtL|*VUU$I{+o zya<;qN%+h$kSX`d@AkUkZsN3QlH>UN#u`8ZvYl@;N-@~pTcAt|Nvn%p!~EkS5yQ)P zQ7RP=U%{n<=Jb~n?%9I!TThQHC^T=?NFj)@F&Q&9U=iQd74$xKN>SgrQ(#YPy8kX; z5wHWog-k+Fu~(P5Z`rj!Mrw=`M(ka|M)h=!F^lYrtqfWNccfPaF(kbjnc%RFxHWXJ zUxRGIKf-7I1v2ScA?_zsuOjxl6e2t-fgS%;8pvEsXrfl33kk^s4tNo5#YmH~)KldH zG6|+=leA#D+B7-%v_mqY|4Z6#9oXP&xLA|YGTjZ99@UN-<|&22+kJNO_f!9cb{~xg1T4dpl98B+ zVO7fGeHp*yk=8WevWE{0!UC2r8V;kG_r~BKm|edI8(hC2 zUIPy)m0Jrwo8{3*?n^j=qbuJ}PK!K=m&yqPqw1p~OV@-(k^L( zFv^*h(0;KdWJYni9=;^%Ob2r$#ookLL)_Fm{(Oct%MZqbf)-+hS|1FJM^qRdj>j<# zYU`4I?Hg>i7m3pGGcm}f6%Sv1oi%drxW1X;*f%^ z(qsn7v&g$>KaUuB458_Le}&N`wgB*$-(4_{{sFpil&BahInb^&V05*vGkFJfXz;nl zXM{NG!u%M8aBj1S`c{=M{N!eE$-(+dueXfX|Nl?@m@$`!Sf@WQ2Y>a$0f@xN$CAlU zTLQP)?Z;cMe}6=v1mgbp=D4!)NBnloGy|Pg7Y=e%(5pk?mbHbwCH)j!UF=D7KuaVg zj6EV_cPhe!3_uVBUQuuI?4HxPdy$!YVpaj(Tv1g;4cJqZ+wE4a>4}NuLI`Ll0TwXq z{Rd1UJ$pQRHv}Y!RrI!q7KQblWuegaW8jFLHAbj2G$g#U2%3DP0%^bAOF<2ulgN)6 z?3Q=j8-~~n(Z=^8?i{MtWbZ`w0<$2c1ZINcMnFLmwkK1H-Lu5^8wM&p4bBg|R;dp7 z%XF~2b81dhgI(VF@?TKz{%5Dd{|aB(Wtei&Qg{B?n+KJ%I`=Ed4nvd}m!?dVNk}8@ zZ&jQ0jnhhuZ1T}6NOZ>*8Z3pO@XK1l-jf_(S>x#Ba>7gmOj=%^8Af|1^Y{$eOiGJK zu@C!=b{x6M&=wL(v*S?hG8ky!L7`CAh28OSk-_V_4h_cACZ4hQit34ee)zoj#uBOB3W zUbPs2>7T-XvhJ_w95c!?ehPCTlV6o|3B$#|iIO5Skh`xFSgdVs=fd3s9Rl%IWe(Q_ zN;Y!X&&1SFRcdt6c9IS4>Gn;dp#-wvH)AiEX1g=w!ypgB#(gr`O3C0h(Z9IbRH@gs z^wJnWPjg~+(Eaq2jFn!4_o#ebGLR=2*KIT~RIYF|(Z0n|f2IWB`%yMjO*XlnwnpI_ zqFFu1OsUz4fhkc0!&nTI#jg3WY|m}Xp1TjmgMtu7$PUhmaD##W$~3JWepxWzmVM$W zWV4$;CA(4}uHlqG=q|3KM^|(vjTmALlRNEl(UYt}sDR0KaHEs-pVKgUeOF|^bYio< z?36e5$$_ln`QWOBsngF_(P};kF6O7AJre&vK%>dyl?U`y+y$Mj&0EjH;y=Wpw2kAH z1qPHEw}jXE=GW}8-?&)@D`4Wn9yz8mRN`hxkr|n0lrz-_h)~FGR*ydBf-B-#cuZo) z*BDUpOtbNl-JUJv=}J*9W7VbE#;L=t;OBLf?^~+uW>_Ms&&d9dZ>^#)P3VIcOb3t~ z+~YxT;~nUvrph*m*VZ{^^WvK&;VhNgk3n1?p9NAgj#)%;OElZD*yC~sYX(l&B*3&$ z6UP%ixUzO7qKAJql6lc8>{EtS`-+U7I znxigIe}uaNWXh#zD`j8h(OVG~zVdPA-hGW?zE;tf6r>QlR?Eb36p{i?-bwNmcoeP+ zv$&W6IT}8lEjq<_j=Et9coREY_OmIm=y9?&hpY6|K%|-Lxs_8nejcXk*veB($&i_? zp^(BRHVPQb7}|6xF`XZzKhH!v%t1d*?|%dwl;cxz?)JJzy&DO)e5a448jykKkk=T( z@qEgEkM`2mAvyoSsBmzvB+}Xnq%;li__NKB?nd9df&Rgqa*_*hTu~?aET}icxNzr< zpJ-YnRnTFa8!pSetom4?keLrd@wk*T3S<28#Q|$iZT!^^GFiX#BRv&iOwSE%RBal| z{i*^cd+>r09>lIef227=MM-ryT)a3~yt?ou5yH?E&pQeMnHoN;g7e_9PfIw~x_h7h zSd0b^+)l3F=bT=vo4Q?@BE%weLWm}1T%pT`D5iHQ~S2-OC; z#|1Gp79W=vD&7#WJ%B1aN`ymc_bA~gbd91`&!uvBKj)ntYnHNP6<4K8OsG_B^H0et zU9$O2^)ZK5oR+(CF4Yl9z#GE%vhB9#VA}+d@dxn51heqWxG6u984*&}Wa*zC=+T5 zM86`j*C{ALMti*(UW}HR@4GaV5d6aMfgKrV4L&{5tjS&~u!}rx#lJg?Mro>b^s}?HwiUXU~qnGh6+8!uWV*7jFuR$jM06 zkQGtyrb^j9y_Bk8*MD9fIFiGJzn>S9HWP9-63R9cd*_4|hNwgF9^{v3jxQsbh8c(1 ztvy()p?DqFdmIZwqU7vMUh`k#pYHMbbCLH1kHF*}__R#{fAX*>y8^5wuT#8{Y}|;; zN0Uk2*tzN4>~-afH4lm;s8f>2PycTT1Npqf-4UN(*@(+NK4%6M?NG9dp-aH!bKSYE zn9ut#h;^l}21ymlmxU<&@0IGjL>3qJSc_2osixlV_zY_{C_6W|C^C4N*~B2E7ilcV z$%WevE7F#F*mA8f-b8km0aEWdsFtZMeLXW&AMD(x+(QL?gZt81wzgRmZA$8ZK=I&3%9{S7Wnopnocuwcpk* z{7p9OOvjqVI;O1ZAOYfKQGSzIw~7hsBdE+FhxLw*ReO&eVKc7beW7VbRX@_&v&t| zF~><9wohZE`r~Mu3ArKAwJN?eDnr5^`V`MWW;^Pu zYvph`^g6Ths|`UvSY4&&)eN8gYT-Cd#jpZVnMHvl@*6OETD7iuPUY}fJ<+Vie=Dpr zAQl;Gw>bVjnS!n)K6WQ*lFJfwa4prIu+{Q-I|EiDPx|) zd!UZ(C~MQX^ZE_UD+m=1f_qiLUvi1->-nF{1bv2x(x#9SIZBLJ%CHrk%%8DH!VA?C za&_+4JYbKrH*D{Ufuv>Zzom0dVMF&+&XKkZ1ZNP7`od)Ax~>?^(uZzZkAzBf=DJ)U zo(^cDaTeSMgL%_=&c-bLVKPIyU=q`M^YeSnT49p#La@vVM6Ug5iMqfnR(7CE`-E_x zWrt6e=>ly^l7k^cF{P~w>aFEJa8?#kVWTGq-x$xXQ}L;h)X0_Wp%1UZVA%8x;4!@U z+!GaF|Nr;{zgr{PSs6vbO(0fIEn$M<-A2OZZ8wI}%!wXBdJ=t-N((M`B*~UDAO4(` z;;IpgpG@Zk>2q~-UdXis0NO<@%;X4K5?`SqR^9i)!Ic334(;81bUWa}q@BZ!WSU72 zI%9&5i974;oqM#s*0vmN4LUPC*{doA#aJt+*dg=0jg{Oq!K^<5t`8WI2-$_(`GwB; zh1=7u31F=a@^T--Sw_NMwq@H_bEr1L?m(nvug^EMY@fGwjwDE zHRnwVoM?{-GXs-;+i$B2ER$_1%N2n$pMszOlmGUlLtg8SB2MW=qg1a{T!Z`2zNMLK zb=}~ctMw)ZCdF$k=yq7t!I|W6Nj@N5iT(!@_(kx4MDUQPv*~!=x+70t7m_u^@s@CU ztUa*f{n{Kn%T4SR@Ju_&oLI_B7@j0!oy@5h^FKP>rg?;#kZ=?*Qd7tY>&ri#k-PL9 z&)xFG*Jw+(J)ev05fp2p%pO~)*g8Tsi;;N2?k|i$g~#fzJMR{))MAJ|mZe+$Cz-sr z?Ds9!rBr1rt@Zs!Hx2m>A9(r>Jgyq0M}N0OCU|xdU*tYq`CkhyUsLNI_A<(0 ztx_*u!iGaLs(nj*-$dzhmKhVYmWCNa;IeWSe`(wu4koM!-pU+1M(kSsekaGu8tM(J zY}lYNSPoBo=?861kDx;gP&YhBc%H*>d!|*63L8T|*uB+H_(*mluKdyX-DsfFCGUr^ zX^mKlbfztqLoW{vmNT3t6L1f{j>p8mOeso;#%Wb`KsoOBs5?jw2(vNBlr7xFqNT!KT+9gJP4Z*IKKQJ5Q%F3 z7~9noi!bC0m)vCAN=?0m6@1J#6_+vJk6q|4fm$H9S168Myd!mylXg~50kO{ii+KsA z;V^;Te!Wd!XTD#-p^5b7wNLe!$Ls<|DDW?w#!fWgn~jE121U-Tk)vdG8|a9)9%^xJ z1=r*FUAQDij*+BjalG6fRtv$yQ2XVLb;<*jUFDz(B<)2&1{U6RC+Zu}bHV91{{X?3 zaBqnBBY*$@@3$@Yl)yD_-d2w_%vtNyO6oy62;us)-7hnQaGQ~^n_(~qUvNnRzwcf; zz;Qqn*q`G!UL`UKwo{O0Qmh&=oSMYaF*JK$7m_v;aY1VEaEP|Y@?{UCgwWvq^0J{5 z-hRGF!ZPyUUhG_`08owj?QR04K{3lGUHv7hYKI+Tl6b_V-4`aunM7WJ zD)4#52UQf~>xm|1&(esgbzRxvZ-w|nTe%Z>ftE+0 z*b4!|x`EyCKIddNPr9E@=y(6vZ;_vD_1kzdEjUmsGr#(9RJGqCB>P^Gx=4Uaj=DXQ z!i6~pz!I}#KbFyC2%Ff#*)hxmr{@Sq;rJ6Wg3oe#_-3a+ICC_uu!#83OOfmz< zohl|jZEZ;ROvwTIJ{9kGy@&-Gxe2(UvR3b;i=q?$|G&(YnIeeF#0Y-7++)(B`w=Q* z57d!k-{}G%j>e6r!lpsQ3B>GqloqvNbAr!ic#eOv)&lCM8W^}5sh*ODtYq;OyI1N2q_8OBa38h*uKrBJ6_T#ns_j7d(Ja$ibZlBoly7tZYuOP+lX2_w z$$lDlymVPye1kfJv!$7=sa{;i$_5r;|7;kY%6Rz985x)m_6)K68SwU(r|H-7$0+fK zvvMeB3=?sFA*BheODe1cA`11fasVBS00000008*MPNN(aZ?;X(K>f5Y1qP58j2==^ z@S#r0MD6AcjGe}ZPfeX{0_8Qb=#UO0PRNrkQ>-8p;F6d$7Zl5qn+MO5-kn?8ZkI3i z+*>-`74GrI&b1@EizVAy5PGa#LodXVcD8tXBXAgAd0X>`>yyavyn)qCGQ%+`Sa;_7 z7VU7EauXa#CEdQy*+3r|&)5|n0Jph|f8gd|C@xS8ZyfC%pC)eCqH!4q+9^#`-#BvU zjD=9!w*Q<-F>IiG@eoie5=~gIL$OO{MEz4vn3y4BET;GEorI}acr)hG?8M|X3eQ9! zD8$+n0NUy_Axw%q?*f6tK)7!Q;%3i|Vc0x?Ycg(){(T5?4MPQf3kIfcT<4i83lP$6 z*lZyI<@1v~lRw~;Hl?k%@Oe*uHFj$Y?5tuh-uRWoSF19jQZ`=FhdwOuL)JGR#Hk^Q zGF4o0Va@q;UE#5M4i+tOF4`PSa7_11Ik;$jg@JW2#L*FbsI10>W?g03IlYh80w9Zz zz5;QhRA6`@WH8#Ltk4`ufBWzsXRZYp+VqHvW~gZi9>kaowaNheDT4gR<5pr9cas^! z-+Acj3{A}m ze`*d`D~b_e+? z%L*nz-S|yKyEQBi8Fo)!(-U0J3AxWqeUG?^U}6sNvyY+906 zLVNKZxhpWLXr@7x-(Gmf=4q)9K@l9f29d}v31G4w%Xy&qaYka*1i~xj7>)Gy|J*=& z@`#(sFY@7tTVPbB_&g^G6B+_zIgHKrl+ZD9m)5W5?N-dw+}}~vxx_aS#7Q`;?bCdn zd|&iA*5z&0G|;YKSJj<{l18jKxBPZZsfi|gF1GLv#lE-`1123Re6U(W8q3?Ax(2FN z+VLBCC9#7rtSL)2__57Y@+ccUXP7P^C!!JVb=PI!#VLW7h!jEVgX9@!Wppx2XyntP zQVzEuWfRbva_(EK))tPyJStiYPaUpML6#{oL;yD_eTtbKfLQ#M&4@QT>X$ zL=oo8+%5!w`!bq8G>7d@o(G|8!6pd>ak+WKjZ4ap{_*UaxAwfki5;DFY>P*&9poq< z2JJ;xi|0ZbKJJUXQ76^@BdX#61lQ_Ca`23TghG`VNIEbC5p}z1qm)~MV5W2GVFw{og`%`)jtyQrvzo1 z|4|D>G3ShNUbbxPKs-BHxL+$B#pwHFN`e2Lox%L>ft03eUU!Anwj3Xd>_cOMg$_Z! z$%`2Z`d^pf4+e^KbK!Y6#fL3yjt!w_3YuPZ%PaI=`}C$=7j zU`1JHp}$b%5_)}s5Ev5hlVbmWp*SNE+X-by$GOqjX9@$```d-G3nH2KJ+F)7a6TqX4J6$43M`OTi7iwmUDI;hs|u)$-FjWY{^h2|Qo|H3A9O59Rv zj_i?h#Vhh7(-UI-)ZreUAHqIKYY-|}kL&6)sF%6-^HS#bbDRPrImqOYO}Utulj(=w zh-R8gR8k}rX9^ZAqiWn)d7DlfZK63GXtszQhU#O|NZ~MzjJn zpFi;H7!t3NLd4>n*B0W8N2nt&Dz~+s%T5Gql_}xj#VLb3$`FR%jQLYzQo)mA1{iko znG-^6q09GHD|;EyxuqVTyn)lza?nlVb$-C^@OpbTi1*LJQJI zAXHDfkyje;)By>El%D@x>*!H|A&kFn_l6iLx1jm26G&0yUXG{ZN7Q7J&-I$PlOlCV zA4{av_&vJ&Q-WYA{AZKt(gum^6bFlvw}NLJrM=-UI2Sy1c_8i(zH8Lk*E32n z^fIYhCRzk$T1@&Q7RrBx2+G`aalZTw3L;T(R9xItNt6@UdUfB+BAs!|ZT zn9ksezgG$`LH`1|A0-___WuhVeH0RuFw}L+z|W0Ia50{L>X9gIp`Fz-12dP?VMcH0 zeMhRP-m;r=Uh{$zSmz*Io76>IFN2pwyRkdMkoE6%<7a&VvicFen2a`$gZq1${%P8~ z>*1w!K3w@pXA+Bg=kL{5De*KY7_a0*-WRSkn*Vy^tntJ zAz(Amcsze$F<)T6n9ElaL4!Q2Lk=81u|!-i4?m0|)vWa_KQSdcz0}1G`hx?b+g{rm zs8n8Cz&%ht#_dGO0A-D$d44vee^mN2@`%*dR`Hy#6PrUtO~AMC!qP`}kb6X9z@y{e&4oz$u-dB_39ohlS*S&(LI8Rx01|c}*pw8!sgL@U3LV zL5Jn+X8iZE56=MB0tOz$&dX&r>k@7fmvfvX+|*ye^lu zHKcXI|HQR&QxCQlr+rxS6LfPpI9JvJCuX+L%e)sk-$y`PCAE@lJLG+XcOh%B_i{(I zZf!A|8DzuOcJdC)FQ!m%Yip7NC z@&7dMW4%;k)$DEMsZ>;QaXW`2$RX6|_m4^Jw?MQC9rQ10_n)F~3qU|#7- zLQVVe!ZMUEz`yVklhv_*-@=xTf5i${Pq6t_0XhN6t*a&*2R5&8m(Ty2eu&?}rsNmUC=bv@3kHdX8@uMft+* zhjGMXe8vr=6W&!k5hJ~9e`v>-d7+^CpYbIj8!= zn4bA$!-f_ELn3L3-k!aKm_&L3k4wMp?ZkVrC3)NYluHK+joo^+6B$LA;a6#?a0avt zJfs(8*YO286j-bWGjasw>(vYTg-Rn4e6aJ6&&rv7)Fy4+I@URZ{2N0&(w#mBztQMw zt?yAyyj5*QQZhBT%@wu_^kG&awx3QA&;M;WzWlP0X6S(aO_LctSZ?snsfw^*EH+IU z4xbCXgsn0824igwby6x&%pUf1b;z0?evO5Yg6dQOX`HtwMhiJiOj%WZ3Qv#W3VmBJ(}|qhP-b2asy6 z%r16;;f6^5d*$_Pr|BGokN^XS5G%96xbY#!=0I!DoY(q*P-NO&)$JO%SP($Dl}sP3 z5xcPB9}(*{ZPk7<=H{P>%aXcDcDF6ZxTp2d64aIn8gA08&F?@kn61|?9}ieDpA$V; zOIF|Ul8|j)EiJVjo6)r&^3E5B&+)R~Ox%xYnFZZ@z9i=B4 z%Prcl>(?@gibayrWCWfq(xdM%)TR!1klp3Pvbn5*`He*LsQ_%*yK_nR5(VuOE2kdc zE*!yWA)8Ps7ftlx&iaDGmJBK4NKEY8-gdDp6O0^%`u=MPmiIKB;aQe1!ffKF=moja zQuUMa$=S7HVAyw7SnjO&IiznNje@YbT znkPSfCzL9%?-3DM?Jx@|Fo60Vz9CZ4*((h*Q|4G<&-XzWI*W}GA$jwHD~DWvYA8)bmkT493a$ z8b>dKa(z(gsa>P}W<9yN8?oKRy5n;m3PUy7=)d+(B09;234}mE|5{x;Z2|dkHQ7kL zf9r1#3uJ*b!R_(De0Ub~|J;fy4?Ru|fD<$aHqH;*Aaj<;c^7|UFl|XzcZGA70GR*c z$l<1QsWv1+2EG`QwzYhzx;L@a{@SIl+5!kx1`j9F zNISibnn;GBFt3>V*eppVZzdjnPsK%lBg2d3;3kq8tHUhG&?_s+F0#@0vx4j z*eQIZy@wOZ)!Jz#9Bp|4F3sGC-ggO3&!rkB$267xJ= zvjy5Z%xdivv9km||4P4`Q?FG7L5>Hs%fv=;-xYP(67abu48xtRDkr ztng=WJhWFyFZ0sNYH>fAJ~0vnd-J^}T_5z=uX;yo1>EL_rQL&BSwyCRDIx{YutBe? zk51vmWl0c*tuDk3R)QEC@P(yZ4>Iz_p)-h9legVkWkkW6#iq|5oIZf`e?4o1)octw-ljP9IQm6>fRQ=-*m9cszH9cr+2*f0vTk2kBNxKE})?} zV!z!JTmOscvD9+*hFeD^Z#(+`d>`rs=n$85860Qh{y~91fWN}&dYb?Gx88rCSLw{X z`}5$f&7*vB(NFflsm8@4EAN<3=m&Dtx23m1|8;3+u2^`JDS2G?W3cP5RU#sBHd0v= z%B>J=Z)&fpXpqYyt5hid5p@2{&k3Sg%6K22tVw)oavsjR1^pquj|_pShb<3J@pb5> z)r$!XvUJP3V4-xudN`23HU@7zl8K#eEJX=|XPCFz-VxpBN%ry@%hWqN95*hK&DA2s}_HPVGCCTV|sbo zOGx71-?FP;%maAU{x>-pUmi9{tA{z9Ow@kZ}P2#nz za31$O6UV_%yD=LJre!lgU5OYT2py;!T37L}7$-oL-E-?sOxr1|Qei`Hs236gZ~y_A zv|-TXlnLgSYIc>QNXRFz_3*z_>h4bNzJc%4&{D5T&@iDvc<=KPDcEoi#>+b`>!z7J zV;RtT17I$NpHtv80&nd7O$pz^(Jae>&*5?mM{Uh{1zGV%6uY?g^^6YpTd<8(I_wQ1 zduo$JF1G2TytJ3a0A!eW{b%M;zcCfO`~+x|3RJii%QXiZ7mTIRXBe349=4^h{^pRU zTJsJb)RIsktO(t1<=!kdteKeO0bP&4C_Vkn8Er$?)6c2Yy0gT-IwS-T{y41m93RS; z&R04mdx&%V+%P@$lt+v2O5OD~fo%$F$Q-(nvv&TSd-tDPVh*IiYATH9!z`Aw*zTp$ zcyB-N&KR2&^#;1SNxk^#BP;G8c;gZ)ats)>xI?8dKVQ#7`+7u{Mdxz)1ihi}$efh^ z&e|PCq(jL(A~n*$kE;Of_Y+gv=Yu3KWJWL0-d3%Q9ILMl-{<+33Sr>xA2tnPwXJVO zD;4O$<>k!mb3mFaf18zmaRdPZi7a3x5I`@(0w>~ob4_8ViX2GGO54@JI(=M-W%i^v{r1Ly_FNj_QQkeHc#7<~~ zp{eNe3K(A@A8?V3e`+~x`1gkLzq|+^?I?q|l&dx4akf&A#h!(fQmR{GCP-Er+(Ab< z7XWYYC3*;dmSm_;v1n##Pt~R$$y!8NLPj5a6>Y+PiG2i`Cy}PD-YfP-=P*f1t2mY* zfQ_kWMl7^A&bDT#@XqZGnQ^HU;$-1bZnBo=ucn$zuxm}^VY-)JdfF1bsIV!N78hD_ zsc7B7<5tCJnCFE+UN~X0iRi^Nm$hfTUkovp_ym@96B6p3)V+S}ZeA(jtyy9cA$thj zD}h|A08G*zxK{1koI^@lD#iEK?PA$ef}y$sr3$?TpB8`b1xxenohOPy=-_?UPAS$- z<908M&BvOK55u4K;tzfoq~ol+25352R3of5!T#j)ve?N! zBIJ&Pztd}DVU*FCFI!0XvpPn;0tn`|aoI?0Vs@Lkn+i7YdX^OSD`BzH(L0>6isU-= zqx?|MN!T~Rp_4!MzzU}k!Vc-Q7#d^`su0H)Rjk$ApoLsi9+IMsi5|Or)x`Nfk-O5A zMiKh75E?(g+dYTR-!^nEW9;K`EJJ2dCivSv&PI9uIFK zYAM$K4V;3&Oj4u5kfG+dl#c7}Pi54rJ>e#L;Uh1VKlF;XyxwUEOPP19 z-1EgxJCn+RfD|TAJ~Y)i9s4u{6RVwA#QKXolGwpwAj_&PGiud_neZ9sT49EnV}x(e zRcDk@oijF zepa`jsm?{aQMYr=3vH*Fpo^XLL(5;dID6}`aF`8x|02K|uuvHI{4aI0&QYC0R*MJ# zoIsW-weY(*BE*#u8~Q0SPlyyxIih5Byvjdy8JvQ5D3ujM`o3Ucx#3HgW_aQ#NjiY3 zs^(LWoUIyEsBaj>td+OMwnNyL=hQ4*cw|lcgG3h8UqD1rTv*j5pK<1#}hE^P@ zmEJ9JpwA7&b;ZiKgQ+GG(3|*q;1sx451WS9TIcvG+zKYx=V@JYP7z7UKpbxDrW9YhRI8z>(6?kpoxAgH{`( z6BMscT(BsFCcP)#zZDPwS6&-{n2?|6JgIGsl4!h9YC3^;m@s^=Y4X8D%dhyK{ctJ5 z`EDt8Md|+HS>;{D-2P=PO8mfgvg<~rnK;g8g5hS3oyr{9Y^nm7PV8aSd>J%c1;~yR znNCG~cn<6Iea>v(Xc9!V?ztJ(b-X<^6TP;?kcF)vXZeQK)e|hl;V{PEOvqxnfgz?F z+XLR^lUV`@fKc28RHQW#mb!m6RRB7jV34+quKYMqpH@mi=z!px`QI@?tC{Ch<=V8d z2!ooaSD=@IN#Rk|I!wEGO#8*pwlc|>JVhZd1Qb$8M9=NS zKJIS_ta+<_6p#eomS!CKc6K+ObaA4Z8q+v83VyGbY=sXBTT&BP?$At+)qOWj=yuKm zm%yh7E5De^DI|bJJX?$p@p)49+UV_l1c{Hk3Ifcwx-Z(Od-vJNhh>1yp@N7TCUgML zm<39!yXNu7>K|>XE}Z(DtnD1(hU}61r-!4IY#oF9c$!r2WY}MqRvl3-y^GLMEV>zE z0_&EuMYlu1s8s1)Ly~{zAuW=Xp#nFdKJm3ANSu>XUBfN!mYc5z2&i{!!MTYq|1848}r zQI!9OTQ#By#Q(68p)vpOC% zYXjgC5~-O({v@Ed;_aH7dym*yWBK+|t~GoSmB|`IDp3fEdMn1Zwg>nX9sS(Jf9hBS zah(+?`q5E7Aq2k3AD_SfO;R)9G!&ZyM2PK0=- zrHzTfLB;RPJ^+s@x6h9_sKXv3BPU!xPJtRS4<)Hxl}GWl&YfyFEej3jCZ-gK5jDg- zU1~s?v3zCxgHWJKh9@S(#Uug`led#q*U2kIefpI@kDPl+6bgL#arOh6U+(PVwWh`e zV|-XtMP$l5AUd5f{2b`Ya+_a_C4rG(v!@BC|0JunJ$3}9{9&a|3KkX90nCn;UO^Z4 zk5bhILL0L3yn&0fbC`vo1Fa!?k_RH^CN<*0SkO6HP6!>2woHVtQ?RN$n}`#vCzL`P*e$F$A4wou1r-`&w2)J4(SnLKu+}88 z%^aYx9Y~Lu%dF>oaTGbvcPpss4MhuiXWap6!O_?^RS^?7gr`7Th* zI77oHs1W`t*7 z8jyfU%?=;s#Ld=vfuFY~o$1!%EJbo=)@QA4P^Ytk zO{1M)M!MI|EkjQ-kJ^Xn!2g^gFzQyf_#|>_O6ZL0n}irr$|So$P9`l`&4uP) z?H*;8utZ(*yzy$?{DRQ%bT;SA&OvV-^YZ0S;yl_4<#QVZ(d>4?qDT(VHfvb&ZQ=F| zYBXbPfyx{*7l1Duom{^-ga;$Uikh4arwXlL3?OuAcbD)myg9ON-JrZufVzT;fxUc% zi1MTQ(*==LUk+7WCrJKw4hTNchZ(%;Lj}|e4Uo*`zW_zqP>5JG5NxdZm1ZRZcY8B5 z=9|6H7~K2*`{g4NP8a`A_YPX%4%f*Q{|5@aa)@_CFU}77M~Suo!-%f_D^3Wp;pTJI zDbDJg%@@CapwzVm+CeZc3}Sr8;`Ww!U;X%LMqge7G##;#mNcV~FIS^|b$6w6xQM=D z2El=G2l)eWK4``50v7P3CG}94cF8Y=lfd;XtL-U~w7QH>XZ)oW=I%8Qzuzm&f6!X# z-qry@Bbe}?iAZn`X$ZiwTxY9lIKB487>nl;cNOyCBK&YCxsxYIA~@cZ35rkGUPzrD zUEw&XfSF?cR@(TvP#Qr66fzv8tcRtFEuvNNBCXJi}DkIAhd8E+w-FmC+^0jH5k ztqanQxoGlH$`m+n+qqv%2lvKv3_FT#w1+*5Y!XPGD&ktw;+_OaFesn`)io!SenmfR zkJz)=_W%G9wH8%7lm8iXd0?h}93Qc^SAX;nMELjf*^nQ`!w}+~I<{u~M&AuoIX}e= zQ|C5-_aiMEA~No$5|KdG%NZSqlf#1=Kv)nj*$;BMaCB_f>{3p zW!at0DUhUpKk8lH7UlJX<5iCJIA{3_Lyewe{~vjlwpf~FPXd&U|NH&qD~gnW$eswZ zOj|;Ga4{5Gose~KM>I&JVfwr}<-xoe=BjFiI1+$LM(?c)5Pa2i;b_wcaOq94{OMsCZ8IMJy_2 z);hO24|B!B3gxs8r*BAz4LOD3^H*p$9laG&3#TrON11G#<#GyvwPy2jWeJ@;B2x=DUHRC9h4M&q_%B%S`Jg!$FAkeLZ zGYXbqiY=(Q1qm;Gr&<%kJ?gFB=9mRE-5x1i=?Zysj(Kt8EGuL4c{*%}AfnmQk%{#Y z2fubIW7VCe)uyzx={jn|tRITduA$ole?A!9xll(c8S zw)q?Ba;ecS!#xV=&?D`@>5Dtrb0MfPjC0=aO;l-nP;ccRNH>>$6OvRzdS~Rmj*Af* zQ}nu(rhh&H(c5PuBN(7)ty>BGiiz{>%0?3QY_ky@5Y=yCfpQ6(4YXkC5W0k8 zK9V^|bx+j*FF?@0*PoOaiGPEtPYj#R?n4=V$jC34`Z|1$_AeE=NcRK4cSFDOLuE`( z8QN1Y8Jx>&twcyYYxS&`6iSX)sRGaA#G5E<(LL4XF3NMbjUDl(jehz`Rv(`8Cs=9p zLczxvFCBELs(lDeK8vT&xa7}D3h#|-NrgD|k3jj@#b6GrKM8pNK~axmsq76pN1E3H zH}K;@wLc+0`kzgoL@|-;1BPt>*#r{;CZ&?JAVcj|IOw;BKdy-P0zHsTZ7SO@KB_3G ztd)<`A=7l|mZd*tJrM+P@>#(LKI5c-wk11vf`#KbG*q#|)1)47(Mm!}IcDnz^)p>A zBeXu0qBjWV&LB^#Dn#72`b9)IA=uL3ajSQibTmy})TaJ;4OB2|bw^yRtG38wIw;B3 zUf38Oc|k5w6a^o5p!9U=^9G*a)cAQDA0meZ1&4^8>#63L3L$M0YvACGd-IiMe89O6 zB)!B|jIAK0hD~XI5d|RdR-ILP*(a#s(C;HlyuGvE);vU&x-HtTfY@=fcSv1OY!Zr2{wq%l_NPCncXkzQfiRf`aqWx4&SQJMcoK(F%y3{j>o+?-B6wh!uPG z#9kwUCVkWL3M~&LBXA|z+#womg|(i37W84oO*S(4Yt;>EH{v{_YNfJg{ofqdYmje7 z`&RcOutT%>fi%2JtYO7ZT)H1rpu_xkigKUL=8x+UlnQGWy?2STOWMJdZdRdBAyiAJ zyr^-#vH@M7pcx^V{}g%6#DM~Zl~bf!-kBU;@{#7zID8GdD7uk#vu=Z%?1Mvlz`amE zCaRr@;Xk-V_!6$1%>xG7&D2Av^CfY0xAmh2k~ZIn`cYejFF%Hl8hBsaEaMUIBon-u z#j6IO3f7o<6r2%u`PkL$&q4-wWYf+I@VN$d}kxSu)0`lK_zijT1bv zIcxz!PJEzAZvNy_mn>QCyg?fU?1vX<21{t0U_y5wcn-s)hJc9I*(^bnFfy&%+ywQq z=Rgj@#0nBGp&SR4_O-_lJWqJ^;$_c^Wjm_QJ+_Wt!%gXT1^Q`sXK;?N zj$WBPtRb@!{GpGCL(adrZ7YFl4W_)doZK@neU-ZA#gBGCC$Em3-LLTRDoJt zv}T8`8abbLgsLpsKE&-kGb-L~s7`mNa{gRLwii;pP)Rn$Z@_v|g9Q=%CK=aq@qGC{ zJEZB`#dJy?x2kKx9k#MOI)L8HL2Wmkk}^E!-#w}-mLy_x7cTr}X;T6!= zoR%P}-7d_Y;0=TVvGM--9g43CgcsCVO0mK}xoh(Ufi@5U6bp#3GPcv%jLlU={#BNs zMVd6J>~4@rvsapxippa-9se9k#mT)0C+fR&%EB-xpgt6R|KAM@-7)xF$~^3X*S=CJ z&K8)kr<+_4Q^x*L+e>7{mrKY2pUzsJYTu?Np%n}L3_qHBq!}#O)d?aNg*Dg1bPZi% z9#6s8k-YT`?+Tss^N-G@7>V;AH4#E+n$T@(C|_VCz0>m>lCU|$ze{~m3pN4FvDd4G zxjlwaqp03;mr= zy*1Z7pFY2THy=%y&sVUbWt|pAYF(oQ{p{pE_%wVpJCSxcokfAJ4l6K#fU{^{@g#!Z zxSwfbR7+`yW>ge?flXw$(*;N&Ey7SS0btLxj>AZ4BR^W_bomf}JPI^TMA+GC^Yo2z z0Rp&5IvkpLav&6LQDf^@JMV zv@oq*&4qYh4gB5hF6T}?IQcxaTF90n8p3baF=3q&1H+nWF$6z~oAcUNUGyY)!EIfC z7qrf7@6xK_dCnu|KownJ!`|hOGB9q+YMj+dRmf4>6(JmA!R`7+*+ZsBF>b#DF#WTB zfV2YphdeC1VPWcAQH4Dn3{J3YIg_ zEj~bwUB(_;A^3_QoV(kPB;p@9Xe-YyBictAhV7Mtvd^PNsR0iQLhB}vzdZ+pq^L$q z`V?@E27a6fqWC-98g8qQNeb~gIh!*IM;IBCokSki80cys=3-f4{{N$kja%_Z$l;E) zeIvA_w*Cj{!n~FTwt0tLj#n{6Dy(lN+ zqAdgDZM*ADIt)XgHN8gO!>iK`*21tj{W^t_?%{8tJ@EEF_Z$NF=dRz-FAJWRuHTXL z*t}IBt#=b|E#7r`@^OWd8t7)yF?{adBK-M)Kvu-CV~LQfdccj|_!%(6ySC{y;#ptsNBOdof1&ddep zk(V6~V#pD7Ag)gnzOsc#&pu|KZvOWr=!=(6Lq0Z$tFkS)S%MGnW>C%$pU98;zeF&~ zfX3GAmj1d{EY~h4C7GhOb+#dv$IJT`iyi0Y?#BAPLG^~GDI_|ShRmiOd~?9Lo#hDA zm*ISmO0d8@AJwCSclxv&|K0|WB&YdwEPnxbUB>p{kX4rA zxRkB_0y9QBXeOAajdBy*)Pq2#yo1$sI-lUUyQYU?p#Num<2@)Av}_ zV`5M*G=Z}m&t^s4PnY7nA&xV_P7_-JT8bRNe6jmy?WCp5?jz+HS?aM=#^2p3TRf}# zYIg$vQI6P9LVx#KSFw2o{8b!D1B?x!WviIj&98Y|TDpUuY`!>m9=N@dFd`dGJx>UOpR|mswB?PqfdJ2driElZ3Fx@9Uol%5Am&IL1q?u^% zE`uMflUMYBSANSa%zHfx9(EsyTq;%GJUQs?qhKo08nisva!Z`#Ot`pHzhe-Uk~_nS z3i-;Nw%6PC$ImhBB7F{9tA`lct)U&b8Ex@uOQ{$<4SFS+%unz{Z@*^Lq8FTpR&L^R z;{v_i_qXPB&o6Q)QI#~^UM`ZN9dDmN%PbZ;*6eM}73{+aZvZuclDfvJr!ilq+)2&j zL8J^2pE}U7e#I6AMl}zIqyY*SMr8#MjRwp2@o0$*p#}2eoeYcvh>!bI=|E;4oD_8( zOcRV%BbK%DEQf4|_JNDPm&uV2+3a4*DTKu{u z;99Q82TH_RL)r<{QBe2yYe`|iZh@m!%<{tc)7wqoiol^u9Ugs|x&8K2H63+a%X;IB z@K;LV6Qd$9^0C$l(?xE!(Iwl+%bU_(%kGE?(jlAjp4vPz<4PuQ0E1>A4-wGA_f#QI z)BkojE|N2$FnL!f!FnL|KQo5iNS z!??d!Y^<;+fEugM$A?Ruz}e{L^zAxEZ1lI$9Ov9m$Hm|nD4(~isDOM@{p7?Y`cx&S zi9BViv9Pw1fS8qiqGcmOzY$G&pB>dVGvV!W1J2}!j=d@>S@XCk$j(g7=@|!utBQgU zuoSYbUMZK{Q1?C@E%tPkM--?I@JP;yyKcteb6umft9Dnbo7WL>48i#sFjO;j<3z~S z`)%%YtBTS!C1m|&2h(1-y>?3x_PbLaBB?RfFi;V=Uh9VmLK86ZsiFN`dSn;i88D`x zj#S|A!OWqTq0jK)-TSV{cJ3D-jy6UZv=?us3dRMVX2qVWRtqu|#vt+*x!{V&ppz&z3p%H>b}1nQuDt5$Xis%TPKCJ%YC?2nr2Nr-zZ6i9sO!oWx=><-N2>h z#T;eG^<=1qFz~~Ifc6C$$R%*0meNhTAr#w5^8`;pits3=u?y$FF@lWH@(rP^#6zdDi-#V?9b>JD6O z!*v}U+?7tu=WmG5`fgsXK5tmCWKPFGno5Zgl*lSLP%2>p!lLZ-!=9t05Fku!%!vZ6 z!xg+CxN{s3yBz-`_cvv7+0`e{r(FZpnkXNpTWnpa<#!&>zwgrZA`6J{llpgf#Rhpk z#UA!Pd@Eb5ixs)8HV2hlNRCPxqD%E8Yk$h!fNJTn$=gA!@JQIu8Q7xL?8dn(u&n(tM2z`^YQ8 z*TEsq6F*{*yDCvRQ{67a84`nD!;Pz4pE`}6Vazf`WxqO}D@j}c6qG)zzBBBjL0@ha z6(Edy*TLvRYoQHl57Nvi|>TlKln;7i7ICy*OOiynx z=UupP;BIttj75mAkJN=JkLib&GMaJ8!)314M<3tmw&R7IRf} z-L$C?Gi3VJ8t7o5klzES6ItuB2lQ6MLCjeX*s!3+jP`bS zi9LRh#nnr4ak^=K_bnvZeQDGUY`n(_E1Ur4k0*4AcIWqUal(+Pb(Pd#^ax9CH(q^} ziKQ;NJtHQ0a&ja6$JkDj6dWpMxl^}|QvB7Ey#auq6myQ+Lh>~kusV78j-qZr!>)ag z*RGq;9{sKh=k?|S#>2Hd#0&x|Oo7W_2+;tqCe>RNL6ysYbgikqot~kBP15W)l z2^_@sb0jCqSCGH)Tpc#OJWgqzNR3t6IJN0SFilnk%WVvXiv{1I2%cK3WK9<47Jei1IA%vB zy(_I3B5~17*N&J^ z0{ZbOu3(SDs+;#g`(6kmPLISwLKhTZV{vcp^vVv(vs<>+r(r;e>j`Q2q{Y`XV829# z)BAq!mRWA0a07JUX(%uH{gF9zJ&1C)yzg{#!cqnwPX;7_bWF)Ppu?JO!X*F229mxi z)jI?Q%)aO^mhQ32XWAGvCp4DFn7J1c-H=8z>8vc&Za9H!B0EPQbjnt(8jr>(1&d8S z;C~52&TZB0QLajZ9hCvMm!QO9b}Cdm>fFCR0K7*cg|-KI!+iI^LRzCbPR7qW&?o|s z(VW1a?{isv&-)hmRf{5XYgJs|ILk z%8-vwrx_UAZWDfgv(Pe5$^`kUCK|3M|C3@s;-G4U9dS?v{k zrEz|uq+UZ&Jbtf?xI*?OKW7!_Is>V`*ZI()Y7+mR*5={XJUXurS$%% z=`~V=p1pRvtOC-?r$LjjXqr)!rEHVaRxrQ5C++jO_aDw-9GL53qowPgAxoxuKDX-N!}Z;jCR``!oMHzh6)Eq{E$E0f6T8!0l~E z8(juUatfIap~7};N)igL{-b12stnlo8T`}sJ^L*n%IrH!?D_AXO^TQHaN<@HcF{GZ zTTh8#WF?UZrgoNpXSnpj)HF0{q#;nprkhMmGHExivS2jyfH0K@nHKjhyFk|)0__2J z0ikx&P%?|Jgo%>H%vAG;WJIno=G40MOd6!Gs-SuWi z?eSJ@@nmXxV5;VS+kM!71d09x+rsYkB}{*nJv^mroSnM z1|g@RqX4?{EbNN1L_6IURG05RH15v^T@K1VBif2tI^QDe!?(Mp>m>Kb2atknDGfr6 z5Ng)fih#&LaBC*~rL|09TE@S>3tRwes{)Tzl-$Ir8&5uUjvxIOmSJq%Z;6B|W8k;+ z8rvGzZ2bWnisK2cFn=1)Y;5X=TZ$LC2A%u%V zd+HPzoC!Gt&F>(ksGJT<3v^TB>p@=9x63MM1A(uj$G=JVg*}en_*E{ep<^T*^W4g? z`7)lhy?c-%A@0HlrV=bmUf_hEWgwLcQ21VSMj#ZcXSgt3-~In7vg!>Ll=5<{nJ&$T zIQ4_+T-Fe7Kr|w&KpvKUhhu9#;mr)uIQ#!VwDBZ&HjWC>PKJ2@reQtCUr=nZH~Mj1 zho9t#_yC2s@nirW@$MO<1=_3V9s*p3s7InG7v+55-%4p?KfJlH0(fWPuSaU$th4d1 zeDTO@#+1>`&L#)DE(fx@Y86%s+vkK4Jr_cm7(g>#aI}ieUw3go8UjDT?l)t*R5{%l z(2AYe>3nd0hWnf$4?E@`iaEP08zE=toMO-hD?&mZZ-d^@waur5qWHHnO1LCH)1E01 zKfPU9Yp#b}Unl@#juXxnr{oo;unU&5tags?K?h>l&{49qJyS;X9ldFD8~#RhUSwyk z&v-O9kG~7crLyMMqw@}hYn@A$%I~dDz+;y&T5JX?e!au2SVd^71<|Mwh0(CzQ9<2h z9{7NfFwR@0&{Q16mpE-7v;sq!llv<;eMx%jscBh!y=Hcw+>^{svp7;3x&)qE<3(jL?^1YsEFnY!- z?p5yS<)o^xhN*ZcpD4E|Zu7={;)#D0B)a-bZtVes8ihKQiab3J;UjmCL(SGC4&>!1 z5^z@^L@t>-oe?3rn2F3yq`C@3#CN`&9Kgr2P%oI&0#XM4OIcE7_#3^if**w0O8|Qn z6x{RX<2|woq)pYT{Gi-5#Ap&#edvcEDq}g9LQb39z;HrblBtd1!M4#{G?{OeE0#w% zS=D`N(8aEUkAiP(TJ)4txmd+8coR~t5nrfH^$H)Gwgro3rVT5r9KGf)N%*vaT{5k0 zKG}6X3tzkeFZNn0$c4sj$@{RK9o~ueWW8)Q`q>P9FGpgq{~R7#a+d>&aN1BEW;2DH zqTZ+qZsFcO+Up`{6XX{{Lv>d<3mQsI4^7LHyXW{$wMd`c*Ebt>79|6_C5fapNX5iQ z1cqIoYlq4Q4MY#|H}e2Nm?BmOV$|1&Kl@**ad?8~wxK2WPpy)Rl&6-Mju?X?qQSR* zKg9_0DO||8p0CAG(8T9*iYnOf1Br7;y!Seh}RB7nsQ#1u6%$;Nb={29HeTxUk zd7uvW(SgC#4)`Y~i>u}~;~3fOH2=9;=JN>Y*qq}{GAYqf0JAWA4R=2m=~?8XoYP(K zru;8En6pi)h&U=rOV>>-3Uof9K)MkaT=Qg;EH9?p2(CmERSdlS0nL%!2q!JGzM{s1 zT0|2NlbS@BU)C;EKU+nSm};hNhc4f#MbVEY`Uuq+Gjj~( zT|#T{m#DC75m8Pm!Y_+>0~fKQ%8t_?g#JzpTV&82p3?ONy|Fd0aO0T#XPbZ8BzegL zkqj~s&Zw!|g>@6^jUJ0#U05BdV^Y*8Y7b$2uG9t#{#PIfbR>e2_`dEgCSSiAQSwX_ zGS;K;0o9l6VWIrk%$DYTWD$PSAD$VQ)ftn{0M2qv`swuq*tU^}T=pw|LN$xo7>t)s z8N4EYMj>irAxV5yKGImKx@4ZJEU9obZ3FKt)|qjSJThZU)m|jn-8WNJ#%DATnEmJS zV=_vIox8X$=~lIJh&Tyf#t8*VykRMxzre!-?=P;3hN87V@*QE%<4hBzyi?H z!oJKl#9{_KmEz@vEY+y&5|HQrxHw_)Dqoq(XpPY)JPY40$**YF5&Crfv%-7xdp5=;XRDk`UsM82&RQk~v?773jB zJ{H`$s@CM1-~42!gLI?>!(|zPg)^iW_%nQ(egtfw91Dqo9($r=+GikF-@~a;`=XeP?JHvSM8fn~WTou>lnz}D?t3Wj zuu`xbm=1i;=kz2<$4Ih=0w()q;z|R8pKr9}%SBmG+YCVxmDVKkxA25<3I=mwb@PHM z8o{i-0bMEAx3V^Ceh%6MWV+B|4R1fl#v_l?I4)00{{nRC^6P^gHfm!Xjyzrq@!Y0O zn_h_FjJDT=*kj19kAAPM;dKLr%_HbmjfpyUIh{}kE`AZ8XW}poK09kDlU42K;4vqn zrLCY55=@=h&x|5zW&rCI-Fgwx0$R6tx2)Zt{%gDyMIwJT(Um=-KN;yHQZkwDJbLi4 z95KCrClTfLFTh+R`cjo(|K+zt*B2lI<2A2-hM27``Kzzbb9$az9>N!4Mx{Zv^ZHE^8wna}$x@N*`Sp zh%qR`-NBu(#fMugI5Xc7vk$B~TVC2LNQ1=B-zfYElte-?DjZ zc+#%E0Zi5+-hDI*^O6LIfpR* z#{>$P#{zIRKI)CAQJhC+MQGU$NRS+yJBtd@wx6vY->$t#Rr`PoQ{zpn)P4%i6B6zs`*2wcUgOw(3o|04S)N84hhhw;MuDXK1_adziZcZAKXZ} z_Vx*tt=L$(i8fWGVdDviu#s`<@u{MU%I&BLsoqa-P>`5)qO~#V{SbhiNc2rtsu6XKI$mL|Th9lGb!35-8f?rcQgb((6 zpk`L*%{Ks2vrW%~nX<(3uRbgC{hjufv41ZE20f#7-`SVf&5qF#?C!JQUMp?^7vJs` z9Z?fs4+=4oeBl_F&XP7YQL4_am0gjl!u7vDDeFJt)#6Nm#s2Ym4Oq7>k=gupBO%pl zNO#hpg28ib^T1o!?Dp%NOCUmk(dE}Cxr*6Iu#@YH&q!W>QHrQw8Kg;Dv+}0$Q3flc z+b=^*l8~|<)wQX2Yc%ji<%OKN^0j27qt?``n7D<^qTSTZaADVLr9YPel4w^M(>Vi% z)=|j+H8szgX@7i3?cah%M+t(Z!6Vgq`z_zy`A)b3fqRsA?%5SY3$z8H_v}kZ;8(^8 z^!GX(V)OEd4laIS>d*R9HTngmw4?XM22%v7p~C96TCN_!Qbv!56O=h?N|NB^n%Fhl zJAw6q48~7*%RcySh5@(7&q$E2fD=G0iqTE|xvm`{@rF&#M}}Ookd&CAY&kTQv0dMp#c{5$-};;kg)M3fk=p*&^^e(kxuN;A%G;InxKhA*@FD z7S;KR`krYWKtm2f+ z2yhyfSV4gm1mKxg4<>*4!Dyq);!auY&{a{h#;941<67+6JE&J^8IQ%zwM+MN8@E3- zf6Y{ViBX5cQ{9pU>R|>^Dak!H?N1gYQeIG4UK80-Q9XJrzARr>%fja5+sB}Q`BA&hByMP94GAg?Sw$h=duK_oS|o{yGQA7O z)9l(^({YhjYJPc5OB-15ivISlhP7_7VInn9r_RZ-;w#CkxN?R(~SeC`TvK~I0f|NZ0ZUJd}m91 z6eHx~GN}vodPHLD>a2_^Rjqu;IO2<1V$3fkC?;CSpmzH_dV(WQXb<~Rp8=dKgi!>r zL8Hw4qW{Xzr1E6Qt2@j_1**%BxVI{roHAYUiPUo^YJ)ElyA1c8Uym04)QfMgQWbvS zS5PaMz}Bb^Pb!ORNXHfoJsS5PU+ktvd{?q6T&z=usq1i@dL}qw>l63}p0#fZnJjfH~7W<!_G|NK6WIHuZ&Ocb)Rk<%sj6B-{CW*&@T>!4JyK#D#}uAp@mi9LW@)n zf|nNDdwzWTb|%qv8O5NDpD>2Nq`~-}^C=1&z54u~=yb-{P@z-$6U~c_h6t4^Tp+tRMxSrMq4g?`TNY)LqomKP6*O0CpYQzVuK~f7`B#K1Z24hwo6;qeyF?!dNE}VZ+jqPE&D^CP&p71Rrl9tWe_WjS73a%koFw1MkqTAKeDb!AeXFnC zZN->cRRt?ay7Kltf_iI*fk3Bw&yEw}ebCewIy07L!mVzons2hMG2p`!eE*LZ;H(p6 zZvC6HudzeDRQP>SZMBJ=6o44mY!Kr{uQ=7Y`G{PU6D53-v}J|Id)w2;0Dxt`3Y9#L zXn5x#w345U6J(v03GZqMOClg7!+U_Hh=ChQ>Q&|xD(e96)y@uzHq5#^bB_HB#QGns zsMJf{pLyZD^B>hUWK1WvYYYzmfqPj~MeGiiM2Wd6cMnblN@V%?sn`}H^*Qji* z=b+wJf!)c|FeU$&fMUm}#73Ur_Hli38g~Kkm2_QYF3?(N2W^ms=KRi!RB5(so>T9Y zh=NPb+MYZxf(3}fWB)`!1@t~zQ0&=k05N%1TEhiXJTtNUEs6=xS=U&u$RM)t3QZ+t zc(If+xB9JZ-Q}L9XCYBlMU!>*Kjcbg zE9`jTx{&Hx6GjUBkLrlKERZ+9F++BpFuQnOooD4qH={SaJ6;F>Gj=8uM4K8q?^{gU z8rx|gHGn_`tfIat?}@u(=?V0gVXL=rnvL$ck4kQ0^maPoKZm3WRLwQN6pf@|Oxt-t zx9*z3cX1c@U$LxQQ*O@9NAHG2;+kE@PFFe+Fy$HEP)hOhvL{WH7Ef2_K|AJ0+vgBm z9-E5S*=?}=+Ip2j2isC4jT<&R=BMN3eYW1`p>g-Eb(Bbw9S z>BoSZettU8jv%S1>P*7ys#U`Zj|IcY&0EcyWCX~aT+5;jC;>cl%%yS%Uy9boaRT%o zkRO*mj8@)Z2H5n?$9hBA@>{V|6cYWF`;j3l1l%~bh8KCK;hH4lbVEFNUwnp*^w*&2oiJ#(vi3Kc&u_yNYIZ<1)LtWcxEg zT1FWtVL-4V5g1{uCln3%a0tObpl88cGR8FIoh=|3g5ak7X3EutP;>tzdtMgWJ=-l2 zpIuQ9r9mIyM#4XH0)iLHjY?}4%Y;hy3GdG!EtuY-r|29TTFUV-HB?ej+t%9H6np{d z0TE>ZZ|7httboI}uIq@)xCSA&HOKvXUO)s*QtN|aR4?@s+Gso;%X$4udYT;OjYJkc ze%jJKWng?#^tt1RTYR;}s|B-mkZz~%S^~8`(ryG@I1+XDB;G$XfKRbPIXuu`QD+Eu zJ|o!tH|P0C5W-3_dF1C@Meq9wi$LY0NllU~Ow%X-AwPBE?OYIwNq%f)W*A8eS)d*8gCBNitaC7N< zvb7}Cbb?1N@*A)rS%d>8j^=enSd<&_x(bFF1%&(y$j_)AM9uLw z&;MV01sdT~Xl&d$HKm^!Uf)R%?4A`N>YALbjREGviS(^c3U4~BZZi;#=mS|!^3zwd zo=@!A`V}SJABZ`QwvSm$@3DJ?IhB_E4|h`l8ExbDdvEgcyks|<);!_)^zt|Y#LMzu zj5m*Nf2B$>@uM9D`tzu+a8wZbkn6@e5&RVBCh)%~@jq(-uq?>~L&RS=E`8JEq$H{9 zUjZ~=eh+?~Oxn#V3&631pi1;vvt1@O(xt*P4|C>o)*C`E3D7d_g3&Lx(s4d(=a_i! zT0#X9XOe<0S3%C{BO&YFx^NpZPdHRVHHiC`@q;p$i!Y7G;xdubCW z?klMwL5%TGL2hIFfs+oJr>Spohwv(mHXtsq=)p0>&Pmac9e4K6!yT0{8-Hzo6UPdJH}H51UelP6%wP5XRv zxME&FmSt66Zku_8|Bx!1&$WN(ahv&%^SzKOCTqV8V=T2tb$>b-62Moy7 zZz>rja*R(F5Z(1zVgh2czrk1vW>Zu>w%^d=YJoI#(7B1fFVIHK`cu&i531>5V4V{< zIC@dAC=8DHgQ;6pa2ZY~DQKm|OvQTph{Oz+S)c~&V`R?T6# zbL04&m-y5sUtVx!`QUX@=oDK)9D)!rXgRHi`X@|vS`AoQ1r?rvApvGse9-_5>wfeE zjsmy%-#ac`I5c*%II8MZlPg$$7Hfrj6v?W*(xnl~d^n#q;sXgd$-23&>9Ki`7gsF} zv%GHdGN2-Tbx?11m5|QD55ZG)z|n5qm*7wHd>uq<4Fb>FL*jDNz)eqw{kNwK;lBh! z8?Du6n8-&5#yWCQ=pFBny}dgS=K>nBcJX=uGZCuNa^nI7OSL*`@uXYK>5I&(--Nfe(VcYXPHR6F2; zI5R??P)6uiI^urjN!4pKcBwAdLJ>{pJ(sL@wb40vfBC&m$Q zLKle5x)8jUahWR$Qruj+BVlB&mf~4*{>!m?kX~4t^k^WfZN$7cEuIk^6VHYnEdUmi z79`447RcFi>C$W|(gQ5|ZbP9m(xNR3vrixCOVaobvr^+r0q2wNve|01N%g?W513D}84*(7fIiF04;Sx3Z{jyuNYoA=ep6p9~^DnhD zr8<}_*yRLU*D&oaVi)_}yM_z%%~{2Z`#%mU?PaX?nQ=fJi94X& zyNZqjywB~({dHOg1zG+aL5!wEbmiuoTuK?pRk$ZlbSPJ&y3XO~)9#cVt6zO!T@Z#} zMIlyd_83CA6?Q*+%%>lWuN-F@>dubg3uo_l4G|xR;}N)`CET0z2zHqEXtOesm*0-o zcCTv&wa);-S3VURrr}reUswa>;B=|z-Sl_SZJWbgn@8!8KSD~@lfhw6iRJDvyzXm2 zP+7v$bvaV0NJc3(r(i2ggaR{yM2$U#LPx0fykGG_38Vp7{{po$xIN8UDcJY1P`zi( zrO`v@fcb?3EW9$vwVdVVpt0X2qk)|umy%xmGm<^vJUai0#8au@#sO;D2-MK`tC9a5 zl9Phyc-;9~bn#!&N-f(+ZX+xD73bnWBjE=hFngG=&Ux$bq7Klo!x9?drbr>cB`}k4 z5clwz_gsZWJDKppWz-ynZBHUVC^wYyt6TaYs?@E(Nfq-BZZ0#d#X?}lL|g&Wi&8fT z#4xP(1`@2rQ?deW0$B}xvK4yxy*8C78y$X@GlZw6e4TP-_OC9Yjs*-0>mzMTvEBO) z8>~=U^3JX$G3AZj?yyTd*m=;E5!@>O!egyiwr)t<$&Uj=i0@ZlOVmjJM`sp zvS80jzm@$xi&%DeT(mEk7jfmc0?M+89Bl@Z8!7YnGpm;Lb7t% zwRcgReC4tN*1~HPz!^`|p}{)&$Oh~)r2|r*XC6|1DAJZ!jf1aUlx;ejPJg`K*Dk8? z5C7X)JFOYi+;1ZLDrtOIT9}6OT@SlT>$#<^i{twX0zv?tL5VCfr}~CXYx#&Q2J8E( zyudqYcw|oc_jo3j`Ka8z0iyvoY1Wa1)P=)GJwX4Tl>kP85gB&v!u1=cw+qK;v=t<_ zlALi(RZzeX3|oLW+-uWNLOm5s6XY|ut%t#dBF+++*!ecvbU96`TXv&DY%EMBMDS{w zO&^g3c2h2|QpMNK12e{FR6BJ?@JO_t=`%KVk14%O0w0S@?L&anJeO++{Wd(?9c{uO zC(X86yU6;BzzVMBm`@dpeMaSYDS?A;ybY9ukbEMJNT*rhVJquw+>CqWMg?)Hp>}Ew zpVBdUsx}T6*#v$-Mq_$(0=LjW5gK%fNAvoAdM)>5Q94UldL##?j5dcSOqoP|1JAzg zg`xX}h|XbqTn54`H1w}mRgvM7Ns(F`jBCsEE(Kgv9>Ew;eL2}mAwrF--1?+$7U7O+ zU=PB%G8I9QdW1W_{*++iZfm%OZ||d%fHudDfcrf7oBOIF=hZJ_dpD&4PUqzU2?T)- ze&hEKe zNy+j?m$f+6o3VtQ%Z;ydC(&*3ssEs&H*bw>JwOfEV6JCjBdrxFy^s8v=Rzz#w{O(9 zKI=#sDG5Ik8qg5pR9BH;Qv|4|9^J9T>Ixttq$-P!&KF(i#k0yu4!0tLbr-t=By1J} z+>^*fi!qg14jq@Wdd)NC$;2*cCB^P~Yn9B8Hdp|U1X{*?*ln{-yXW&O_$67A4NDBm zAzH*zkzcT?N=qO475x6M>lDFrp)R9r` zd_q6RpJy*Y;o>l`(pFy%pn!Tp*x0;2wC5iEg%xYBne;Cd> zYk_1kL_!`Yo6Y#(aFrLa#;*{oJ^)ae(?9;^LK=tqQK~G>$dqoN4D6IJ?N4MdQ?nZrJi3L4dVe~_Qex8 za_?#`6l(F1*#M(e}py+YCK}dOymNIEG+yrAH)NxFA8Ain81g!?< z#$_)b3TqEdXlsMsLjsNKuMy@H zhf%6DTzBr3iYd;ty~qgP-H^Y-z>+Z}ZuVcTFc_FSp^HHBwz(xJhNSmgC zwhwUfpHMKyJjP1ocrF~p_TYuth}s>LC-bAuvc)`xlWmJ5JVC^PT(~fp>xUdkJTXc| zvAlXHZ;ZHkI(Hh0wHjrXi_Pqaqr^Dz7#w1Fy>ve6kNKO)50GCt4o^=q9UOlOGtrZb z{Hk|A3s4HRnDWMPA>o8DfE*?1&K?IM77MJQOb`SggU)t9BLQ;<%Uqnm616HiL_DHlI}r794{SE&f< zoZYAD>rb!7%iH>i%w(qkt#s0?e3TKcGmF;;HIZZI9jOnf8jZnzRj2k{qWfO)SCevf zC{P42xg%l-LOH-)U{NHenXt6ZbK6r~ql($p9ou?&Qs~&Sxf7^IRhV z&S;UjCQyd~TKEbLMG`C>3TI?!121>D%CKt6%$sr;HCCGs;JB(d9-qI*a~uyDS_mMZ zX?Z$_D%C^EmR0N)HygiXzl-hf=PMy`lQkFx)*2bz4K_d0wm1p74_ZD?4hpVsG+M0tLT+EeN4K0k{UKsAG^l+6 z(*6b+lBVYqMcTN@hR=e2)h#f;4O5PvOdVig0Q8|GV|WH?i9l9#^`Eo~`{??#`%PVa zKy&=c)kLDShE;55k-0H_t)cG5KghWyxPD%s{Z@5`7GQ0{97T%hMfIGKYGCZ^GVsi5 z)x0WZF};9nUNI{H3lQ}0o%qJQA02|e#XBzi&>;|-G#80*$6_Ofll+^LA8dm!0H1q4 z@>M9p*rD%wqfzJmh~zu}POTZsuta#fkjvn3SS7O3QCL&J1m7?L#pvu_Ro7rQhlh@L z+du#TDSU97h@7wt<8{AIj>YHyV_Im%cX`a{8S;}tSc*v8@2H^4zr|W*dQ#hw%TYQz z4El{SL&EsylxN2)J<2G-RoziV7O?l1Yy;Ffw17xH)Ep5YwjIRu2@knM2ypQ&``mT3at(Wh z{M~@>wHM^mCQqT3B*uUCyv=`y0+|bdDcyj?q5P?vDq+z2@x%qosW6HQiq3hfRrI&n zsN~yU_!zrbxUD&ehfvvNTGQ4=AgY}y8UkQIAsik&JA{t>PiM%>A&43Pu7~qtVpmBq zj81|+XiI7fP?PFzbx_>PQeSQa9vc;6n#J1>DwJOSg(Z?7zQZ? z@FSvEH}uDr)WLk;pl`;-Oy}P8L?~}1!tF=B>Y*}{=O|sZgwEko#S00VkuecH9!3sg zZu&Z$h%ObqPsj;RIk&R_9znBm6<^YD~tr9wPe8WGS?5EH@-()m{8%50d!w-BNRPB$sr zRZlexHq;rNe2W*xrb^Po{=qp{)MKn3AfGc+MIJ7b31p4x+gh;jA*{}5+f@}ffSB_c zBt?}_L|$|rjzj~;YK2L55tY2+*nf(4SMYj3a?DaU>|&jjA7NC#0kZ4YGpxkRFhFAK zH8FeJ`zPOv?Xn^M(mw zarZlf>rP#KroU2IU&J+BUmoz#1$Yh+vO8E3V==}3o7+$`2oml^ob5qMXPuMf9l_#w z>p!q$xPdY`1;0NYS~yfSlDo5-TiOznuEhS&jf;1Sg5#GimvkJ{)yzTnK9}VX9AbG$ zJDrYos_p<2vkhXE!+93LK4nv^)M(@{b?k5vTs1G1r$+G|AsLa{cAg3POXsJlQ900* zjQ-!|E4IW9?F6oVWXixpi6Xvu8}akCxUUnaD$#nu=m|pU%$%UlKl9ZT_f+KoqKkCY z;%oMak#X+HgQUoK>L8?XPjVpvAv?#Gjl7}#HQ$$ZEf5q~56_DL&oTn=99rB^W%6v>;5Q5?j(K`{Z*V-aA6C|Vy1VC77NS13 zQA}=({%ff}oy0J^B6ln}o1}N?!6McTV^nbIB#3uhCe7~F?^{z)W`Hf)$)j8%3Pm?v z#{BywaEh=wFU&#j3CB1L=}ReL*Nk@=ZHJwljaT6-w3noHNx$^Ie;a9AX6{eXpL?qmnIc=c736 z!D4No%rr3r&>uEXKc{&LZ{P5OWpUn=1VZMIDxo+j+4WvcKMBJ~P-9UG8I!e-Fd5&w zsGi=`9iN@bd9TNsW@GI%Z;W!~85lOQKMJB@#bMF*fxc*253cz&?T00ZuuL%B{k(j7 zwVavDRLd5`L}Gs7-^ukfI>K^#3f^(dK}XF|X58M^vj;sMX;C|^j5X2GKPbv27nZj* ztXA=+hO(HeKkv8OJ6R}O)g18T%6^5!lH5EHUVv&g94bs(=D#jJ_uqI8-Im=#U4a}Y z9Fgxs4ShH{B{((k*{czu8t4jUpQ9Jn1{Jopl@~A;qns><7a0R&we~XJ(_^Ta2UFsP z@#8~GmHD3)sJDQ)-ewcQsO~cwv{Twf6ZqpM2<;!-d2aqQ>!1)EJHtYJPH6POl0+{i zGq?wgbm|!-xx@e($vuz7+64?TGK2F?t6?S@>wU;rx2kHYb5SD2zzjsm zNSFU&-X*di?ogLc+6FJ0jq$fhlz@}XR9?x?9Xl&c+sli48dX-6q6XZY8RL z46YgQmca`o!O(MmxjpV%lhaf`svp$pT9*IF1sJ%S_;yUUBcr)T25)^LH`@qs~U4>|ZOwBS9a$by&dTiCGiwx*cIZrK5cikKwY_k<@EW=PBgb;@xi+KP*Br-4Zzr}k(S)N3`aqIyndf|mYcDQ^4!qoXAURF6cR53!1 z#%88EDgGpGR&)8K)W#-*CFBYEg1SMtyKZMtYAJCoawt>|^#&EmVf8kt$YS4%NyvR0 zNmnxB&Tl+vOIB-Gg*J}^m&>`Yuyc#z?Rh9h>dr^m`apUSM(`(_UGsRY3H;(nFAM;f zaIkTU7VmHsuc;cd4aw|IEGX|xsqux?2#)xJI~SQ8<3NokrA105{6S{>+x!^#zf<_U z;e^FL{?_(}@yCS^_di-ILTeQcWmK|_rSFu_S-nv|3t7i8O;K6@8V~(1{LXsKB;t+S zW^*mia+*OD!SX1hA@>6y%_-e0n5v|sc_UwLfT@8%p0z0@r4*z&fZ0owpk$?g)Z27;Xw$L(sCMYFDFg9w zqD!7)II%b<90uz)46U*PBI1p^aP{iM%K%7$UCE7C_$davaajy>Feh1cqGVkV;Q6e>Npz+|0E}WWr2z$*GsTOD#L&$DCT9Voy?g9RF z_5Dmpd^vW8^R)j1)^DsM=}j}wlr4UNsT&EG#Y8w|`_K%%Se-6-aAlOSG7I+JHT@l{ zB*60Af}mJIiJDY6-D+hNnW7i7t0t7^I=lde)m~!)uYBEgecY0LA;0<&F@UjyP%A1t zBEltJ7?~pO77GwZFc9j}wd@j*`W7l8XHMm7zv^PhYl_v7mle<&uLDHrm^baf6$VXr zzFB&%39;K|v7AL)Ox>k)1`{~Hgd%Qx7^5u>Mh>B%yS-v(PN(B&IwuXyA|`KdOfN+~ zdg=z&0$5*^wI_24s?lNz1%ib@Wr&?x7$sx>KoF5KgB}vzlxi(TA=3u^QyW7|dl6;MmEN}piK&*)x0l)StZt`I9|VQVdZTp21$aKi9=Sgi65Y1kX`UyHS$H-P6oZbd{b?qkb z>Yj4oT^wi1xg4lE6E+J@H5YhZZd~Ha(u{ymz%?h9QH;xhv9(;DGh3TK$lPcELd&HV z+^uD+`J|SowW8RA4S*+x1rfY=fMW(&8DSlD75s0L0CR)@80VN3lMIn!B8qNl$+%T* zuZPYr&X{3sQ+LFtO)Fm0c&A9_2*Ve zw6iaF%%1Li#3LF~zO(2rx~q0jyFT@a%0K{&){<0Ct3qUXah`uwf35v)*fAp?evRt% zB+M1VlpN~xl}y!TE` zy}m|4$X^^x6Bg{D?9W%II|P=A8UP~k2WwU=v_L%+z~ZTQW=dYMo!a#d_F zR(Q?f+81w74Xf;JXy`{He=;m*z{EYD825Z}FIk5a7sG<}DeReTHC=}S(X`#{kxFMA S000007Y)OQ-iXTJasU8$s^De- literal 0 HcmV?d00001 diff --git a/docs/gallery/index.html b/docs/gallery/index.html index 3e36cfb..fde0d5f 100644 --- a/docs/gallery/index.html +++ b/docs/gallery/index.html @@ -513,6 +513,17 @@

gltf-skin-roundtrip

View example +
+ + vse-gamma-cross — The GAMMA_CROSS fade is not the naive linear mix: it blends in a gamma-0.5 space, so the mid-cross dips below the sRGB lerp. + +
+

vse-gamma-cross

+

The GAMMA_CROSS fade is not the naive linear mix: it blends in a gamma-0.5 space, so the mid-cross dips below the sRGB lerp. Tiny per-frame renders are asserted against the closed form per frame.

+

witnesses out = ((1-t)*sqrt(A) + t*sqrt(B))^2 with t = (frame - start) / duration, never 1 inside the effect. The mid lerp deviation is 0.115; AgX-default sampling poisons the fit (Standard is mandatory).

+ View example +
+