From 8c31a5ca493d17693e53f9909a4453b1fa058ab3 Mon Sep 17 00:00:00 2001 From: Richard Huang Date: Mon, 12 Oct 2015 11:58:35 +0100 Subject: [PATCH] JavaScript binding for new mesh APIs Change-Id: Iec5fc37065d17b52aa3878b464df5681b9b6d775 --- node-addon/binding.gyp | 12 + node-addon/image-1.jpg | Bin 0 -> 301699 bytes node-addon/image-2.jpg | Bin 0 -> 163950 bytes node-addon/line-mesh.js | 138 +++++ node-addon/mesh-morph.js | 258 ++++++++ node-addon/point-mesh.js | 149 +++++ node-addon/texture-mesh.js | 150 +++++ plugins/dali-script-v8/docs/content/actor.js | 1 + plugins/dali-script-v8/docs/content/constants.js | 44 ++ plugins/dali-script-v8/file.list | 12 + plugins/dali-script-v8/src/actors/actor-api.cpp | 126 ++++ plugins/dali-script-v8/src/actors/actor-api.h | 4 + .../dali-script-v8/src/actors/actor-wrapper.cpp | 5 + .../src/constants/constants-wrapper.cpp | 46 +- plugins/dali-script-v8/src/dali-wrapper.cpp | 12 + .../dali-script-v8/src/object/handle-wrapper.cpp | 75 +++ plugins/dali-script-v8/src/object/handle-wrapper.h | 6 + .../src/object/property-buffer-api.cpp | 204 +++++++ .../src/object/property-buffer-api.h | 70 +++ .../src/object/property-buffer-wrapper.cpp | 140 +++++ .../src/object/property-buffer-wrapper.h | 95 +++ .../src/object/property-value-wrapper.cpp | 10 + .../dali-script-v8/src/rendering/geometry-api.cpp | 278 +++++++++ .../dali-script-v8/src/rendering/geometry-api.h | 73 +++ .../src/rendering/geometry-wrapper.cpp | 148 +++++ .../src/rendering/geometry-wrapper.h | 107 ++++ .../dali-script-v8/src/rendering/material-api.cpp | 654 +++++++++++++++++++++ .../dali-script-v8/src/rendering/material-api.h | 84 +++ .../src/rendering/material-wrapper.cpp | 159 +++++ .../src/rendering/material-wrapper.h | 107 ++++ .../dali-script-v8/src/rendering/renderer-api.cpp | 209 +++++++ .../dali-script-v8/src/rendering/renderer-api.h | 71 +++ .../src/rendering/renderer-wrapper.cpp | 146 +++++ .../src/rendering/renderer-wrapper.h | 107 ++++ .../dali-script-v8/src/rendering/sampler-api.cpp | 174 ++++++ plugins/dali-script-v8/src/rendering/sampler-api.h | 67 +++ .../src/rendering/sampler-wrapper.cpp | 139 +++++ .../dali-script-v8/src/rendering/sampler-wrapper.h | 103 ++++ .../dali-script-v8/src/rendering/shader-api.cpp | 236 ++++++++ plugins/dali-script-v8/src/rendering/shader-api.h | 58 ++ .../src/rendering/shader-wrapper.cpp | 121 ++++ .../dali-script-v8/src/rendering/shader-wrapper.h | 107 ++++ .../src/shared/base-wrapped-object.h | 6 + .../src/toolkit/builder/builder-api.cpp | 9 +- plugins/dali-script-v8/src/utils/v8-utils.cpp | 52 +- plugins/dali-script-v8/src/utils/v8-utils.h | 9 +- 46 files changed, 4770 insertions(+), 11 deletions(-) create mode 100644 node-addon/image-1.jpg create mode 100644 node-addon/image-2.jpg create mode 100644 node-addon/line-mesh.js create mode 100644 node-addon/mesh-morph.js create mode 100644 node-addon/point-mesh.js create mode 100644 node-addon/texture-mesh.js create mode 100644 plugins/dali-script-v8/src/object/property-buffer-api.cpp create mode 100644 plugins/dali-script-v8/src/object/property-buffer-api.h create mode 100644 plugins/dali-script-v8/src/object/property-buffer-wrapper.cpp create mode 100644 plugins/dali-script-v8/src/object/property-buffer-wrapper.h create mode 100644 plugins/dali-script-v8/src/rendering/geometry-api.cpp create mode 100644 plugins/dali-script-v8/src/rendering/geometry-api.h create mode 100644 plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp create mode 100644 plugins/dali-script-v8/src/rendering/geometry-wrapper.h create mode 100644 plugins/dali-script-v8/src/rendering/material-api.cpp create mode 100644 plugins/dali-script-v8/src/rendering/material-api.h create mode 100644 plugins/dali-script-v8/src/rendering/material-wrapper.cpp create mode 100644 plugins/dali-script-v8/src/rendering/material-wrapper.h create mode 100644 plugins/dali-script-v8/src/rendering/renderer-api.cpp create mode 100644 plugins/dali-script-v8/src/rendering/renderer-api.h create mode 100644 plugins/dali-script-v8/src/rendering/renderer-wrapper.cpp create mode 100644 plugins/dali-script-v8/src/rendering/renderer-wrapper.h create mode 100644 plugins/dali-script-v8/src/rendering/sampler-api.cpp create mode 100644 plugins/dali-script-v8/src/rendering/sampler-api.h create mode 100644 plugins/dali-script-v8/src/rendering/sampler-wrapper.cpp create mode 100644 plugins/dali-script-v8/src/rendering/sampler-wrapper.h create mode 100644 plugins/dali-script-v8/src/rendering/shader-api.cpp create mode 100644 plugins/dali-script-v8/src/rendering/shader-api.h create mode 100644 plugins/dali-script-v8/src/rendering/shader-wrapper.cpp create mode 100644 plugins/dali-script-v8/src/rendering/shader-wrapper.h diff --git a/node-addon/binding.gyp b/node-addon/binding.gyp index d8f07f5..0098678 100644 --- a/node-addon/binding.gyp +++ b/node-addon/binding.gyp @@ -41,12 +41,24 @@ '<(DALI_JS_DIR)/image/resource-image-api.cpp', '<(DALI_JS_DIR)/image/nine-patch-image-api.cpp', '<(DALI_JS_DIR)/object/handle-wrapper.cpp', + '<(DALI_JS_DIR)/object/property-buffer-api.cpp', + '<(DALI_JS_DIR)/object/property-buffer-wrapper.cpp', '<(DALI_JS_DIR)/object/property-value-wrapper.cpp', '<(DALI_JS_DIR)/signals/signal-manager.cpp', '<(DALI_JS_DIR)/render-tasks/render-task-list-api.cpp', '<(DALI_JS_DIR)/render-tasks/render-task-list-wrapper.cpp', '<(DALI_JS_DIR)/render-tasks/render-task-api.cpp', '<(DALI_JS_DIR)/render-tasks/render-task-wrapper.cpp', + '<(DALI_JS_DIR)/rendering/geometry-api.cpp', + '<(DALI_JS_DIR)/rendering/geometry-wrapper.cpp', + '<(DALI_JS_DIR)/rendering/material-api.cpp', + '<(DALI_JS_DIR)/rendering/material-wrapper.cpp', + '<(DALI_JS_DIR)/rendering/renderer-api.cpp', + '<(DALI_JS_DIR)/rendering/renderer-wrapper.cpp', + '<(DALI_JS_DIR)/rendering/sampler-api.cpp', + '<(DALI_JS_DIR)/rendering/sampler-wrapper.cpp', + '<(DALI_JS_DIR)/rendering/shader-api.cpp', + '<(DALI_JS_DIR)/rendering/shader-wrapper.cpp', '<(DALI_JS_DIR)/toolkit/builder/builder-api.cpp', '<(DALI_JS_DIR)/toolkit/builder/builder-wrapper.cpp', '<(DALI_JS_DIR)/toolkit/focus-manager/keyboard-focus-manager-api.cpp', diff --git a/node-addon/image-1.jpg b/node-addon/image-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..155ab30bca6d9eefffb6bb137aed80fd41a440b1 GIT binary patch literal 301699 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 z zkH;2A!XLDRcieUURot9%W3k(6EmpYMVl-8`?0e3?Awaz8N3-CRgMvHy^zc+zE#%EV zt5of%jq)^j6Pftphvi?ohZl(W{X3@{i7u4w1TH`{XRdz?USGw3+v|e(iYRs+G@I*b zPc2N8p&QOhM<=lgxWgYJ6~AF^EV&9w|ToVK@OGdH^wm{{RlE zTKj{EK4luOQ}OGKlmLJxK14t;LVmaejN`aD$?cxq4b4_u?9O=cLR9OF)>*>G`;TGi z_4@jH4z-S@3bf^hna1tjB#grZ7-$2;k^QlNFfx5J(lK%u$nE=rc%~hg(=-DMZzu7J zSZ(K;U;q-O6XF7K`hkq&1FHj%-kmIsX>nX4<~O}CrM}u?Jo6qTskJF3KAwl`=rRY> zs~wUyMsDbFmbqixnSH|;$y2^Ws3|R<*XR$XJ#Yqk#$c)yU$=%l!tKgX06R4B#>u50 zR)^d^xjp{?L4lvITA@|z_+t-f8k~<%Ki3;b&8^XupAS#BC(!Hbf>L`09?Ap}+aIr6Hz0#dX!Qymm^j<8)xtD}b7&(d z3OVc!FhL+^C)Wq**4W*S1xxkB>I6Rz0z66raC;nN<0&{DfIp@>*f=hoKKvl}HHhGM zJHPT6-mN|@pA>*Xa0-TUKnE$$rgPh;0qz;?$PXN8>JmY4Ot3xJBdOFlND0DJPEXzC z{0Q%#;nJ+^{Y3U-UCs|7$O+Fr@6B+!Z73-(Az@xB1ZVnH>)2;F0G_p%%0A!64q#v} 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 literal 0 HcmV?d00001 diff --git a/node-addon/image-2.jpg b/node-addon/image-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e855ecfdb0bf097f822b91f391117ba89a0dc0d4 GIT binary patch literal 163950 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%0Aj5+5PF;`(1*LTG)^Z zT&PyGccicaUoxuI>{pwG$i-f;8x!$>bY#;7{d0X4N~ ziO3cttbU**k+;K2$vksEprMw>%zID5lGtrf&gI18^Q$WCzO7(n@Ik-{DhZILd=B%c zu-xM?z3j&IqPF8y-#@ok`_5Sh%;KP?!vs4qRUw*wzlX=CU3OUcOk!Q5%dIgPhhW~f zYJJ-KJMiO?m+FZ)fN^0R03)R88JWoJ7is&cX*`d#@g|G$O}E`>y-k@RSPPI?Fd36* z$MDipNoCxXwHG_Tr&<;6-pf;PM<|arTVi&dSacl88zIq~YFq6! zMLs>d73=smpT zU!Uh&Yxe&Dk!Sw^qy=k4t$}+RZIK%YJ#xwqi7~L(JJY6wN$Jen7hQY#4-;HZUWs=z zL^vtA>>TU#>HHx3QONd(+s+rbJC7Q~?p^g4oKot7HFa_prlPD*nrf`fm^%Fz{{XL^ z(R^-*y=y5*%a%JW_=P+Vffeuv?w7bzH>*k0u^RD2#9x;h=sym>O0c0qm57fGw%65| zv6x_3&k!rg*n)KIudn2-V75T`N6)VR01a*B8%=7}RQu+o-2rU1TM>t;GfG&rba9|3exVH zFf30WkB#e{RcAX_<}@pl$*oKWtb$||*~Ug$M3yQ-?eLzOlVbf$q1H=6Z()5!Hx4wq z-lP1EdgACw1OqOBF_2Cqf<{WaNb9PEjK8lOjc_#5tf7X<=DqJxu2&@3#1?JPx&S~n zD|G@-Q4zU~^c)zFFZ+$#M+<3taHsYtUxg)IOJoLn1#Pq90U)3ADn86S492f9ml!z& zlerHA!^ggbPlXi)H3zWdy)uAC%eewKj}t!)4I+fyW4(c_y&-*8zBHok=E_MV06-GN zz}%UhnnNWfXDA1da6IcZrYXVX6E#%s0)=#v&F|0U*$aL zo~w6JE+=O$e9G0SuvAxIRagGtDnylSqBSuTCA~>Y75-ojt5GgnjYznhB;pcW23mZh zX;uy8^CGb(%H!jDskH~=4sH(LjNwFIxe5F`G79{*}`RkELH$o!SPM5&j}?@x0IW+8Pf|%fI_i3E z1Op5@movyOYl{yJD~rs%i#PU#bYu9@_xj$`%HeSN+_x38R0WpY3RiJ_Y_0@0Rj>Rt z({#xs>8dxL%U-$8r-=?+N+G!=Yqvjbe&q3c=Ld~ya?zjDsLI(n&ySBmuT1FOS*1W; z*RMM27!zX4>A3wbzq+<>w0Dtu237}X65xg;en)+GaOWe&E=5&K7)x87O6s@N6SqJ} z24J7hO{{^}a`2$iT)r)Qq`}u9K~fAxEC?Wi41=v$9yY&iPt;T!*;KIRc>T4>{{ZGc z`+W94xz_hjfBm%L@VgJc9;UyY!deA=x7@CZU56nlgr}QiZD?35e8B7Ff8QV2Y;S(x zKT_z!(Cg3-BMSh)@*>wKz>4}G_Mi8^Guk0KPhF9+IvWr-HQC}f<9pj}w6(r9!GC{y zE8IT9?pFJIy7r!5Veh@Q-8ntKolX2+Wp-9dyHvq(6RULIy@H)jr_U7lj&HSfA#4aIUfwl_y8h&kaQj2C`%HEY z(ZpWIDNlCdaZ;}7WxRrx-Z{O>xa9Li?zsfKuu(YdMyWGB$(f(iVd!8W@A z{bU=RINq-MKem30s!P@&o%cz&>?{fZLD5#)Tb8v~UED{iwR%leh=#QpGlD**FJniT z#E1}jYn~Az$kIRng}(0!>Jk)qRhs43OY=OnsJ|v5Nz22B!MJ(VaO&Y zOe`+(l}lN>D$L^gh`Vp491q9mDNZ%$wpm*nDhC%^0RI3f8{^c2jA=lxhbNx}isCtcLd2_|fsyLi>j?&a>gvRIRTikCn-7_A@L>sbvRX zKRvY!hZfj4R%HohASf2K9=njoj?`E`PXhR^$~o{=NshP2i)}?G`!gA(iT#8aHW|?qw4ax_HjEm&!zz#iEXMjgFox0808W)NJ9Y}0alg`+vyN9b<6Z4Xsf#z2odSx%hmr*N z1M}NRY?<yH;{ZD!~CT7bA!wJ^<^a$LV3x z?kM?DsGKmp=|=Chaw=e?*zPN~#R#YzeIbJir-uDpgIT8-jL*X zHMJ_^rT+k}N?^{60m+Z5it0!vSQ(EUqf>_&)cT=#o^=mFJL<>wZ`^JtZRByd+?sg= ztL0^iLj^+8&Xn2$;=mk%fMcfm9DOOiuw;*%w*&It{Kxs#UTze53c?X~0N%F??azGd z-sATJf2P@Ycj9t*xLw=16uPZE@Rf?wjNE+jx74*tf(igPo|+CE?~N$Mg<~0Wv)!zA z=y(luzs9%@vyYRD4(8EA4SVX5`@?5x9m)7zyMJxf^5)T1ZD6;Gq+haf|%V7GA{8QI!>%0 z$dDjGw$%VEG@)t8usHN{e@q1QoP;Uqm~>xI0JZ_KnG>r9NSTAraD$DgE;qLG^9myQ z+UoVnHQSQm75)WIAz-XQnFqs3GazRPtYB$d1dD;pRJ8GU+|JhAYf~G=On_xIpRXoR zJg!QC;$yDbtAip~a)S@;1AF)P(i1@;d&lzCJKK0K+kMl=;VTrclV}T+5WbiShC`C* zz_<0+Yc^C_eL1oli0tpArw$`<2cK!TjjOSrz>nh}Kkr}Ms(a6H<5-_>J)h3vbGxr5 z)U{~tUCN?u;&zTZg$Uq1V#|R(R9r|oZPb3r{@HaO+@EsXrrwW(AbA-4uVZyUcwhRv zyDR6<-XDBp`#Yc>p0XqLyr}FHaZrA1i{AD6i|n1Bi`%$-UN0MtwDI_~r8KHSfDu3h z4Za@@ezWwBpM}%0QyUFJ#)zWbmKFKoB+|}Ivyf(HVtaKw{{SjD&xDPjZzt!!%j2tt zZRd9i0Vees?!2_ATniNx?#|2tsNPAKCKteJrb!ya4mC9ej?u){f&Ty`e(O`f;$PeQ ze*IqVWdiOP`0GcBfhSQ>`wM!qtLgyOsl;Lmg31dG{u4er6mX1n zBID2I`+0wrA9D7JV`m!YdfAl71~xD&$zTnjEFI57rSmSJY`8jbra>0vPdNNriB_!R ziDYyemyj3$CSnfYetKvr4!)2&p)GHR8jPDjSy9PEoQ~oz< z05btyYWt{cLx2RVw5dDJ@uA?%Gu%i<))&<2!hrdpDIgox7f_sGllpQ*f(nQysZl!} zR+-Tz*~0M-uA6SlG73_MX94(MWsbd;qx1_5ThU$W&Yyl^PkU0$Lcb)ev1YT zb7F79uu)C<@vkZtA2F$zw@D))7ok04uCbbDI~cJSw>r(n*1nWhstX_v#AL`>PeC0e zf|lR2fDt$g;OcTx)yMJC!yR4+<58|Q zkPXi|6K`s!#b#(?YycExB!aNgu94M7{{Ss6%_mSm%$sI2i;yklu=~F1W7Z&O-+e^; zp99h3a*B%DwoxPi3t&u}Bm0EL`ssbG{_CzoBL4tkBPY9X)57%*r0jZpp-#Ihh4(#W z>b3}>)=T=^QpTfLTJh7R{y{%g1-+fB?X4INRuV7ms zj4LkH#e>RnFa&>a-)(mIGOPtusI|24?yfH^lG_jV&)G=(Z`}O8&C9OAdQNMDudE$y zP|mg#una>p^%5}zN!8;IUyh*t)z4*RtPBDG05;OPll*V~OxxSvhuiy?J0V!DG6uu9 zK(g{lXowpP77n8QEr2&=;oYqxnTVZ6GS?Tqc4O_g-986>9C5F7NKMLZrx>S(3<70Z+j?L~AwNZ_muu{; zCMtPU%8p`MK`pUa0DdFG_8)L|`(KOC;BxGu-Z}LehOK#gR<7ff zHs+1+m^$)*dw$h)AAI7=7g32mq^Y!lKyZJkHLvimMD{1{Ke;`PoF?hAvBCayW+fPQ z1>s+vf8{^$+wRZt`%a=pUU#^uy5*%n_0#FVim!zCKa|_{B$Np$Iu=()l zfkT(au7c#spR1_l_R$8qolP%yBlf_At~ z3jH|kzmBh>02V>%zQpy@cpN)wUU8+5-%XEsz0|{i6f!+I7HnH_<|MyCABKoJXzcjb zwi0eZp&Y*G{JLzcEkGF=F>n#eHrWY$oB^>u8nBBDM&Zt)vuj?~H>k>T`21?@OIEeF zlCM+a;?V+dzKlR*+Z zwbWP;Kqg@P_0f%}1*{Z*jc5h;olVUlXEy%Yp?K~?lmoDc4TWS-nj{(o@q>IRf ziV`n-*2?{__J6t?+e&p=eG^p2FX+wdg?7%P1br2nx>LWb;(Gv z?9y)0n}F{Jh3b>3$qB~wGKZ-Ouq1Id9n~uLH?#+2Jf`;*byw~cbI3HU*G0voXpBCJ`h!9ACcOM-sgOd3Nc_&^~)?qPgthU@ac2!RN65Yvd zS;nda; zhW$TPHr_YYTT72GnScd*2jk&UWe4UI{{Xk}xp`Lo!Iq;`Eh(JIki*qk2heQ$5^rAdiQdq!+-cvXqPdMjHEb=O;xYcsXv&ddqe%J`3uO>;SA69XtQ??H|;OuJ&u+VjxEkecm+_Mq!K6NIs(D8hE&(WkagaEp}f4TX}URI zM&xSVxAgeTAgTulp|gU1v(WtYgaUOM_taSj79VXAvW8nh^u!9;PC&Y&W<0D~O6L-% zrsJlTcD2Af=}8oaJ4Tfj?pzz2m@TCGVf{OefU6U^C0}BU9ZVgGk<@D69zp0ZlT+S* z!KJpF_fw8RHeQz1fp{+jc?dwOV;`n>-aK?A01JOD6=D(_0tHF?7*2WhE^6ori#>j)f%M@F3tWS>hz8?Z6QzE;e#-rp_Gj5YV)k!g z`!ly!!tDL0iCr$f`DDm7GuqiI{eo6U%NV=ygKBabEvcWuX_SX03INARn4#fbWzZJKM$U}^+Z$U z05SXPnhF6V4Nn>a-1(_UCU$}dI}M|MgpC46+T}^Lxa-5lrVzIQb6U6ed+uKw+ugUA z?a18{-zu05000zh3rl~7x!$AHRupGmLzg_p7zE%;&k1JHtuWoUqMly z{!79C0I~}OvvxW9n*-ymsK+!yXJ@{~?k1r(_RTyzC3Mf!&!j*A2|i%MsWJI#QnV}wqkH&JpyFwf z;MU8ySh1yXTysk1Ks`XnZ#qjOj7Hk-rfowSs@~5`ewYkb9+Had~Zp zs!6i2r3p_^M0v8s0gc$@zlQo0@(g&Q6JL1;hPu#wCZhaX*tP=`x`t*_CKg#3DDxB0 zpAa=+ipv+yZF++Zx*j5q3K*tV{VP~1szkwjVtQl=>G0Hp!4wVY-__-(=gOp;kZQVf?52^-gL84G^xG6>s20a$6>I|_9$7Oxn(g?1;@W4l3n zcb>~u+vO*^h%38_#g-Ro^Na$86Vwm~hKDMMrh_RYEfHI`n%}~ZtQ^$2vj-%yoYc&q zkTD-iOl)-DuZ=&dNIH>bw+$;Po&Js>BjSpMhET-Gl1ywMoeADShOt6OL3=+lsXC55 z)J2KdTyUuGdkJR?oRU2?;o9QNe8&(>z!EZv`Re!DDsZPr?gBGwtu>JoeLH{ZYgYZq zd)8bOEYO3?UTho&04G2}KxgBxqq=5CrH|>a_ZdgyUNxSjRqy>~sGjaBYc4rkZb-%) z1^QYPN{~bK$~GA5(E4LXkf_q1Fk63*wzxi_BF3I>X4+L%&L*oG$s`uU4ahkdWG^zt zKd!o*ODmgd1#)?2>}|;Y6(si8yZJqnn_ZlHY)?rAfz{nWN{ME!0VEY8Vb(Nx;W@Dw z5-<-RfYj2zRF}G6cZGDH><{v1k=iWb(az-ZYapd;9?PN%t_(?BLOKx}_;1%xiKD@U zWPm^ig|+w&b&S7SHn+?;U%tB^_OI`!Yxf5mjK8~}GbLLNKqeRoGrXDb*G1Dh;F?ue zxRtnES3A`@LqfNZ4~Dh39h==$-YYfS8CiBEfiWYX-0Qi6sVJ2L9WSkOj}xH^MyG{Y zoG$B4h_cgR0Bm~B`|AB?iNGp!HKvV|R-)+Y^Mdvm!v8*Z>I3V;6Fb@sOI zk_qq;ua!S_f9lt^z2=Y9ItvUAut?Dbqhoz;qnYGu>Ob3G`#tV2Y{s28-9YE`)jv6H ztOsd4O>oEV&)6@zA7i`MC$oF|+CAU2at9#S$L>Rp*LH56o|E7~6U#7xeGml-aj^ox1a^BYdJ zOmb{cxz-P?uZ^}YI3m_TA(yCBUFJ6?HRiF#&0v00z;^gopu)mHHt289N*{L-tW$M2 z8O}kp0!p3NAiHi4;v-C~$fsiidLh%snDcoTQnmwP)&T{vcn+WuAz&FIC&x^{yVw;3 z)Z+!5Ta{K_)fq|Uj!InbVxUZx+;VAE`m$6d$b-<2mb&a9Om-`4e-1TZ%m^0bC@s`- zDh}3O$Zv6lm8`ZE^*E2D_;0b(>d9~|r3A{MtVzA-AFIlsS}zVbTVmEUinm{(}Xvp0hqvkiZXy3yD4*bzux;R9e^n02V9~l~%!}U~25dL9*3Wnts1pQ2#9PM0cjr@%si^k9 zZ>1LNc`Z|)A)$%%nL35aC)7hRA0LLOSE^*nq+02IHCGn04mDqQp3%vply9NB4=%y7 zMIbe9sXIEb-(3e!%t>R|{6MFGCxtfc+#W?%l9f2InXE(ow76D$RGo<(KLI*EOsG>+ z<>5=u6OYvXTD7}BBbCVI_WuA=^slJ^Qjje4!y=YjLG=UvoPc)MJCN}ND#yy&eYB$h z$W-tmwqLgQ9{Iq2H8l%vuOV+9+c>LD{<05HWvP>c@y>s#fQ z5GqPisSb@_{HLl(7yI;@l9GB%;RW&o&cN>dCn=7dv&;?4Y zNUzF-Z95GXBeevPgX$hSS6PkIj5w-6zD2dZhN1k94GRANsFu`6s7oz>rp0{7b3Z|3 z5PT<1{Zx)Lx7+zsxZ~4|tMR2dRM_>c*1h#mmHOwA3PB3%VuvGWW&keI28RokB@hD5 zrM03v0yM7|xQ32HWo4)q7wU2{0=YdM)SZk>7}gwCM%cCrb*UsS<8s=iy}FO}J}ZLu zu(erDAP{SH!NIR!KmhHkiQDPsxv(Jd?V$JAE1DvQBqvV6>t zB%>nFUmlv&xlyu`hg(u}7^arzXk7tqX#{`HfOY@{?z^ zxlju`8#l^0Q_C#%6xmiPuZe$9z9>bk%#A)`0;>2%hoG#W{HMyg&3RB+#a1i`m<6jW zzeRU3kW3Nds|d%aJi6&s?sPTvJZi&G3M8-@nIj-PPPE(B<<*7zs6%aw z7Elyi+}gvm-nw!8JpTZ0Ke~T@Is89$d;Xqhu)fqS)L#6~RTfe1KXTBw2K~Qi;ays{ z4~u%%!1Ame2q=x$UqJrY{{YvIaQp6PI+s>P!{`j!vkx?jq4KW~2s$?oJ(csP?zivf zxBa7mFHiR4N0;tf5L)++F|WX|H@`j=`fU4G_KVp60BF6X+r5|UUdO`hosYHCU3BsI z^`BPz6-wF3uc$Xy>r;BUPD$ZmuDW&(>a&sMuOI6jYEMbRI+JeN^e&atY|2RN ztzy2@ZMj=xI-zE1K5tRIOKdPU#Vf6MJMXU>>RI9P_Xi?d>tV!pUcEn~VeK}IYDK>K z)NgouxDJ1CAGV@-CoLH>|XbEW=H_j=V|XUhUIlRKkrL z<_lF1a`$&REH*0@$edK>p<7`%uGrWNk@3*vh82oS#JWq%$Cu?&c~^NOjq9;3ENf<0 z1e7}xRk94Tj6e$m@SSl(g4K+NGO^vp|l_Ofp zl6Lzlb*d;rTNY(ZR~Sf;%x4wpA01aRX1Mi$0v6$~!}6tM`HdAfwWV1hgn7OIlEdi| z599LFYd512irdw{o0#}>`)abWZaV-RHhD<}M*EJwQgNLeV9PoQqj0-*w{LfKWj9_d zD`o!xah&dU!lI;t#O_FKg!R#oy_QUb0gG+5@1W;?{>my!P+HZO?cEVTRkW_)jrZCn zI)f+r&X(#pnNjs1_-MX~j>T`r<5N;Ik}Ymjm5S=Yn#^kq^^m8mE<#F`IQ*x>Og1EK zvQ65m5LVp$XlT3I)P;<-fs?I)8nPHd;)YlOfmLA#$65WDwgkI39_w(T`UAFw^Le#N zt6-%;PbeFyCna^9*CyN^x)B@TD8p-x1Gb!wA0XDFysNBqwM!Hh(_mu+C{{)SF_J`e z9tUkh4e}(N>suc$f- z8L?n2e8*4DyjQDvC3tyUnxnh$PuJslc;mAF z02<&kP#w(Lf-F0`>aXrdwgpuO2*^8ti~tiEF;*3oQy^}zH{V@vO@CMiI&K5uT!i4m z$INOqZFZ+3F@!E{7)%oOFkpI;2r=-F>8nDLM=E+RU|b8^k>zgsNu)*=3IVAPY4;~D zfytz+SQ^F_QmGg%XcRPoF3c>hAmj4UCNfIDQ8ZwMEUGWr&X#FfDO4{y-9NM+$WG(g zIX%A~b}L({bq>O|01&AKm`Rx+Z_w(RNU~Nm%8iMb6Q#TK`>M&FDL=ihb#=Gw{{Zr5 zf!(R%aqs5GA#qnwLLAH$BuFtD=sIUnl^|n~Jm7ZKPG?SnQ+QhE!nfzze{%TU!4Z>^ zuFZ)dT?iggyn=VvQ-#$el|rBw2e*}T`B+jflT)o;otxbi+=$FUkUXG+)DNFs_0_?i zqA}}`AIADpM;NY*YmM@jn&|bDh32?l|zdjz|cb5u0BVQ!`;(ycs0B!a2 zH&^ysj4r4wL`VBX+mN{1uVAmPe{O&6$GAEik@WundPFliTaBgEdDISk4)2YtivIw1 zzm5L@d%neTxfFfI_D6c{yhXdvUh}}F&gIx{Wge%hyy_Ofio;>*1V0$p#a{9Kiudoc zcT3c<447&O^%KlA?d%oySF-;AcD;%3s69@Noe$I#Z%LR5JS=(Es`rcAm3r~(xEGKK zFMzF_u=8)`8vuMKW3C4e8L{E@9Bq^}w%cF6y(&4>0VIB9CfCy6b?OUm3cfwJ(xWa_ zi~|H)Ld|zV*ja&=$@eqRjb9gXs?r-M@a8qAiz0!z*@&-GxLiF&xejOrYjal0NmJ(- zu`0f0{KlYST?(6n@ue7pAtQzAJKnh?o5kc62h}Gf!~|4mRDUksK?iA=)u&I1qsmhM z040t804knDTaTy>h^UhAfU29UvenH;sG^`5v7FpE2;mMhi6$mBaQO&Hjxa6{Z2@Fx z)Pt_-Ys!96v{%L<%CVtVz(p)^*cJ!J#y0{^i4sIs@|$zhh!iz3fo5wP&|X!%W%Z9W z8n&(ykyzMVRczge$m3vvGX!eJD5WJut*?b1DR%><9_^gYZwNKF5mLEnEbgPzP)2z9atg;|{nM)axN+xe07;_S`qG{2 zy)HFTLbaDziw#@YDGbsYNo?y~{IWm0p#bYxSj(`N04U?zTVR2Ft7Aj>=w7Q<%AGB& zdWg}QRt_iw5@!}~4zti`((PLq&X?AprpyOzNjp#N-t>K}tVGs9B-gNHg){0kgKw6r zvYJ5=7dNBN7%C&ZSzJ@wi?1X0ug12ht7;a{M3E>#NzE7#W_A;kRB)=VxHUX`DGtSJAv~wbHU|?D0ozKXZ4Aa!CAR{+ zJAcx-PN4B)$X%i)G0x|Y*+~7+`ya*aJ*tl7-FwBOxLprbTzdT~c`I2qtMPd?TV))| zmZ&~punyozo}M<32M##Q;oe5K$_2FXq4Yk#m6t2W8d(*9t$gGAd$(CtcBQRt)H!FS z6<)=4$Q5~7_9tPtU2~7sG6R(s+keixHkM~?&TPhp+e3OBmqN~z%8JWm%_`Y-B(tan zBgS-fYmt2~&a5`jt1QZ!YPs15D!EFPRqQDM304xNG-R?i^w(+Evi>!NTlsaRy|wJi zdAz?)&RAegOu4XCsf%Qpk+_0J{Q=Z^r(BO35AE6eyeke%V#Gr&$k&Zn9DY50r??I( zvNe@hR?8`3Ky>zj6b$b`2ea0Gm4Ta2r}hT(sFY|&19q*2h8ktU<5{q5Sb0- z0{7FM0Mj<)Rl>fsmc0^+&=5;m>J}+xDl(EJ7~F{KrXz^Vtjfxye^!9_RMt0<3qq{L zer^B{jbGnnzly(mzmYxTkH-6Z?9SuN?OdypzGt|5jcwb#x5DDN$M;ruD{!lmVgry$ zvtmET(!GQGVecP)NOAqUj%}dzUg;R^^AXCtx8A?HKF#(d4JTL1U#?Mc64{#kg|AW7^3NSod%pN3JUd+E3{z<88MghmCwA`<4FyV!hSxSCb#3mci)6mGX--t+}wV z9k#Bj@pv3=6;)Bis=6qpLRUpqs#J=i6;TGtsyYu1eME!OK@1@i6-AX5Kngntb$sU{ ztgdB~b4+-#B;UODno;fvmy`&RG6(#%y*?F#g{n8*d&eJxRhC%CWGw`MHXDu3lbbdu zScc(hm{wzD)Yh;4$@|5_>^y7PIbxM%YVF0s$Yp?lt0`bXAc@~xms9Ep*OXh(TkhBF ztDHWZ%)y$uJ@=pQcQ4$W>v$YaV^_g^(cRuffovg_@B!+iWA$%6HRYXuu42dv;IR?% z7yEwt?XY@Bs)229g=+6BpZ=@K$TO5lX<@UyKUINTg#p)cIsvaW>JucfGlnYG?Y(xG zxN+m#oel0BvBd5C?o*t-E(dY9H4h}UOrVHU^e;kSM!A6)k**r{1hG7T73m!h5;k~` z^_y0d^7xO-yffKiD-g`yb^7dPU>6{$p`3LD5hKH1Ulx2hnQtQbP`UGX8+>ciCxLOu zjA}ND0o*$+R#tOBR+0b=xvoK-TMUVeap*^yeh_raG{<~+;5ZGsgO6VgKMoYJ9f`w-_`NrKCC3|6!NXOohf+7I zF+qS`Qe-0xaX&pCTxU(8{{XgF3sSE%iU!lpgYr?ScQ^{OIEN&8K_Aw!PH+BYNGq(p+0u6(;7&3#bN5plo-Ilx6wqM8)(G!#&FZuB3B4lsAnx9V$md zG9_iK3QDPCFsBmH0ybYUKN%klIJog+dY?-mG5{>RcIrESIGu~E$Np-TZEdO99-yYs3B61u#*sV$eNd_(;~M1M^YWRNHd zh145^uNnbIkIMR*PTR~@D=X(9=0E_(}P-J6d%1-H7ui?miDlAA+d#E2L z*R_y>suh~WQe;4tVzLh8bsaQWB4)`ZJq`CCg)@u+k9qm2nBd=eTPZHqIAscewiPc? z3jy=kM}X4_229M-Lc6!x-PWVLutJ7O-)fJ(rG2OE$9(UV`h$hY2*5JB*1@3kKAUtA zuB)Yc3#@f`qsSUdt+e5-bGe@F>6k>5DD?gnAnxC1yT=cVEnY2)DC++Jr-&?6g&+lh zHye$5Mknm%WO1CCMYbtob<)6^=YRhIV&O=AGHwaCjc5B*kS%;O@Dlq`6J4coTb?dKC!o+A|^>=R)i+B^ty!WW6TY8_6gHi|z;{OY!@Gd3BC4Syy6>K%U`=d}fZDa46gfHmUnGB*udi0KD&r)1BL z382M1Ne%H7oXDvi*Ny5q-B8w{k%S8tEUzVGRa`>0{#Ys|I_^%o85y#F+rgqPygPXP zwN*PE%104P_MYu;3i4`l6_%TmD++>HQCX3f>41br`{@^WnQsvE;`NnxapmUF_t1>8 zG2BkIuwKFYwao1Ny8Rw?pQ2%`2E~AmGA6fT_<^+b_-aqnmV6T|GG1h2TfAR|7ZOv6 zAX!cBYoq@FXup)cnB!A-H`K+|2=#&($io8C@D-GAyy~=^jAaZM>;|5dpq%JD)zXi* zU&s#E-KpdM0R6&~obmuc1NCF}t!2Y6j)8ch# zr%(^gLX#ciUFU^L=;hUMI5PF#49p$+>dGmWTkYjb(~@gDk(cEl{zq*wyzL4=uTA6$LJG8QA~c>>HZDXa zJecE>D}1b=gW?X9&Ngmd1m9JGBSDfsojj)fw-&u~i|?2FRsR4Q{_T!$aP5BIyVyPd z0Ft(o+`Xpj!Q(xzxVG-rYqNskPgq4e?HcjVaQ?#k6WrV9lMP^)PA#vza!gOYcxb$B$_ZcIu3U4uc^JM{{V0O zq18%3?${p+W98nOs-N|)T7Ap=5BHnx*FN4C+&{N|>Go-^##=c(&$Duyx3a7iO8bpf zzX9sBw5iOK8*AtOv-@rDPi#og^*)<8^vN5*B@MZQ%vaG}3-=S*e&T@#Lh2AsN`vMg zG4TUHc~uwPdrt?C##iHa2jyFBlH6*-mo?zc0J_FrSq&X^&BED9AWVqDn{n2=1kE!y zr+eOo)Gz0+9*)g9_2p-0MC5YzBs|?pxUd${( zGm*@hDj*VPN@ZciJiCDXQT9@1NSph7Y4>mM9)qVfWJze5b~x75962i@&W~)G-y-L9LQ^F4!}nX_2uL^3`KuLl=~bntnhM6=nIY zMC#>m>nmYP9@Sf#*R`bqb0Vq)n0U@f@6rX^VgWDHdHRsTzsf4SFg8te9j%GwDS4=zK#{a4<^n-2U3+{ z0cZ}=0>FX+1ohV+oiwqH(fL^Ns%f$!I88FG=DD|jbz2_a_MdF4y;t4r_R;Pf0d1eS zue0-oTyAo4N>(|1dj9}Y{xz>a@W}Ns@Z96o#$EdPLF3O)<6PcM#j%`7;Up`fkPVL` ztw_H1*+(&ZcQ3XcU3?VcQ^w);>#WUa;k|xqFSiPw%lQ0{(_(8z#U=>UdW#}v3~_%T zQoY2De10^aw^bAqxIE#;;s6@*&}mxS+>SK|kzegXy48y}rg3*^DP?wStc0(^M~__z zai?VrO?ROcz;^kK0vvaHP?Q9l3pjn;<>ny#UVM5+(W9AkBKp&@4bU^6m{AAqy|K$L zI>AS%%C&itq8s~asfhrW=myiF`uP$60A))aeEu{wmD5!}aHqU_KWA{WjBN{B5qz|k zsZe644b-qZlLPbLL6%0HHqHjTtx%Ws{{XqK`0lK^7c!g!1-jR0y-G8(2HpTrP_{%t z-}2NEcIuflyt))3&Pmr%=JdiKWSrA;%n9jezd)?5*khSN`2U$bY>z zak)wC_V!P=xlSMbYu-V-dYavpeM);we*2Nr%1YNWI`X-^k{+jx}l_>@&xRZ8okg-X;YQ5$RN{4SN#I!+M7>6r0BjH5+G3O+U(*Uveb z*}3^AFFI)^$Un^NSpBB-YRl0i9f;T%SeX90lx8@WVIE80<4NjUaU}e7`#4a(M{};K zpC*_wkbwjd_-#5InGmV48dmDO@80&|cIs|xZ>(e1UwPg~;tAhXQ*|JPwa{LgTt{FS za5bf$cmDv8d>+q7Bqwm8oFjy-Eg8&ojf9W!*A>+I%oa7!bncJpwuAL7YnJ~2bN=%8 zFLUx-TYIk=&PzgA?3TI55n`w~x`qegyi9A)dY4xYtdWzn@$as~r*vtQ7n9{uDuCtl z@8mm+7`G#n{h%_cRV$7e6XmaP$E2P0=UFTtA)R;{>7a^5K=A0lZ{tR|6#>T}k?D#_ zRLmChIw-MNG2G?`-sB0OdO6I@Illiy(^N6(BYE-EVgbmnsSarI+S(Ca6=K7 z{kOy)q(@G>=wI(LfBP~9Ve;+M!luBHVMMIvRuSUNiLvY@7^4lOCx7~lnG=1&7tETHOX$0Twy3{;OP3te*TS+@-U5etv_X?*01 z7C|fAvE(?n`f;f5PSIFb#pFq{z$;Ir`H2eSb1HXId~{dKmkK1zS6!@ZRO)DQFg6QC zg(jr0CSnKbIw{2D8AyUR#etnZBT+ERfEzLfBeMO}5oT?pR;KOT!DOIP)a{ z%mN){fiXV~Nl({GJzMPE-}iXd-xW}9lE87+tsiIoxAzabUbL>8ss_bi?1f(j05;)Z zf+KFHUXAU~+U}{-jmKUq^Qc=G zgmSDMm@ojd3E2TANIp9HgV|rReK!cIOB;F$G$&f{zj1!%&z4R)e4^t@+RoMXZ?g8f zR}LBmRZ#*60w>`yuVLxF$-(Jr1OROp(!#vAH{3HyIFfI|^cUTJ!0q0i+;qhp9F{s{ zHyfzyw^5_#^tG`Pd1JA;<-(T7>QhHDNv(qe#MkEw@0Vf!0OKEV{r%Zqqe}L_ad%1< zxH*WZbm#1gWg%0G&lS_8CpLVtND9BvSiw0T{$ngsi;aaob zl}m>%SP@`vPyjJv5rGOa7{)SWp0lq;#Arqq*xVT$?jx|CRp*(;ym<|fYPjpp_4_wI!hsaSd7O>FT$hT`bF0nXH>yhFPQ_bJDf;^J_o=ZTWw_l z#(?wfstnIMg-uu*4Q(Eq`al{%Sg5qP0=BXcxsf2W50Td8B4`FX3n;m%%-F_Dlx8*> zjvOn>xt4L6YzLKIOu`k3Ca}3K&_XdHNYj|7r_F*Unl=(%%%ekLrO)F_??yHUTAX`x z-5mZ0C2USb=!H?8OJxoOwml(?omOPyD2=i=hL3II1D>|EMW$tNv1=vxR?Yht@83VL zniz8|MGc-uJegM&CDmBNCR_PV$4TdO!xkiY4ho4D{{RzuwTGywQo39l9^+jF`&s<3 zis)WpNti05JRh@}vSvitP z5wSb#qQ&4bPSsYU!?AL_!-w-h1O$dyRg4yR!tF& zjlN#mv$!^Pj_FE28@Q!*u-dzbfP5se20smSNs*11H#4X-ncljAdVOza4__zi`fO^)`IAe1mFhm){q+6K_OhyBbptd*`DE7qB`AC1UaDhJa0d^~(N+#mHz+nLiD`aV?H z#9qs5sq7l|SHJsz{^NBZBZJ(XGC37^$cN3|ZCvd8gZ|E6$^QUn@;N-(J-gaH^Tb@8 zAFy{%PSag-6b>hFs*lv)a2bgB>&kt@{{UM(`_kem(4~tdM-EM1+tU94?Pu-BREbt* zml3&{6889xBD6Q|U-0|yf3i6j{{XFhn)lag+4YUvWNBfbaE(sXQ(>! zpZ@@Wzi_%u)2U!(Aw#LyY;DHYzK54}dS^=g%=RZ&WPXpIh{dc=>MhOtkKtOW-+OOx z>;?FL>3oW9<6Di~K3zBQISVBSHKo+4^0jOTBocfhNW+7eWnq;Z$itadXl)1Adc#s_O1^ig%6)3Z? z^Y7!O)l}9B*;dCvI0j-Y$zZx#79hs*byF8ojc*Y?bHH=03DO4zh~3#uc)h>3E#I|a zT|&%>VOgvyAuQo6B)6zVn}~^xZcLns6Vw2ZJN2VH?LDqE6*BGIZWEfg7BzP9kouJ5 z?Z&don1VrePfyhVd}ei3kl8X1QZRS?D_)xw-ESvtUp~oCZky~Jj@|Aa>BpynZR2t{ zd`o$6Qi|B}u6{jrKd3n9ggVTKleU$M8R5-I-3vt^2vXNKIuqesuT=WDpxTl~uj&$@ z=s4+q?%Kb-r`&1n-MRbcx4VZkymEVcSYNSnyLYAQcB{f7a(HC%uPuKJv^q4E*z7c% zkccu~X#W61Jr9*!e96wkhh=kll04CzZlI9wkXv#cf6}6#cm3-`#khv8k#+ zI5yi)ti`JWr>*FtjO|^OmB>CskY-M+@+HXXS?QH3T4adaSPR(kt4@K^qrr#M#a1X< zmvIB_$-!%So0^{lXdn;K?b(HkGisq#9O z4k_7@JW-$goDa^e-){c^68`&r$Q(Mov-X?bUCmRFmo5CB&&l9%Jw+jqo>xEi>x!Qr z9d^A3_Sg3#t2z1(nUv_uZN&>uc8ReX{=m zX@BJJyE$pf_Z1%7_9t%SieB2gw>SM$nzaxGfw-Ij=!YO|Jy;s`j*I^QQ@?Tg>;dx| z8xkT;tln|(?EGuUJuO!~K_j(e_?lUC-`cx;y8) z`72{tXKwBB*?VEg64f`N=aTgYV~Nf{jm!;w1?@ljh3$L@ko%i1Y{^wua*ryO09*@O zLV4GM`tpJRT{aH-<^5AFB1`#Vyq zKX{xPc^$>zmdeg|DQ@IDnca&{z5CnWwZ6&r#3C+<)8U3i;N%8ta~C4|*Uui}_x}LB zJ=ZaluXPEfLT*qJt8u{SZKYm`MI3b%)moze0BBfHJ`eyKe}=sY0>v7{ZM8**XTrGx z0XI66SlMz`C5-RC^gEx+N=V>HcAI!s5DB@|&`w8ntBM=WKnLO?BdOn2uaL2umh*O0 zxac_4Pq_QDjtx{+L*K}BM6FptF6&{%KXt#8&1-Wg?f3e&Ljd*MO=>|oD-lyEE91V}^A4x(xI-{hBx|oP z9}4WSI#$!^+lG~(p6UCI&i5ZG&Q1Kgt@9gR;Ov4)I11%dsw+bQ7Ajq(UuE7jj%r650S&}pbK`q!_tOyrV55yqtD#34 z<^dbjwJO-Oii1?_R4yb0Vb^Glb7szdnRQh+2ekH8wg6Q&nC%_(1G^QpT?b)l!n5X< zO8pa%V#SrQ$ZknG^G|-|9C=a}BnCD*@D@7Pt@}F@(#L66Tktgvds#toKVEFIa6Q-n6om-GEU?3(h(*~PQ}RDc-DgM;l`N`;uzwDfm)da zfm=8m9~L5i4OodW)+$J0_2Pe~y8XiIFZM%`%Yj>*L|} z((5o|Ya00#E{9^Q)dpt`(TkW;(F4jfXt86S4fBuFj9%Q$`40a88ZZQcdn#A$?__s> zbMgXq{w0?H)rt-w5L;?!$0GK0PhqS%F)Oy=H#S?lKu(&s{@UC;K^}Jr3rbloj z9Ih*FKG^>N7MklQ=67B@XPU8JNN&nYDJO8uOF;Q+>Ca*Q&*S=QHcBBZpq;?nTnpPu z@gH=4g!Pw^QrcnM2eL`|r<%TfA=B#^WGbt5M@6KqKK1uE1f(5ZexmT>k*nvl7y3#+;Q< zNFWmsOm!PT{{RgMl&e_QjAm24bOxc__ku01!H94sNgIg+Vd12*@yzOV8+rUSrqe_4 zKZSmIzn}iox7&YwJEu7-TKJym?H#MTp%nrfkZH4r&H#hwa@N}#4u?E!w<^y$}vMPszTRgI$K;-3{F=b{_L{9K0$6Y=$ zybEVHdvfirb0qra>!*z&%HvkFRL+7_D;KDS8Nz}Pwm>m&9-y6B!LXo`U`zIMq-Ttz zMUA^CA8@2K%0t?0G8;CPDo6{1jDm@fKpP(oTrNytD!Tv=4({5aY-aOGacU3Api)&> z=l)TiB%-Ot!kH3SG2F+8&rLW8o}eJ9?4@r*Y^9D&wjW#dB#x}W1tCz)c?S6DrNuHK zXcz>xqnXl?L$XcBfHa7=kxP<7*h)>n403`1A^-^g05CkHNYJ`t!8fIgI-5ocp7VR@ zM<`+qKQ4t1k8EjIdzF(-0Heh-U^{%NpzHia6Cm(H>xQp?i z!s0cvYUJGb)Z?}LyOYLLM0c%}ss)Dxv9m8yK?S2|iToo#mknDQJ;PF>kB^d($jvY% zZ>70*R?vHA?yq+C`f>jNZ^*X7%U_bq+ZzNcGn15nNiiC!mk_|^LJ*ceZM6I8l+Af^ zLkn8RkA-b_+wbK^KY@1^j%P88*AZ3LI+0k!2(ZeAfw1UwkLzONE55TSH@7~^cyp^X zk!Ds|c8<$d^m`BaN89_4qL%ZkR+N-4Jp{03+ke1n#}}!Ax>q|&fJo;{KTD2i?4?C* zKeaylcK&#*uRfnldEhZDq;3bwb!~^&3n}#E8;=UBZkeQUv>KzIT!b-gB9JWD`G^%;^kR) z9}}zGZ*@!m0M8pZ{{X_@nH5(rNn|#N`EAanTz>2AUg`@`&Eu<+I5nb&lkg3*2>5FM z02i;|P5{wgm}^{k+WOM%jhz_Us!EQ^cHN@8fPOC}3T{T|!M5q@DPTXQtY6WZ5+Si~ z8X1s|AcH}9bX&!-Qosc7A(f7iZ@Td0oGWdY`CU$EBqFcT)%F*IIB$x0Q$fN)2s`sNIb36aN6? zaj$K`s+-*(#{U4aKJhj;xPICDJGwQXiyxWTdu`S@BXZU^8#X_Q)n;!+=^3gLOjsFD z&2&+(Xt1lUo9>@-^zZ(kP|JzH;vAoaiQ!t=?yvU0{uKMY?YFsoj`npISu@D(ybtu- zy3X(0--^ZwnVA~pbAN07iJcQBMhtAt#PGL;tF-C=0KH$ioijx0lfAfK^Qteqf3lD8 ztGGWR-XF9(-)MWtBzE6&_o}J|WGf2am0~FX$CLnkLDwxe>__e7s1RYO@42qO7yi%w z?PGa#?uVL0w~*E>J` zW&OK$-w>EE?YHr($iMB6?lAM@M~Nd2TPzR9jY4k!0AWwCHd$Sj`}ghw8jBPMxc28^ zkO2Op@I6WDelpwmXfOW&T0N7ntZyj4eOt%>0C2tdsuba2>Hh$?@TWby{fPd__Wo1y z{{a2N_wO#oGhKYXUu$(p009ZXPf>R0-8?j+f7Rb(mHlZa-F`<(+@JRU0N(OPwBh20 z?k3f1dq@4AzS8?P`gt9@-v0D)MfP4ew{y6kvvXp_i)9s1uMSC^SRcl97XJXN-p~^y zvE^jh7!an`(D1m{)lHNC0BQZ}mZc=c#SB3J>TQ013Y7bE{iQy_`+vA{IsX9bKKJJ} z_FHOGcYU&|IInRTo-%Rjsj4tB*!h>N>e?Ur&--kyX32_qq;4Uc+Wp+=EU)`D@BE08 z0JxzParDLRID9Hp{{Zb<{9fhrQ@Hn^Z+C9<$gW6!e|zp$sFORV?o|kad^Kf{{{US7 z0BbSd))-7>0>bP_w>~vfC;g87(R49IlN>Rh=v#fYYx{rr0sK|=>sH)fwEo)Uy*L`| z?mRKvEK^w}JlwXjVTmA}#;^K+?62*wO#nsGu~?7lKx>%I{o?(_>KFC8u0oUjHLxDu z`zQ9d+Vuh0J&*0a)|G&&IGv+|L6zzM0B(ia4}lu)u|2u%-kTlq@gcbX0KrG!YT~+& zxxLTS&->1yl^{GzG5jx99~-y!{u%`1@wohTfH6vIMIdwlD#o0OC^z|IMM28ieic&k z%_8k-9I@h06Zg}VwHIYz2f#od)25u3ctZf7D7PwEVF{v=M|~x4aH6omy)a>fnUY6S z*RF(eVgmQlq!8YO-`(k7?ozRqKY*W>m7AzTv&hyrqU~8gCLs3R&bd(jprdaZlM-5%e<4?L=(4$MI5&=T7cf8naBI?Q{`*x$yQPM`D^Jt z!-3Cm;X1)6f%S> zwAByG_e1jB2IL50QHaQf5PZXRg37W^`<-(yocTEBMfp=h-)_$8=yBnS7QL@}NiH0N z#o{gRovD#s27_sfbEJhOO;u1hY*}dZ>uW$uK(Vr!y-d@>%k1 zs#A8}U@o738Z;3Q-lro|#!!_|vGq~Nao5{GXxq<;V@Y3Ej?_C2B zL4=VF8)!8Y<#R4;UcBL4jKs@jmQj{*6V?Mx+wHD18zw1+*p-5@vEj?Ix)p&f`hw<= zC`Rr#HahU`rQ86;N6TAz#y4IW z+IKk*0MU-$5eMVfLg~`S^-{{DmmH4@8~n8C_{!v)fGp7HQH1X~SC%EKf%wj>_oD|4 z0A?CcLv7(p@pz{&g1mrs3QxpC3{OE?uHTNMiHy+2vtqZHo1Qw>ixO^XN|azKHgT0u z)@7_D6=!0llz_#RO8)@mqe&7&lv+W!nEwEmmXwojzY|_7(@GWHYs)RG4D3NMi$E$H z@z$`8JIvb<(z!{8f`&;Mw}IPRRra&& zKXUgwaqs8XYS7jJi5P+u1|dk0RlFv3?;gngsOnv0#Mwz`TGizK=>5RQ!;ItOI*B#C zbeHYd*-q2gIP?bL(!~`wh$9jugn_hc>`!O=4-28jB6w26P6Pa2zI5w;>dfj=GD#uW zd5ix58rYr>YT|HH8mUF=vd`py6R%E-6B`va!hirj3gV2!y@=hf6UWEKh=Qx->GI!E z^@!jFPJivzCAy8HartXLp}PeoNydcCSlrQ;W>wk%q5Q5edYA*Y`2+BekkMvE|dQ!~&oFPv>5(`(dBy`j~TD(QY0$t_yd1Z1s5(6@`}%FeF&y78MwSv0l9d4f<<{ z=xrPlmAF#6|&2X;5;P-^yCSnwItT6soW)ODq6pNcn59jE0ootL*}-W+3T_Dw-ttK%E(ZSWq3-+F6tMmnK}x8_8C`42Xfn)>^; z7j4In@S&Dat5UWtvZ(aLDR^zfu!tkC%UhZPA)6&xePva+ZbY4J-AFd{HepKFeaHi- z!KD}kDsXJz6d_ zS1n^O7_$wFVhAMsbnA5GFX|U|w-9Y>eUu|1iTyLAmFo99GGs>;p|SWUorVSWgvjh4_X*04U>9~Anr$w z`W`P&gE6NgXkPw0Qz@G;UR84YPx&L<`*$PLPIcKQrdcg=8zRM7OB_o>ZM4AzYL6=o z`g)X&LpyLIfU7wAsyiw;U8h4^XY8Nlb?J>Tqy&U!*;i*} z``t^5!gJoa0REpO1qa3eXe5nXl_> zWjdZaHLpvB1IC^I0IqTTZmiG6r~Vo**W-596$X?Y-lAhV%y>@2=hsm=(f;g6(Tm>6z~I zum0d!ljU$H{7fAP^;rJ^lEhY1zTf+v?PbG+rr}ED=hUqN^w_hIq{i?x))dn92Qk7? zNbSGnLoH+7KzV)so*j){)+&{DOtKg=p@s^>V+XEe%7-hT%o}c{?g6&-;(tsmOlu2@(nQ1Ppf`14-m{NCNNO ztr;-ghV5#;?_YWQM-ID7a_J@@{<8I1nBH|wFJDcJ0UQlAA4{I$tZi{rAG$x2J*T%V z`FA>$C}BUku0#%i2ACS>X6s{Rm5%akHRo2T)5|bYx>l|G+xdsW4_WWwb92f*ZYg)nXPrNcLs1 zb5eeNbhh`D2$-GsJI5KURSz#+>EB{vXeHmhE)OyM>vKG36jwOZyKeC z772`#%V1+V4o6zBh8sdQvkwYsRo3!qH)O3WZaCr-EKOk6-gA$t$EQ=g4LQ^&!c0i= zQ2-}G4-Xn7Sh769u3JlMPq@5nscR5aua-8YUUOfjK*e_N0%k1WXy%H`Jl^vRR#)`!@UyT166s16q@J2T$8sYUFEPElP{J zu?sHFr*A7gU{B-Wpt<^oXF^pVjGK-+FFL#FFb16wZb@NO{k6OD95Uruce0qq2_X7o z@M-XYzP?`S8I31U`svl2mwOfM)N9>uzP^OSSkoRfAKclk3%7wyO&*D2pt$H;EW?V~ zzMNJ``A1z34;3X)q|-HLcEQdrCg1fn)5ScwIzg$7KJXXT(GVf6HA674LrkTf~~FZNYo zd-JTv9UQB;HL?K&3>Ap#NZv{D>!KXAAo+aa-ZdNeQGm420_Kv15U5ZaDGUU`XM)qQ z-=?pdC_&IrZ^OcuhGQGu$s(FJ zY!&4yT)Geo9H7rly7bep62}@w#4rOxO#NchUf=Cb@80?KaX1`n-L4{x#W|uYxCaT` z5!Q8Mf$g0BzdTTM==a}_nsK3I^{$h@wr_`g?#1i{{Y4C5VUr=;ThlkR!);KJ7jWprmULn*vgq=cTGm=R>>c*G^&9-w!J9KDy*vRUB8>c z^#YI6xzX*Wzz9BSt*u+*F|R!L{yJtt`0^9A*2A!osK19A=>4;r*m>ebYep<=4u@L& zw0py}@;$fQyO(Y56_w<6`>f&O`HNeZ$9JrLnxKSkt~RiF_uH|^5a@2YY?tM8^)gK)I^SfFB_p&nE!5ftKg z8w`N>k*lmji9RHApdOh~snb!%k9{FLjl7^IXyrmbO=bu!NFl<43ohgqe15hadg=kA zL%nUMWdc(2p;kAzuNVeYv`EW3>#6*)xSZK{A%{SA)tbnxs_>$HM-onk)QqsYS)?SM zSEiSxWvfR0Pc_L77Eh)>xmFgmGb6%u9JLZ-FqKo+W2hRE2Md9(8iQT6eR&E-o)BlO zRQO+alhcAXDyR?S#s~iZbn2;YRef8TR@MiFhv!j(T+t&a1Jegj3bq_A6w-`>)~#z( zf~!^~Le?Ejk0R_&uCekYiTz0lXru?c58+GZ1~K~I{I?qO)aya4jxDC#rlEFqfCA$? zGnY^@W><;$XlodZnGL-nbnG3r@vK(HC=Bk)FCaJ{8X%S*O2JiFXNj(`ORFfrxCg41 z%$e&0L6035)$~({90zxGOflt4zZ#Bs0@Om@h>NQbUN$b42y7V^BdGD~q<|wOqi>L> z4*vk-LupmPjX(@^zcJrHE$;o-+qU{e?Z1h0G2>eE`cBHi-%YYD21mqr7fO|8R)BlNM#cf{9D`nP)@@^iJdqO|T+mMo=< z9+TJ13=Ph$W9vAmLaAXP@znnStwrzwLJ1bNS{z^GcWqj@w>Na-x9-d>O8GM3vCpIl zA1zwRmSV%l$yXbhSTMe~zJ$_$@saillGFT$?X1Hd=R|H;D+>e&Jyn=1AD);00Gsr* zbE&L7Ejf?6q+D<04{Nf;{{Z#%k+$+T+oVp%PRG}-g4`>A@k{+bbr>IiJ9Z=|EecNi zfG2Ld_35TxtO%EW@qZdq{w@Cir2U4U(f9MTkOAgbAy;Vz40MUsMb};Y#f^u58qfIG z99Ql&oBjOl8>r@2oMo`^AD)LNxs~4NKvAb2b+OUpkZxOnO`G`v+R!OH#1k>T;}fwv zj=Bt9;0zqG*IR2^{{V||p;Pu67s~!Z_L`Iy=g?%3#hF6&=*;e`Bcx2ulz(snEg{nU z=&^K%k+#^6g-7{6$ezw54t+tFe2Yi}tP!*y>!Gh+Rg?tLdC|{C^z?Cmg+}>5%HA(% zYukh0?Ba_nHQIRhnleHmvL0-K=^B<#UYaAn7DhsUq}qzT9wty(7XB4j`-Az1+OFbJ z#k087gN6I6je;Gmvy{q7cCFfXU8jBZ3BAfaHcj4ZaK5y7x*8;b^tkY zpR47h<7Sb)U`>X$?C#!w4!J8h`HWj4Syw`v6mJdnfGwjF_HMxpZrWHEFGa|a%zKm+jAavYCF zY^6nbcOAXfHqwZy0`StBHzA#Im6Ev+ATC2Nf*YlFGL69eH113@9CzwCtOTV#TljGl zbc-371uk2#gKBk3hGK!6^(?B!Jqh&3m7!TS+R4If<{s?mK*Q?0G5)>GfQaSb3~&-$WyS8qU&I9Mk+>7La0=g0}m63w}?8N&hwET!5H{a^Cyn|f$`}t; z9o$C(NVQl(_gzmqj&d>~8EZ`NB~knX;~+Oc11z7%P+W|Nv6ehsX4-hLVPpRQmA?8n z9}3>nKsCW4V*V`M}}b@U7NWDK+DF>EcNQ{XTuwf!|A!r!UkC{{XtIO4uKA3aJ>#+kb|Labiqci+wO%4?W%-c=M>RB}g1?MA52x)jY@! zFwAFlKTl7H*2E%6MlUQ2whP^l1 zzQ~)e$pm{{Voe)P-F`L9^}lgJ(s5XT8LiK{x*ztV>`!m(^l`a7o-#e&NAuS#q>lnb z%XI~3{D9~?D{uREX5seAYf7rEMQRk{pFOeo zNjmnJ@#BUPHQYE?n`C53GlTrR=+uG%9SGaxJ{sISO$b&#s-tf*Kj)&es+%4)l{r!0(i#~YG+ z#jRF-DS~9&@#SBe&*ned8aUnOi|*bZ5Lw$h!Q%e?eInd?yN4acygp-CIz5hz(qnb& z;jaSs4mgAi*q6z(9ZN<_JxmQ-ENTkHmf!8=P{Wo@k#+xAqm6bCyF!aiSa)XEg3Yx^ZCPFK9C&N>L z;#D~oB1c;*TVD%tpl%W>#<$HVlbBOM<7>U?U}l8y=H7G${E%OONG^h#Pous_A5v zqaprZ8VJ=^*0okRWtUiH@{$T5#F(6vOn4AAwaPf^<03I8Bu!vD`Td$u{+eBz^xNZ4 z&1!*F2~@=jm4-e;1(*_~g4;mrtx1!HCWWCA`mTK8TWAB7z7%MMqZI13^t|CkmE<=c zrmF8a)>MKksgH!6^kl_JH)Kc%*hv~|r3N^Qwf_K+9cWj$sIJc6>N2Tn$D|od6)BK7 zsFf3s=Ng6{8)Rd&mL8t|H`H;~)hW^_&=or0vZ~`+tAe&N+8)d-49co{C7VDj9YH@m zK8L6JY~gpztG487PlxBil~3;n{!w1n-Fdt*`%u;ZqM#oqVI+ji1<8w8diZayMq}$Y zq^QAx)LTLEr@d(J#){MKYZAj-G07N)uhepsm~B;(ex~mtP)Sk;jOm8y82O>|3V?`7QQu6CppeD5e4KgI z*RlP}?&hG+%&}QYs+O>=hcFd#QgLjgha^Y?!$6;=v21ohc2sVB+l4%H@%=5po!f7~ z)V`0pUG9*GoXg2LxnJBep&&yrL~OCh^-&w?b;fp|(2+=CsnheM8>z@`==|6Fs$1Ls z>UaA|r8)ej$yd&fY(&Ynhj7i*c*e7+!2-Gid+qG+s|D(kx{b$CQXl^Sbp6xEtP1c`h33bV8Q*p}B!7WhGD#=TPCx$upgZ^(4t?YSjtg-hEaj6ZSjmWm03V);(c;F$ zG2%(#+gK%)2Grq0?)&}j9Czn(zf}Nb&(kX)uS9|nurb$49B7LYl98^O8sF4U*eGqE ze0%RL*pB1LK9l;TUeBoF6scqd*+dV*H`as*(kkRgS}@n(NYlQv>L=_J!;|-S+#Hx> z3fW-iyW)=&99qCCGCgQ4U`WSF#0Rz6+ySmq>tu7;!hpSZp6lq^xtuq$BBgxDpD z!=k)EYRMA-2q5clqaV`;a}IRCJB7yzk8-`++-$I`@~kOh!)0sOS%I-|5ZmMM8-eoB zXND0vynp?MK5w(Omq^?=CxrmzcfM_hkiyFul&xbc6<7}iP4Q$^IZTtZX%&h7pq@gR zp*M2xVifWh)Ko1h?B2Rq%EerP0H00_c*JZ@n8_fxJhqB*50m3e*`B(+Ur-iRRbsYF zg4ULEE@4@dZk{JddeUa$yjS$Lxd4uO+W!C=Eh}2TDXJi_uEl#;L`sz=%*vg;NP!<2 z@X;_%!f{Bv#ZBA0onbw+;Hp=hN$IEplp&OWkR?JnCM;qn$MV&DGJPDfqhIMbUyi54 zg)or5gPU-sew|qahMLNtRbsxPmMwE;y8=hk;7Rys7`b0Y=My0B#+j`euYS6>0k3Tm zOnD*~a4q9c>!jLK57TEAV6M31T7oR~2-sK(?cjAjs=G*o9NKx8&DaNz!mOcEEidv9 zx3Y|J>Z~7DpdKtaSq$00h}^=N-=^bKSm}|B>`Rt5=gauhb9!5Za-D5)QtsPRsx(9r z2=s`FX!AkJNIRVn=Mr|C?K(GwK*P8De=QWX7OJexot&w5Vh9D@>|rJX?oUsSq;avK zVYB}Ls(irr@fuOoSPt7%%d+twkHMvF0Y{<*ixS5Bac2j_dTdT4#E3n0PV-8#$t1tp zW5%SQv9j@_qK{VE=~8jDq>(PztE&>D`)YC^{N(FXG^-z}6^iri_zpDGD9L@?>dozZ zb>mfK))ceRp`n73%J%euCKXGG+ra9X;K<65%CEE@U6#_U@Su_8+`J8RQ}|={H;?WQ zZTpMgeeZ;qQ_WTEouk%5#PO8sy-{?K4`NQsEpmL!K`{{Xq!*bXtKv5bow_=@Gn+z+?@;PziDk;U%ZK2uj! zt`Yq!5~d!b5H}l=44(i-zDoB;?bb&^jztl(Mx^Z{QE&0ezLDtu;=tmoXd4up5r zHGd(El_~+}c2QeP6l7E+EPYA?4TnkBo#Gsbo9Rd(l^|bA>ti6sq!4uFTg%1nvTKVF z$^~|2S**z>Lv1VbgC|yak;4I%2qB)^Sf2fK@Y9V_J~>q^4bNp3d+B;vQqyF}&IhS1 zSb|l2yAPKB5vLweg2o6U1X}mMGw`L#u=$0nB)YP*>OjUfNhBx*R1$otko+|PK18UZ zVm31oYid3{^#aTdfViReb7`ai91l^7*r=us%tpn^%$S{lodKf)R%Cm`w;OHQ@u^vW z+(nkGKeztO?jH2#(@ivTKW*x&g30ARaWWL-B*>CtHR*oX_BT=YMnn>b%y?jrHLtHN zG_F_N{^Q2z*u+O7`lMG=e$xG*;roAy#(Q|`EeYpoQsugd_&4M=_m8oCnGZ<9*&to$ zR>x(pr;U7}?oW2-^(=>sz0*;~wu_6!tBYEtY80w~APs;W1Z&h`jyT(K0R7d(T%B81 zr5?bn6@-ETK0ZGP-=?xpkk+X;vnUBF2S_m^@DUnWA7y1GXT;=427l$$>m9e7)~nTK z48CFjBgDi{7)y$`R_<&N4F`zgE@ z+c-7G&%FNA?cMjV_b$oHp>3|!xd1S1qRPwqWfYiIQxJBI<6c9VhmAHX!oVNVwfhdb z*QH|RJS8Pf2(|nBtBRiU_OCD79q+kzzFl?;IJSXN9%}8Sz(C_5%vFE{^xXV)=NMQ| zj!ZAf^lt0+S5H1r$c2dvEl?fM@4uAz!wNrBdn(|X#Fat_3ApZcGJay8+G9$-~R^_?U2@#Z)} zy6#lexno^S6@{c?49F5@2qtuC6aCkf?TmCIkngETo6x5Vi&9TqR+(lA#+(|pMOQ){ z&^QDJ^6$CpqeeYBNsNX-HPeXfq#GJIM&~yMhP`zccB);{uoy`KTEpd%SUF?74axav zez1_qD}Z*57qYhuh+-qtvtNz*eU$Tx2kv;*A5yDBx~p8NWJD>e zwXO-Zu65U)0V0)TW&+{AIxfj777U2LiH-lB%YogIxhy|s+Lag3-P$l!6-2s^bH|y6{ zFc@UclN!NS(I))wuC%Zg(wG+X{{Tw0EUo4aJfWFPqX41~Do#1;aN8xwu*wPvzunKWIiQ#3vZ@z^9{0|r07|Au5*_bZ!DMH+w%FX@wG~INTm_R z+lOs0O(|Hdmdg?AP%1``FlCQ8RVoH@yAUR4R(&zC(3h1!P3%v7_@zL^Ea&Be?@7ZdeIJ^8RRmS8RYF|wHdkSGxI5-6_l7~htz>~L*x!IXzeMb!` z%j_1XDPY0bt`)f!9i@?qI6zCFg3a=PMzt^-Vu)~HKN{Zd?JBWORfm<#{amazk%=qm zC@vYAwjhuR0cRt)j*|fDm~urRSx^Z1oACbtTE4=`g`+BjmOa$w-ghFV>ZY;@XR6h8 zuDO>ipa#d}2Jm%Nor?rQIiNNNmxnrQeI|LHovLhi$$=FVYQ;)=7RVgbu_JAck)CjT zz#BXQthBs~yt`yA3f|GaMDesLk1vZ&4Oifl(|# z0K$cmeq`xcouU0uHv+&OR=MLujW?66tw?gpReG>c5lHieRUTAaiLO+#&p;*)w=7E( z&6Mr_-A>Xw#~;RtyV3G-rRk;bGjg+3#NkOBk=9Eq8Cg4YAZ@C-WisUYuqB`-_U-Sc z0k{T>(MS~!Ns_gnNPtL%1QiMk6N-i;o|{IRNdEv(OwF~(wY+LFHqp3t(he%$$W3JD zgAX*i?o%%Z#K72%^d!c3(<2^3xf#^(?ljbeoFl2Vhw!8+sg}}fIGABxWeLSfg*cqS z0aWz*cG5E#;!^1q$}f;#?Q7eO`BTy{Y*k~av7+?`nFZb8A5x;KRz~P|Z!Sg{#Qqvj zsD7p-SkSiYt@kg?4mP*>)bP~BDUHqH zOZQZYlCH`Jm1%-0R%cRRdPKVx%qc8jb&xzYT{|SGQ4QD;e;@JArw{iBg-E++8hI;o zA37YH(`X79gU~@cFG2^yP|3*0$5f1;_tw*}c=q0%QMrQl)t}h=PdB}DJ8xs{wH`+= zyz?pI(N$^y|$I)$r)M9wHD4xycl9^c>J~XckRDLkK4Y_#=wbfG1fzE zOE$MY74s*$I+Wc*tiEtJRwP@Eh4|j49mlkA`RQWVftiNt3XS?qL6ANg?&pdb;q;kx zzZ#>Cc1GN8ZQp9uU%Ow&-plUJA1N*2Qf#nT-lhsVgNY6Y`MPX(*Pr{3+F1GV7y_@; zu+(k7zBS!@citJ@HekqG(g)?;`P#U<_sjUt?oVR#`CQJ?!oKbREpr4?-kS>yfL%!f z)rjbJ*U2BapS1b7*?(8l7T99+ALobOP?=)!ACh zkX^Q{Ln&1xS7aYFjpXmQU3}*X%bk}N6F7xM$OH@MFKeB7SF@aWfW4|i!R~k4AeKZ3 z)%nO)^%TVHOFhxYr}yuWz&I%?ukV{w_(U1L_yl-g8+yDE~KlenIm?|qf* ztlqt!Y-o9y7lY1C*_sDzGGz zmzVLLy8R0FU$OE1z0+ZjLp6q#@-Mu7(JxraDv#wKg>5e%iC+@6L_}SW(mD@^P4?HP z7)&5u*CMzOwj}c=m9UjiL4%Zkf%yI!RpemA4i&m;#Icq#Vn65Ms2LoK9u<}5hgz== zj~Xj2&l=dJAr1gcm=F2KO$ccA@2uxe>lkdie~z3qDgOYs@uDqf%F7 z`DrR3H(ZBF$McEPv9V+fc-HGSLXkc?on-IoG=E`7udBlK91>l;s%w%3WuR~~twllsW`c2{kQJdQ#) z%WCFV-w(HScj|xDyLtiKxGdhK6|bL@TA9F>fLKJ%@%=SVnSv+T^y0`Ze+ud0mPpfT z9SFDES{K~-o|U(j09jKU1)fK(%!_wEWXQ<;bH;cFlJUXl4fhkZgh{B_10 zwPl8RV8z=ojEm-6nP6ik7$47FEHbM^j~^RVUR*Kk-EBqcI@AQg zyM$GB1`Lu3)A-pFyz3xB%NG;fRKVP8PgWN%Ac>Z6A%L(V`NrTVu${W@58=>c#)z8` zSsZKe*Wp@b3Z;($S&-$F@$4qL=Or-!x}vidGn;uteg zRcUV^`N07uw8){4rTP>H7bL_q#2vM`ql#Hy>BpEQ&xL5KC6)Ceuqv$TN2pN>vY5oX z=LimBM2{Va)qYvTk`+)0xVDDIrRuV;D+;rkk6(*ZyFG5m1qA})!my0>fz-0ZlknE! zNid@&wTuJDQ}&v#mRO(6p!$^Bo-QOiq823PpzgycY{2sL-{Jw)k53puQzS|1O2MuN z^4o>SeIs>>K=1vZ=KQFID68p*dn{HSn~Vv~D+>D&AzL>801mtArbn7-JxGYytZk>; zMs*>)x+?142T}J{Ysbj}X3sjrAyE%-Bs#kFSA!$MG}AnVn-PCiHs4JwPk5|HD5fbs zSK;7lBkn%S>sYr`s;^8dLX{q#=2*lyU{Lst$oT3@mp(a-^5P~K_;UOC{AgJNY#|5B zdarKc{-y6~pHQGhtC&>0uhi|d80;6B9kh)MtBfopKdXr@z=uH$ z#Q+KjnXy!YPf68IEKQWb*jgZN2Ve)bv$~fFYCAa!E5+7WHdTywWgrP->BPm>1$PiM{X*JZdFrbt>u;=R>%ln zDJ+1rlb3;y4Jhu2yWH55ZM~PK;zdxb2Bod=r!89Kh{QHISg<6W*g^8*i;M>NN5@1? zn*xui%4{Xzv4B_}bBkohrXZCYOz*74#6}>>;X|oDHmBNTiBvZdD>~@0F0(4j zhOL**QDs#~xExo^s*gWC21`vCh3v>U8+X#|%Oh`I2C_~!u3kr}TNQ~yjNws)yaoM8 zQ4t`=$6L!)#Ty&@hSsNL@<!SdeKjWE?gPfgmw!A9y8l#;XI z1ZWQ$}^M*tKk`R}+Vrxf?6C*sH1Dd`8-4Sscd4P1JC$BKlGP z0CSgzI!}w4aaE|rju@~}im;Xl%pk$b!*-bP*FQFUEU?1SmH_eX{{SxPc~&{11Jnw= zpN&Xqq=!Qukz_?;s%@N)lobPKGr8%dgs}Z9YTm6I+Vrni^Vpp zr~rQ&(%mn&ok_U-aut0*3zt%|$0V=B41j6>0F3Is7-M6&`C7-z&&IGZQ+4B0F3-XY zS(rIn7iUxjlnVwsNM?fv$6`jR<;PhWqEGIVa89Pfja#CPs{a7ZT^9ZveWX3h+@s#T z+lpI>+c93!w^V&IVNlm{YmfkB1Smaxej4sSZMp<~U#>Kc2*<`Ch9sSBuZX>JUiRyL zh7w^Rv$xIP+2N&is9XY}6DmFf#Qy-yYwEmjEKEhT9Jqaz;hv*2>^g#JMX{u~>V8Ax z{{W`9>q*;1^keL$Y)UyJ2VA5OBz&h##UngrTGqd11^)m>K+))JRWH7N+xEY4@ouW_ z6&40U96bT^o`kd#H`Nzd=y7!@Oe(hx$6C1QU1nTIFB@7xuf$j9vyA%U74o>Q_T{r#4irx{P2QhVp+sZgplNz?zIM06UEZzOsapPf}PB z0e9O~vPS#PhM2we94W4*?1c@jdfj{Q(v5qIcGgmeioi=l8QWF>f(5H|u%rk%9goYX z@Y35GeeI>|T87hhfIQqOTJlm!2cZM=@%*)_j`+Jp5u(A0iIWCI{Q8|`$mdE* zL2^e5DP4;|N6NM1(wt;TG?*FOIMk{;jv zzjf|5Dk)p*Jf)7T86`!Rw&H_9Yztr`_exHBDl%P|HSNUP zzL0lDQlNs=tu@&hdL&lWgl1b%m2%_-C^sZ+^NBi)S$?TDDylf&pK$M?M82833ky=n zinVe&s=L;flG!|DfC5t@Sx|U^u$@OCQ=~;lZT{+eQmj30Q7tM0RvHCip;kzPIjq6zG_R!$j*%Au z1Dl)no^>@@N|N?0IFZ8L_3KcoGxCopSyPzJ6UyHfSD2o=nDc&@)X4Aqi6MC!XYFDf}o z%eQLr01YXJ$3U!OA(?wAQ$bY&`$~}YDIS{SN`-!+L}Y<6=nIf zq=y>ks@178B0@6D6)I*Is^5)GMUK2H%ISHq6l&f8U||SBTd@pJlm>MZ^E$c7M4KH|n@~7W z1&O~pZQjqJ+W9VBY6)0-Jd9StAQY7nrDTa45;PnjuoJk8fyT7T?0Jz@M+YOFzL-Oe zWJ{i|#adSuG=QK3;AeR;6!~l&zN`9qch%JjL60ZL2k+7myAt z%VH3UOA#v7+86twO@Pl*vV1fmL4cmaVf-sj4Z^q0YEA5^F#&`Aot~iuhCz2`W!>hr zBpB)r`V?4&fYgT^M>=jTtq?0~Rtjz<7PiQ_R!EdZuWu+X(NzkQ@FP=SE?dnut0syM z75)_;H>VcvAnX2hjeJa*y=Mrj9iFk18*B%lDc2#m_~|)Nw3j4+ICs(5?K@jWG*J~s za-f>n0m%$dJ%NlCQe}t=0VAx=r;VK1QM56xmBL zL2L8ZUNvVKjujKeLrO)h&srnH;)+RYg>93a!!~lk3=_B^5N-ZhopO`RF})**8PpTr zMyHJz(VaAmpiVl0eRVY=w%I5i9}fyV zQOG0=!i{h^=E77clJ^mnjWA~?C&3gRza3L`2@zPv#0ESE@T&`&n^QpI@%=_sB-G$C z6DK?Zgpub2pc`-FrsRSbNam4Pyl4owK00{TsHY2#TEwWS9$cN-h+_DL#J5aq>yDMp zoJxXL@|G8|;x9y0YlCenNks%(O!>H)tA)a$XrhX%MXp99;sZE6ShxdUO?ykCLDMl`9yKa9 z>7|Lk<6aZia~nQpn47sgFT$C#zX+ac7MfFo~|YCw@o%&b^ga;1%h*8{&vAoc$M>#gr))DuDoz~0sQ&+aK& z&MXRs1X!SCLYY@?faKeF&rX{BgvXv!kkOI?C(C|UuhX0f0b6Y~7N@s<=bc4dYduSE zxoD{ns{~~OCMY1}7@vfHT{F|VZ>!WSfJ*ZMwq0$01ou<#GDQ>5Aqc3X>s?X)Gkup8 zaroWSpT{qA*G+-igc1k`Aa`I#PlRjlZ`rTgjDDGq9#%>Nk|Gxx+T6K)weknpXmD z&YAVsu+%=CyG4Dh`i1N?H$t3gk0*|74q|fu04$T!$K|%5V`)E8cp5BoDyUO>5n}pn ziONU$qyAnRu4tJ>&8eGKJ|KK`6+-+gROu@Vxr~It1oYD}sa3J9(w{GxKi96OTcv9e z=J1dC>nL&|b+F?~>r|V@V>UICu~RBw#CRY0>napVw!#4FI()X#BmUs=rdnlXD`R_6 z6eOT0sT=rz!%tH6tbfR!!~4G9#_jxB1?JixA8cG^@a_!InU z_oPUvqaWt3Q+wmLI#+!`LN#{Hc;f65SXnE%$^hzijc{3ZL|bqcuB1fFcidR(R1a~X z8CtumE{@E$2326b3$gzI4KFE)(N;~tTU|S;s@1=_zig4#?(f;^W#$IYmqL{*a#$f= zv?4POIsqHUjOsgLdo_Rw_Mh=;8^{rYo9kN2{1&aPTdQi{332JVknBLjq`o0a^)NR1 z#*)c-8gb|XBW@SvZrWaN?iw1L6&5%-tK7e)AQS?$Q(^%*FR28B5ju7m@`MZ_E9zTI z-qf*<6$OAd6^d|d2-tZGp)5+948GNqUO=(JL5P#M=yjRd6Z#RPYNfZ_?d`YWQJMy5 zgMutgCql6n*JVrzcEOfmLgYbWq&C3(4yJOMV)W)#4o5!99B5H&c;1v1v5=*m7!clU z*%ivB6^S`Rw&&rfO*6DAvYW+iJSdz6>Pzi=Qm$t&fXxQh7Sme-S(GYgSYpds41j5p zOh=Bj4m;xn0^XAg_tjQcobTaoMy4FT6MBNsrAoQ4(V;qKi^ej)pH`8&Ql8Fxh z4JApAHE8avay6|-%?e=zf`csGRf!pNI*0^cypv4Ahtq%j#-Ha-lZv>a;_5~vGb0kL z$}xyyNn$shw0~JlXVw>BG_?VIj0xmvC*rcRv?Cib4h29GOp7Zkyns{!WWj0hjbvV> zy+q;9!i_Ad>tT9~_nyaB0L(x$zbG6lsgI{`tNMEyz!>0s>=z^Td3VzhWbvCdZS@U!3d#fphTfn9$|?;ci2z9heHB0%QOj~sG}n!2APgaG0k?8Bm!eqSm*?#ZX1_~tZ=BT(gH&EchRl~Y~%6zp0tBBR3kfnoO4rInk#SqNGj9O>rHq}p5(;(x-M!-hA zj-!Qi*x%S9hYFtW%D_pSw9K4swtT|7HJ`tq4mNO<+-O7BUg%CBAj$~7gH*X5B zjk)2Fv0+h(a{#aE7HkgvBGu38KfUSWIS|&cE zfS^jT^uSrmqz|5wouhf!s{^zD0Os)j06Nofc|>l?$3HR-Tzq1|?U_rM{-~ zZ3nN!YBS1V#c2>Jl#m7a6V8a}axzzDnp;|EsBL1dC9ojE;z=*%BuNF)L=&))s+09N zNoy~tWFfZSUK}a1Vhe4+Os3k`m>N|X#X)O!E&u_raprQS#A}Ub<^Ti2b*m93@(5ee zcClNM3AHCx1%r^g7A@2rh&BKUvjQ=1{6?h&sSC5Csbbf#<7zSg0B}(gLaWZaRW55# zuq)cs2EQpX8Qjjuz<>^^vUBCi%5;w54;%MWFk?El;zg+0rpl7A)rHC!tgC{sNHw^S zjLgAzl0X`)19CKr@~T@3cNH8Zw0J(-WGzzhizcYUWC0Ar@ zGDQ!N0|G-x9Y)7Y%O*lc>2W7p_f}Mfjyp1&2~%7x)*OeNoK{s(#19DrRpIwtG6Ode zrz&|qLE%<6v;C*e_djr>hr+4sw#TdzRAt9N;1)lqsUxV{rn4UcSzIn5c1{*QooVu8 z#zP|;5I-8~N80aa_U~r)jy+f}?yw%U&02!ix~XN#N%A<`Uc2r7h?to1Nj^183 zuP^HTLoY6JyT3?Ywp+6MqOLMkQFT?>Hai*IlO}cOP-eP5`w%-h*DEeNdWTU~S8w+P zS11I^fw>Sw{7ISLRkeEn0-Kk zcKH7Qj=vuvl&py^-R&u{U*TV<__&Q6MZ)MSX}^k}ZMnYs_Z409nzlC%yOpXI1Bt=u zY>h=q2MP}R?XRYPWIdRjV>oq8h?#cFw$}2HJVozbGyAjd=(>IbU}G|gb-!;4?*9O@ zJ-x^5{kMx!RJEGvL}efJs8x@K!(X7CI|>{qw#J|mE#YeTvp*(GypubzHv+6AyUIZd z2mmPGa~lr2dp|et-Jt)EMP1+ejQMA-=<@I>S)N;wjZd$CZ{81HX*S z{{YWfSsW_p7?XN%3?212zql!Wbn2E+NhSdse_cOYsE6FH);qtn`SswfWeV2UAkNDW zJ~DRv^-Pe2D2iJTwoo$D=Lh-LEA~>vc#UOM&uq8xs4fABCC1}T0mw&NUgi!fMJS<`S*#!eOE-ayv^jF$E)yHu)EW;84J!OE zPNmv0d}_!rC>cb82t$ou2nVLH2Ksf4xT^jFuzbVDg`ZoA-ME~lcJxJto81^ACPfqi z?G@O#!Gb)ZW2w{l)5n&vpgwg5{ncC4&@8^7<9-~f=i^c@;!x`GZIZ5n8B~TSwpKtY z1&J{uV07ESfB5yJ-2$Lt#M28npv;l$05TK*0Jc;R2;Ab`4un*xvvH=N{@D1})udOB z5nGIpQVXFdn1eBj?LGi>of)7_gpzG)Nw}XHR_a?~EwPH?z+$0J&@z32Z@>*h)`}?h zEzRpxlW{!ZYcAiXT_tv_6JoFF%&`M74E%Hv5skN!4fU+3=W*rk=lFcVWulAE}$yg&Cb1}v~n8N7Y|Kwu0RY4Wgrm_0|F!gAavBHNS7yU zMBI%}I@y--7_2OL)YGx{`su8esZmwEQ|drmnpN`Hmq(EU!GSV0j~3Hl&BCE0`h*)= zzz?#I*~dfxWRLXNs{_nHR7e{u{{Z%x0Q~etjLPdACqh6Z@~DGjdic_$I|hMTNv;6R z_Fx$Rg5Tu=1jNp)Tr?^nL2?h6^4rY#@SwU4-lsatjZ(HOa!AYuSOq}yF@_ttG7Nk+ z(z$kI-v+D?-OSblYN`Fv%l`mS?x|XXXP}QJ?61&e3Yu-3URfXT_QnNmwC+Q3rNIT4Lsyx#cI9N*;m~cFgja=giL?>_n zQ6t9MprWQ=p~;1QvKp{h87zw`N0j&p)GSH|VoMr0U(;viwy%8<6xPh9rw12UKsVa5 z1|!Nu5_)uvDK1h%+X}Hg)h7Kr0nI_DHdk2-aP+}dUo6%JBtR+>8HmON=owjFlORvbPp65-G0S+>T4p9ptqBaOr;l)>E;<;u z+}`x!x>~xz)V3mqw%Cb`5?Npk!?wytS?R1Xx2uA3P>xGurTINNgH?_v`OHS6*(~6JbVvtjcFTlf@?CBsV4!DhQQ7O$I59B^w~A6 zgVagZ@ukOhl6{L}JcE`00LAIgL3>SQXtB~V$gns9U?g=U#NF zR)xzK7=Y8))qb)6yjg1jntHFG-@=Pl?)E5;? z!2=~wcW?00`3|v2uNJ1n8nalYT>unGY8WktHfJG7QV0y7i3F%P97Im~s`{LWi^f%b z20V4Y@T07btF?f=9pZ488O6!4g)-SPyBt=-CtzX-@X@g`5lEe#yt?;OJhiDe5}(;q zR%=@`HJFkK9;k(^KJY8Ck6xf?+48~YdV;~0vWW4xUXe%{G?QwzrI_D&vc~~hT%xIw z2Vf)Rp~mMRAd6<=yy(%y9d3Bk=i6O_o8LLKcFr#x+V|Q#z%WEb-zXrEq;>er_0rux z>OQsOL`HET4aUP=Eku@hu~PDz05q_0!2K!x<`gicPSb0><{MPqh2B2t_Un2#{NDo)C1|%zRl? zUh2zBO$w@mesyB-yW(B|XI3Nz*uaAW=c}kQmu9v!lZOY&E-FHos{w%!AW1!T{IzKu zo6tDmMQmQ$@vq9avi-5#{papp7ig_{7ka$DI~Xt#bAlKz)JY-_<2wAF_K!lz>)mcV zEMm&hKPvrH>%CtWqI5=@K%zi|>&CxD-^TB?d@p5tYqwWbI69?7hega6s3EFlQHnt zO2iSg)LB)&VNO!n+>^NJBjXw(8=xnRYtxUgQ?X&NFv!3Y1~=Sv)UQbmz}#N+g@6cw z)@NI$VP|4@UXs@7ic}r9-=;q;Lt@_c){`v$rrm9NP-;|J6e8|T4LDj@6=@woi2U`H z7_A^CO-QFPAZvC!suD9RZA})H7_gZBqfZFXY6i3#$PWNNrl(m-@~U2668ar{wxiZV zc*yDb=o2Ez9EjrUw}mwYg5RC%n4fz6xZED=&p|_#^<1lL46N=x5Um4VF`Kw#$rl9< zKpmRbRnzj7qYA?03s#bQpSA(XW?ah^BnB!0STP$2bJKqfAw1Cp`e#wALFS@ie3%qZM%(+Wh~rkviD!I_?`2HE~5nH&@5`$1x&~+!7QKqlFUhBboWn; z@vNZ4tJAdBbPH{Xp-03znS=d9(+w8 ziC4@4zkg*^W3tHrM;CP`jZHZ`Pzo?1sw*vtQ;1`_7xcpwAb*>#mBN$jn5zT7aTh)` zzyU>ug0UQ7V8Ls}P!gD{2=Q#3NJWtV{B+!r?n57SsU;VZ$F{K)g(jy5)5V}QZ-_P! z?yN$Dn$(Tt?;56#Nh8Q;Vo+EqxjZdRdU1|Ikh6+1a*RO>lB=mk69J)zRrpLm8nA(G zg{4(fepRndK0s0p#sKB$vO3flwPt-npaoV|*k#l3((+5S>2PUBSV@r^dof|o+g_%H^1|7@2{xg*U4wGho})$myDlhUnpW^ze67# z42Jr7CKvTU7CiazrDjzY+9~T%=%9r~qyUeQCm_HBBWzr@`*`ZZ6bFS`U0=R~OO7!G z2_{@N2%sN00?#y$2%WTCL|w16cGOMnOI5%&Ff1P%59-Z(DzBDN#_|B)NA=b;G04P5 zMTivuZfs~rxqFozkArP>mCDo=h71060aZyEAsYgJKNFxVxY6kVEVk@FWn&9+sxywH z^KAXevm#`ow1)+^2v7Mk+ju0-v{x0O^(SVF5fS1AQ%EBnE2&iLSHskQ>1D8kFJMPtws)20i1lrgh`3 zV$^04@l%p3ImJ|}^+{NdGcI=@_v#@5Qdl30N=A)(eWI!>~rL|4pjAy-kq%AqnD{dfUKm3 zsGKB~kDTc?pDGB@WDX1h_5sX&wA{8HRke?0BF~CgLsn}AMj!UbF2ND9A_VU-yp1>2 z@_K?nY-WXFU^FUk%J=WB;>M>YG-2c*-ux@oKq^%%w$@3qv8|?0>blFS zU7nX^TS={u7QyTVLlPw6x$(a?k1XnH_G9Kz$S^MDz!i8foTxn0hlU8 zDPts+*4<~x19AmeMz-f_F}z-Q^lRFesIrSNe zh8e1$J~k@CBc6l>f+NK1N|}iyir@@zy`t5+Eyu3gxiz7!+PWB%iusQykS-YXnuJ8{ zx-ALf2Jol9u&b%2`Q} zy_H6r8yu8Z#jyXgn)<{h{oR&Fs!1@wnsnT;~aAFPz~?^((9d zuCP9el!$y6d!d)PuYGvX0rqW?L%@NWvaH zMrUB9U_ttusOU9s)6mcA20n1wcyp?80=O!=Y4}#Dcdxlancgs4N9pE|UQ!;#bztSZ zN)yoaBV8k7Wkib6swe^qhPrQgH0w%cw%sW4gcB8R&(ZJ$V zl^|7BMS%llQMnV>Uvgqa=)|Z#K%iI2EapO8zG6wE_AynF9Y41pYcix|48ptfa$15!9F;iPRZ^8dg`R(fAmhZ8%mMTp8SIb*gfgF<>Eg`5%Yl zsi6UZJS!>2ZSWuX{Pfbgw+h{21ne~`-6??>k@6>Ttf3iW2E^-2)}fjVfd_H_0E4Ym z9hOztnzcVwn2v%3>T4T6%S$pceAKK)!={~#6+jOfW+_on0(GplDpb>|R0PX>iTttf zKi64VS-j$40)7Xf-+vL|tgNj?`}ghDds~>P0`%X?N`?ex(l!K>@zM@dByQt!jRiq@ymOMdt0P~Y%!vdx zO*?`Lj7Z<6r7SNVD3URGf6kW?!ou!+)CSHl1Y)dmh7ix?$c>h;3YeKCyuTeq3m{p! z6Zg{l8uk)maVr9 zTN2g~31PGnL>SV`6yZUXZEklWw;Kr$lUq=ysjIcDVk@i@j$T(I57I(diOTP*tccX4 zS#kD~Jk7&VM0Q=a?Wl03-rL=7<Cq_hReD-2FVl0<B@j601R%X>`3@y@$Eg&7>$h;43IbURDZBhfu6TFd*zEckt1dEwRvpqK0p_`u()T zgci8rYCro0vAsaC<${WAB&dvr#Ho|H8i>nu{aIG=4NrLRq=Zf%b+o2E3|An;l`3|UBp#ZU zXpa^(gnW!_o&NyC<4}r4RUq-bG~{q=0<{Lf#G??m|@$#K(!@%RIn-!kS7p~A8eJV*1%%|XES=F+W6e7ZQM5%J4u;@PXPAaU6 zxc>ldupD}VIcEh6{z8h*%Op-{OE`2~Y=ykv0NJ>F_jucj|+h-=MoSL>mp>YgDW<5-n zM21j41II+flPIxBho(Uy*ZHmdXmy7>m&fg>u1X_%Wo-RLQ@uOe^^fY4J; z)!QE1O|4L9e5=YN5C@T< zYXZxCV=TJ=ZLEB?o%IK{pGqt+ z;H2%d5LuJzApr5{G_O*UGm-Sb0X>GiFY%*#G5-MY>Uq**jOB3&TGUCfyQv?kIAM?0 zyKV>(@zkb&UKJ3_YYn#V9BtcBWo6KfXoG(%2XF5`Ph;Xe0sa-GVDPM5&=j)V!byrr`~C^1TY{w7C|8&(g6Pe94c;wq%k@GqpGD>qARh!d@jvcypR>I2^gJ}IuRi7t|V=5n| zNMY$#tnTVC^BXq_W3-L@pbb*x2K9`E_n|f(H2hGJc~8%6YZT)%I;#X}Rwa~x`A8x` zGqUwD8*6Z%F^!GvE>pX<{57qsh8|uN?YPDYtT6#s!z6(SS0YuXz`^-w63r{0)f*!R z%g)1>3UeIn2X>dI6>(a%M6n<+W?6CSI0t>?or&soiZT^_L~`QXE%(&X7DKhTQg&FcF49 zvJ!@T=1|D~*!i6S^OG%%_u_5Cvro#WYLWVDU3B_XHMd=8qNEe%wUnIEP-Y<%nE7fz zfNWI0oI7-=7g4D-Z2M2`r$4x-8}|)w6N_z)WvuC!Ac+OZ4GT6NhD;8+CLc%5k`yx& z9vr6j{{Y9f)V4-qMwe5mt*-XJx4UPyc!^&Iy3pdwXC#2OIUp#xu|8!`B0BG`%ckJt zVaD+X+?LST{gusS87BnW%|-i%dQL4$l`w+7rH_}IwZ;hzuqB!Z+oqq1(;TER8^}N> zPqv~I#|o?HN`YFT_iyfca5%i6m$G_PJwcYxOITo>K;3N1$LFhDTs*A2z}Vn{VsFFo zs!pSq9vny1Hhnwz)|qg9@pD<~yR%uyw#z=KC|rV$PV5Q-BWPo;pU~K=Ov{_=QJYY@Zff|c$f2*VE#5`R4kJc<1orJPxe!_)6k#P@t^!YSjJ?L&5}!?1hB ziq=xl?OF1&mvTO2l1oQ~jY=4z%8%*+8?SGTG!c~RS7&1Pk;r9YfC90QN7O*uexpN? z+%=>YBZoaIETo+(=?T+j0YK9Vf;<6QEAlUrw@xo8XXFp^vNK`DqJVO3GCZY8oTQ z;}A&sYhYa3vX@l&?Ge;<(N%WVsa;C4mlb%2{J{SJ*GKeEZEn=CkN_q~@%ZS7n=h?p zDvRQFj|ll_mAYLwW!iUH_(b^YR;8K(%uV>y(5cicACJrM8k!+?wP+`!=e_A=7>~z) z@Y8X}upMi5_4OKBv(YFHyBlpd!Brb@$HQSG@Z6ncMwYMWU&C2hS!*jQviqOeM|kWU zf$8OM9D0aAfL26;V8>1M&3lgwWW)-KkSfCz`c{55%%8YDhtlM7m1JDJjR5Uy`0B_rIf6kM2+SaJ&DyApW z6-toE#751GySpepXP&zPJat`VpD4x9Fgxgy+-?|wQ25^ zWSnEjVUw4vGx~0(7}!-_+`a_#9y-aOmU-3;x3ptbAaS<=@u@<-i6@QftL~n}<)(J= z*xB`COIXCSDS=pFI8-tcW_S5%Co_FfGJJ=JbxDQo+(D|hzjiKaGY8}0XBB{BYJ^g% z`36F#e^HtgjX3}!Pf>Jb{OLUC{b`n4+q#(cZe88Klq|XIG+siyjnc(}5nyGBAQDMB z$ygc75p+De`P2!Bt^|j9AXlI%}V7youiS1_gctwxj8K-doyQ@T@jiNPeJc*Ksk}kpkvEyn4xUU(q`Gu$z{gs_+ zWj9*2yfMaDKeqn% zq0Zv3Gmm8!aya(@)bgtJ0QES`Kmx(#a5mdTiX5mtLoodbRH|#kwuY~@NbRKQ;c-*X zb3Is91<_QyVhO}65F7O1&xFRUpviH9>m7u#L<0Alaqgu(3+sB0cTaM0xOH2LRbr~B zg9+*t8P=vH*8{l#b@^!c@*Gx)-^^cWW5UGhe#2V&bK6wcdhQ&q?`^j;H9SB<`eYrY zKp=w->Q3TzGooe8(*p3RGH$lp^6kB6)1KN7M{lf@sVa=(##+F&El|T3^GQ-i_JgtO zrD1u|%gGrA*0uinY7BF<>&~a#el=9rRbfI+EF0=kX~@{HLJ~}Ej7W`CvSdM-b6}Ed z#;tLpj!2l1tY+Rdmm`S_Q59|Kxy=q45iFK4c4uJQEPS+%MpTO$F49>gFS`A@TGpq; zNhD>ISk@`VHXvfHTSbEv3$wFHlOakmU>E1%q_Z<|vLAf0kmLXj_*;)Ibu4%_I@We@ zU0IZ?SSdj5E}@y3AmpKU2pVJJHD8^R9A-7g2GRL|zca+&zM4pozovCPwe?(cXQ^NI zkkJaTMQWh}644}1m`m(zc%+Nj- zJov~Eep(JX&hnyTk0L44p9@~~CUrq}7aS>n+g$#dS6f!*LMy|VpD|ZM5-~7*2p=6E zB6;!SRe*$>Xz#th3Y2jVRZE-Shj6TF;W9irp?ocODxkw4O~4;WaR7V>((5xw-mJpp z^6aZA;S->R&*=^TY4_8G;bUBSDs0IeBPdlXlQu^zUby&>N5JW543SDCCh9Mz!ql;F zWmn|2<&>wAwgSd23PP$3<7%QO5RUzxxwb8#gF&+ehPHEd&gm85B5Q)J0Yz zKCr6*`Je&R&a|$Cu=!Z6w{}qsXmyPFYcWKVU@metDUyj^RWg=j$IQ&0GuC$2ON^%! z9pJi-7UOPz8YQePPAcOY73>PnVF0VMA2nm43%nIw%3_fikdS1bA*EM1!TUSkcpKJ@n&kX&HKiF-TBrZgqQmTkZF0?S(JC zk$vdkmv)t{@x@94SOLHF@zw4JPfQcJ$afqxw;em`ow6K*V`{iKtNU>NQG$Sp1c*>o z%VR8~@!M9JOEcm^x)nf0fVX|NZz8M2qoQ_pvWU;a8#(6hyeZ?hAc#@ z2Rm)Uzq++lZ@+!-UvJ}C#-i_2k!cm!gLV~y-%LkbXTxn;Kq2~Y#@|)ATf+5On#2%y z@H{I(zT|t4k=?l?jPA@Op5{sPnTwoI9JXZ;K!_k~x9M3e3kRJ?rgYP^*A3RPeObz0 z^;NCb)rdyK7KI5aLJSBF0}`7n7(XALu5xkW^`p|koHC#4w-MdOs3enRg|B)y!1o6$ ziEovfC386mwV_=>4H*o7x@XO{`l{*}c`-=B2*GmK93Y%hCN`|ZDWpVF65&6Ev+A`bD?h#His8ip#@02@~H<-)r+?M?vT z@Hq7W0Vx7;>PFK(8v(Cn#6$Pf^#W z<)pGCV4KIySxgC%N$O<&XI1MnmH_iLl%;m#0R19-H{VVJZAE1eN1mswM&BJ3Njz&Q zO-i*-6+(y|CUpHumPHLS^43shc0e}MrL3@!1a#~F0Isz__2j1sSV8k3PW~WkYpVg@ zS?kH&N}vSq@c#hIPb_Mtnl|7FeIqz zI_oPd-DPDm=5fy}kI16Htd`d30qG1nk@;#8C#f4p&6JO{T8gr`u;pC-`?Kv^c%1%V z$91~K*kUnl_9NtVu^T5axr&kb+svKDiT0SY%e&-RT~ zPmCmw^?pIZ)p(A|fQ}}q{^h{W%)?{m0oF3|^Y3gjSM6`v)XOJfisbzSM? z0vk(;)9|EQh|A`tNl>PCoQnD4W&n^KrMszP4)Yv-ltHUweCbyT4)XUfK5-5jdva-uz3h^*PN1{@&MR zRN-A=aRSB=z!L*b;rn~2WF(J`G;&(R00r%>@7Yz7WbKfwoH?gj5$*6N{+X~?YKMU|BygDEOO>$Z}X5$c%aQyUElC!K9pNr$Ny$a|`< zP8WRamRR4kWH1GwEcA^c!gN=M5jF+$dA086<3)khT<+#9JZkptKXUu0xH~s( z?R>iXWwmzx9~*_kzN!+ZTB~>R*yvfArR16M8v(YXlQvZN$iR);b+D#_xcT|;)0IOX zn_7Ytskfx0`AW*lsog^kpB+aU1o|IdOZtj?XibqSu|>77ZWJ$@-KgUbH&yjI<+e2N4%C$Nk9&+pisUziyQy6zBWD+o zC6=x_dd+4P(inLJBme->)(4JuNedOQuqTIYs1nAg1*!qvy~*8srM{zD;IbU84gqM{ zVFU`^7B+#V5D43P@u1Xo`1d$#oU;cnIW&S?Lu1q^Vg~;J9TM3Mqg!G8KPuB)DLvGi zaMjQeKBB6Y2QZA_1oapX{l%GB*dDqpg1|T=GOdLyvbkUn3YPZ1%y{(IWul<=D^!9M zwPjE!IBpQ!W6T7DwyMum$%-kqdF50LqSxnYy2nM{7m=sdaBTvRUUpX`fR8M{*ot>p zKaQ&M=3MEQ>qEmTTbToZJSx#5NR^d1HyX;`IA^T_xyj1`vl{DGE1vNFVx)!e(-~;& zrYu<%pgcu^KW$1ioiSP4fc`a`P)$y6se%C5r9n);fHTo!$Kx92rC8<2NLu@po70de z3A>r5)h%Uyn~@?IGr(YemBsw*=@4L%zWp?t046QW8+-*YilMzh^HbXEp@OQE1_)JO zsX+rKlM;66;ie=Zo9dtYL2dE17gjbLO*j;b4c1mc1o~@S1|%XV1%V?RzCRsD8!jl^ zl(=G~aj3pCTJn6iq*APH&jw~CMVpeS0O=40<3l*)N$R;`PYarm;tw&xvOHu*pde4N8gWcIP+8LODJaIYd=ZLScXF5u~I_f;sb3UNHSw@hT2xw z()RDF{&j%kuu{fsu(1kCkz$pCe2^5t8y=u;bPR!Kzc z!NKen_;8_&#fkRhcGy*o+J4>nmH93%U5+@FR0E)_$Zs(5>85cyG$|u)4Yh&3y!*Q- z85y^KPCB!@N4I--Zmy$O5~-*3)LB{*f%5YLqZVP2-0!B-(8gatk09ZGKW!-^G@m)) zQw}E>H=;s?uBcxq0EH8<0yO?CEttyK-z})cqNbj0Bn+R zkIPwME8aitgRK^p<#TbSz=94hlI1>JVW(jmX!AQqj&|El6``$Ee(v{A8@F)ERbYGE zx{|iyPCyXyK9Gb&c^#`Mq1nsY!yRQJj#! z1wcqT^&EURj~uB3*6$ogG2(e1RmRKukLthAKrO4&4q)!G~w%EhJ@#Z{!?kL%iEss*{RWHWTJtLV|>^l*-I%Q$mZ9T}$4> ziSDJGA#2Bdw67PRXByc?1(El4YXV6Q$_XcD#Y{$~r+Xl73T`OT<;eo*M$Zbe`wzQb zmZY`LF=Yx1WEgd2e-n8V+ zg4C^_Nf}^%Jvx44Ly&-m{A+Xu@^d0jPmf-^>aSfxaJ^+WVn=~LAC`s;SFp9~E8t{& z{u82BQ3dEf0j#X0gTMgq^PL$;wzZVzy9k9n3EY#@Z=RnFq}UO9%6(q)M&oXpm1&BP zn$$*C33QQk|VCNvX%vtW&J_dAtn#QY4~d^E6-TW6$5xP;jJDW zm6bvL-uCT$x_^AN79=vf37;;^I>?>ATH}4qg%gC35x1G|?>)6=jVRf)wznMXLOtEs zLUJ8S#cUcz>;XMydK2*Q*A13}Evl`1-<@>OGL+*~7q~k>q>;H$UH}F}pR31s@%U*w zY!@QbeJTsd;F2H9i5r13c3r{nJA5WI+Oq!udj4n9-JSO3PN|Pe?X^UC+*hnlIRG2X z7D;AsLvpYMx0Hmx?k>+K3W;+I-mf-eb}9&z0!^FlTdv!aBcKCm(%B>s1blm|C~@Q7t!gWReCK&0Sb2+e^wtOArAT0Gz}~X0 zFJgV=`;YePlrQ$Dxci3%R4p&Ud#vPfP9{Q{EO(-!7Q>4u1QR4k8YDTHSTYGQODu=5 zkUlo7`g}=|y>YKAef4Aeqwe3dzVM>m_d~PM#P?!VM-4sC+UjmEBKqm9g|m=&~=jkwSv#EDYTw$!=Mnxs9)_Q!zd*7o0Z;`i<) zm5xMKQoeT@qNg>si+w!JA$q3d7>%_S$Bsyt!u+(c)KRvM>ZUnf#qAfpt#=0tlP^u{ z4_$zb*~#+6k?`E@C4&zncvtnYTYB%r=&e!dxok4Oy(xSc7+P?8*1?ctbV#>)=5JUVV!!r=1Y$Qq3 z{{W{Iq5u)d_IMstl)_^uBX-?;ZBW}g2YE(yc6_SVv{%Ix zf%?oKvA`%(3lY;*9b>2%S6~_|Tw9-YH-QXtOjUrk-hT=*cvd3|YgWXTQg_Kg##tmE zq9^g!K9aUX!!>RVtU&z5UqmsW^0OxMuPf36jMi9dS}k8i8L70f0YX~2t!hSjGy^<49$luORz9OD#v}bhYD!& zLr1#H#@EwI!z?zjWw(tc{7YXnO59{jkQk^kXLy-lJg_`9Uo=t)i3&mRqDLe~_A5+z z92fGl@yr5%uy__)Pf`HMYXhkg0n&5gOCuu-k2bu1`Z&o*{I&+Zwwr+sR~=C-=xlXh zj1i##5(Z6JB4F>MyiS0l1GDa|-Vd9F6ySE-IhOipfsO%)$0A=DAz%oW2ds@`5D6r- zdsTqGwy4dK=_cZCFV2r~{jZZNM~ixBz(Cusws4}i>S~dO%Q?gVkSrjM8?3x^%c}wB6TEb{40N4!%!&CZ}vxQ;#gVh7Zq?@)FAocSVE}) z4x{9BWs4RzWhzPBZEhBz$&nmzz z!x_|IS+Ub$Hhz0_2kh>wr>fRF6IGRtOhD7s#|rLjDm;EN+z#q( zUn0&sq5_B03d;QsATcK(VB$vY6QnX#M28xC4dagh7qs`&aO4MKfCbZ*l{@Ty;k$?E z&FpFcU_dBXC}g{iW|WD_(X7 zX0$Ze@X*3)0tgJ?PhF=}S@HR{kz;zjNmR-LFyc5G{fsGu-@{}70H^iWyFAFqR9^K} z7xxGF5{Jt7t2v!8}tx+1h ziwD2~x99k2m2mth85{*XshcpfaD22!c9;p;qh7YO=E^LWbHKr^i`YPOCzSL5{Px;6D$Bva*r6RZ5uZNp8FJC&%Zl zH_Ch~RT=je8lHb|zmCZ)^|(Sr!953EQRc-Q*ycGtQ*XDGPBH_6Yeqf$?e?PU>hy?k zNG-VlDS~(LBuC+|IOdjihs&3`k-lsU$z&_8pCIrI)J7iAr@Y29G)n&HgY(LJ4P_B0g03aZ-l$BlD2;HRg zG4qMkn(1$il**7xPkp|qVv zGP91v!%2y7%9xKZjilv?`R+7r?+EnS5be_c0G|rWTS^+-Ckap9W zcC~>c@~ot})pJ*n?Q@IK1cF<3ZM^0kn31@MJ7|*`MV3McBKm$FHIzEUA+kHWdWXb- z0}KQmgD@Zsq{gdd(;-~&0u;@tUsyxo?NB`u#YJWUY&}4;-(k@ zS+^dkX2bOXA{Z1>c9XmnKQJd&L^LY0%8jvy*m+;$TPz5$<4Ya|4yCUFnbc;_T1(dZ zf@7dK=m{Kz`jQXSZ?eOM4{U9uoGB}NM;!V@(1~Ly^b^{9mTkZMN9OM|+fOC@zb!OA-r|{PamNA&mo@5JmLkTQklL zt|=;gp~WuCY8BX$ffO4Vcg1I7NfAC8U7k#vByla4!(J!-X@Qe1z7%VZ*|Bh)z&^!b7E#B2bK$B5N>U`rDTqF?rJ za(jNy^QID2RSIu<&-SD)Z*%Yq^ywA#F8?YoJcr$d_mP(J@CV~{{Ym#-$zJTkZvtbz^^ za)=^vCwZQobSWegF;wE}RCtjlPQ=0*^LaQhMX!E;rP}(xprHzURd3948LS z+@tlw$ERTPC3~q1puv&Xq1BrFo8|ey(vXwL+fNc}RXxGod4129$g;xNv$~~)iA2fr zG8m8+2hq^{v?gYimNw?6Sy*?H>_kc|{2QJm{vlV$cjV4RpNy9f%z%VZ}YNC$rzhy?4qfa2m? zcxDFN1^(T5*AXnkDO9EIZN`N?Lc$`YW_r}-&d7%hhAPqlW0Cnsj;_Mu%^lPcuR0s4 zjrKPh4{bL2iDhICO;|6OIjJQ6Cf;NDcn#SYHZEfS(QK5Hn zZ~CG8KV%vG6id5U~fA~8bHG;h~L|kte9c8#BE|& z>CZA_NTQW=0O8oWq=#1g0v#DnE0RC##*v~4EV3=NIP zI(ivaIT?-YPL=zvI`yxoUei*C`-A*)pARnKRs3CxmMfAQ?w6C6LWgX z_e&&78+4?DeLL$b%`y#*?Rv`2zpZ~AY@6}|vY$@29>Ud>;Qs*3f5d3Ds(z=+Bg7Bz z(c$814;YYG)7r=m2{1SR0D&4k2)TspT}3}v$IL!NACT!9I?QxS3vi{_?j)XdE8urQ zf}_SK5!Zcy2d9YDf=EPupDKpIMmYpo#w8dwPz(@YA0NwE%Cs&T+^Q>L07)awFk}x7 zpWrkz#-~hPqPvMB#O=1VTcmZBl=a*o@XKf)9phP9L#(wyB#Mv~_0aNL(u@(Q zBCrdPJ8CoCdAJ6KBM?LmpN{+OsyXH!k>8-EgbEGrYKixU50Bj{zmS1i>ZdKn;kpI@ z%n~5$kIq3oYR53tDQIUw2_~;7Ol*ly)fb8$5!(P<@=60~8u?j&aB`T~C z{vAfzF2R-Mbq8+0l}N3{MEPB}5*aW!us#5oA*7EL+xqB7Lv5i*(@KdubQA{u2?gvv zY?#15P?nD@b;O+vtjufxvFAf1`hfoc@mo{adnkMG%}!KEZOdc4s06WMd|XUNj<@N@ z^+o0<)b#DA%jK+=LK5~Dq1SN3wT)$XA+Qwj@`X?tgqe}C1EiDTt@$1R%5`FDWDSA2 znq_|%5)@L*lM7)mYa{B!1Gtm<=`@KwQx(27u%L==c+HS(_hQ(*A1G0T5MRLeY z5($z3>-lO~5XCW4rq)|lsqY(%h{(!|w$+g#fSK5I#ElpxJ~53Y)H2*#kH)u4+r=y_ zZlRwqIgEiIC{y9Sgp*9n-lG;)^hP}7MLxFfC(q^(WHhoTd>?Oz}8Yv#d|`n<%Xmk&Vz?Q;*wtpG*LJ_`YW!5J2-R5kDQY%)}(*APNz8Y2B@F zRT}ZNA$JsJ;Ve^>SBO0ii*$w&(mI_fm-Nia?Q<)RBaix4m9JhW8IiwIOvd2}#Z*L$ zc2W4~YXe5XiPMn&H9B%CM)H;+1j85;{XiZ%Q>bL*Aln-iPQgb=LoLZSrK;j1rHaBz zf81mAg%N;Q+<;(fQ8|qYjc-g|z8p*%yp%Vn;0c~V`1rM%lyIP8tN|a4c+dQ`v5elN@wsCXR>F(S(EzCmF_ITW8SmRT_0>B>`Fjr+Oq*c=mvu)r;h@| zBH0Anf#tw)q9la{fEK1TGpd&eP$?|MumRkV7?#>*ele%=v*1X`vNrR3{{RYYULu;3 z9E$z)YrB!GhR0fR5Pd=ZIZ(c8jrQ4$ADP>K>#CX58xzKzpsu(yb?Ky-0CcRZNBs0D z{Lz*_GL0)MeSD1ayLS(FC#% z1lCjfdG^*6OB1-6_@9SErXi7-9mcjbtech`kVl)T`2PUoeH!Ajuxo=U5O*5N%1EIK ztv^<>vax0-b|lCCKj*Bhp#1xSgN%q1;nem20EUsCLP-v8qPC#!9wMu6aQ81pyCzG+ zF=^Z=+|T57%ylft)k=Zos{_WhcfEbg;(L4CTz)?~^j;4#(?zDjKle(7Fi25}GdklA zbVDs+VXL3Qt>eR4ATFZKM!nJ6c>IdTGmIAQH!`th4v=d#xXnl+Pl=5iszQj@MFWQc z-ALX@yo8-9kMA9w(6eB`36engKI95QirS9TdYJ(6sLk9b zQnDGP%9rx}Z6Z88sDd>tnexD2MF5G9-CEka3R}oc{xm0(+m7U^*b|VSDQ$}#j>A%Q zY4OhMu{f4v&6wSCnR>vWVld%v7(+6&XA9J>j14N=JR5Kfpy@#@} zYIUZoO1L8vih|O^tQaG1yPZ|^=Pv+xSo-8O$Hs}ZX&2+GDtQ73X+*+YHp-+ArLy?= zYEi=S7G*XUs4xKOYE^4nIVb8R1bO4gpg{mG-c1W~LpP#V{n6ms=syZBGOM$0;ZF|{ zhAPn8pjACdY*}J9fKHtS@Z)*$i(k$S zWg~A5+RXg;1_;AxB5@1w3m=^6xRIm8^Bc)?ug0>HYOSrpSed);0fR!E*;U}|aT+1K z5&4bXhKI186_ohW?J}){s8g`WEC~u@Xd_11D1bDrbAELtu{zQop59=}z%Ni0DSAWZZjmI280It-hdGVBiGmM6N@tNh2toBq+WDQ#p13{DU}A02={ zEwx{de^4G_Y&6%Ecue=IkB~lLRS$N?q zRAo@$`AQ#PSY6xcM9Gk<|Z{5aKtURfol== z)csjIYd-bvD!X48)x$ucNm&mv(HoWk6Y_~VXV&^96Cdm-u^u$6@;%12um0!v6`YfK z^M4ImBUu3|{X^z# zz>q*22#N94TuG5E4LM`!uMt?zA|FzIM&LUtH{Us{!=dU|TP9`E*9MgUhD@2J0QfH5 zHPv+9l%h4wazhRtHO}T{G=+i^J8H3Xw$`w%Xj;cqRV*ECj6fiagsSiP4Ru&^OR&yB zQGKKiW4Gg6vt%lQk`2I`6Jot;%mX!rlgYAxjO5}^L4lL0V$Ug+x3PvR`A8pThP5MY z#S+J%-T?5p(wem{?B^C4d04Ch;BOs#xgQXEX^|Z0%_M||+HL;;mwE7`w6ZpYk|<@| zb^u0f0I&p^^MkM;$!0|da!G;V(?C};tZ32|cE1jMIMfNh8XIzl^%%RF-P-_;P!j=x zvuMDB_|Dq3kk5+zxwGi2+-E44Qk+Ocve@ZTlJ%V zDxGU7#T^^*AMn;C`)rp*H*fbpUf zpn&_xC-C@uHI%I{tgNrKm6hS~J^)G9QxLkSJB@s#5D46V>UESkSTmA1Qp(fUuAf;D z*aNLXvefG<3vyWoI!{o4;C@<8f1lx6sF!oNg=ZMZmpyhdKOYTM=SYD-zP76b`2g;! zKi>V(xcoj#mpKHqycmNMw4a8!{P`1k)|tlyN-tcA{z!Z7`fj}`ysg#T8Eh5+>$qja zWFRRUnUNahCdGMj1d0aXdul7Bl1S4V&TXY^FYyog4a57J?c?mPadN9)arT<=q+e}p z{H{GU;xPXF)NUr#Zbu0JZvJ=ryAKV{{YyVD^b89jI0kRB1H7? z(B%?@X^1|me51D9DC;5+06N;LZtvMJ3J8c`XgySTKR#WM>ku`R;Y z2IcS$4hRTi$qIJ>hMlK)ohu+RHRIF`J~V$;KH83RJ4!qZCE&4;2@*Ck1W(JZh~Uc@ zNcD6Y{3>9AE;t&Ba(i2l!h+e`)}pHqi`r!bV&A5vnS@Ml1M|?JSh3{w zU>i?m4fxYrI7%I|SM6H%s5$2I1}ewdsJgV!Jg z^)d0)bc6|w`zmNaz4?l3`)bswIh8w^gX0}B`DvJl5gAX&5BSrKFB+BIerA@hj=roS zy=X)euwf8!zIf0D08?WdNK&|5U1rjNyn(0 zrW^8qtMQ|#M{TThG~>_=tCArA<2aR2M!}k3W=7N0#+}ESGyxdd&kEGB#~2$8?@Nx} z4nI&<^8%w7SSAXQk!C$47}bL-DYJ3429i7rYZO}oJah@9j#!w? zY|0I}@bIOAKKt8C(npL}%O)94K=lOgl9u{%Ux&+D5=Lb}RJZB&THH0(nWpz~opEZ^ zGswjCG7RGYg9ay1$YU7|BbJKaEsbR%=mjX7qO-GHuemJjGRg#uN74q+e05oqm5-32 z50){&SkXrc!0=+m10!0WIU^0rToU+Dh8jY9<=~1Lv;Ybk&`a%C0Al(#-Hk~}*6w7Nk#ja3O&3`y|#R7(Zp!lWIu z+BQ3q>0>C|mtQE40CC1oO+K+?BQp;c%y_LH)t*dU(ib;=RQpb};}YI37X8ED18<4Y0;8m;-Z{^6NHV6uGE z<|U+nPk6?Uu&{Zy^=XXB;umK=-SR>-j>db)RSd7eoZ~)2a zrt%IVW%{U}s8nq|`c_cu>xz>gThVJS84^qj7t)5=*fM+|#6;=5oQ9c%hk_^H!i6f9 zTLE)=5z45mHJg`MS0pgRLjoC;0IUWg4(2z|8VIrD6Cv_RsXzH1Rgo!GAo0BcwQ-{b z9&0UOVPt?Sljmhw0YKhC+u^GyGFhRr097mTvbGw>91L)aF!eWiT<0y*DxP(F<9^cGgmZa8J%ZAD)h5Almhm>0lA%1bic|il=K{wM1#@ z(g6U+!%VE3^tA&cfbpU<{U4ds=~`D=Szl`_EA3@vd;l8&0Qe2Hm6iA5sUvM*-IbN` zBngw#;&jK<4$8_Oe;|#-fI%Nr2>_YWlS~Wn#IlA5#$ellWc}RlzifT=+P&4; z`LD;bh1^i{abp~ceL$wWU^um`Q2?FeT{L|?jvuHIhCm!QYJ01mT%nDT8rtf|U3k~& zGwg@nZ*P6?_8)BTydF(wxVIG(oy0Dt#Jx^75}}wWVtitB#vH~)-bUA6M_bj5h_Se2 zV8Z;WYux)hvm9VFsU!#ot|#I)(wTVZU)N0}Ctk~VR{o%N8m)VeWr9uwW4JQ_M8?P9 zbQTIUQA9@$E-E2!ZD1TJ#e;bG`MRi(e;o=@=UAiBnQl!ulK=wRfb+X(b|HW`{V)dY zzfQZhl2vE^-wxVhqdczM;t(LLH>u?#&a)X3zX3ZR9Sk&^%9C{*d+JKtXa^&;`C23~ zk{kt+sv(1AJDq^}XjvP5QLuSW9_oqI-i6uQMMN-HaKsj5@|ngMiTYFx9FdD0p?u-l zTTLx$%4NvmlB&2Q6@82W46MJL>;7EIO5ehztgT(8g?3 zd4c}`2jN;kPNs->ldobKw!#X%LvKb zpDd`Iv}cJ{10c5GxBII^*b_`SJTOVc3VBB3$|R1l@tsE|QtW_$2F_F;Ty|4FM;UQe z1TIi9V;H#bEII-_etKD@byFIsI$r+(l@T9!zY1Yr4#snktjU#M^FSaea|Q&Hv}%tK zB(uD;E{6JcQv-!M7?fz*&|0BK-IZ%zd+sBBLQTT04vUlrK0)-XX@btROsEUzS) zCJcW~WLP0%a`FIJ--Ts;ZyRMBu&rS1R{{(X20@RGiwc+`b_Gq33vsNb>%hN}V4c*k z#=eq(ZsY!$+wnS8158Zv{HOVQD+hfV;d^V7$N^L^S1iaE>r9LQ&C#(R@X(-zr;Qyr zxzJJ0Km&oPr9Rr@a4SdTD&&9>D20ne6Ob7b^F4IQk0S@nZD!N#p|rw5U@dAJ-21;5 zgG<-}sVm497zAvfY#Fpa znS<>Zg5s3srBPsamSr?8}5vlaZH=&by3fxxN zh3Xs1rBlp|TPI4Ht8&apGI0&&`b@OOtrl(i1GM+l?dXC|x6*@Lfj>+$jLs(*YX_Tr z!^kDEgCKPH=`4km&IoX0u+r4J=@E~aB;J_1zTp%CYxDYrk))7Nwk!#1(_^`T(sbI& zt7PDtb#6mST1DNoe@zcGk!$5@xGDv5#{mnRwTd$&H}%zF$CoO5qhA~;JG?ntzNI9D zEx;txdqc8;g5_eV%4UU(m7t$FcI&@QG?K)yhm(={dwc#A134cukwWec`3$`>%&C=P zN{ZD?mR+$kJI?xIcw%CYj6q2_4r7t~=&IY-aOXnps4_|#v2eNIUe8g3R$0za6<=8S|Jxbg)y zVm6N&(n-A9)H{(=FtMA+hDpc}79v8<&db-~q~eDvJWr*{(Zk#y{B)vFo2$grgs??s zDAwG?`dpCeCw0K@KO?R`s7m{Y(#Ef_<5h?e#=k#bc>DFQ-Fb&52$$FZ z2h2mCJOknsh}ODNZDP@YW>1#-+Wcy>KQd)+Oj~Zet5Unaa|Ya4dTZ)2ES7nME<|DC z?i*ruU0tME(1p&(V#G`a(WZyCsIsJGRhWF>n^xF=5dQ#^eb?;=yy@+CbL?Kt-0xaV zR^04}9jXe-O`!)t*P-7}^&XofN^&sVSPR>a!kNO&kJnJ-{WONdw*2+4(pRwl<908& zU7Lx{;__&+-bHHot%^&lsxV+OFnr$~Rl_n!eLS653+bg?O%~DWFZPMjq`dCcPC;Q9 zl_Fpf118vwv||JgZkM->L1bkX94Z&wdjb*ADI{W1Hv)DUbl*y4V!9C`_FLd-#5YjK zjYN6fiIfopHbjD;en1Vr8ckGVz+;c)@6^%6&)re$dv&8EWg);TkWI({z%9Hkmqb(Q zIpQNN@f2vCp8L64qxSZBm0`ORV0JMCFOc|E4WN9l=JP;r5X8*W4s145BsajAs&EjJL)VTl#RE# zi*e;!k~KxT@x3&=fKwQ#L7mEn$1Rv;(6Iw=hN9{sLd(R8E-<>A_R|`Be7UfNUCC6~ zKqvgCew|OpR0@JOC3%`|+E=f_2Qa81N(TX8iN&PRr&=#|v}0Broe9sRo2 z{bWz>aiVqh9xoky{*F~MFNBXV0E7L?2IP2=sTkG9*#7{z&bR7r^C!zma(kZ>wx|o~ zqZwU@ZjyS4iTLS2ivy$)k|PJ>_STCVTC1ON`^jqnS7;^Q6XuYkeBoq*&_sA?ppnZe zMUY!zJ-jPGkyPh&?wp?D_Pwm?f$&uI50n5(q23xmo}M~JRgNsD#fihhM-ljVir(W< zi)+X-wknu{+)h7_WiYijYm6$sEDgjmO%Ld(!~Q{NCHVZ zMn5BNUNkvmV3(-%d{^bWSq)WeF@mSdw&N4j9X%AR%0acfC?ZxUTT6-y-nmt9k$BvH zMQ!tXujgfwgd&Cn;>;{EHFeUlnHzj#L-DS6sO2lJ)xWRLv+Sq`E7SuQD#6YU!IU+Y zC{W0Hu>kH5$Me@xR5I-&N=Zpl4>}iZd9r3yqOd|t8LShSzCN zlPLp;7og6S)`rDcu&Kz&Vk_JvP*9Rtc3Ez{b)KAik|e*V$PTBrf~vv>c|LH*?4b@V zVBVojLa?s^y@bIEq?l9^L7s=EwCc)-81TQw^aVSJzdC5)l~9x$>_9TWOem2uNA%QC zNr`4*s(EwJ(1@YZ9?57jCm0b)L8{#|u89I6%@ zeJFppDZTWRDUEQa5dcbpJh=Y=mPd%|twkaFkn8Sy&BM`krPmZLyQ!IxaY!IH#9~#AtQ&rEf3V}pIFL!6r?26x*qwvytQv5nU$<0uP(KVu z{AXJVqkt8=nr&xoR{q|Tu<`kAq}g8Qjj6SnYyqYhc7<=L01_a0kI%09h=9xGItn0_ zc{K~Wu~G-n7?5C*zva~EQs5Fs(rZU8qc#Tr0DT4J`*B$drCw}-fMJfrM@iD>0DmzT zrc*eS7gIql?DnAs8CoSs$d0G*-%6ZKgLh?S_B;u_BVAUchF05YgS=16L)sUWt9EwK z+|$~AkId>o6Q~yz5(v=Jy4MQL&1+oRzSdR%PJ@kotgIl8BGvY?wO?xm@248dM&`sR z1~=XePs>swL&pCAePsdXIAUN0*_r|IJ4c4#4I!4qrIhPZ3dc|lR{i;pq+z#>;O{>@ z`p&t$&{=fU)6wXn_0K=#uOX`J-0}+(g~~CKL1F@u2lkR6$$>#Y8j8UJ9JPWn+wjnFfq2SDO~~g`ut9VmDYygjuCad&zmuH4FZzGCJC8l9 zhl9UF!ZFi4hNTgjdvT^pLIK5xVTg= zHpKP4Fsot3Sd;UR0N=)RNHS6^W?c*J{Hdv-*u!R^i|P1Pqm>ud=B8U0=pJ#fF$54= zNcdUhm8(TTG5`oxiLV&8ozWFv{U#+=pL zyyUP4X#u?A2!c1$eD?nUHDJiwrMGwSq|a$Dv8cJ7w;&RHdLFuu(V0!}bN1FFrtnDv zUfM~!C@gVIM&4FZNQmn@{{ZQzdJB%%VmEN6CUj-mtO>s=VQ*=$O5xRm0g=QQi17f% zmd|&5UrrmFw-L+YD|q(`d}*lcfF0D98!=L30(OnJ-@{a_xY54H-dr6{wxe$V*q^?h z4$7Hso@o=e&u~HOsj=HQ4ZG1iZO=_U`oPLggkFiKx9c*=STnIZ2yY#upwmHNYZVQ! zaoxl3tSxRPpVRG|uf;`BK0$!;?>lTGPP}Wu6l^1q(AKxFX!~ft{{R^^n#G=AFi=#? zWB??YFjrcW5gE`a7P!)rY{9suylr~PxI9iMAgV8>2vcKuNgH?rKZi|eu*%LrCe}Rb zTiEk88}8oV?fez6S8aVln9V`*^al_Dk?|UX$rd${h+ueL#@*C-yuj|)$6BfTue|NC z*=T7@hy=z{x%z^P=5(BrqPso9*z3yPG+V0aa4Nm-UF)05c3W%(N`j26Ymqx;yle-= zlkn6(P3%~J4+H*nu)v!GQHxoucXOGoh){Q9Dn$8wH~#<)HyjHDt1J1fz#VV!=TfE* z#|oC_%oaoSE#}CP1fH;CN#fzeWST>@OAy4D3{5YAnGcZGh{)%U5yX6)7xxS{r$Q;%lCtG0L=ht^O5Q z@(E)0<^$NFnOoFm4B!)y#FlJHf+hj$v}*Dz6%PWkr)8{au~Zs8-%;z;QP~sI zc8$w=xi~GkClL~U5x%!4sucX+eQ84-MfTA9RE7*u1&G90%Iu*|GRoC6F+ND#FJ1Iv zt1JU?)EnEjj2V~ZBv8&>cDo=&b*;#Y4#hwj024pcC?JAVgE~@7rw$6Hpj!6)?OA7G zZAhSOf>oKCy}}ysY&IkZLIV}d?0hGG9WpW5z?q2*+Wbvu01w88)UsN-*`-@1YsHSQ zxeJRbslXkk2LAvp^rXL3)7mTicz>^DDbGUG%IReAyP>AZ}vIfOqJ2I37SWXZG zk+_N5M#GO5R%Qm%Ud&12d%QW&=G}3&{{RXapoKZ9vUl?n8Lx!c2@JwaEP{0orG~KM z?}330^QbzX06VI2XuH3daXiP3C2c4ZI^j0@ixFyoVMD6<0VCYDZ^bG^DD=a6lz(@Z&+q zM>n@XEM&;Zt%hgnFf0z_WXir-=rvsljS^{-%Zur#MmjC~0pWiNHqanz4?g`oJFEBc z#`lMAxB%H!#X%lraAf$w1Z&vWDh4(UKoH1HtwyQu9lr79>wY80X0%kYXs#S|tjnzc> z7#nLVDYMW#LXkUdAMhGo;$~t+twu>Ut+l34+v{NvrZ*l@)a-YUhN7?%Z2tf)5ad{S zerg%W?7;s3?XD!4+gg(jCIf9`d2=Du&>lx;bTT%dr9j*9Crh+Gk=nc|l$gplHyRml z68f^5+Z7{m@FoG$O^+dBbhQ@RUgDZe_z}Esw@>+KO%ov8ZEBQE5w{)`nz2)hnJj#; zK5@RoL#a&aISU(QS@MG zpX71?`|FzOWEo2i3wqU_;oDy8?)A9pL2~j;5ia1es(=U$B0dH+aXef90NW$5E2K%_r#pG9Fx;aNRqh}0D%7N7E3{S&Hd}J2IkgH_u-J!bM zhaTEeT%ioUu)T@pU7h|h{{SU8e(UYLN-XD6y~~M04ni9M^$5nPRgx5_5M!$;K04<5 zjxoVt&GNTqwbFFXrw&SN1n<48r#{pBn_{mJdcL|@4B?nZ(h1+=r7G~GHnV*8`|9%T z{`KJVl~Kweb(s;HHwS1k2C(C?;#7E=*kE{2t9vIF(St&hAmWkb-1rf^ zjV|%XB@tarWO6sABau;TZ+p-lU$kX&r_2D4z;C|uI#fVmoxu4or5D#u`Uriv>k7cA z07Dh}pvds*PhXa@HE3oV$8Qe`->)BiV4b2Ze=I06!GSrp;}n_Nd`HVs5j##84JZ=G zt_I#z<$Fp83{jRN%Y<}3C&%#9rY1~{=G$yP3Y2o9EsgJbEk|tQFmErIu$fC-*34`Mu%t(rbb%4Plhayqg#=74xB0pM0HsbQ2>Xv^A$PZU z%`CQ7eA5L&kED*ENR38VRwxeM2UhL znA1p)Dv1rQX&0-vR==rw4THOt0L=J&j7F1?jf9c_@1mqkt_iiP)b8DzhLYATnUKdA zILyM2F#ft~CrR+nra>o5cvkX0Q9=3Nad=!sYPj?u0gB{sXM$ju5vv&Gjbl}20D*03 zQ&2AJ@BVGUjSl1pxI-g8=e50;`awOcg<3$SwgpGVE1>8N!+_^0C$Yn=W3k<@= zaID3c1COTQVmxxvb7jo46RFVfsmNd}Xz#niq5Qs2Huo;}TWy2Vu@@tZS+EQ`5(w2v zGG&{Kd0bRtkx&qL(CZC^7GdN++u-DELw+$jXk`U_fiz*FxUuGR6$c@hk;0H_*41SS zAY5GJ~w7Ph)pk%G7PadJk=eku&gMu;hIZ-Y!9&LnfemaIc5TvBIAQSQ9&Vbo5Mn>!FZdC#I54f_a zsNrKp2>31`@^)n)h9EqtO~~7C8P$wrNUv}HxYNGphLu&HKGpSO?G;;cpVLObpH>NA z{#9&(rAmw5nuqk_D0q=VEkt*AUyBhw zQdXn&M48XWO4JDhjSb}3^3qPqg;Yd_SQt4T1wfJs+gYV+){%5imV|OF4$dpCvT+E& z3=!T1uHLBg0ygO#G}C0p&m02#zz2q!RIW(5;%I&cBC+ab$j4w~;~;$_;o&>zk;@Eu z1WIliKt;9SXf(%?g-b<)GOsm|Ayr?~YFT=M1Io8u{u^mOr}U*_gUTdkC%Ls1lszp_ zrp6_hF`uNUhEOqB+yKH4h~GoWkvA-W-Cu>fw4fOk1d4dItxc?GdrPhhBLD&P^Kz)T ztVrv=$45JxPu zD#6JFdA^o|0k_le^+M7G-B;4#Kc;Ld$?ZRNXyg@}_lP+-_-_(U@vCThmfNvwi+z<} zCL^t?!|lIuIMx8Qa)A0zmB8qJGCJzZ8>>MiTb1;=s0?xim;!2T!T0kK2b359(j2Lk z@Bm4f16FZ$SeXk3)khB7Qmu~}CrcWZ@crnwDiec(0P=tdpB}IyOu^LBWxD_9Q6U?lt-C`@z_6uf1}R23GZ&%7V5KXBS5} zoUj|LZ?V%D)5e`XA#g(ye#2DVLlm~+y56;Oz3^(GjzzL-8o}mlfR_C*%&DD|CJrEU z2d1poGFfE$gius~IQ9!w8bncco;6!{C>AixtwgalAPB&f1u|EXNr*Af>oLm-q=PE# zfo`O8JZyU@XM_M+^;`GVECoTWc4sbvwDTAxi#Q+H)4#*VuCL-))(=rsdiK-5x|5WF z8MwZb%h{iEyYJgR_r&iVuIuXKQE<1BO4w!VC1k@487#$#@m(!8G+jpuSCH+V5DkW) zoA5lvQ}pcD!^+g&GH>DCUCaJE{{SVsKfgOC0qN#eIk*+Oj@P4GSpiF)iknYKCtR;m zj$9Abb-J(xZQ6Ms3iPZFqm7yZqj|a3`gR|8ry{D2S3xS75bD4a{$ixVe1@x7 zO-(#+a+gpajHGNsl88@GI{dVAEPjxZUlR=|BJ-U9+b+-)ausEIM8 zLKn-gEoxQg@3=ibbN~hk>c5AV<)b2?KtSDL#Ph7BeSX@~93 z(#WsDwcI;2tf2gr;VEUSkz3@$X;~7`N63lN?=)uUiacv5CETtZMS-*!Bmk@!k_>1? zHpA)@b8}fj@9$O93sXZeD$;jQ6vF^I`Lr-J-C09#_ZdYqa}YP!fHvP_;SIm#t*o03 z>Em#8Fev#L2#VWZKlV$7$+7XIKo4y~6SIMoh1*_%Q+4*CT5u<@ZBg2vTw zro#keCL{i#Fgo?qhZh)sf9IvR(hp6iHz)$KO1N-W={bM~;fCFM>LwLYbUF?dm*q_l z5gX3=4TeXcD>#80eh5o`XGcs)C!IuNVZSPe)E>b~zhr8Od)m5b^vMj&ssWsW0k9y> z$5s)=kc6YEfV|HWTl#`|3IW{v-)`;ISezP_`Cmuw83U1v0CAHHMELx4IWu94Sdg57 z&Vurz8@7h2{{V1zn>h@|!sXggav&;#=y3rgt|$o;@c8JM`154`snO2A>s2}VOs8sr zYKK2dEXah#-*y0n>PbQ7U5?Wdb!m-{9x@bSOpe3ARa46BwqvCXzRZ!bTNo<&Lo8(~ z8f*|Nby*Mq2l3SMAwH={#*0}Lh9}+y&8aaU5%2}0rb7!`x@I%6Ivq$JM8W8_CO*+Z!HwWV%xaupSo zONeGF#Fk}f^6ns=h}PhhF)|FhLx2d^vWz}og*3I5i`$Mkl&>{n$_QBB{D4RsPNg&A z%NMU2D#{pep-{`fY|Po^%N()DGO%##i@b&{i!YB~4FqHsEToa@TTWVc&}5LMtd}BduVDiU`)>03a+TQxm!g|Q^oeI_*hEcnMWt=Cc37G^1 zHYfJ7`1IA9ZRxP96%sp}cya8li5g$i1C0!|Le@bRXO_-{2Li@lCew*N1LNbZBz99N zB(op0y0wa~RLJ7m+L&@uD`EkA0c0u|s@9n13nPhkC8Uwmei~{yqmC`02A_8h?%E`h z6l(!dj!0`NEWir@Twb{<8h{{WgO3~b*%ls1AB#YJ8ngZU1fx+XEgpG^_N4u_b)fd3$&7 zPal#NIaLp)1&$O6+;1_yu6j>ZcSjDy*|e(so|+arsMhs$c3-)iZdgJ&HK=x*?}y`u_{kk+(wo9BPXAcrlWQ!2|Cnwlg6@^ zGO)5bNsq>UdRdWCODOXSVu#)~U&QGyd%4z79$I@g!(7qLkflHBDWVSx%J{ z?p$Re!O##O4fYcQf1bJg$ioHG%xT3Wpgiqb%lBKeo=w%-ci@89oijyHSfGlf(P;U_8b%96ha6CVO~&qa^u^&^br zt}z$zKj%$ns7G+R3kuLrcX8v9XsJ<`&bSf|2%|8{1Qc&B`E4*~U2jAs8)iVfE>6MO zWBKvcxct^AHz~7TsJ`!632XkDEHG6U6D4!VJ}UUOX(xFaXrkd_gtzK5k$;U=861lf z#-KgaTVk`PsH$24QZpkTDz%yw`Q?aG3C1MeTXKFj-~gWNbbau-js_{^9m6Cntl?Q*$jM`k9y1shI3Y1Qjv}f;H!v_)@?(7=kBmwds8`t;3ZUuG+6> zjc=#7ee9R2&4^)o13qY$7_rODM#gnt2FsnzXXG^2x;EO#vM8`MXZHU9bFON0DuEHP z4po$>5eLjSnKPz=Vm#}$yC_DdoIi6YRdT_J5)MR=XJU5%kThq-ltxcSIxsK1!5hyS=<4z=yVxTBAl4Tw{h>ID=M3?y3mVxe2UbUvB_U4#g6Bu z`;Q$%YN_0!#PO*!#{U4@7N)Jva-o((D1j`-JPGQ0=$nfs)AH0QyYs^2ZJfyR#_~tv zVrNlp6x*`0hVwZ!;&MB*2s0~|@&MX)(SXMo#iuq0Paf(#0PpxzZr)P>X{{%7>65yZ zj-GAK`lQI1v_op_Rcj9MO>n69F|WGCcJk993j)yP*m;l^7nTA+G{|DM`$;bcBvED+uwi zu5IcIGqOy&0v8p;0(a}-tDJJ1KvDXmiS4DbB$C5g3Hw_ZvXv$Af=c|dzXvDLtkv;*6gyrqqbWg?+cHcuggG>Gi-sNU)JSOs;j+s+pP^}GWG#P5R2*8 z8~*@kVod5%OOcZ5v#pKvJ^ug-9I~uRSlabVcmDu;P@I?Jaqep`auA}VGA`;eR{|Dm zi5jt7Sl}bqlG9rJ2M$$GXEPGO>B5-tACqufY+@bpIRlYpE}7tZO>BCInA<}2CmCiS zfMYW1dx+J(&1p7vl2Ed0xBThN^*h&Qcoaa)9g9d{gCZ4j6@(o@>O3_ss94yu{LT4LjYoNGRf%20%q46x* zfY%;1t*b$~36nZ(!xbt<%HgssNZgGp+D;-fStnwAPN6D)L~iP?VV^7!JI<}fU>P_beZ#_bUM&%htYLYjGT^GRStKv*9N9-spz zj6nP9?DpT@{%;@B4avAvth<*7(=!UJ6D*j|NFRvPnB7KLTh<>b(*89eYaa^Pk7$1& zO;1|i%xs7NmT(3WxnnRjdyUkkE*e`7%bKLf#NPLD;agYi{{X)gTD4)!$Q_D{P^l60 zlavwo9dy{;M9y|as|v1@0e2J1woluCcR0L-N#(8$1h=WUm=HhZr@!SECko^Ss&ms> z6iBLd;on!6WcR-pkPwbeQYU6!q(<|up9iQ#GHon4Qj*0W8iS=--M8FTJ$VKOaT_rC zPg6cRwh|y3k$SI^Hg>v;ik0#EqFAa$rhFDhK^=DAR#7@S4W{-KBO8t*g&eB%a0oKk zi7ZEm2j!^;Mm7gpg*XhPMD-pMYSq-}-4;@mbUd78j>t$azT*!qpVzahkHz5+p9i zBOQ0?A?Nh50hRY zvaaF-13QDc=pbvA>I6vJBh~4s2oi#LR~LVi{?W3oXDZ=P#Y44h%3+yYs31Z5m3NWj zu1Z&IdG^XIjCj@7V}p*i<6~T%_qS=Xt1a}wg7&B^V3b{f5=@B)<+nku$EIUJw{UBK zHSVrACm9+|?rd9yYqxo%QeCiC^OJFK6j&OvQpLgFb#h5R;ihwei*v!|Gt8q;>9(i3 zs@<9sr_MMEuKR%Xl}D)24Tc^hV60op0S9O#0tSj@$%7kg2F}_M+B+z6e8r`b)C-D=$Z;gJ1Ld5UWMCb@)d>=+ zgDE7FV0d2Kz7^GCOeTnH=c{|R`<Gj=LyuZ@~G01J%n1ps^@W?Q>-@s022eQ-yWJ@GX)CoQ*;96)L|yyKQXNjzp-4TBKlTI zBsM_K=f*(VbsnSBw28SDzY+cgXZ(Tx02ijC+Z>w$`c_s@G_<;cN!kPS0eojmO@gwZ zjWv64tuAYsLjY_m+kK`HKy{%4FW2fTWIC9|w_`hPpheTvFQnG>M-fk)`{~M?cJFL( z-rAeESzVlUJrTUX5J7Z;438fO8jO8D7xPLl0OR?6^slYxc_BALM|mBOvDTEH8B|os zZEGyaZE$?05aklT9p_EJA&vG#yHIoOp~;mi0bxTf;dZru{{YFXcppy|JAF$bw%e$U zJv1?7H>eJl1MHys^Y$OQhTqBTyg=JCkVxpNAvZA@PR*bsF0u;^0jxr0xg19t3&{5^ z9AXxZEn=drEoKb+knhB~%YSF$5S;uz#+M9hNf# z4If(7R~^&5m)YHhTY%upF(-8;c3+prNf@Sx`fDf(IacZ++shJL&ThIkbkvP|PvOtD9Pba%e)tt%_?|h73tL2V}`rAxSF`OzQ{{kr?O0 zzP0qQ{{U4-?v`b@ED7luE0ySSF}D5^bqPnS8IoNjUIK~%Q**+GGPup1NhGNdQVUno zR&gM!bdI`4Kx0tPqLX1-kDv{ zR0`KMyjZ}!&N5xj2&_o~z=aBS5;xM)Fllx+j{FCWYfx(jTwI1?bI!t17>r#NPCLsG z5^;e)9b(}}45B$j_Z_zJ{uL%*MG3tal4X{)@~}fTGM$xc7_KkW@AKBn#~hwi*@q3+ zcOp;UacYGLvlc2;Wa78|R<-N|4B!=j0cLIdMyg*&w>CO=)>0NKqVCY-2UUV{WmttE z5C`~;UL+8GG%U@g{dmx%ct?^(02*Rb64yWltMf`NrdS1F%3B}=?soW-rP>8&62azD z+i%0+t!*CQsQ%FBLisgvToSgaB;;~9rY9B^4b_{|>PN?YS$dw5hfP?Whr9e7be-4bCrc#Xo%A|ZjCO_ zmQU(57~_sGQN`FX){9f!FRdJ0&bU_Lin%Tn6*+xGg2*=-9zj^y)>aP2_9O10&5UGV zz<>q5>XUZgasL3?{by7#G6k_NfR$7K09TW*O|)!xM8~^=MFrw0FM6DIpL<`%vmwYi zgvDG-RwHsvq~t9#ymT?4t~%yPxRw(r^6RC$#VaI!rlPJNZvENiaRq3+n-!ZDRV^aP z6S=U+0PXXM(ed;0vD5(Hs5B?zSR#*Ym|WJ$`%CZLoPXP;yv^Aamjc8U%XaGk?fB~5 zdW4&N;Ix`p&>I>hi9sJH-&=X?Z{!6x3P9(nW-E`JHd{;xa!2L{uH))$j#W{w{y0@^ zmX&L_e5@jl%eiw!RPXwjj`){QNScMX(|n~lCQcF~cyC~n$?Edccc zQmm$z@vCt$5;6X}&W9pz7NSP`4eBM_yEt@ngl>9u@Z4&uO+SC>#w|UDvi- zR>@I`lEn22dYyBbxXz>ls1)31aaQfMR$k%Yn~{MKNNF-4e^31N&t}IONp%|4hVdEQ z$6DuS@>AF&xc2^KqNXqD-arrl3aZMgdI^&UTz6NCY7!oDyHLr6V?_OktlEt19dwI`0CHw`HW#POr$eub5tEuA8d=X=%4Fai|#JmDkf2x zYXlTkP+dY0e7z)2M4kQ`zUi7_n0bOt+fsZhp2>*%<59+{-e(kxA(SdGY>Ke-f*377 z=2gT`!06CSk}xc!uInD|`cg?kHqteycXr{zD;i27)>sURl@em)QWvW*$$2G3n+YkXHhL{niFy1KTWSL1f zARbrbYo9PM%~%**7QOje^{pRpy{lt-#=3mWrnn-jDwbi7q>dP~lrcMR@Qqq@+=YiR zez(kQcxW$eG&Gk|!&c0YaYZ_J3ZwnC?(cT}tnXBJPR+>WQC}C3$#rz(LX@*96}{zH zGA#7~6RwqUI$v1 z;`KJlc2eLX54X5h#CBhOaj$CGd3CU5fS~!ZWs2t#*ofYCGCFD){;W{%e>xpBrxzwS zHU_MY2fEh8ATY=gyzbBl8^|OKkM+~I>x>|G2vyC;-9<-NaF+nl$~*HAqa_Htuv4-5 z|Ay z5LnJn5_AKw3ZBTj4LGab4%R63v8@;Yptxp{GQ=78j#*H8#ONBt%}q-0Lj{D2-KPi13b5GOM2$Zby^GzkdacIYTa{{Sb)(^~Cv3NM35F%gM_ z7Gg+04Ocv}B;gnPXNdm*A8l=8+}myiD8At~tcza~T2%RPA)xq~GCFGV2-Y?wyvjha z6gIG8px)HR&h=Sq9K(8I6uHE+Fp2P%_w#7%z<3pf$WKivl?(Z& zT|$eI&V}_6c8Y`dk8p4}xdDA`)G^8(=X3KQXwk69jYv`fTZZM~_R{mr#E(g|s>8Z_ z-jTl@Y_`S9warOMV~hzRaU>l`L<9m!h1~J`X*SB4SgrU~Y2CZmCzWJhl294qu+qM$ z0PeetlODc00=vU1!w4Z*>Q52Qr7TAxKtTelu4^wQ(5Qv7XO)P6>O&vFfg@IZLnam> zppAvr$A=Nllh^|lBnwr8?LOS;7Oi*yR8|26h8VLDV1e@Z^woSUVt~63<}^SqV~uq? z_3o=Tk`*hi3skWt(x=o9xdgy7A)*idS_V92^L=>8NLYNwhVIQd@}{zz(Q9$N1#5&g zWtadNoTwq$Sr88m;d*=wYobWwje|xkc946`BlQfPXSrHuWwkRa+T*DxLIl7WXg)2| z{4}JfRjyAOVi|i=67q$jTM&%ota@Z1W~?zE_QMmo-T^vA=O;2Kl}Wccluzm# z5wv#DZcnFE5cZZryVWAYSeYz@ZuO|@b&^gP6}G0BEq^Tt<+WiH*IP=pW6CmN=Ou}c z07>8HsLM2Ni5ml>U+$qiCB^PMy3qS=ky{2`)z6tpkT=Fm1%lJIx0A3i*eo`RlFS@% z;iUtz$Fk=LRY4h9l%N&QC9J{GW$EHS_qzI`PCtZ9i1nqvIRl!)hbz}8Ac`^hO6R^}sl&yn} zUw7f9GGGJ(x@oOHqua}30D;(3`^XzMQ7%uiYx5IOjowi;}CV_vSxsnQFGbxuc01cw@BC?)55TO9sNsDMG;%7vkb&! zqY#t4{ALE085vnK8Dm=;4c8i5m8)(CsS9%@zbZ+sRHdo)qHZz8NT&vx#3$7 zM+&h^>N(cfdlT4Ujda~VshtJtrhEpH>cc@>pX|T7JbqnupWG~hf->4? ztWS=*Y;LZ_gjXADpUcFR4%Gk)*2wlRb*Ck3BIIUaznE+e`w7=cjhPrAUg4^?SQruN z{3^=fcVxS*plkplNGETE>g^^W2G5d*=qG(i>gFRX$Pz?&lh97xH1#J>Rf7TX>*K7f ztZc1pQV5+5;#W5}y=6svr)ygS81n80)7ExACI+kLi6p#aX~LLHi5AK&rK+Fz2e-YUFkXJwQT z*eRUsbaXD)y>oZoJ%xqV5^WAFxGR+>A&iuXeU(SZPWtF@GXvQtu$1t&gX3JTWNIW* zFMHO!caGHFcc~xKs?S+{FkKWlDA|Gx)ZQQ46Y$l>G;12XYr%%SzY3(073HzvZ_c1S z!-s0uE)dsPD)vqmkPU!_0|7XxpOMq^m3G{`0l5DFI#t%$Xc!IKDyH`bXkJRNWGbfM=F2O{g5*0U zUYG^zPzVBc*y}~6$dA-t?p$!}=l4}q(URsh;{1Lcm91X!_God)vZZfGa#^o(5xqc) zzu5l(NDR}~d_N2BpCnKpTOFHu8eH68oltc?j*>(}ZnJUtR=M{c&Cl#y&)#-R--&%r z;VG??%C(ra=v+Vrra_QdM~p_gd`Xik0S0JOsW!K1t}i1Rd?^f=%*yr}-?Fxo?C2P(>d@BC{8#5ipsHLtCZC_oV?vEFeMpqOpRBd%^u1b)@GT^jrylixfpxmT>oM3?E zyL-DS?0n%Qj376X`rfCNd(NxKPgp!Zl@ zN?!{gGUlvL`G>^*8g5fIOL~gCMS!=3MC8JCCYHC|oO?YuaRRnxgYb+HLdN%|J!pIB>U)}mLl zhHQ%YenbN@V{eX`jy>3{zMP(@aDEn`$&(VD4TY(N-u2^>m5Ur33jm>kkRYz+22nbO ze5`TOSfM*jxc!tbsfe9TW&Z%qc&k>=oq+(xWEpZ|6hMYgP~UI|@T`2u!jpQ) z`@nif7h1scJian)P|^W12pb=sn8R$DF+WblQHdtpsWr=mSgxV1+6pS-J~rEgOzr|XG5Gc6$bSZ+0NBmFS8 z8@Ai-q$HW$iN1uIfcMXT*GoOObLqjh0z%pfJc|;9?GhG3EyLxc>kgXb$Rw zbCYVU8{eb6@{JrzO~qW6YFrZDnSe1Q0HDOq+Sk&&c%^ruBDKPvC!U?v7^jt-E%NQ~S6_;wE zgDD=Q>2;i6Wxsxm9>9$M8Tv2KKtpW~({XeLRbhx?J~ z@wG=9GX_cL30-f-pYtngF~zY)459EK0*NCB*s>j`;p4WHfIG(;PC~`yvEVoIC%XJa zIV4faK-XyD;ZV*>*-JYR^2L#w4@Qu$(BLZ@o`CAy%JF`bjE^^Jix0A^aw1UXF@3Zw zvpLA*vPL#f`2IQ(feF64)<$-nvgrJ% zeah)7TpTc0T-I4sWQuVz!G_Hr<@x9nM2Z0yz3J%DSTH@5#?@y_0{O5Y1%tPi0iK(x z@AzsC<<7i?ERdqY&M$Ds?zIJK@+*pDLV^xzs4^aM04tGi2{EJNKd4M^@(ncOY8Msp z6w}i5+^GPmLKGJuDI@AIH+3gy$RC!LhIMIV#EpOe+UJd^YmSFPO*49|RIDU3jDeB@ zy15gO#Yug-9lGzQGNWv44@wqRW^c08X=7IbPXSmCFCzOrHN=Hb$}J?7V0_r9k`fq1 zz&|}M*pd=GXH}BI%1=FNm1Xm1HVokL4!zJO_mqDKViWt;r(V>rzfPv+)W* z@&_a#PbtWjA_~k*`0c4<;xa3|zuN-;02POwyFNT1WzQqH`#68Y%5?e7Jr+aXmVKU?&hD{l~G!#Z>W=skj zF;aQ}9D+97kA|6LL1Q$8rwtAN0Kllp0>?J%f|jgTkgA;ns;Y)8_5}bjE0M^E-)*$S zv*W}Oac^sV^qhF+V#f9W*WS9QX|W+eY{By|Vj)W^$yFeMBW?6e*)F0|7RUOy{q?qt zB=N8E51X^&{&b>p%Ce`aZZ*{zH`1pT9TX@MclhdSm{@vipl;18SFkERS}DTrZl@ak zP#D?z{{W_yl1NfxC2IntfM;T7!%#j*H*Yr3OJPNt6_fb%hgy%7upT4SI4vd=Uu{dAG}2<#5bhuwU#@K z03q<$LHJ0G78%YWt8OG4UtS-=hQn|x%;{UV_S^4`hT><-X_kylk@tL_OXAdZ0y!GCCkMP%JiPaM8y@mVD zbJ;yLtk(y+w)fk<`s4D_ke6<8kT;3mU=i`xQ;F2WK8I_P2$G zk+$Ycd`Q<>g(mdXu6$`HRN8C>>UGEEmr_JF{ssuxemiN)5yq7ujv|T&lMx>|)~i+J zh%8tzM_!XZ{dE>mW2Uv08t&b#ZAL1ff)AGvVt!wit7L@8q%io=p^=1_B#(_z9`W{< zuU(!@$uZCpLj$+S4RU=;r@e_#cJsCB(;8;qaOdr=Wd8sn{?xZ~;&WVaneAGxDBtEg zh$Jsj@z5#?Ce4^s9ApTeoL@R?h1xvfn17iP3sYFKb|4)wZ)4e8a0^vDAkburUj zZZ=YvFu2+P;&i`t`PBwqJ2HZxh6egoIo(FDQz$Utn37j*7FJbl zv5*1eDzwWhodXMLP>yc}xfO#VvYu2-305Ci^v*%2AP6AzpN_CG$Hi$)*q8CQbq?2k z&GYv2s8@FEsHqfy>0)Q}2V%`R{+{A;@cO=bEK;z4R2y4Oyf}++q;imn{Gfx~Rd0Lt z+CT0uRK=^YU4Y9v!nj*PGlHrZJ}M-WzlOlrbI2Lkf~urga32aZFLykOiZN6_h%b+lX5%lT&$fil1+{LDiPZ` zKJNB6BljJjm&>M_!@X72WrDEf)DdF|mS<9DVd2+Ti3}NV`fsqkx!93aOFni6Mc|P5 zZZ@}tZ5P{b=4ZP7zSVJk!Z|Hcu(IQog;0xptym#^q9cD0HUf3cbq{L-OGetAbgqvJ z-T4VJr1}oyq4DpofPK6EWcF_6+<5NPrzjN8n{G7)7O8b&w*an7z=AECB?MR@7yV|%lU!Gs^wX-q6)keDkeG! z)ka4}XrvDfugkF2yq#7n5{x%77u0L5U45VL#TS!&r5!-5R z2@*str_5;WUv+raMDo>Gsbe4k0051aKpcSc55q{vGm!6xdjyuL~Z^+!!tA6B$ zs>e5t@IjkFV$v&c36iSYkAUA+W;T%QTdtSC3-?}@iy-6zb_9sZVs%%ZB`Bd)gm=(bfGTCek1@B#fpY%jAPwnq0;!e)!4laj;MkXxGq=El zwznn=#-_lR9J&3KpHi>oJm_C9?%kDC9P^cZFyPqMkzbYwR#HYSB$+$^08KrKg3=X8 z?u)JMpgujcDP<82z+87!C%S(k`*&!f!_4mVIsje5Gs#pc<%Nmn5CjhhJv7W6EwPoP z1eM%${{Skio2kaHYpBz-RSWJv<@&vk$L#gn$>dFoTae;~bz1<(5c%ftS8e=s@P;@* zoyzIvvFFa#r5mhCATh)|#^4)$hJ|}mzx)3H?ssxdM|0%e#^Bp$9oDZ=!5*rqD)6K> zV0^&R6J5&&WHdSR^(|5 zom!u8yG^{yLRc)sm0}7wOo;`YfDXhF8*Wa8F2{_iU;*cP71{ito1Xf%J7;JVBAS(J zWx;n0COp9gMO4L#2-;#smr)$Z(6Laft@N=xyluv|B9=A;mN)OI8VC&T$zgjG5EKtn z78&}BEeGSY5urmI@vFQ$NF9XuLz0Q;gz}vX| z-L)UJ132{*5-kwfGWl6rFj=00cbOw?Swjej9p?A3*0qnQH6P^MK>z?%+ZMAN7%I6q z$&x|G^3by92_NaGBeV)V3~J?=uK1D{%>c-gE4W~KNtlTmtp;n|Z+`w2qvku09@-Ol zxTyUc1$$ho}hERH`V%r$pjY@J=6vd(EZ_a}W9-{^# z+S>H*iQ8qBlsw8GWKpTk{se%Ey;YJ6yo$V*nS^D9TVL&i) z@K!7i-z_nc!Db*ECYIMqjF~ANt!BL)<9lG2bY+TPBfe5`Lr5%RF{SAtjR-G1z4lMQgMx$K-o{>BSL)Wh7efozWUnN_|)+dNqmxC z&D&Dm7q#+$$g1da21^$H)yK({5=5BWRo_*UAp;jizP=S>{{S9?i4`s4`)X3Qbl4bP ziVVQqlej+*j+&GHN?QQH0yP)o@T?e7skmSbN+|Z>Rb%O@jD$*!{0G8Utm!j=2-_{R zI*lw1G!`{mHH%w~alLF{;FDV-;VR6g(ds)+#OA^#40YF)K2!OGpDNn*^d{zAQ|6@X zFa;!fM$=}`F=MkWla}D9iQY6OmL_CEKo5R3A`lJ2{-NVa(j}{Bz}SewRfMw_m>=ax z-a1a0^x=pFfP#eEK$Pfb|C&C3AW1+F1yZzu$x@YKGpS$vX25qp0sgwQ~#uWd4WomAEU zhE)w(uxL3J49++Dqir=AjyrDt>G^-hDqd(;9zR$4KKk(UYYL)gA1RcA!d;Hw5h0lD zcGRTE$(amlr*dddEqe_OQWFD)zo`AxrTm1ISp*bQU?h?XmH-t7OAy^pz-jjM8W9X9 z{mf%q=rt8y(Yh&SQUImXlU^=zF%w%ePAvgbHCU1kvry7xV{_^PH)Etv3 zk($=L5H9PnB($BxNsVnJj(lT~y2HC~e`gNP`Voc_JxzBVYTEYCz4<&hqZ^pRf#tb{ zs_Fv}q_7Z2fYVsAs@olYQgrd89v5kMi(6XUKepd_IXru~%V#6dA(s_ve4$ng9riMO zI?2<$H!-pqnoSWKXusc4k`*XcPnhtoiT$$sz`V0iJf$o!^LnrefwYZvm_0>N_NmZU zJDt-(ON&cxQS{$O?!kNI`z9W$wmjcb~p31J6MH!9e^(cV_zr!dOV zAUDW-BVAk>d;HFPwM`}5>;q9#o+m3MIqnGr5N0L-)2Qnp+`K3ZrA?0-E`*t%2#rpo zUor*wX0H@?UY8`%0^R6ZT049FN^0<7CUn;IM ztUK(rMnIa$P|+kZq2I$^ZgHo@$wiY!-Nb8GkN)Hbh};e}$?_=0 zpq!kvW98|*&%;;Pc|T7uX-SbzfF4J-s4`WQwZ|&fzW)H)955!f3>w5{^!G$%d`cLF z3>-+G@zwP5ESV_E09}KJiLQKt0b|1TT=xzc8P*piQzii!0MX=AxR3DsH7tCX(WZwc z{#FbuFQGb8JA+BMa3oY`xYpLDDpsV(c}_K=0$4M8hCIYU8}-{!ke11Pga&OvCc{ln z`B7)ak);w1yGMORd7ZIdmadw>v@tJfMa+dHoY)^VZmuK)x$8Q69$6)f7Y4(D?WLy2 znb*=b^bgIi*{9o3-s#xZ=4DDLN~;33vj!}t(tT2h(h9PZAj*UB>!M2}u_~}PR^SGw z;yG72EM^jJJh#%SuWO2ebE3d!oSs(>0kC62lj>S7`zI~=y4gZEV)UrdCj z=z?YNs@s?BzUkWeD|c?Uk;mmeY*F6CaKJLxZEltrPzl?^!%Jkzjg^$R?SEOt&-C}} zRWjk{VMekmkj=<)qrI=+{{VEos%u_9a^|qky1;8PE}li4Lp}+RB#;JDLEB1aVq-}n z#;Bk%vL55c{hCpPomLa-g2vp9T)m6=Tkr19#-4u;`-&}9vdd*niRZ8&XCep~^bmyn zwNW=i>5V6)h|IfKgQc$D!mXqC7G^pHl-jSKZvOx`Y*e8;hZCJkdP31t612T!6n9$j zuwoo;$70_-wHf`ZD@LgdqiY>C=igR%zV48yi+7vut5>yuHTyM-Hga#FlA)NlcCD2q zWVNFtumdnAH`QKWxAIYnZ4A+^&bkmg`|8gZ+)kI3*a^wDya?>?sh1!5qu4zfLvo&z z5gwhy10)K=i?Has$(hnk(Pk{F(JEYC_vP77k8>f?U8X+Z}LOj7fNxs*I4APENo>`Enq^4 zFPxhsnUDso4@{5ho_1t0H(}T8p~uuRt1x6OCH&mnEbYB^M}&P|BhJ!0bL6 zrxPg3c$51@2p&3Gx(rXzP_M?-aqzgjgN1aab}Hl$3{)d90aL(*Jx^UI=2%rwan_$# z4lX%VzqR{j&T5Mb1V?mrAFn(!b@ zgbqoV5s6&Tg9Ck|RX(#u7HPJ$B=830{3~9JE9Oh?qZr8FB6A9>js(Hl#S*}=CvZ;M zy_!6Cfqa2&uAUXT@P(%(B>s~X#X!mB2ql>88JaqD8m@uU)p$TYi!Hcwtfn?As*Tjw z)thj{5%jR>G4SeiYd$+HMl=koa8L6NN5pceBdmahqTGa*3W6XL19UQEk?_gr zZ_vpD@X;S8GKF=$yD5fJid@>&h~d4JkEx3zCJMN#u~Fr9nMGnJtPO5B1FrVrZ7Fdw zUfSzQSMA$uahZD>$>>a!0#`CRpDZuKLt!IHvF*Ovcv0C%*Ue{au9OP3r>P=Z}exM^`q`Vto0Eo;=XxBFq{vQs8(RF$Zxl6<2RFl1;8 zog}AXMiicO!yqH|K3?jT*X?18dXzB7phSQSN1Gm}U_UJuSaKKxC9TU^(!q{+U+k#| z6WWUPscI&$005_%NZnj?2WgOe2HTOK3|S;QWpX0y6)&cPzNNfBYanP;$H*bd7$kIK zJIjsZOearRAZBr;sOj^M8kTWAzgz=?D}%ET43IvV`S=fxp^UKyB>}yuiT+XJMr-X< zRsl6BX_AZ~Ng_5801l(@)r>K*kVrmJN>Y~b6nP;bfM|i|PzRK43-kHvatwb>(BITA zddlFcShg}(VK`XO#0VA8zHEsRC#>#B*MX};D1TA5yq43l+Sk$M{J7Hony|QkYpaEI z%38NocF9|Mx(}Jw$-<40PInD$-K7#J*~t%}q`23L*+L5l3mA|JHexb@Cno9FrrJjj zFgf(`((x>;Zcex6C{G)t%q{v%pkBT8SUxI9Qr7MiAqNz8BFk=cz`Pw^95Xjl1jl~!escH4!!>&orOI0S`6ZO$=SAO^{L*=A#?*!9?Ja2ASU(;F)b ze1Fb_kqZXD_Vw}QL@FTF=R1WGg~O>W1#>D$!NC(d4fS>-id;~I$tQ~2x4yF#mN4eP z?k1m8$+k=}PppdBfd2rt6`89b1ZvkPleFnvIrf&vRsA4r2j@z(aezQ=dp{~W!{<3Q zGmI)`vB6?9Y%2PQUYntl&~5QLv4riFU;0hy83d6o=3Ospusb)oucgp>)*>OK41&S2 zb7qSRKqNQ}M@T;nFwu#^#ToS9aXvRU*TS+`w*@!iD{Fq+{nh1gZsV`+jkOZ0?^8}C zScQf0U|0r?gdI;6vf#)#x;%@<$KzG+2#P}_hxE;K!|fN|4_o%?{F9p2qQY1R6FD%L zUA5bEzNcmZ&4uc-D+|?9_O6Kg3*T$bua6vn`9z$)Luei`uKxh1bt{`4Qra8WA(Mx- z$v#@yZp+?9s)b%vfF$+&KM}UO97$p^Ui|8nqxBm1wX~`48<*+{EX19l4w2$a^wXe% zE;v%mEJ&hgz^L3ApBeGiR;$Y^S5gT6o+t9q&%EDhxSr(g+>j_%wB}^N{?oVpJ$2_@U!+}(qvl?~{@Aud~XKCbe-8dB**x2%c%MURlz=OEgEXwO4Ru%*CtBk1PmM>N@c05IMkKNwE z<VO74~a51*G39H=@j_83n>hnTaJT;9R#7g=gU!x{jbc~h;Xdr=H#?m4l2%ZG6JlglEjXLYFHUB zBCH4H7ykeQwug~>sRvHZ+Gol3ry<9rLX5FiBuh=6Xb=j9AZ&VQ{{T^RV5$~UY#XxO z)U4=}jYXR24G+3_mtnIr>i51eao;+X?XyoL7gA8jf0izu@l0KG!{m)ZU| zDW0QgNwLa9s3?qKkk?`m-kgxT7#|&3K_*5rs~x(F+VnW^k*{UFjjFWnUtvWK?y4Wt zBFb`y%PT!12(3}rvpC&KuZE8gTgekR^pvo;4Y>aR3QBH}B#@KB{5vYY?jL4fipHm+ z$57TOW>u&?akF}7)dYuMGO-^_ZP!PGseN2&jdHWEm=n)#qcQoLkVC(7?&IC*m{K*TEI2_`o_I$JL`S&VDC;^BYJnK)Py zc~u3*ylCee?T=&Q!Ag-B+UpFgtj>nT+yp^l6 z0}80EC_als)oox)vW4{O^#rP`Y|J_dfMa0C1Wy`HB_Z69MYvnzKzwI1UNU^#YUK6@ zvO9-*Eo8*x9OpEkzC365T(S7gv9)`)*ns7kxoNs&OD3C^{Pg+b^)3| zl2^`LgCvo6+&~c^oQ2kLm18L9USxqhFpuYm1XAE3q9AW_yNZ42yfIMP!;hhBI zVlSvv5HF>V0#75_D=C$>N}`uoEJKALg=BIDIcJVsgLkkNo6|dcVYr4CIb~o9 z$=j%JD#irlJWLU`svt4IJ#UxPB<% zP^oHytS8`Sa&@_K@Y+JmSRTMMrelmE1Z5kk%|6*xFj0djwUcQM6qq79HsFs4li{eY zb{0wW7U76G_zV72xxvfgq706`3c*)UaVf66`+g4rQm0-mh zdAL-Yi|vNpy)wN4&&Z5~DLVnS1ep2g2ueQt+|x`qTewu4gY9|&{5Av0ofSPkpZkrx zq(I!vk_TTMPZAV)q<66_Pr~(qWw-%+y|pakdu)C|r>Hes>U z(;Pa6y{Z)cuGv}-Hq5pa40?D(gSO*Ml?=NN3sjWtAkx8i< ztuw4Jha1V_FIun9Smaj;>D8LrnEEEj1Uiu4s9=Fwkvr~w6SvK8krd7{AzRpiYxe11 zQj8-R-g#2rxKTZ%e{{YAj;yWk<0Gu%@{N=vtXq<9HX|USCR-UJVbg6DSji}7Yj^fi;Cd)wf0))a z-&t~u7RHZE*I``FD=z7g5}~>Y{In*?T(>yvw-MOx?fWRw#T;=0qgLZe{^Wt2D&$&y zI2L9UE^vUDt^BH*`kK;+^BFT)Z<4^Og ztNUg5ACuR(TWu0Bi|hSg;;>=sFNOYp%e}k|kAU@>e<3G5u0P@~({g58nyRrj}cQB~?J5 z9lHF$I_~;+P!0fNaa^?6%M5Ht^WOEb-J`mT0&X`FNa%8ooA`sSx+$2d+vPT@-%Sec zx0=;D;$B?il)}oG5C_BY)AXGZR-eQ~>nkY^MMBjfx^y2cMbTVsVR2bdF8$f6zPCoM zax)}sb|9X=Emd_4Nag({9%j<4QezTbPm`T#2i||Qyk7aou1L_Xj*}1Cg#b{p0&1%Ix-Y9=;8xEnS@o*LNH&5*V3KG9?Q#!1{*U5x%dJsmZh~QTnQMJ;R?4 z%IA(Fvt4vk!l^Fr*r}ji5n4fDsDU$?1xKDmiaLM@`Dxad4mgShvYj}dKW$g!MJh@G zKc{_1`P37c#5D^^1;CpMpkT%%r>dJBfBgKB33Q2 z7MElYwmB#v?HYYlIZ7l%Gw}U4pPMTguW{uU{R;!$Ze&3YCvVrC@>v zB*@!O<3M>oZ&tOfkd+L+qZ)=SlR;I2rE6wzHZlPInmiIsj}t)xUKS*t@_5##!9YED z4aw&~c^_{1N(tlGQpHD7_j+N#RzUG63!njah%vT@2%c!&M0R@+4`l=BE-u{o(kIy6 z-G(c8TBFl^n>Dnz*Hvbq9Bt-~nMa1&UuHuvk~XkS4xIaFfAKjOUS>XK)Oc5k?C$kp zbO^*TRv4AB9fmNYBThBfh=uF7Ukx)3RC<&1-(MP z(F1|$8y>@rmimPR1uSv`dUW3#ARB~-Gz_-H|6l*PNpP^10Dj@a-u39YM;vxXq6 zw#+6s2Yt0`mQFknG(J*>U7{O+V9`+^iYm#f}FOl2~LJaWVl}24_{+&`&d%qBcO+Zt>&9Q|}rGH-YA- zHTHI8tYr+~pP)chFaQG*A`bBfTalQ@v;P2{WwZ`ThwVBWz|{=xokiXK~Q>-0f$UGb}$$MqaF4lTY1);kc5sltfuTSk&Lndn4qphE2TRyR^BIo1w}>U^6! zwjdTHHam4a2M!>JmL4NS=S^~u~Zt?wy>xkF2^jaR-KfX z(z0ZjBZW`$>U*jZVW@iprKs8O9$Gy>k7#R2AbJhd_(p+uZd-zZ#hE+?j zJZVDhQ7(ZLkilt8U@HAq6&V!@PVRagIh2yP6TvE~Db;zN{{V$9$li--KzUq;^#ds` zpgAD_0NwKd&e$m=fXKxE0QYKmxiQbwnA}~6u=oL0>kQ1kRW_wlnVu3sTvgPfv0%Xo zxm4t3m0}LiPMw>m$BgC$Ak7cTIh*PD8fr+%L#DK~WR(_`RTh4#s`=m1VJZPq1dw{4 z9=g<75+vpvb=>yc!}>>Wg)baP&Jt6!o*m|tW>x@F0JAA$FmVuf>j%g1>!;Hv9#9NU z7$3*uL(0O9!C1}tSJd*B#c)jKz?M)(!H5SJ=u0->?mTs{)?!Bxe+oe(-TFgax_DZN zRmy7NR>ost3<|rd5UYdl&=M3K{{YLTeQBmmLD)|kgt5mE(D~@^2bxPwOvc1z3a+nO zJB7<7w4K-iJANH?xH1(PpeEXl-PALMyn6CzSBHH|c$cJ9wKFB5K&>6i0z%EK$D#*N zM93hOWI8lk*sjb9(*H1@a z;PM8L%#KJ|QXzQXoo)XB+V8mccJ5yoU3)8s#1~+NNr7I>WP(1X8z09`rc^578Ng;+ zfv%$Vy;e&Tx0P1xE2;kgXMX8=)Nw_Z8S(-HtVfnI1kBF5&XttWVvq^8R2U( zJga&3j#FV_-xOH{av^G~%+i%5PDps$>JHR#4t=7~ZB-79)A^ z5#hXROfC;?Ne!4^h3c#KH)mVxwF(9ScaEdLjrP|$n};N%?_VcvSVcHPbkx?Ieaib| z!S8h5E#jn;VH*!AAc^w^nb!r>x^VTbcv`J7v)NFCrnSqzyx(Al3f^U$eh@XX%)kYF z#vO(QN%=%;nVu;ja=;LQt`BId2M>~pVi)0ia;*vXPumsaTgX7Byh$v$0RI3>EG*Wl zDsp#?#)%A(WJn|}`n{D=)G=ZP<+Q3dz55O7k4y$)u*`xAwnznm;tt{n+!-LmYStXA zh9wyeoH%RSRWsuVfMKX=uDh?ZuPok*Ey1Th{3|e2*wx}PKttVI!4fkJ0LITa zCvCUYm(&PZV2IqF9C*@8hHd(QhPl#~r`UX93dNYUn3Y=&5tB%g3IGDhBW=c}qjPzU zh4t?3tS~zbfE#e9zx*q=SYR)etz1Ia>RLR&oPi#rm0<*v4L%y&@`*`^pVmSJx!Cil zCL6?eYIL@=R-bKl$~N>>(OpZbjN1|buEjlAR6cq^CWa~4NWfWb@uK=KC+V=Vald%w zM)*CJhC~Ti1h^!Ge2TKcRtIFPH`Kj$)<=^BQ7cHm5A&!P(az}&q~Q z2f%8pB4}ol>cbCEY6oj`6>^~1cvISEQ6-lCQ}5iYD*dKnR-WMs#VsVZB0TX5_r zi2G|POaNEo*Z0ICwBOiT4dr+PY#;eL_Vqg zFEVLk@DyyYWKa`Yf5+|iex7Am$EHBoG)dSPX@jD!OUDaGINN^SRjBb*SQR&FD_3GT z;#Oqlwd^x3;GQ#v^YXN%5nR+Eh2xpU#^}5GVxeYL)PN8mgHC zFsh}n#4!R1fB*!>lwe5Hjp{PGvREB&MpLkqKoM(@qjDMy$p>xxbn`kGHr#Hd=&v8J zKETviV=)3|L7n^tmX8rxS8=nq0r9M(RCZOZiE8WL=~+1j8;9z8d_G#RfXGX7p8{DFjbadYS3@YBDTQMCz?}BlE21P8)!s0o%&GN7Vp{G5-MNt+NC~4aa3= zV^s>GHY&x75A**3l()hL!ZnZ(yP3XIddgWU1U!%!0p~tBZ99Cn{InIwjo;FSK(hEA z9QjuG(iZXaM8&+|k>=c`qED-p+nNdbvb zxbP4desFZoHJVN1R27D?H4tk#W?bz*KDkHBrnQ?4PZRAws9yG{Z%f#nYx2v+=5g9G zG_hO*#wC^9vcnKp%v5enkW7i!#n@SdW1*PZc0OD~A7RJyCv2nvz) zSV#mDjw;}vp7Fkml<7RExc>m#7r$};06Gjx*Ea`+d&awp_J>E!9c?+WO9CsCuqr}? zQwnFMxAn=iVr&L|+z${r9|Ovy(K8#0P4lX3^>9mAoUsp@$*XZCRYItU>JEvMx7Jue z8Ub_29?BVvf#FO3;rPHfT-Ve@f&!>kOtMu|v0_L+Jw`zTS|NW_k>(sfjRnv+vv8sn z^EnlZ0KuGucmYZR#Ac+Z3an6hXL;+X#On(_D@kTL+}zf^7`-x<)Y6JU^v%qRbJ+NW zkX3#XB0*P((^$C(B!RLGps}+KdY{g!vZ6Z#P>V=8@~osH5ipFVrVCmoDPUzT3YmaL z{{V)p@-upL^Q6jluqSam^fsZ%6Rc+1p2|@fsIZ^=htoB%46Oly^xTE|a9~ac!Ai{J4kd#f`ZjpM_-ke`&5n_< z1$7I|oAEu>sZXS%Ld|V$%+^b6n+U9_wg9P)URku*z=PBD#QY0&jb7u*WXgE6h4$Qn zye>H#&|Wyohl~|#T;K1dmB1C)9t&8>(6~}a4U)_WFA@Qb6CzR+`g$)f8m}=1lY4x& zr~H0zAuLmwTE$`snW<1>rN@CP=3}gADKaosvGtG4dwVJ@T_a%Hj#Vzz7DDdZ^}bvwON!1DX5U&ZCNVa{1A*a1Ta(*)q#d4eB_ zCs*FLsJ@zL%{{YzEmv@a;Oe6J3L2BJ!w4ZWr;@`wp-aS6cqf{ly%rxN2|9C}=0>Pytoz;5uv5dTx11*A$;M zg>bz?3>%wQK)t2k$1bXD4b@TsBgAjh{B`LaI#zMFa3a;q&l?ZZzNW4I2PiNNAl^H6!)+~; zrK7OzqrvkZ3Z=cl+CdD#Jf)k<0(S&_BV3nI#n_}U+<4qm$;0DR2fY1<#qWGulHMYm z)Qqql4@1Ai>zB;NR*Vg%_Nxp`wt>JuEx@jH{owlzeHLHI z&OzH@rTO0VRW>kFsJim*sz^k^qOVFEY zSjkXBstiG_h8beHt#DL=e;rk(Oz)lP-}J_W@;&tuq|yz>r5LbQEQ(t*8)Q{VU}P|C zK**61u+`H{q4tg!t&IgTdZ{jLH7c`zn98$ma0N*NuE6MtJ4Ye(Y-Lgh+HG54q*?V^ z$hIz_YXde&2wPyaiL-Gkq%6SRPNR<$Qna$A#H!m`{oRzA6JN^KUdr*ZMnVC{KcFTg z=3{ZuXTo+r4N2^Wq6yKsUC12r3nj*1TAJajdgV_&CVGd7nT zD#>9pDV{`3WNK)sKqN9!& zRLe*)4oJxQgXuMtAKXs!JvGngHOy{62Y&%f1|xtbou_Pj0$Yno&5MfJLac^njfic& z8wu935X}Cl(fD^;_|%dz;FIOIBSvZL?8Gsc25>4P1Ljf~9H)IWLgWpkXtAHlu~dV4 zka0T$ljW|!;LH4FqE)D(rF)U=SoP z$88PTJb2V9lGoO>45#Ne6k?9WSwVyO z79e8`&=-IDdh1x$aKUs2{{Veu7pt_Yq=X=_JAkqBou_RLu$>m=hu>LFY3+h#kdOxF z;7>!pS#7i*MYjd*=Ub=aj1l3v6I`o|aCuvUNEaQmp?5)?UK_~S#6_8+c zY`X8bJ83bLvdqrP5fs|~HLCHb^OB5Uk&2!7_z2ssoh<+WnHOIg-Fj&zv0DM~COR+3 z{6^Z<)as_|+gVM@tUz9kyBVB%M2$2t<09l#H&QNGNK$|($0EUDk6A6TV25o%;)w;w zsRC(@jl6_v-w+f7Ac({szYq9p5=hWlLA7P5hidJdn{6fh!N?Uv;s8^;5wRygbGVb+ zMIMgbRPMEYFL*xuM8?JD22#pRmas>4kpI-kxGJ;WMrvIaLX=W1du`ebK%Hb!NJxd5fo>#m9uy_Ql~|h(Oz^Dx zXWTUgxv>IE6;c;8z%ts3im=BcK5%#6P(zU%voQIB0IknX(^L9q>{_w7Uhk)oRZ3nD zrpC()Dy*$yZ1j$70=oqgSQFu>CQej1pG@RFV`^>6{k|1Y`0u@g4K8X^$L{oA5&~jH zX3sb!vO}_%0Gimz`e%N(PlW)}E!p@;}V(s8Gc$gN+F%4^8E#a*(Dvux1$6`dPz z0Xlw6JZQ3_jbyw)XsmB;(aW6)BS&4tYhEuYeQTAyR8(D*wq*#%^vrJ{5Pp4kI$mz2 z)1?w)BxFjXQ`xO(K#`r}QagB4nz>`rX(MtdQqyBc9GeC0YH?R0#bytLhBBlQ8o?!1)Jxz` zMwkQRs3zpcOq+u23GnfuG-|PsInk~!HW33`={a$g>_CSh0j@-a4D1Snxij(6V#`-w zRe$>@h~@q*RiQ~22*h`AsaI_7XR8nj%7`q=ph7W!B>HwR@&h1{POlR%q>6Bv5yY-X4p8AX&Of(W35cVEAQY@JQaUF)sS4MuueZ#W5__f){W-iF< zEJO^PK_~l3S&xZ2vguO#xo07yUBK`kg(uW7n4!~^b>r<H(A)3`nt!%UCa|c+ly;dIUGe#IQE7L zf*>S~jQAhJ$4|z^kTK&+(FHOj{B=6YYss(FRsv)R*n!|aItE9|JZfm=4aHY|^Ma}$ z5TxQ@Vqzbj+iQM@)jAVd?n)fP@XFE-ZUYHkdP1c2#UUH3=q9}k^hBK|KK0kRwg zQg;D?T#Tp$H-u}NpQk!XPS8;BtBh%uOZwK*)~%+#~wM^J5f46dKD}QfiU`T{(0%uYMw*a{up^{Qh$j+q{sT@j@e{>CeX({1o zSSxWN^uTe2cukLtvk=E6DP4rxuho%OcA1l_s75owuXf%?-$14$R&W*2Q|fG86-z@E zHI-siHY0hD9R?D(ZfB66THx65`zuFXD;G?|8xNIS)ndp8GN6~teJ0TaCeS(`iLob% zJ$FO;k{#OcxxWh5(M_7WeKgAFF3p50f>tw*sM{4ok?}Jd>TtWy7o{ND_d4>|g+PlM z&Ym)|*0r;F+ssrlfU~&901F4eW%He4DMWcMc0g^}r{z-GEq>~d@VgcKrb_5Zv0LgT zx`0knb0tXJ1_Ta=LY`q1@yy@*cVGBc;*84MM;le??C)S&$xYX)5EY15Ms3srrW}|C zddB)oD2aKZmWy}l712Oh4~oMN*+~t%UGq2yKhrdbP@7jx8qWdH@6Szk+UE|q^FcQ zoyZ~z{Im?s)8t1qaks+hVY4Ra|jEKr9)A5?XgBr1)swiIM$a z%k=H`-14Z%#zHTpyDCS<_V7m!=}E;aBt%3BBu>#CbX9|8{Xdw3HS9I2lX3eHQm(ZE zHr%XqGtj{&Mu&6^4BsG92gbEUM`l6;0IOzMIK;%UBj+)f^wd>Kt(%Q*i*frZjmm&n z?8YQ0-(fj*8k8#{xjC9dN0!=sx2+ODy&A8#DxxmX#wQcI03?19s6<)g^;iv?h!j2M zmmDOn!k$>hSIA6AAgGRj4G~V##D6fgO-;tMsNkXziiRO}Y++%#10Wd@zLH6v1|co+ zsO~qneJ}e-@lmjt2jRHu(^io&o;$zYQ{i7H9EK`n1O3|_{30fGg-5CA{{Sl~J^EI6 z)@f3>T(VYz0Fl!+`EN1#X*l#-cb~?hSc73+3fvMxBo<&9i7b(^SQ{}1#y~p9g(P6k zFK%3_bemAYPxl3qaRhvRGx5}Y7P$1uu;s{9SlXFcS!ghF3n5O#0?IHaU_%L*_zgOX zERpSYE3fkDS_bsoalp=Y$QV@+7H4VSZS`IxcqJ(wr*Rtnl`d79P!&Kc5!GZBDbgc( zByXdIj4LFddaQ45T2S{I_^Jk)Kw~(lZGaF<0XUt2(=q)!3ree}3eDz+9GBE<8)k6{ zJ0gh;qzUq|-$e9bZDY|Zd(96vD!hFu;-%D!8*_*Q<@sn)PVR)8Twn3ELj3Cxg6FXT z0B;bc3WW@I>NN(DpF>1KNus^GwLdMZ2!z-m1uEOb^eBCFv z0;wTI{57x8bwmyXfP85Bd-;eztV|4YvTVh`0WxAF76)ykZCAgy1@E_8_E5t+IZ#PK zz)|iez7OdWa;;uq)-$@PCKU~(TW1{}CK`4+uan#Uds|=edYJ@qso!q*_0^heJcoLK zbVLknELK<4Bw>-T5@TVB=y%m5odm11#&*hYay0mOP~eFix;Pt%JZjGDe{wvv3oI;* zU>3~^$%q&nwi^OTgBq=$8zwkTGBa`3+~`tt>?SSSowGbUl& zm4+dM5todeSL3wZJ>=QC{*kflH{d(XR(&{*HxlYe(*FRJO?ch)ThX;ZpiiH8vuO@%b#PTNSV=AwsjkP|`DRE64}stGt)K zJXvv_s3cLea_u(kBCDi;NbbA<6^A>VYN6c~>~M_%2v)>H5UcUX12gpNt%D{EnPrtx zSJN6BaR6`!pTespgswS_^&5>vyLWXwj#n0x47NE|d6F9}*oMRq0%h~tTTY-K6Kr6Y zExF4LK)uKx4J}DRhjN7;P)9CRJ#pz(TPVpDmD>^k1@KZ9NMfo(7z1L*LC9z#iM@x9a$b8Z%^GqQIDEU4b4)>g^nQU#V~ ze^jhu1TZ+yjBllVWSbgn3*RiJ8wJmoqFyDN=*RNZnb&-MmonO zn#c01tA)rc5xVZXgAyR^_!!mXKid|n=|B!Z;YZY;FHt0I_~^7cQou1k6SV&T4TqM$u7jR~1}Kf_$wzZPRYLLnbBk%WWI9*3~d=sN+#C;o0lt)X4RQUaKGx=J6{V z#;YV7tQ%WXFuB&|sLy$QrR`nzo=2(04Qp26NL2?fhffIGRM|K(Ni#fPgu`Ijk?#J` zx|cZCXi#x%978zsGHknu9cO(v6!9#cwA)yB^Qz3OE4cMY-EM#9Ro6eWHxA8+KA?Qt z0%VIJLpdQt!H{+_I81uwE=;n3S(@V4;m2RPk)9&ch}S@GOh0b+gi3<|NU*VDrL0^@$o)z_ z0L+;9X}5|$O(cfE>w9zlH5P@U;%|C$PXm>0fmK;=3dEuVA(Sy-gndbgI}W7Ig)Vs* z;A_O`P_W`^$M)~r{(p3J#C4)O8TV2)Ur+_7uv#+e&W3slF0?VIM-#vH*{ zLzdeqV~*j5!{#*XAUOnUG2`3(YjzbT;(K$_#Ti%-*=G<00}Uhlyf-nRNf8+fWjj1H zt=jtXsWl$n1k}o&RRrwAXsqiJDn-ZaN#*@EC6!?GycM@Q*1VLTA2>9=;vo^Y#ixLipN_}4#ssPFW1|SG0ru{Y(qK)#hthZ$x zFUqxZSzALKamQ`;7=U_aI>0fh%)4U9LO!s0CMX9Bo?f=U58OVCJCA@6-TJ(s}|1hN9o3 zzKRbwXso%f6a~ZSkVluqbU!iX`A&hkw{E%JS#w^kVT!R5YjPA3{%w5C0?yFoCQp!mMx&q7A1Z+3d zG2_NE6E6P%QvC00)?CwmrHL4YEBHzI?HYK;8=dwAyK4s;8+Cv&un8c@0PYUpus#Iq zHez~h>f8~+)JqB+*}mWzA+iLRX)^@IX zNb%Cxq(-Hjd2V?4)By8$RIjspZvIWkY2%iXa*+gsR95{SVh6MOz&Cxha!4UVxz1hN3Hksem97c-4fW#BgAilcf6l(~hcsovawR-I+J1Yl zD$7Tv%VIYk(8M)}F2*ugL^jv`J(@8%`hC_GbQ#mRv>Yp(e?b4*&Pj>PJRVH6ZQUz8xm*_%=@HMW( zt~08Mx-2`G+f8WkxOq(R{GvY%ZBriK@0&RFFX}@qg)t%4NuZNyTbIvV({ixNHOl84zQj*z23>9RZc@g0@j+*2IC` zS8r_llD2VBE4yZev1>CK2Md{2+RPQUUWdnAmr=l;b^2nyMgIU=gjkUzrJGCC_qF@w zIhPD=v=y!tEr`}x5$ZA(ip~;n9}mM-S$O#va)*q5kmE_5X;;iZw~bmotKC&tg#&@= z32#=+92{~5@+=ECgb)wFX}oD9Wn`AYoB+2xPZQx)uZ~rVP4b=`>Pbg5a?+F*X8xzs z0g4|fe9DhaWf&O9#PvFF{#~&qTz5NRRTsZ+I}XnJ)Yy^92Ib*;%eQe7u3cP&Bx7qs zsu*A)UA;L{Gc3hdtZM6~bp`4&F=MtAJinL@-w{;u#MtY$A;fD_VCi)vSh$3I%lzQCaow%eHIJ~Wt#$fknfLyFmB8vq1BQCh1u0ykrk*!1h; zqGDx#wvD3DJ@o9c{OT->pEVV#)&w(IKrZ%N5}@Hg#ZGQ4^D`+zM@_Y3kC3Y=5+6T0 zRpVmU6jzJLOl(IYr2R{GKC9O5*(l09ti*}@^hc2a1NxV6@VyR5T~M)*kOvBuaXEGm zL4$!CTH?$$7=D4#0&+tQ!#d z+N8+XK`+u@n0%weN3wfn^o8Od;1N!Qj|eXqjz(s7{gby(IPvQPL zu4N83w+do~S;9V0F*we|0r2S&)-<%Zk&$u0R_G1gxt*=@2`vH^LMv3y) zsukV6vBc(!YicWE(hQ{a9uv^&r!N{g8*sjz)ap!&VmOM|KYaa)?A`9JKwce4_NfY1 zxM@8|F*}jd#A>f22_%lnI2+Tj=7wuM?QY7_FModC(B2;{@n`=fB{1Jaq6wV$9?o%rr686`ijO_*GTwOgM;m)47QX2 zL=guWnG&FhFf<5AizzZ9?AD-IaOX#9?8;)cK_!mmW_)MDB#xSXLAgi-6XR2egoLAf z)LO2_pcG2LGBO|qB+pQ1!1VZODFKSb`Sxp3+y@#pM`u;U5J4bh+sR@708#37xF%TK zI^NBrcviP95wEuS>)7NAlm1pfIup>6V@C9elY0D{t~@Aw?@rf(roy;lVtl`V=m00C znyjT8h_y1Dq;s>2zX+>y6ly2zXbROZ|(E61&r0Ln&2 z0P&u>EUY19N8=|8Yxee5>(xxwFcO5BC+c4Sen5=_A*35sI1{aEyl*f7tPhgNe;99u zJ#=W|5U$nduiIHnuC4Mw6pt|~M}Y-kLE97K;x^RlbiFh)hg$~tvBq}(oi(*PZchsu z(XUsHP#_J-AaDJrrrriMU+J@-QGQn8SxdJVAUmeyd>6yx15QQ?pi@~$GQq45jzoBk zh~9S^lxNi!UKNzq%T6Vr5(F{Jpx=Cd6QIbZQ|YJ7J{6QI(%;>>L>TKMa6hbTBL*|+ zH_UbJsR97jhWd;SEDI)EkW2~sfPi-c!&8xh#LRdLkBw`Irgob!W9Gp?EC7OJkO>|! ztz%4!2IIoE0aJ6ryswDX6Xk&*7#(E)0LM#{b#gddes#0vwWzNXv2riB1g+0Nva$#x za3{uelv6q_vC8`T-saUM8d%k{?a#N|jzd(<({aif87_d3?ewzaVS z*!yu;AJKbiQ5d(=iw(MT>Ejx@#_3NxUSKv2MQeJRx;uYlqllQ+tA-#G9w37s@YhKX fPKi>_DA@)e8UFM;7k+ literal 0 HcmV?d00001 diff --git a/node-addon/line-mesh.js b/node-addon/line-mesh.js new file mode 100644 index 0000000..9dd4053 --- /dev/null +++ b/node-addon/line-mesh.js @@ -0,0 +1,138 @@ + var window= { + x:0, + y:0, + width:1920, + height: 1080, + transparent: false, + name:'line-mesh-app' + }; + + var viewMode={ + 'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced, + 'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm) + }; + + var options= { + 'window': window, + 'view-mode': viewMode, + } + +var dali = require('./build/Release/dali')( options ); + +var daliApp = {}; + +daliApp.createMeshActor = function() { + + // Create shader + var vertShader = + "attribute mediump vec2 aPosition1;\ + attribute mediump vec2 aPosition2;\ + uniform mediump mat4 uMvpMatrix;\ + uniform mediump vec3 uSize;\ + uniform mediump float uMorphAmount;\ + void main()\ + {\ + mediump vec2 morphPosition = mix(aPosition1, aPosition2, uMorphAmount);\ + mediump vec4 vertexPosition = vec4(morphPosition, 0.0, 1.0);\ + vertexPosition.xyz *= uSize;\ + vertexPosition = uMvpMatrix * vertexPosition;\ + gl_Position = vertexPosition;\ + }"; + + var fragShader = + "uniform lowp vec4 uColor;\ + uniform sampler2D sTexture;\ + void main()\ + {\ + gl_FragColor = uColor;\ + }"; + + var shaderOptions = { + vertexShader : vertShader, + fragmentShader: fragShader + }; + + var shader = new dali.Shader(shaderOptions); + + var material = new dali.Material( shader ); + + // Create vertex buffer + var pentagonVertexFormat ={ "aPosition1" : dali.PROPERTY_VECTOR2 }; + + var pentagonVertexData = [ 0, 1, + -0.95, 0.31, + -0.59, -0.81, + 0.59, -0.81, + 0.95, 0.31]; + + var pentagonVertexDataArray = new Float32Array(pentagonVertexData.length); + pentagonVertexDataArray.set(pentagonVertexData, 0); + var pentagonVertices = new dali.PropertyBuffer(pentagonVertexFormat, 5); + pentagonVertices.setData(pentagonVertexDataArray); + + var pentacleVertexFormat ={ "aPosition2" : dali.PROPERTY_VECTOR2}; + + var pentacleVertexData = [ 0, -1, + 0.59, 0.81, + -0.95, -0.31, + 0.95, -0.31, + -0.59, 0.81]; + + var pentacleVertexDataArray = new Float32Array(pentacleVertexData.length); + pentacleVertexDataArray.set(pentacleVertexData, 0); + var pentacleVertices = new dali.PropertyBuffer(pentacleVertexFormat, 5); + pentacleVertices.setData(pentacleVertexDataArray); + + var indexFormat ={ "indices" : dali.PROPERTY_INTEGER }; + + var indexData = [0, 1, 1, 2, 2, 3, 3, 4, 4, 0]; + + var indexDataArray = new Uint32Array(indexData.length); + indexDataArray.set(indexData, 0); + var indices = new dali.PropertyBuffer(indexFormat, 10); + indices.setData(indexDataArray); + + // Create geometry + var geometry = new dali.Geometry(); + geometry.addVertexBuffer( pentagonVertices ); + geometry.addVertexBuffer( pentacleVertices ); + geometry.setIndexBuffer( indices ); + geometry.setGeometryType( dali.GEOMETRY_LINES ); + + var renderer = new dali.Renderer(geometry, material); + renderer.depthIndex = 0; + + // Create mesh actor + var meshActor = new dali.Actor(); + meshActor.addRenderer( renderer ); + meshActor.size = [300, 300, 0]; + meshActor.parentOrigin = dali.CENTER; + meshActor.anchorPoint = dali.CENTER; + meshActor.registerAnimatableProperty("uMorphAmount", 0.0); + + dali.stage.add( meshActor ); + + // Animate the mesh actor + var animation = new dali.Animation(5); + + var keyFramesIndex = [{progress:0.0, value: 0.0}, {progress:1.0, value:1.0}]; + var animOptions = { alpha:"sin", delay:0, duration:5}; + + animation.animateBetween( meshActor, "uMorphAmount", keyFramesIndex, animOptions ); + animation.setLooping(true); + animation.play(); +} + +function startup() +{ + daliApp.init(); +} + +daliApp.init = function() +{ + daliApp.createMeshActor(); +} + + +startup(); + diff --git a/node-addon/mesh-morph.js b/node-addon/mesh-morph.js new file mode 100644 index 0000000..1fa1fb6 --- /dev/null +++ b/node-addon/mesh-morph.js @@ -0,0 +1,258 @@ + var window= { + x:0, + y:0, + width:1920, + height: 1080, + transparent: false, + name:'mesh-morph-app' + }; + + var viewMode={ + 'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced, + 'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm) + }; + + var options= { + 'window': window, + 'view-mode': viewMode, + } + +var dali = require('./build/Release/dali')( options ); + +var daliApp = {}; + +daliApp.createMeshActor = function() { + + // Create shader + var vertShader = + "attribute mediump vec2 aInitPos;\ + attribute mediump vec2 aFinalPos;\ + attribute mediump vec3 aColor;\ + uniform mediump mat4 uMvpMatrix;\ + uniform mediump vec3 uSize;\ + uniform mediump float uDelta;\ + uniform lowp vec4 uColor;\ + varying lowp vec4 vColor;\ + void main()\ + {\ + mediump vec4 vertexPosition = vec4(mix(aInitPos, aFinalPos, uDelta), 0.0, 1.0);\ + vertexPosition.xyz *= uSize;\ + vertexPosition = uMvpMatrix * vertexPosition;\ + gl_Position = vertexPosition;\ + vColor = vec4(aColor, 0.) * uColor;\ + }"; + + var fragShader = + "varying lowp vec4 vColor;\ + void main()\ + {\ + gl_FragColor = vColor;\ + }"; + + var shaderOptions = { + vertexShader : vertShader, + fragmentShader : fragShader + }; + + var shader = new dali.Shader(shaderOptions); + + var material = new dali.Material( shader ); + + // Create vertex buffer for initial positions + var initialPositionVertexFormat = { "aInitPos" : dali.PROPERTY_VECTOR2 }; + + var initialPositionVertexData = [ + // yellow + -0.50, -0.50, + 0.0, 0.0, + -0.50, 0.50, + + // green + -0.50, -0.50, + 0.50, -0.50, + 0.0, 0.0, + + // blue + 0.50, -0.50, + 0.50, 0.0, + 0.25, -0.25, + + // red + 0.25, -0.25, + 0.50, 0.0, + 0.25, 0.25, + 0.25, 0.25, + 0.0, 0.0, + 0.25, -0.25, + + // cyan + 0.0, 0.0, + 0.25, 0.25, + -0.25, 0.25, + + // magenta + -0.25, 0.25, + 0.25, 0.25, + 0.0, 0.50, + 0.0, 0.50, + -0.50, 0.50, + -0.25, 0.25, + + // orange + 0.50, 0.0, + 0.50, 0.50, + 0.0, 0.50 + ]; + + var initialPositionVertexDataArray = new Float32Array(initialPositionVertexData.length); + initialPositionVertexDataArray.set(initialPositionVertexData, 0); + var initialPositionVertices = new dali.PropertyBuffer(initialPositionVertexFormat, 27); + initialPositionVertices.setData(initialPositionVertexDataArray); + + // Create vertex buffer for final positions + var finalPositionVertexFormat = { "aFinalPos" : dali.PROPERTY_VECTOR2 }; + + var bigSide = 0.707106781; + var side = bigSide * 0.5; + + var finalPositionVertexData = [ + // yellow + side, 0.25, // pA + side, 0.25 + bigSide, // pB + side - bigSide, 0.25 + bigSide, // pC + + // green + side - 0.50, -0.25, // pD + side, 0.25, // pA + side - 0.50, 0.75, // pE + + // blue + side - 0.50, -0.75, // pJ + side - 0.50, -0.25, // pD + side - 0.75, -0.50, // pI + + // red + side - 0.75, -0.50, // pI + side - 0.50, -0.25, // pD + side - 0.75, 0.0, // pG + side - 0.75, 0.0, // pG + side - 1.0, -0.25, // pH + side - 0.75, -0.50, // pI + + // cyan + side - 0.75, -0.50, // pI + side - 1.0, -0.25, // pH + side - 1.0, -0.75, // pK + + // magenta + side, 0.25 + bigSide - side, // pL + side * 2.0, 0.25 + bigSide - side * 2.0, // pM + side * 2.0, 0.25 + bigSide - side, // pN + side * 2.0, 0.25 + bigSide - side, // pN + side, 0.25 + bigSide, // pB + side, 0.25 + bigSide - side, // pL + + // orange + side - 0.50, -0.25, // pD + side - 0.50, -0.25 + bigSide, // pF2 + - 0.50, -0.25 + side // pF + ]; + + var finalPositionVertexDataArray = new Float32Array(finalPositionVertexData.length); + finalPositionVertexDataArray.set(finalPositionVertexData, 0); + var finalPositionVertices = new dali.PropertyBuffer(finalPositionVertexFormat, 27); + finalPositionVertices.setData(finalPositionVertexDataArray); + + // Create vertex buffer for color + var colorVertexFormat = { "aColor" : dali.PROPERTY_VECTOR3 }; + + var colorVertexData = [ + // yellow + 1.0, 1.0, 0.0, + 1.0, 1.0, 0.0, + 1.0, 1.0, 0.0, + + // green + 0.0, 1.0, 0.0, + 0.0, 1.0, 0.0, + 0.0, 1.0, 0.0, + + // blue + 0.0, 0.0, 1.0, + 0.0, 0.0, 1.0, + 0.0, 0.0, 1.0, + + // red + 1.0, 0.0, 0.0, + 1.0, 0.0, 0.0, + 1.0, 0.0, 0.0, + 1.0, 0.0, 0.0, + 1.0, 0.0, 0.0, + 1.0, 0.0, 0.0, + + // cyan + 0.0, 1.0, 1.0, + 0.0, 1.0, 1.0, + 0.0, 1.0, 1.0, + + // magenta + 1.0, 0.0, 1.0, + 1.0, 0.0, 1.0, + 1.0, 0.0, 1.0, + 1.0, 0.0, 1.0, + 1.0, 0.0, 1.0, + 1.0, 0.0, 1.0, + + // orange + 1.0, 0.5, 0.0, + 1.0, 0.5, 0.0, + 1.0, 0.5, 0.0 + ]; + + var colorVertexDataArray = new Float32Array(colorVertexData.length); + colorVertexDataArray.set(colorVertexData, 0); + var colorVertices = new dali.PropertyBuffer(colorVertexFormat, 27); + colorVertices.setData(colorVertexDataArray); + + // Create geometry + var geometry = new dali.Geometry(); + geometry.addVertexBuffer( initialPositionVertices ); + geometry.addVertexBuffer( finalPositionVertices ); + geometry.addVertexBuffer( colorVertices ); + + var renderer = new dali.Renderer(geometry, material); + renderer.depthIndex = 0; + + // Create mesh actor + var meshActor = new dali.Actor(); + meshActor.addRenderer( renderer ); + meshActor.size = [400, 400, 0]; + meshActor.parentOrigin = dali.CENTER; + meshActor.anchorPoint = dali.CENTER; + meshActor.registerAnimatableProperty("uDelta", 0.0); + + dali.stage.add( meshActor ); + + // Animate the mesh actor + var animation = new dali.Animation(5); + + var animOptions = { alpha:"sin", delay:0, duration:5}; + + animation.animateTo( meshActor, "uDelta", 1.0, animOptions ); + animation.setLooping(true); + animation.play(); +} + +function startup() +{ + daliApp.init(); +} + +daliApp.init = function() +{ + daliApp.createMeshActor(); +} + + +startup(); + diff --git a/node-addon/point-mesh.js b/node-addon/point-mesh.js new file mode 100644 index 0000000..afe6e3a --- /dev/null +++ b/node-addon/point-mesh.js @@ -0,0 +1,149 @@ + var window= { + x:0, + y:0, + width:1920, + height: 1080, + transparent: false, + name:'line-mesh-app' + }; + + var viewMode={ + 'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced, + 'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm) + }; + + var options= { + 'window': window, + 'view-mode': viewMode, + } + +var imageDir = "./"; + +var dali = require('./build/Release/dali')( options ); + +var daliApp = {}; + +daliApp.createMeshActor = function() { + + // Create shader + var vertShader = + "attribute mediump vec2 aPosition;\ + attribute highp float aHue;\ + varying mediump vec2 vTexCoord;\ + uniform mediump mat4 uMvpMatrix;\ + uniform mediump vec3 uSize;\ + uniform mediump float uPointSize;\ + uniform lowp vec4 uFadeColor;\ + varying mediump vec3 vVertexColor;\ + varying mediump float vHue;\ + vec3 hsv2rgb(vec3 c)\ + {\ + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\ + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\ + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\ + }\ + void main()\ + {\ + mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\ + vertexPosition.xyz *= (uSize-uPointSize);\ + vertexPosition = uMvpMatrix * vertexPosition;\ + vVertexColor = hsv2rgb( vec3( aHue, 0.7, 1.0 ) );\ + vHue = aHue;\ + gl_PointSize = uPointSize;\ + gl_Position = vertexPosition;\ + }"; + + var fragShader = + "varying mediump vec3 vVertexColor;\ + varying mediump float vHue;\ + uniform lowp vec4 uColor;\ + uniform sampler2D sTexture1;\ + uniform sampler2D sTexture2;\ + uniform lowp vec4 uFadeColor;\ + void main()\ + {\ + mediump vec4 texCol1 = texture2D(sTexture1, gl_PointCoord);\ + mediump vec4 texCol2 = texture2D(sTexture2, gl_PointCoord);\ + gl_FragColor = vec4(vVertexColor, 1.0) * ((texCol1*vHue) + (texCol2*(1.0-vHue)));\ + }"; + + var shaderOptions = { + vertexShader : vertShader, + fragmentShader: fragShader + }; + + var shader = new dali.Shader(shaderOptions); + + var material = new dali.Material( shader ); + var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} ); + material.addTexture(image, "sTexture"); + + // Create vertex buffer + var polyhedraVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2, + "aHue" : dali.PROPERTY_FLOAT }; + + var numSides = 20; + var angle = 0; + var sectorAngle = 2.0 * Math.PI / numSides; + + var polyhedraVertexData = []; + for(i=0; i #include #include +#include +#include namespace Dali { @@ -697,6 +699,130 @@ void ActorApi::ScaleBy( const v8::FunctionCallbackInfo& args ) actor.ScaleBy( vector ); } +/** + * Add a renderer to this actor. + * @example + * + * var renderer = new dali.Renderer( geometry, material ); + * actor.addRenderer( renderer ); + * + * @for Actor + * @method addRenderer + * @param {object} renderer Renderer to add to the actor + * @return {integer} The index of the Renderer that was added + */ +void ActorApi::AddRenderer( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + Actor actor = GetActor( isolate, args ); + + unsigned int index = 0; + + bool found( false ); + Renderer renderer = RendererApi::GetRendererFromParams( 0, found, isolate, args ); + if( found ) + { + index = actor.AddRenderer(renderer); + } + else + { + DALI_SCRIPT_EXCEPTION( isolate, "Renderer parameter missing" ); + return; + } + + args.GetReturnValue().Set( v8::Integer::New( isolate, index ) ); +} + +/** + * Get the number of renderers on this actor. + * @example + * + * var count = actor.getRendererCount(); + * + * @for Actor + * @method getRendererCount + * @return {integer} the number of renderers on this actor + */ +void ActorApi::GetRendererCount( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Actor actor = GetActor( isolate, args ); + args.GetReturnValue().Set( v8::Integer::New( isolate, actor.GetRendererCount() ) ); +} + +/** + * Get a Renderer by index. + * @example + * + * var renderer = actor.getRendererAt( 0 ); + * + * @for Actor + * @method getRendererAt + * @param {integer} index The index of the renderer to fetch, which must be between 0 and getRendererCount()-1 + * @return {object} The renderer at the specified index + */ +void ActorApi::GetRendererAt( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + Actor actor = GetActor( isolate, args ); + + Renderer renderer; + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" ); + return; + } + else + { + renderer = actor.GetRendererAt(static_cast(index)); + if( !renderer ) + { + DALI_SCRIPT_EXCEPTION( isolate, "renderer not found" ); + return; + } + } + + // Wrap the renderer + v8::Local localObject = RendererWrapper::WrapRenderer( isolate, renderer ); + args.GetReturnValue().Set( localObject ); +} + +/** + * Remove an renderer from the actor by index. + * @example + * + * actor.removeRenderer( 0 ); + * + * @for Actor + * @method removeRenderer + * @param {integer} index Index of the renderer to be removed, which must be between 0 and getRendererCount()-1 + */ +void ActorApi::RemoveRenderer( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + Actor actor = GetActor( isolate, args ); + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" ); + } + else + { + actor.RemoveRenderer(static_cast(index)); + } +} + + } // namespace V8Plugin } // namespace Dali diff --git a/plugins/dali-script-v8/src/actors/actor-api.h b/plugins/dali-script-v8/src/actors/actor-api.h index 82f41d3..26f8991 100644 --- a/plugins/dali-script-v8/src/actors/actor-api.h +++ b/plugins/dali-script-v8/src/actors/actor-api.h @@ -70,6 +70,10 @@ namespace ActorApi void TranslateBy( const v8::FunctionCallbackInfo< v8::Value >& args ); void RotateBy( const v8::FunctionCallbackInfo< v8::Value >& args ); void ScaleBy( const v8::FunctionCallbackInfo< v8::Value >& args ); + void AddRenderer( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetRendererCount( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetRendererAt( const v8::FunctionCallbackInfo< v8::Value >& args ); + void RemoveRenderer( const v8::FunctionCallbackInfo< v8::Value >& args ); // new function just for JavaScript API, to help developers know what type of actor // they're dealing with, returns actor name as a string diff --git a/plugins/dali-script-v8/src/actors/actor-wrapper.cpp b/plugins/dali-script-v8/src/actors/actor-wrapper.cpp index 9b81f41..a462723 100644 --- a/plugins/dali-script-v8/src/actors/actor-wrapper.cpp +++ b/plugins/dali-script-v8/src/actors/actor-wrapper.cpp @@ -227,6 +227,11 @@ const ActorFunctions ActorFunctionTable[]= { "SetKeyboardFocusable", ActorApi::SetKeyboardFocusable, ACTOR_API }, //-- should this be a property??? { "IsKeyboardFocusable" , ActorApi::IsKeyboardFocusable, ACTOR_API }, //-- should this be a property??? + { "AddRenderer", ActorApi::AddRenderer, ACTOR_API }, + { "GetRendererCount", ActorApi::GetRendererCount, ACTOR_API }, + { "GetRendererAt" , ActorApi::GetRendererAt, ACTOR_API }, + { "RemoveRenderer" , ActorApi::RemoveRenderer, ACTOR_API }, + /************************************** * Layer API (in order of layer.h) **************************************/ diff --git a/plugins/dali-script-v8/src/constants/constants-wrapper.cpp b/plugins/dali-script-v8/src/constants/constants-wrapper.cpp index 1571273..162db9e 100644 --- a/plugins/dali-script-v8/src/constants/constants-wrapper.cpp +++ b/plugins/dali-script-v8/src/constants/constants-wrapper.cpp @@ -30,9 +30,11 @@ #include #include #include +#include #include #include - +#include +#include namespace Dali { @@ -211,8 +213,46 @@ const IntegerPair EnumTable[] = {"IMAGE_ACTOR_STYLE_QUAD", ImageActor::STYLE_QUAD}, {"IMAGE_ACTOR_STYLE_NINE_PATCH", ImageActor::STYLE_NINE_PATCH}, - {"IMAGE_ACTOR_STYLE_NINE_PATCH_NO_CENTER",ImageActor::STYLE_NINE_PATCH_NO_CENTER } - + {"IMAGE_ACTOR_STYLE_NINE_PATCH_NO_CENTER",ImageActor::STYLE_NINE_PATCH_NO_CENTER }, + + { "FILTER_MODE_NONE", FilterMode::NONE }, + { "FILTER_MODE_DEFAULT", FilterMode::DEFAULT }, + { "FILTER_MODE_NEAREST", FilterMode::NEAREST }, + { "FILTER_MODE_LINEAR", FilterMode::LINEAR }, + + { "WRAP_MODE_DEFAULT", WrapMode::DEFAULT }, + { "WRAP_MODE_CLAMP_TO_EDGE", WrapMode::CLAMP_TO_EDGE }, + { "WRAP_MODE_REPEAT", WrapMode::REPEAT }, + { "WRAP_MODE_MIRRORED_REPEAT", WrapMode::MIRRORED_REPEAT }, + + { "MATERIAL_NONE", Material::NONE }, + { "MATERIAL_CULL_BACK", Material::CULL_BACK }, + { "MATERIAL_CULL_FRONT", Material::CULL_FRONT }, + { "MATERIAL_CULL_BACK_AND_FRONT", Material::CULL_BACK_AND_FRONT }, + + { "GEOMETRY_POINTS", Geometry::POINTS }, + { "GEOMETRY_LINES", Geometry::LINES }, + { "GEOMETRY_LINE_LOOP", Geometry::LINE_LOOP }, + { "GEOMETRY_LINE_STRIP", Geometry::LINE_STRIP }, + { "GEOMETRY_TRIANGLES", Geometry::TRIANGLES }, + { "GEOMETRY_TRIANGLE_FAN", Geometry::TRIANGLE_FAN }, + { "GEOMETRY_TRIANGLE_STRIP", Geometry::TRIANGLE_STRIP }, + + { "PROPERTY_NONE", Property::NONE }, + { "PROPERTY_BOOLEAN", Property::BOOLEAN }, + { "PROPERTY_FLOAT", Property::FLOAT }, + { "PROPERTY_INTEGER", Property::INTEGER }, + { "PROPERTY_VECTOR2", Property::VECTOR2 }, + { "PROPERTY_VECTOR3", Property::VECTOR3 }, + { "PROPERTY_VECTOR4", Property::VECTOR4 }, + { "PROPERTY_MATRIX3", Property::MATRIX3 }, + { "PROPERTY_MATRIX", Property::MATRIX }, + { "PROPERTY_RECTANGLE", Property::RECTANGLE }, + { "PROPERTY_ROTATION", Property::ROTATION }, + { "PROPERTY_STRING", Property::STRING }, + { "PROPERTY_ARRAY", Property::ARRAY }, + { "PROPERTY_MAP", Property::MAP }, + { "PROPERTY_INVALID_INDEX", Property::INVALID_INDEX }, }; const unsigned int EnumTableCount = sizeof(EnumTable)/sizeof(EnumTable[0]); diff --git a/plugins/dali-script-v8/src/dali-wrapper.cpp b/plugins/dali-script-v8/src/dali-wrapper.cpp index 257b5d4..cc905a3 100644 --- a/plugins/dali-script-v8/src/dali-wrapper.cpp +++ b/plugins/dali-script-v8/src/dali-wrapper.cpp @@ -31,6 +31,12 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include #include #include @@ -73,6 +79,12 @@ const ApiFunction ConstructorFunctionTable[]= { "FrameBufferImage", ImageWrapper::NewImage }, { "Animation", AnimationWrapper::NewAnimation}, { "ShaderEffect", ShaderEffectWrapper::NewShaderEffect}, + { "Shader", ShaderWrapper::NewShader}, + { "Sampler", SamplerWrapper::NewSampler}, + { "Material", MaterialWrapper::NewMaterial}, + { "Geometry", GeometryWrapper::NewGeometry}, + { "Renderer", RendererWrapper::NewRenderer}, + { "PropertyBuffer", PropertyBufferWrapper::NewPropertyBuffer}, { "Builder", BuilderWrapper::NewBuilder}, { "PanGestureDetector", PanGestureDetectorWrapper::NewPanGestureDetector}, diff --git a/plugins/dali-script-v8/src/object/handle-wrapper.cpp b/plugins/dali-script-v8/src/object/handle-wrapper.cpp index 88a6e3e..2705eb0 100644 --- a/plugins/dali-script-v8/src/object/handle-wrapper.cpp +++ b/plugins/dali-script-v8/src/object/handle-wrapper.cpp @@ -33,6 +33,24 @@ namespace Dali namespace V8Plugin { +namespace // un-named name space +{ + +/** + * Contains a list of all functions that can be called + */ +const ApiFunction HandleFunctionTable[]= +{ + { "RegisterAnimatableProperty", HandleWrapper::RegisterAnimatableProperty }, +}; + +const unsigned int HandleFunctionTableCount = sizeof(HandleFunctionTable)/sizeof(HandleFunctionTable[0]); +} //un-named space + +/** + * @class Handle + */ + HandleWrapper::HandleWrapper( BaseWrappedObject::Type type, Handle handle, GarbageCollectorInterface& gc ) : @@ -175,10 +193,67 @@ void HandleWrapper::AddInterceptsToTemplate( v8::Isolate* isolate, v8::LocalSetNamedPropertyHandler( HandleWrapper::PropertyGet, HandleWrapper::PropertySet); + // add function properties + ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, HandleFunctionTable, HandleFunctionTableCount ); + ObjectTemplateHelper::AddSignalConnectAndDisconnect( isolate, objTemplate ); } +/** + * Register a new animatable property. + * + * The object should support dynamic properties. + * Property names are expected to be unique, but this is not enforced. + * Property indices are unique to each registered custom property in a given object. + * returns dali.PROPERTY_INVALID_INDEX if registration failed. This can happen if you try + * to register animatable property on an object that does not have scene graph object. + * + * @method registerAnimatableProperty + * @for Handle + * @param {string} name The name of the property. + * @param {Object} propertyValue The new value of the property. + * @return {integer} The index of the property or dali.PROPERTY_INVALID_INDEX if registration failed + * @example + * + * var morphPropertyIdex = actor.registerAnimatableProperty("uMorphAmount", 0.0f); + * var fadeColorPropertyIdex = handle.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 0.0, 1.0]); + * + */ +void HandleWrapper::RegisterAnimatableProperty( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + // unwrap the object + HandleWrapper* handleWrapper = Unwrap( isolate, args.This() ); + if( !handleWrapper ) + { + return; + } + + Handle handle = handleWrapper->mHandle; + + bool found( false ); + std::string propertyName = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "bad property name parameter" ); + return; + } + + found = false; + Dali::Property::Value daliPropertyValue = V8Utils::GetPropertyValueParameter(PARAMETER_1, found, isolate, args ); + if( !found || Dali::Property::NONE == daliPropertyValue.GetType() ) + { + DALI_SCRIPT_EXCEPTION( isolate, "bad property value parameter" ); + return; + } + else + { + args.GetReturnValue().Set( v8::Integer::New( isolate, handle.RegisterProperty(propertyName, daliPropertyValue) ) ); + } +} } // namespace V8Plugin diff --git a/plugins/dali-script-v8/src/object/handle-wrapper.h b/plugins/dali-script-v8/src/object/handle-wrapper.h index e0b1859..2e612c7 100644 --- a/plugins/dali-script-v8/src/object/handle-wrapper.h +++ b/plugins/dali-script-v8/src/object/handle-wrapper.h @@ -74,6 +74,12 @@ public: */ static void AddInterceptsToTemplate( v8::Isolate* isolate, v8::Local& objTemplate ); + /** + * @brief Register an animatable property for a JavaScript object that + * contains a Dali Handle. + * @param[in] args v8 function call arguments interpreted + */ + static void RegisterAnimatableProperty( const v8::FunctionCallbackInfo< v8::Value >& args ); Handle GetHandle() { return mHandle; } Handle mHandle; diff --git a/plugins/dali-script-v8/src/object/property-buffer-api.cpp b/plugins/dali-script-v8/src/object/property-buffer-api.cpp new file mode 100644 index 0000000..dabaaf6 --- /dev/null +++ b/plugins/dali-script-v8/src/object/property-buffer-api.cpp @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "property-buffer-api.h" + +// INTERNAL INCLUDES +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +namespace // unnamed namespace +{ + +struct PropertyBufferParameters +{ + PropertyBufferParameters() + : mSize( 0 ) + { + } + + PropertyBuffer NewPropertyBuffer() + { + return PropertyBuffer::New( mBufferFormat, + mSize); + } + + Property::Map mBufferFormat; + std::size_t mSize; +}; + +} // unnamed space + +/** + * ## PropertyBuffer API + * + * PropertyBuffer is a handle to an object that contains a buffer of structured properties. + * It can be used to provide data to Geometry objects. + * + * ### Simple example + * + *``` + * var vertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2 }; + * var vertexData = [ 0, 1, + * -0.95, 0.31, + * -0.59, -0.81, + * 0.59, -0.81, + * 0.95, 0.31]; + * + * var vertexDataArray = new Float32Array(vertexData.length); + * vertexDataArray.set(vertexData, 0); + * var vertices = new dali.PropertyBuffer(vertexFormat, 5); + * vertices.setData(vertexDataArray); + * + * var geometry = new dali.Geometry(); + * geometry.addVertexBuffer( vertices ); + *``` + * @class PropertyBuffer + */ + +PropertyBuffer PropertyBufferApi::GetPropertyBuffer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + v8::Local object = args.This(); + v8::Local field = v8::Local::Cast( object->GetInternalField(0) ); + void* ptr = field->Value(); + + PropertyBufferWrapper* wrapper = static_cast< PropertyBufferWrapper *>(ptr); + return wrapper->GetPropertyBuffer(); +} + +PropertyBuffer PropertyBufferApi::GetPropertyBufferFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + found = false; + + v8::HandleScope handleScope( isolate ); + BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::PROPERTY_BUFFER, isolate, args ); + if( wrappedObject ) + { + found = true; + PropertyBufferWrapper* wrapper = static_cast< PropertyBufferWrapper *>(wrappedObject); + return wrapper->GetPropertyBuffer(); + } + else + { + return PropertyBuffer(); + } +} + +/** + * Create a new PropertyBuffer + * + * PropertyBuffers contains a buffer of structured properties and can be + * used to provide data to Geometry objects. + * + * @constructor + * @for PropertyBuffer + * @method PropertyBuffer + * @param {Object} bufferFormat + * @param {integer} size + * @return {Object} PropertyBuffer + * @example + *``` + * var bufferFormat = { + * "aPosition" : dali.PROPERTY_VECTOR2, + * "aTexCoord" : dali.PROPERTY_VECTOR2, + * "aHue" : dali.PROPERTY_FLOAT, + * }; + * + * var buffer = new dali.PropertyBuffer(bufferFormat, 5); + *``` + */ +PropertyBuffer PropertyBufferApi::New( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + bool found( false ); + Dali::Property::Map bufferFormat = V8Utils::GetPropertyMapParameter( PARAMETER_0, found, isolate, args); + if( !found || bufferFormat.Empty() ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid property map parameter" ); + return PropertyBuffer(); + } + + found = false; + int size = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing buffer size from param 1" ); + return PropertyBuffer(); + } + + return PropertyBuffer::New(bufferFormat, static_cast(size)); +} + +/** + * Update the whole buffer information + * + * This function expects an array of data with the same format that was given + * in the construction, and the number of elements to be the same as the size + * of the buffer. + * + * @method setData + * @for PropertyBuffer + * @param {Object} data The data that will be copied to the buffer. + * @example + *``` + * var vertexData = [ 0, 1, + * -0.95, 0.31, + * -0.59, -0.81, + * 0.59, -0.81, + * 0.95, 0.31]; + * + * var vertexDataArray = new Float32Array(vertexData.length); + * vertexDataArray.set(vertexData, 0); + * + * propertyBuffer.setData( vertexDataArray ); + *``` + */ +void PropertyBufferApi::SetData( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + PropertyBuffer buffer = GetPropertyBuffer( isolate, args ); + + bool found( false ); + void* data = V8Utils::GetArrayBufferViewParameter( PARAMETER_0, found, isolate, args); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid data parameter" ); + } + else + { + buffer.SetData( data ); + } +} + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/object/property-buffer-api.h b/plugins/dali-script-v8/src/object/property-buffer-api.h new file mode 100644 index 0000000..39b1707 --- /dev/null +++ b/plugins/dali-script-v8/src/object/property-buffer-api.h @@ -0,0 +1,70 @@ +#ifndef __DALI_V8PLUGIN_PROPERTY_BUFFER_API_H__ +#define __DALI_V8PLUGIN_PROPERTY_BUFFER_API_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + + +namespace Dali +{ + +namespace V8Plugin +{ + +namespace PropertyBufferApi +{ + + /** + * @brief Helper to get property buffer from args.This() + * @param[in] isolate v8 isolated instance + * @param[in] args v8 function call arguments interpreted + */ + PropertyBuffer GetPropertyBuffer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * @brief Helper to get property buffer from the JavaScript object held in the given function argument + * @param[in] paramIndex Argument index the object is held in + * @param[in] found Whether property buffer is found in the given function parameter + * @param[in] isolate v8 isolated instance + * @param[in] args v8 function call arguments interpreted + */ + PropertyBuffer GetPropertyBufferFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Constructor + */ + PropertyBuffer New( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * PropertyBuffer API see property-buffer.h for a description + */ + void SetData( const v8::FunctionCallbackInfo< v8::Value >& args ); + +}; // namespace PropertyBufferApi + +} // namespace V8Plugin + +} // namespace Dali + +#endif // header __DALI_V8PLUGIN_PROPERTY_BUFFER_API_H__ diff --git a/plugins/dali-script-v8/src/object/property-buffer-wrapper.cpp b/plugins/dali-script-v8/src/object/property-buffer-wrapper.cpp new file mode 100644 index 0000000..b3a1894 --- /dev/null +++ b/plugins/dali-script-v8/src/object/property-buffer-wrapper.cpp @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "property-buffer-wrapper.h" + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +v8::Persistent PropertyBufferWrapper::mPropertyBufferTemplate; + +namespace // un-named name space +{ + +/** + * Contains a list of all functions that can be called + */ +const ApiFunction PropertyBufferFunctionTable[]= +{ + /************************************** + * PropertyBuffer API (in order of property-buffer.h) + **************************************/ + + { "SetData" , PropertyBufferApi::SetData }, +}; + +const unsigned int PropertyBufferFunctionTableCount = sizeof(PropertyBufferFunctionTable)/sizeof(PropertyBufferFunctionTable[0]); +} //un-named space + + +PropertyBufferWrapper::PropertyBufferWrapper( const Dali::PropertyBuffer& buffer, GarbageCollectorInterface& gc ) +: BaseWrappedObject( BaseWrappedObject::PROPERTY_BUFFER , gc ) +{ + mPropertyBuffer = buffer; +} + +v8::Handle PropertyBufferWrapper::WrapPropertyBuffer(v8::Isolate* isolate, const Dali::PropertyBuffer& buffer ) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + objectTemplate = GetPropertyBufferTemplate( isolate); + + // create an instance of the template + v8::Local localObject = objectTemplate->NewInstance(); + + // create the PropertyBuffer wrapper + PropertyBufferWrapper* pointer = new PropertyBufferWrapper( buffer, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() ); + + // assign the JavaScript object to the wrapper. + pointer->SetJavascriptObject( isolate, localObject ); + + return handleScope.Escape( localObject ); +} + +v8::Local PropertyBufferWrapper::GetPropertyBufferTemplate( v8::Isolate* isolate) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + if( mPropertyBufferTemplate.IsEmpty() ) + { + objectTemplate = MakePropertyBufferTemplate( isolate ); + mPropertyBufferTemplate.Reset( isolate, objectTemplate ); + } + else + { + // get the object template + objectTemplate = v8::Local::New( isolate, mPropertyBufferTemplate ); + } + return handleScope.Escape( objectTemplate ); +} + +v8::Handle PropertyBufferWrapper::MakePropertyBufferTemplate( v8::Isolate* isolate ) +{ + v8::EscapableHandleScope handleScope( isolate ); + + v8::Local objTemplate = v8::ObjectTemplate::New(); + + objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT ); + + // add our function properties + ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, PropertyBufferFunctionTable, PropertyBufferFunctionTableCount ); + + return handleScope.Escape( objTemplate ); +} + +void PropertyBufferWrapper::NewPropertyBuffer( const v8::FunctionCallbackInfo< v8::Value >& args) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate); + + if(!args.IsConstructCall()) + { + DALI_SCRIPT_EXCEPTION( isolate, "PropertyBuffer constructor called without 'new'"); + return; + } + Dali::PropertyBuffer buffer = PropertyBufferApi::New( isolate, args ); + + if(buffer) + { + v8::Local localObject = WrapPropertyBuffer( isolate, buffer ); + args.GetReturnValue().Set( localObject ); + } +} + + +PropertyBuffer PropertyBufferWrapper::GetPropertyBuffer() +{ + return mPropertyBuffer; +} + + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/object/property-buffer-wrapper.h b/plugins/dali-script-v8/src/object/property-buffer-wrapper.h new file mode 100644 index 0000000..7cb8b84 --- /dev/null +++ b/plugins/dali-script-v8/src/object/property-buffer-wrapper.h @@ -0,0 +1,95 @@ +#ifndef __DALI_V8PLUGIN_PROPERTY_BUFFER_WRAPPER_H__ +#define __DALI_V8PLUGIN_PROPERTY_BUFFER_WRAPPER_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ + +namespace V8Plugin +{ + + +/** + * A PropertyBuffer wrapper. + * Provides access to PropertyBuffer specific functionality and V8 memory handling. + */ +class PropertyBufferWrapper : public BaseWrappedObject +{ + +public: + + /** + * @brief Constructor + * @param[in] propertyBuffer DALi property buffer + * @param[in] gc garbage collection interface + */ + PropertyBufferWrapper( const PropertyBuffer& propertyBuffer, + GarbageCollectorInterface& gc ); + + /** + * @brief Destructor + */ + virtual ~PropertyBufferWrapper() + { + }; + + /** + * @brief Creates a new PropertyBuffer wrapped inside a Javascript Object. + * @param[in] args v8 function call arguments interpreted + */ + static void NewPropertyBuffer( const v8::FunctionCallbackInfo< v8::Value >& args); + + /** + * Wraps a property buffer + */ + static v8::Handle WrapPropertyBuffer(v8::Isolate* isolate, const Dali::PropertyBuffer& ); + + + // The PropertyBufferAttribute ObjectTemplate, we cache templates so we don't have + // keep generating them everytime we want to create a PropertyBuffer + static v8::Persistent mPropertyBufferTemplate; + + /** + * @brief Gets the handle of property buffer + */ + PropertyBuffer GetPropertyBuffer(); + + +private: + + // PropertyBuffer + PropertyBuffer mPropertyBuffer; + + static v8::Handle MakePropertyBufferTemplate( v8::Isolate* isolate ); + static v8::Local GetPropertyBufferTemplate( v8::Isolate* isolate ); + +}; + +} // namespace V8Plugin + +} // namespace Dali + +#endif // __DALI_V8PLUGIN_PROPERTY_BUFFER_WRAPPER_H__ diff --git a/plugins/dali-script-v8/src/object/property-value-wrapper.cpp b/plugins/dali-script-v8/src/object/property-value-wrapper.cpp index 0b70084..f518848 100644 --- a/plugins/dali-script-v8/src/object/property-value-wrapper.cpp +++ b/plugins/dali-script-v8/src/object/property-value-wrapper.cpp @@ -754,6 +754,16 @@ Dali::Property::Value PropertyValueWrapper::ExtractPropertyValue( v8::Isolate* i daliPropertyValue = ArrayFromV8Array( isolate, v8Value ); break; } + case Dali::Property::MAP: + { + if( v8Value->IsObject() ) + { + v8::Local object = v8::Handle::Cast(v8Value); + Dali::Property::Map propertyMap = V8Utils::GetPropertyMapFromObject(isolate, object); + daliPropertyValue = Dali::Property::Value( propertyMap ); + } + break; + } case Dali::Property::NONE: default: { diff --git a/plugins/dali-script-v8/src/rendering/geometry-api.cpp b/plugins/dali-script-v8/src/rendering/geometry-api.cpp new file mode 100644 index 0000000..01aec00 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/geometry-api.cpp @@ -0,0 +1,278 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +// CLASS HEADER +#include "geometry-api.h" + +// EXTERNAL INCLUDES +#include + +// INTERNAL INCLUDES +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +/** + * ## Geometry API + * + * Geometry is handle to an object that can be used to define a geometric elements. + * + * @class Geometry + * @extends Handle + */ + +Geometry GeometryApi::GetGeometry( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + v8::Local object = args.This(); + v8::Local field = v8::Local::Cast( object->GetInternalField(0) ); + void* ptr = field->Value(); + + GeometryWrapper* wrapper = static_cast< GeometryWrapper *>(ptr); + return wrapper->GetGeometry(); +} + +Geometry GeometryApi::GetGeometryFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + found = false; + + v8::HandleScope handleScope( isolate ); + BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::GEOMETRY, isolate, args ); + if( wrappedObject ) + { + found = true; + GeometryWrapper* wrapper = static_cast< GeometryWrapper *>(wrappedObject); + return wrapper->GetGeometry(); + } + else + { + return Geometry(); + } +} + +/** + * Create a new geometry object. + * + * @constructor + * @method Geometry + * @for Geometry + * @return {Object} Geometry + */ +Geometry GeometryApi::New( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + return Geometry::New(); +} + +/** + * Add a PropertyBuffer to be used as source of geometry vertices + * + * @method addVertexBuffer + * @for Geometry + * @param {Object} vertexBuffer PropertyBuffer to be used as source of geometry vertices + * @return {interger} Index of the newly added buffer, can be used with RemoveVertexBuffer + * to remove this buffer if no longer required + * @example + *``` + * var vertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2 }; + * var vertexData = [ 0, 1, + * -0.95, 0.31, + * -0.59, -0.81, + * 0.59, -0.81, + * 0.95, 0.31]; + * + * var vertexDataArray = new Float32Array(vertexData.length); + * vertexDataArray.set(vertexData, 0); + * var vertices = new dali.PropertyBuffer(vertexFormat, 5); + * vertices.setData(vertexDataArray); + * + * var geometry = new dali.Geometry(); + * geometry.addVertexBuffer( vertices ); + *``` + */ +void GeometryApi::AddVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Geometry geometry = GetGeometry( isolate, args ); + + bool found( false ); + PropertyBuffer vertexBuffer = PropertyBufferApi::GetPropertyBufferFromParams( 0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid property buffer parameter" ); + } + else + { + args.GetReturnValue().Set( v8::Integer::New( isolate, geometry.AddVertexBuffer(vertexBuffer) ) ); + } +} + +/** + * Retrieve the number of vertex buffers that have been added to this geometry + * + * @method getNumberOfVertexBuffers + * @for Geometry + * @return {integer} Number of vertex buffers that have been added to this geometry + */ +void GeometryApi::GetNumberOfVertexBuffers( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Geometry geometry = GetGeometry( isolate, args ); + + args.GetReturnValue().Set( v8::Integer::New( isolate, geometry.GetNumberOfVertexBuffers() ) ); +} + +/** + * Remove a vertex buffer + * + * @method removeVertexBuffer + * @for Geometry + * @param {integer} index Index to the vertex buffer to remove, + * which must be between 0 and getNumberOfVertexBuffers() + */ +void GeometryApi::RemoveVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Geometry geometry = GetGeometry( isolate, args ); + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing index from param 0" ); + } + else + { + geometry.RemoveVertexBuffer(static_cast(index)); + } +} + +/** + * Set a PropertyBuffer to be used as a source of indices for the geometry + * + * This buffer is required to have exactly one component and it must be of the + * type dali.PROPERTY_INTEGER + * + * By setting this buffer it will cause the geometry to be rendered using indices. + * To unset call SetIndexBuffer with an empty handle. + * + * @method setIndexBuffer + * @for Geometry + * @param {Object} indexBuffer PropertyBuffer to be used as a source of indices + * for the geometry + */ +void GeometryApi::SetIndexBuffer( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Geometry geometry = GetGeometry( isolate, args ); + + bool found( false ); + PropertyBuffer indexBuffer = PropertyBufferApi::GetPropertyBufferFromParams( 0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid property buffer parameter" ); + } + else + { + geometry.SetIndexBuffer(indexBuffer); + } +} + +/** + * Set the type of primitives this geometry contains + * + * @method setGeometryType + * @for Geometry + * @param {integer} geometryType Type of primitives this geometry contains + * @example + * // geometry type is one of the following + * dali.GEOMETRY_POINTS + * dali.GEOMETRY_LINES + * dali.GEOMETRY_LINE_LOOP + * dali.GEOMETRY_LINE_STRIP + * dali.GEOMETRY_TRIANGLES + * dali.GEOMETRY_TRIANGLE_FAN + * dali.GEOMETRY_TRIANGLE_STRIP + * + * geometry.SetGeometryType( dali.GEOMETRY_LINES ); + */ +void GeometryApi::SetGeometryType( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Geometry geometry = GetGeometry( isolate, args ); + + bool found( false ); + int geometryType = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing geometryType from param 0" ); + } + else + { + geometry.SetGeometryType(static_cast(geometryType)); + } +} + +/** + * Get the type of primitives this geometry contains + * + * @method getGeometryType + * @for Geometry + * @return {integer} Type of primitives this geometry contains + * @example + * // returns one of the following + * dali.GEOMETRY_POINTS + * dali.GEOMETRY_LINES + * dali.GEOMETRY_LINE_LOOP + * dali.GEOMETRY_LINE_STRIP + * dali.GEOMETRY_TRIANGLES + * dali.GEOMETRY_TRIANGLE_FAN + * dali.GEOMETRY_TRIANGLE_STRIP + */ +void GeometryApi::GetGeometryType( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Geometry geometry = GetGeometry( isolate, args ); + + args.GetReturnValue().Set( v8::Integer::New( isolate, geometry.GetGeometryType() ) ); +} + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/geometry-api.h b/plugins/dali-script-v8/src/rendering/geometry-api.h new file mode 100644 index 0000000..2a8778f --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/geometry-api.h @@ -0,0 +1,73 @@ +#ifndef __DALI_V8PLUGIN_GEOMETRY_API_H__ +#define __DALI_V8PLUGIN_GEOMETRY_API_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + + +namespace Dali +{ + +namespace V8Plugin +{ + +namespace GeometryApi +{ + + /** + * Helper to get geometry from args.This() + */ + Geometry GetGeometry( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * @brief Helper to get geometry from the JavaScript object held in the given function argument + * @param[in] paramIndex Argument index the object is held in + * @param[in] found Whether geometry is found in the given function parameter + * @param[in] isolate v8 isolated instance + * @param[in] args v8 function call arguments interpreted + */ + Geometry GetGeometryFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Constructor + */ + Geometry New( const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Geometry API see geometry.h for a description + */ + void AddVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetNumberOfVertexBuffers( const v8::FunctionCallbackInfo< v8::Value >& args ); + void RemoveVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetIndexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetGeometryType( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetGeometryType( const v8::FunctionCallbackInfo< v8::Value >& args ); + +}; // namespace GeometryApi + +} // namespace V8Plugin + +} // namespace Dali + +#endif // header __DALI_V8PLUGIN_GEOMETRY_API_H__ diff --git a/plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp b/plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp new file mode 100644 index 0000000..d9ea511 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "geometry-wrapper.h" + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +v8::Persistent GeometryWrapper::mGeometryTemplate; + +namespace // un-named name space +{ + +/** + * Contains a list of all functions that can be called + */ +const ApiFunction GeometryFunctionTable[]= +{ + /************************************** + * Geometry API (in order of Geometry.h) + **************************************/ + + { "AddVertexBuffer" , GeometryApi::AddVertexBuffer }, + { "GetNumberOfVertexBuffers" , GeometryApi::GetNumberOfVertexBuffers }, + { "RemoveVertexBuffer" , GeometryApi::RemoveVertexBuffer }, + { "SetIndexBuffer" , GeometryApi::SetIndexBuffer }, + { "SetGeometryType" , GeometryApi::SetGeometryType }, + { "GetGeometryType" , GeometryApi::GetGeometryType }, +}; + +const unsigned int GeometryFunctionTableCount = sizeof(GeometryFunctionTable)/sizeof(GeometryFunctionTable[0]); +} //un-named space + + +GeometryWrapper::GeometryWrapper( const Dali::Geometry& geometry, GarbageCollectorInterface& gc ) +: HandleWrapper( BaseWrappedObject::GEOMETRY , geometry, gc ) +{ + mGeometry = geometry; +} + +v8::Handle GeometryWrapper::WrapGeometry(v8::Isolate* isolate, const Dali::Geometry& geometry ) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + objectTemplate = GetGeometryTemplate( isolate); + + // create an instance of the template + v8::Local localObject = objectTemplate->NewInstance(); + + // create the Geometry wrapper + GeometryWrapper* pointer = new GeometryWrapper( geometry, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() ); + + // assign the JavaScript object to the wrapper. + pointer->SetJavascriptObject( isolate, localObject ); + + return handleScope.Escape( localObject ); +} + +v8::Local GeometryWrapper::GetGeometryTemplate( v8::Isolate* isolate) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + if( mGeometryTemplate.IsEmpty() ) + { + objectTemplate = MakeGeometryTemplate( isolate ); + mGeometryTemplate.Reset( isolate, objectTemplate ); + } + else + { + // get the object template + objectTemplate = v8::Local::New( isolate, mGeometryTemplate ); + } + return handleScope.Escape( objectTemplate ); +} + +v8::Handle GeometryWrapper::MakeGeometryTemplate( v8::Isolate* isolate ) +{ + v8::EscapableHandleScope handleScope( isolate ); + + v8::Local objTemplate = v8::ObjectTemplate::New(); + + // property handle intercepts property getters and setters and signals + HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate ); + + objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT ); + + // add our function properties + ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, GeometryFunctionTable, GeometryFunctionTableCount ); + + return handleScope.Escape( objTemplate ); +} + +void GeometryWrapper::NewGeometry( const v8::FunctionCallbackInfo< v8::Value >& args) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate); + + if(!args.IsConstructCall()) + { + DALI_SCRIPT_EXCEPTION( isolate, "Geometry constructor called without 'new'"); + return; + } + Dali::Geometry geometry = GeometryApi::New( args ); + + if(geometry) + { + v8::Local localObject = WrapGeometry( isolate, geometry ); + args.GetReturnValue().Set( localObject ); + } +} + + +Geometry GeometryWrapper::GetGeometry() +{ + return mGeometry; +} + + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/geometry-wrapper.h b/plugins/dali-script-v8/src/rendering/geometry-wrapper.h new file mode 100644 index 0000000..b108e6c --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/geometry-wrapper.h @@ -0,0 +1,107 @@ +#ifndef __DALI_V8PLUGIN_GEOMETRY_WRAPPER_H__ +#define __DALI_V8PLUGIN_GEOMETRY_WRAPPER_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ + +namespace V8Plugin +{ + + +/** + * A Geometry wrapper. + * Provides access to Geometry specific functionality and V8 memory handling. + */ +class GeometryWrapper : public HandleWrapper +{ + +public: + + /** + * @brief Constructor + * @param[in] propertyBuffer DALi geometry + * @param[in] gc garbage collection interface + */ + GeometryWrapper( const Geometry& geometry, + GarbageCollectorInterface& gc ); + + /** + * @brief Destructor + */ + virtual ~GeometryWrapper() + { + }; + + /** + * @brief Creates a new Geometry wrapped inside a Javascript Object. + * @param[in] args v8 function call arguments interpreted + */ + static void NewGeometry( const v8::FunctionCallbackInfo< v8::Value >& args); + + /** + * Wraps a geometry + */ + static v8::Handle WrapGeometry(v8::Isolate* isolate, const Dali::Geometry& ); + + + // The GeometryAttribute ObjectTemplate, we cache templates so we don't have + // keep generating them everytime we want to create a Geometry + static v8::Persistent mGeometryTemplate; + + /** + * @brief Gets the handle of geometry + * @return the handle of geometry + */ + Geometry GetGeometry(); + + +private: + + // Geometry + Geometry mGeometry; + + /** + * @brief Creates the object template that used to create geometry at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Handle MakeGeometryTemplate( v8::Isolate* isolate ); + + /** + * @brief Gets the object template that used to create geometry at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Local GetGeometryTemplate( v8::Isolate* isolate ); + +}; + +} // namespace V8Plugin + +} // namespace Dali + +#endif // __DALI_V8PLUGIN_GEOMETRY_WRAPPER_H__ diff --git a/plugins/dali-script-v8/src/rendering/material-api.cpp b/plugins/dali-script-v8/src/rendering/material-api.cpp new file mode 100644 index 0000000..8b2d0f9 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/material-api.cpp @@ -0,0 +1,654 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +// CLASS HEADER +#include "material-api.h" + +// EXTERNAL INCLUDES +#include + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +/** + * ## Material API + * + * Material is a handle to an object that specifies the visual properties of the renderer. + * + * @class Material + * @extends Handle + */ + +Material MaterialApi::GetMaterial( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + v8::Local object = args.This(); + v8::Local field = v8::Local::Cast( object->GetInternalField(0) ); + void* ptr = field->Value(); + + MaterialWrapper* wrapper = static_cast< MaterialWrapper *>(ptr); + return wrapper->GetMaterial(); +} + +Material MaterialApi::GetMaterialFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + found = false; + + v8::HandleScope handleScope( isolate ); + BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::MATERIAL, isolate, args ); + if( wrappedObject ) + { + found = true; + MaterialWrapper* wrapper = static_cast< MaterialWrapper *>(wrappedObject); + return wrapper->GetMaterial(); + } + else + { + return Material(); + } +} + +/** + * Create a new material object. + * + * @constructor + * @method Material + * @for Material + * @param {Object} shader The shader used by the material + * @return {Object} Material + */ +Material MaterialApi::New( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + bool found( false ); + Shader shader = ShaderApi::GetShaderFromParams( 0, found, isolate, args ); + if( found ) + { + return Material::New( shader ); + } + else + { + DALI_SCRIPT_EXCEPTION( isolate, "missing shader from param 0" ); + return Material(); + } +} + +/** + * Set the Shader used by this material + * + * @method setShader + * @for Material + * @param {Object} shader Handle to the shader + */ +void MaterialApi::SetShader( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + Shader shader = ShaderApi::GetShaderFromParams( 0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid shader parameter" ); + } + else + { + return material.SetShader( shader ); + } +} + +/** + * Get the Shader used by this material + * + * @method getShader + * @for Material + * @return {Object} Shader + */ +void MaterialApi::GetShader( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + Shader shader = material.GetShader(); + + // Wrap the shader + v8::Local localObject = ShaderWrapper::WrapShader( isolate, shader ); + args.GetReturnValue().Set( localObject ); +} + +/** + * Add a new texture to be used by the material + * + * @method addTexture + * @for Material + * @param {Object} image The image used by this sampler + * @param {String} uniformName The string with the name of the uniform + * @param {Object} sampler The sampler to add to this material + * @return {integer} The index of the texture in the array of textures or -1 if texture can not be added + */ +void MaterialApi::AddTexture( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + Image image = V8Utils::GetImageParameter( PARAMETER_0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing image from param 0" ); + return; + } + + found = false; + std::string uniformName = V8Utils::GetStringParameter( PARAMETER_1, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing uniform name from param 1" ); + return; + } + + found = false; + Sampler sampler = SamplerApi::GetSamplerFromParams( PARAMETER_2, found, isolate, args ); + if( !found ) + { + args.GetReturnValue().Set( v8::Integer::New( isolate, material.AddTexture( image, uniformName ) ) ); + } + else + { + args.GetReturnValue().Set( v8::Integer::New( isolate, material.AddTexture( image, uniformName, sampler ) ) ); + } +} + +/** + * Removes a texture from the material + * + * @method removeTexture + * @for Material + * @param {integer} index The index of the texture in the array of textures + */ +void MaterialApi::RemoveTexture( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" ); + } + else + { + material.RemoveTexture( index ); + } +} + +/** + * Sets the image to be used by a given texture + * @method setTextureImage + * @for Material + * @param {integer} index The index of the texture in the array of textures + * @param {Object} image The image used by this sampler + */ +void MaterialApi::SetTextureImage( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" ); + return; + } + + found = false; + Image image = V8Utils::GetImageParameter( PARAMETER_1, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing image from param 1" ); + } + else + { + material.SetTextureImage(index, image); + } +} + +/** + * Set the sampler used by a given texture + * @method setTextureSampler + * @for Material + * @param {integer} index The index of the texture in the array of textures + * @param {Object} sampler The new sampler + */ +void MaterialApi::SetTextureSampler( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" ); + return; + } + + found = false; + Sampler sampler = SamplerApi::GetSamplerFromParams( PARAMETER_1, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing sampler from param 1" ); + } + else + { + material.SetTextureSampler(index, sampler); + } +} + +/** + * Set the uniform name of a given texture + * @method setTextureUniformName + * @for Material + * @param {integer} index The index of the texture in the array of textures + * @param {string} uniformName The new uniform name + */ +void MaterialApi::SetTextureUniformName( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" ); + return; + } + + found = false; + std::string uniformName = V8Utils::GetStringParameter( PARAMETER_1, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid uniform name parameter" ); + } + else + { + material.SetTextureUniformName(index, uniformName); + } +} + +/** + * Establish if a given texture will affect the transparency of the material ( true by default ) + * @method setTextureAffectsTransparency + * @for Material + * @param {integer} index The index of the texture in the array of textures + * @param {string} affectsTransparency True if the texture affects transparency, false otherwise + */ +void MaterialApi::SetTextureAffectsTransparency( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" ); + return; + } + + found = false; + bool affectsTransparency = V8Utils::GetBooleanParameter( PARAMETER_1, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid affectsTransparency parameter" ); + } + else + { + material.SetTextureAffectsTransparency(index, affectsTransparency); + } +} + +/** + * Retrive the index of a texture given its uniform name + * @method getTextureIndex + * @for Material + * @param {string} uniformName The uniform name + * @return {integer} The index in the array of textures or -1 if the texture is not found + */ +void MaterialApi::GetTextureIndex( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + std::string uniformName = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid uniform name parameter" ); + } + else + { + args.GetReturnValue().Set( v8::Integer::New( isolate, material.GetTextureIndex(uniformName) ) ); + } +} + +/** + * Retrieve the number of textures used by the material + * + * @method getNumberOfTextures + * @for Material + * @return {integer} The number of textures + */ +void MaterialApi::GetNumberOfTextures( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + args.GetReturnValue().Set( v8::Integer::New( isolate, material.GetNumberOfTextures() ) ); +} + +/** + * Set the culling mode for this material + * + * @method setFaceCullingMode + * @for Material + * @param {integer} cullingMode The culling mode for this material + * @example + * // face culling mode is one of the following + * dali.MATERIAL_NONE // None of the faces should be culled + * dali.MATERIAL_CULL_BACK // Cull back face, back face should never be shown + * dali.MATERIAL_CULL_FRONT // Cull front face, back face should never be shown + * dali.MATERIAL_CULL_BACK_AND_FRONT // Cull back and front faces, if the geometry is composed of triangles none of the faces will be shown + * + * material.setFaceCullingMode( dali.MATERIAL_NONE ); + */ +void MaterialApi::SetFaceCullingMode( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + int mode = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid cullingMode parameter" ); + } + else + { + material.SetFaceCullingMode( static_cast(mode) ); + } +} + +/** + * Set the blending mode. + * + * If blending is disabled (BLENDING_OFF) fade in and fade out animations do not work. + * + * @for Material + * @method setBlendMode + * @param { integer } mode The blending mode. + * @example + * // blend mode is one of the following + * dali.BLENDING_OFF // Blending is disabled. + * dali.BLENDING_AUTO // Blending is enabled if there is alpha channel. + * dali.BLENDING_ON // Blending is enabled. + * + * material.setBlendMode( dali.BLENDING_AUTO ); + */ +void MaterialApi::SetBlendMode( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + bool found( false ); + int mode = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid blendMode parameter" ); + } + else + { + material.SetBlendMode( static_cast( mode ) ); + } +} + +/** + * Retrieves the blending mode. + * + * @for Material + * @method getBlendMode + * @return { integer } blendMode + * @example returns one of the following: + * + * dali.BLENDING_OFF // Blending is disabled. + * dali.BLENDING_AUTO // Blending is enabled if there is alpha channel. + * dali.BLENDING_ON // Blending is enabled. + */ +void MaterialApi::GetBlendMode( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + args.GetReturnValue().Set( v8::Integer::New( isolate, material.GetBlendMode() ) ); +} + +/** + * Specify the pixel arithmetic used when the actor is blended. + * + * @for Material + * @method setBlendFunc + * @param {integer} srcFactorRgb Source Blending RGB + * @param {integer} destFactorRgb Destination Blending RGB + * @param {integer} srcFactorAlpha Source Blending Alpha + * @param {integer} destFactorAlpha Destinatino Blending Alpha + * @example + * //blending constants + * dali.BLEND_FACTOR_ZERO + * dali.BLEND_FACTOR_ONE + * dali.BLEND_FACTOR_SRC_COLOR + * dali.BLEND_FACTOR_ONE_MINUS_SRC_COLOR + * dali.BLEND_FACTOR_SRC_ALPHA + * dali.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + * dali.BLEND_FACTOR_DST_ALPHA + * dali.BLEND_FACTOR_ONE_MINUS_DST_ALPHA + * dali.BLEND_FACTOR_DST_COLOR + * dali.BLEND_FACTOR_ONE_MINUS_DST_COLOR + * dali.BLEND_FACTOR_SRC_ALPHA_SATURATE + * dali.BLEND_FACTOR_CONSTANT_COLOR + * dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR + * dali.BLEND_FACTOR_CONSTANT_ALPHA + * dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA + * + * material.setBlendFunc( dali.BLEND_FACTOR_CONSTANT_COLOR, dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, + * dali.BLEND_FACTOR_CONSTANT_ALPHA, dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA ); + */ +void MaterialApi::SetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + int params[4]; + bool foundAllParams(false); + V8Utils::ReadIntegerArguments( foundAllParams, ¶ms[0], 4, args, 0 ); + if( foundAllParams ) + { + material.SetBlendFunc( static_cast< Dali::BlendingFactor::Type>(params[0]), + static_cast< Dali::BlendingFactor::Type>(params[1]), + static_cast< Dali::BlendingFactor::Type>(params[2]), + static_cast< Dali::BlendingFactor::Type>(params[3]) ); + } + else + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid blendFunc parameter"); + } +} + +/** + * Query the pixel arithmetic used when the actor is blended. + * + * @for Material + * @method getBlendFunc + * @return {Object} Blend properties + * @example Blend properties object has 4 fields + * + * blendProperties.sourceRgb // source rgb enum + * blendProperties.destinationRgb // destination rgb enum + * blendProperties.sourceAlpha source // alpha enum + * blendProperties.destinationAlpha // destination alpha enum + */ +void MaterialApi::GetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + // Pass by reference doesn't work in Javascript + // For now just return a vector 4... + + BlendingFactor::Type srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha; + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + material.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha ); + + v8::Local blendProperties = v8::Object::New( isolate ); + + blendProperties->Set( v8::String::NewFromUtf8( isolate, "sourceRgb" ), v8::Integer::New( isolate, srcFactorRgb) ); + blendProperties->Set( v8::String::NewFromUtf8( isolate, "destinationRgb" ), v8::Integer::New( isolate, destFactorRgb ) ); + blendProperties->Set( v8::String::NewFromUtf8( isolate, "sourceAlpha" ), v8::Integer::New( isolate, srcFactorAlpha ) ); + blendProperties->Set( v8::String::NewFromUtf8( isolate, "destinationAlpha" ), v8::Integer::New( isolate, destFactorAlpha ) ); + + args.GetReturnValue().Set( blendProperties ); +} + +/** + * Specify the equation used when the actor is blended. + * + * @for Material + * @method setBlendEquation + * @param { integer } equationRgb The equation used for combining red, green, and blue components. + * @param { integer } equationAlpha The equation used for combining the alpha component. + * @example + * // blend equation is one of the following + * dali.BLEND_EQUATION_ADD + * dali.BLEND_EQUATION_SUBTRACT + * dali.BLEND_EQUATION_REVERSE_SUBTRACT + * + * material.setBlendEquation( dali.BLEND_EQUATION_ADD, dali.BLEND_EQUATION_REVERSE_SUBTRACT ); + */ +void MaterialApi::SetBlendEquation( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + int params[2]; + bool foundAllParams(false); + V8Utils::ReadIntegerArguments( foundAllParams, ¶ms[0], 2, args, 0 ); + if( foundAllParams ) + { + material.SetBlendEquation( static_cast< BlendingEquation::Type>(params[0]), static_cast< BlendingEquation::Type>(params[1]) ); + } + else + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid BlendEquation parameter"); + } +} + +/** + * Query the equation used when the actor is blended. + * + * @for Material + * @method getBlendEquation + * @return {Object} Blend equations + * @example Blend equations object has 2 fields + * + * blendEquations.equationRgb // equation used for combining rgb components + * blendEquations.equationAlpha // equation used for combining alpha components + */ +void MaterialApi::GetBlendEquation( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + // Pass by reference doesn't work in Javascript + // For now just return a vector 2... + + BlendingEquation::Type equationRgb, equationAlpha; + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Material material = GetMaterial( isolate, args ); + + material.GetBlendEquation( equationRgb, equationAlpha ); + + v8::Local blendEquations = v8::Object::New( isolate ); + + blendEquations->Set( v8::String::NewFromUtf8( isolate, "equationRgb" ), v8::Integer::New( isolate, equationRgb) ); + blendEquations->Set( v8::String::NewFromUtf8( isolate, "equationAlpha" ), v8::Integer::New( isolate, equationAlpha ) ); + + args.GetReturnValue().Set( blendEquations ); +} + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/material-api.h b/plugins/dali-script-v8/src/rendering/material-api.h new file mode 100644 index 0000000..326b22c --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/material-api.h @@ -0,0 +1,84 @@ +#ifndef __DALI_V8PLUGIN_MATERIAL_API_H__ +#define __DALI_V8PLUGIN_MATERIAL_API_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + + +namespace Dali +{ + +namespace V8Plugin +{ + +namespace MaterialApi +{ + + /** + * Helper to get material from args.This() + */ + Material GetMaterial( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * @brief Helper to get material from the JavaScript object held in the given function argument + * @param[in] paramIndex Argument index the object is held in + * @param[in] found Whether material is found in the given function parameter + * @param[in] isolate v8 isolated instance + * @param[in] args v8 function call arguments interpreted + */ + Material GetMaterialFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Constructor + */ + Material New( const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Material API see material.h for a description + */ + void SetShader( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetShader( const v8::FunctionCallbackInfo< v8::Value >& args ); + void AddTexture( const v8::FunctionCallbackInfo< v8::Value >& args ); + void RemoveTexture( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetTextureImage( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetTextureSampler( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetTextureUniformName( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetTextureAffectsTransparency( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetTextureIndex( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetNumberOfTextures( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetFaceCullingMode( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetBlendMode( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetBlendMode( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetBlendEquation( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetBlendEquation( const v8::FunctionCallbackInfo< v8::Value >& args ); + +}; // namespace MaterialApi + +} // namespace V8Plugin + +} // namespace Dali + +#endif // header __DALI_V8PLUGIN_MATERIAL_API_H__ diff --git a/plugins/dali-script-v8/src/rendering/material-wrapper.cpp b/plugins/dali-script-v8/src/rendering/material-wrapper.cpp new file mode 100644 index 0000000..4fc5a77 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/material-wrapper.cpp @@ -0,0 +1,159 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "material-wrapper.h" + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +v8::Persistent MaterialWrapper::mMaterialTemplate; + +namespace // un-named name space +{ + +/** + * Contains a list of all functions that can be called + */ +const ApiFunction MaterialFunctionTable[]= +{ + /************************************** + * Material API (in order of Material.h) + **************************************/ + + { "SetShader" , MaterialApi::SetShader }, + { "GetShader" , MaterialApi::GetShader }, + { "AddTexture" , MaterialApi::AddTexture }, + { "RemoveTexture" , MaterialApi::RemoveTexture }, + { "SetTextureImage" , MaterialApi::SetTextureImage }, + { "SetTextureSampler" , MaterialApi::SetTextureSampler }, + { "SetTextureUniformName" , MaterialApi::SetTextureUniformName }, + { "SetTextureAffectsTransparency" , MaterialApi::SetTextureAffectsTransparency }, + { "GetTextureIndex" , MaterialApi::GetTextureIndex }, + { "GetNumberOfTextures" , MaterialApi::GetNumberOfTextures }, + { "SetFaceCullingMode" , MaterialApi::SetFaceCullingMode }, + { "SetBlendMode" , MaterialApi::SetBlendMode }, + { "GetBlendMode" , MaterialApi::GetBlendMode }, + { "SetBlendFunc" , MaterialApi::SetBlendFunc }, + { "GetBlendFunc" , MaterialApi::GetBlendFunc }, + { "SetBlendEquation" , MaterialApi::SetBlendEquation }, + { "GetBlendEquation" , MaterialApi::GetBlendEquation }, +}; + +const unsigned int MaterialFunctionTableCount = sizeof(MaterialFunctionTable)/sizeof(MaterialFunctionTable[0]); +} //un-named space + + +MaterialWrapper::MaterialWrapper( const Dali::Material& material, GarbageCollectorInterface& gc ) +: HandleWrapper( BaseWrappedObject::MATERIAL , material, gc ) +{ + mMaterial = material; +} + +v8::Handle MaterialWrapper::WrapMaterial(v8::Isolate* isolate, const Dali::Material& material ) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + objectTemplate = GetMaterialTemplate( isolate); + + // create an instance of the template + v8::Local localObject = objectTemplate->NewInstance(); + + // create the Material wrapper + MaterialWrapper* pointer = new MaterialWrapper( material, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() ); + + // assign the JavaScript object to the wrapper. + pointer->SetJavascriptObject( isolate, localObject ); + + return handleScope.Escape( localObject ); +} + +v8::Local MaterialWrapper::GetMaterialTemplate( v8::Isolate* isolate) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + if( mMaterialTemplate.IsEmpty() ) + { + objectTemplate = MakeMaterialTemplate( isolate ); + mMaterialTemplate.Reset( isolate, objectTemplate ); + } + else + { + // get the object template + objectTemplate = v8::Local::New( isolate, mMaterialTemplate ); + } + return handleScope.Escape( objectTemplate ); +} + +v8::Handle MaterialWrapper::MakeMaterialTemplate( v8::Isolate* isolate ) +{ + v8::EscapableHandleScope handleScope( isolate ); + + v8::Local objTemplate = v8::ObjectTemplate::New(); + + // property handle intercepts property getters and setters and signals + HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate ); + + objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT ); + + // add our function properties + ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, MaterialFunctionTable, MaterialFunctionTableCount ); + + return handleScope.Escape( objTemplate ); +} + +void MaterialWrapper::NewMaterial( const v8::FunctionCallbackInfo< v8::Value >& args) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate); + + if(!args.IsConstructCall()) + { + DALI_SCRIPT_EXCEPTION( isolate, "Material constructor called without 'new'"); + return; + } + Dali::Material material = MaterialApi::New( args ); + + if(material) + { + v8::Local localObject = WrapMaterial( isolate, material ); + args.GetReturnValue().Set( localObject ); + } +} + + +Material MaterialWrapper::GetMaterial() +{ + return mMaterial; +} + + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/material-wrapper.h b/plugins/dali-script-v8/src/rendering/material-wrapper.h new file mode 100644 index 0000000..45e11ec --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/material-wrapper.h @@ -0,0 +1,107 @@ +#ifndef __DALI_V8PLUGIN_MATERIAL_WRAPPER_H__ +#define __DALI_V8PLUGIN_MATERIAL_WRAPPER_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ + +namespace V8Plugin +{ + + +/** + * A Material wrapper. + * Provides access to Material specific functionality and V8 memory handling. + */ +class MaterialWrapper : public HandleWrapper +{ + +public: + + /** + * @brief Constructor + * @param[in] material DALi material + * @param[in] gc garbage collection interface + */ + MaterialWrapper( const Material& material, + GarbageCollectorInterface& gc ); + + /** + * @brief Destructor + */ + virtual ~MaterialWrapper() + { + }; + + /** + * @brief Creates a new Material wrapped inside a Javascript Object. + * @param[in] args v8 function call arguments interpreted + */ + static void NewMaterial( const v8::FunctionCallbackInfo< v8::Value >& args); + + /** + * Wraps a sampler + */ + static v8::Handle WrapMaterial(v8::Isolate* isolate, const Dali::Material& ); + + + // The MaterialAttribute ObjectTemplate, we cache templates so we don't have + // keep generating them everytime we want to create a Material + static v8::Persistent mMaterialTemplate; + + /** + * @brief Gets the handle of material + * @return the handle of material + */ + Material GetMaterial(); + + +private: + + // Material + Material mMaterial; + + /** + * @brief Creates the object template that used to create material at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Handle MakeMaterialTemplate( v8::Isolate* isolate ); + + /** + * @brief Gets the object template that used to create material at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Local GetMaterialTemplate( v8::Isolate* isolate ); + +}; + +} // namespace V8Plugin + +} // namespace Dali + +#endif // __DALI_V8PLUGIN_MATERIAL_WRAPPER_H__ diff --git a/plugins/dali-script-v8/src/rendering/renderer-api.cpp b/plugins/dali-script-v8/src/rendering/renderer-api.cpp new file mode 100644 index 0000000..fb2c0a8 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/renderer-api.cpp @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +// CLASS HEADER +#include "renderer-api.h" + +// EXTERNAL INCLUDES +#include + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +/** + * ## Renderer API + * + * Renderer is a handle to an object that can be used to provide an image to a material. + * + * @class Renderer + * @extends Handle + */ + +Renderer RendererApi::GetRenderer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + v8::Local object = args.This(); + v8::Local field = v8::Local::Cast( object->GetInternalField(0) ); + void* ptr = field->Value(); + + RendererWrapper* wrapper = static_cast< RendererWrapper *>(ptr); + return wrapper->GetRenderer(); +} + +Renderer RendererApi::GetRendererFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + found = false; + + v8::HandleScope handleScope( isolate ); + BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::RENDERER, isolate, args ); + if( wrappedObject ) + { + found = true; + RendererWrapper* wrapper = static_cast< RendererWrapper *>(wrappedObject); + return wrapper->GetRenderer(); + } + else + { + return Renderer(); + } +} + +/** + * Create a new renderer object. + * + * @constructor + * @method Renderer + * @for Renderer + * @param {Object} geometry The geometry to be used by this renderer + * @param {Object} material The material to be used by this renderer + * @return {Object} Renderer + */ +Renderer RendererApi::New( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + bool found( false ); + Geometry geometry = GeometryApi::GetGeometryFromParams( 0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing geometry from param 0" ); + return Renderer(); + } + + found = false; + Material material = MaterialApi::GetMaterialFromParams( 1, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing material from param 0" ); + return Renderer(); + } + + return Renderer::New(geometry, material); +} + +/** + * Sets the geometry to be used by this renderer + * + * @method setGeometry + * @for Renderer + * @param {Object} geometry The geometry to be used by this renderer + */ +void RendererApi::SetGeometry( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Renderer renderer = GetRenderer( isolate, args ); + + bool found( false ); + Geometry geometry = GeometryApi::GetGeometryFromParams( 0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing geometry from param 0" ); + } + else + { + renderer.SetGeometry(geometry); + } +} + +/** + * Gets the geometry used by this renderer + * + * @method getGeometry + * @for Renderer + * @return {Object} The geometry used by this renderer + */ +void RendererApi::GetGeometry( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Renderer renderer = GetRenderer( isolate, args ); + Geometry geometry = renderer.GetGeometry(); + + // Wrap the geometry + v8::Local localObject = GeometryWrapper::WrapGeometry( isolate, geometry ); + args.GetReturnValue().Set( localObject ); +} + +/** + * Sets the material to be used by this renderer + * + * @method setMaterial + * @for Renderer + * @param {Object} material The material to be used by this renderer + */ +void RendererApi::SetMaterial( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Renderer renderer = GetRenderer( isolate, args ); + + bool found( false ); + Material material = MaterialApi::GetMaterialFromParams( 0, found, isolate, args ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing material from param 0" ); + } + else + { + renderer.SetMaterial(material); + } +} + +/** + * Gets the material used by this renderer + * + * @method getMaterial + * @for Renderer + * @return {Object} The material used by this renderer + */ +void RendererApi::GetMaterial( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Renderer renderer = GetRenderer( isolate, args ); + Material material = renderer.GetMaterial(); + + // Wrap the material + v8::Local localObject = MaterialWrapper::WrapMaterial( isolate, material ); + args.GetReturnValue().Set( localObject ); +} + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/renderer-api.h b/plugins/dali-script-v8/src/rendering/renderer-api.h new file mode 100644 index 0000000..e415e74 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/renderer-api.h @@ -0,0 +1,71 @@ +#ifndef __DALI_V8PLUGIN_RENDERER_API_H__ +#define __DALI_V8PLUGIN_RENDERER_API_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + + +namespace Dali +{ + +namespace V8Plugin +{ + +namespace RendererApi +{ + + /** + * Helper to get renderer from args.This() + */ + Renderer GetRenderer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * @brief Helper to get renderer from the JavaScript object held in the given function argument + * @param[in] paramIndex Argument index the object is held in + * @param[in] found Whether renderer is found in the given function parameter + * @param[in] isolate v8 isolated instance + * @param[in] args v8 function call arguments interpreted + */ + Renderer GetRendererFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Constructor + */ + Renderer New( const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Renderer API see renderer.h for a description + */ + void SetGeometry( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetGeometry( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetMaterial( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetMaterial( const v8::FunctionCallbackInfo< v8::Value >& args ); + +}; // namespace RendererApi + +} // namespace V8Plugin + +} // namespace Dali + +#endif // header __DALI_V8PLUGIN_RENDERER_API_H__ diff --git a/plugins/dali-script-v8/src/rendering/renderer-wrapper.cpp b/plugins/dali-script-v8/src/rendering/renderer-wrapper.cpp new file mode 100644 index 0000000..ecd6649 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/renderer-wrapper.cpp @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "renderer-wrapper.h" + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +v8::Persistent RendererWrapper::mRendererTemplate; + +namespace // un-named name space +{ + +/** + * Contains a list of all functions that can be called + */ +const ApiFunction RendererFunctionTable[]= +{ + /************************************** + * Renderer API (in order of Renderer.h) + **************************************/ + + { "SetGeometry" , RendererApi::SetGeometry }, + { "GetGeometry" , RendererApi::GetGeometry }, + { "SetMaterial" , RendererApi::SetMaterial }, + { "GetMaterial" , RendererApi::GetMaterial }, +}; + +const unsigned int RendererFunctionTableCount = sizeof(RendererFunctionTable)/sizeof(RendererFunctionTable[0]); +} //un-named space + + +RendererWrapper::RendererWrapper( const Dali::Renderer& renderer, GarbageCollectorInterface& gc ) +: HandleWrapper( BaseWrappedObject::RENDERER , renderer, gc ) +{ + mRenderer = renderer; +} + +v8::Handle RendererWrapper::WrapRenderer(v8::Isolate* isolate, const Dali::Renderer& renderer ) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + objectTemplate = GetRendererTemplate( isolate); + + // create an instance of the template + v8::Local localObject = objectTemplate->NewInstance(); + + // create the Renderer wrapper + RendererWrapper* pointer = new RendererWrapper( renderer, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() ); + + // assign the JavaScript object to the wrapper. + pointer->SetJavascriptObject( isolate, localObject ); + + return handleScope.Escape( localObject ); +} + +v8::Local RendererWrapper::GetRendererTemplate( v8::Isolate* isolate) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + if( mRendererTemplate.IsEmpty() ) + { + objectTemplate = MakeRendererTemplate( isolate ); + mRendererTemplate.Reset( isolate, objectTemplate ); + } + else + { + // get the object template + objectTemplate = v8::Local::New( isolate, mRendererTemplate ); + } + return handleScope.Escape( objectTemplate ); +} + +v8::Handle RendererWrapper::MakeRendererTemplate( v8::Isolate* isolate ) +{ + v8::EscapableHandleScope handleScope( isolate ); + + v8::Local objTemplate = v8::ObjectTemplate::New(); + + // property handle intercepts property getters and setters and signals + HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate ); + + objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT ); + + // add our function properties + ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, RendererFunctionTable, RendererFunctionTableCount ); + + return handleScope.Escape( objTemplate ); +} + +void RendererWrapper::NewRenderer( const v8::FunctionCallbackInfo< v8::Value >& args) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate); + + if(!args.IsConstructCall()) + { + DALI_SCRIPT_EXCEPTION( isolate, "Renderer constructor called without 'new'"); + return; + } + Dali::Renderer renderer = RendererApi::New( args ); + + if(renderer) + { + v8::Local localObject = WrapRenderer( isolate, renderer ); + args.GetReturnValue().Set( localObject ); + } +} + + +Renderer RendererWrapper::GetRenderer() +{ + return mRenderer; +} + + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/renderer-wrapper.h b/plugins/dali-script-v8/src/rendering/renderer-wrapper.h new file mode 100644 index 0000000..d03669a --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/renderer-wrapper.h @@ -0,0 +1,107 @@ +#ifndef __DALI_V8PLUGIN_RENDERER_WRAPPER_H__ +#define __DALI_V8PLUGIN_RENDERER_WRAPPER_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ + +namespace V8Plugin +{ + + +/** + * A Renderer wrapper. + * Provides access to Renderer specific functionality and V8 memory handling. + */ +class RendererWrapper : public HandleWrapper +{ + +public: + + /** + * @brief Constructor + * @param[in] renderer DALi renderer + * @param[in] gc garbage collection interface + */ + RendererWrapper( const Renderer& renderer, + GarbageCollectorInterface& gc ); + + /** + * @brief Destructor + */ + virtual ~RendererWrapper() + { + }; + + /** + * @brief Creates a new Renderer wrapped inside a Javascript Object. + * @param[in] args v8 function call arguments interpreted + */ + static void NewRenderer( const v8::FunctionCallbackInfo< v8::Value >& args); + + /** + * Wraps a renderer + */ + static v8::Handle WrapRenderer(v8::Isolate* isolate, const Dali::Renderer& ); + + + // The RendererAttribute ObjectTemplate, we cache templates so we don't have + // keep generating them everytime we want to create a Renderer + static v8::Persistent mRendererTemplate; + + /** + * @brief Gets the handle of renderer + * @return the handle of renderer + */ + Renderer GetRenderer(); + + +private: + + // Renderer + Renderer mRenderer; + + /** + * @brief Creates the object template that used to create renderer at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Handle MakeRendererTemplate( v8::Isolate* isolate ); + + /** + * @brief Gets the object template that used to create renderer at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Local GetRendererTemplate( v8::Isolate* isolate ); + +}; + +} // namespace V8Plugin + +} // namespace Dali + +#endif // __DALI_V8PLUGIN_RENDERER_WRAPPER_H__ diff --git a/plugins/dali-script-v8/src/rendering/sampler-api.cpp b/plugins/dali-script-v8/src/rendering/sampler-api.cpp new file mode 100644 index 0000000..2f2edce --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/sampler-api.cpp @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "sampler-api.h" + +// EXTERNAL INCLUDES +#include + +// INTERNAL INCLUDES +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +/** + * ## Sampler API + * + * Sampler is a handle to an object that can be used to provide the sampling parameters to sample textures + * + * @class Sampler + */ + +Sampler SamplerApi::GetSampler( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + v8::Local object = args.This(); + v8::Local field = v8::Local::Cast( object->GetInternalField(0) ); + void* ptr = field->Value(); + + SamplerWrapper* wrapper = static_cast< SamplerWrapper *>(ptr); + return wrapper->GetSampler(); +} + +Sampler SamplerApi::GetSamplerFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + found = false; + + v8::HandleScope handleScope( isolate ); + BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::SAMPLER, isolate, args ); + if( wrappedObject ) + { + found = true; + SamplerWrapper* wrapper = static_cast< SamplerWrapper *>(wrappedObject); + return wrapper->GetSampler(); + } + else + { + return Sampler(); + } +} + +/** + * Create a new sampler object. + * + * @constructor + * @method Sampler + * @for Sampler + * @return {Object} Sampler + */ +Sampler SamplerApi::New( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + return Sampler::New(); +} + +/** + * Set the filter modes for this sampler + * @method setFilterMode + * @for Sampler + * @param {integer} minFilter The minification filter that will be used + * @param {integer} magFilter The magnification filter that will be used + * @example + * // filter mode is one of the following + * dali.FILTER_MODE_NONE // Use GL system defaults (minification NEAREST_MIPMAP_LINEAR, magnification LINEAR) + * dali.FILTER_MODE_DEFAULT // Use dali defaults (minification LINEAR, magnification LINEAR) + * dali.FILTER_MODE_NEAREST // Filter nearest + * dali.FILTER_MODE_LINEAR // Filter linear + * + * sampler.setFilterMode( dali.FILTER_MODE_DEFAULT, dali.FILTER_MODE_LINEAR ); + */ +void SamplerApi::SetFilterMode( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Sampler sampler = GetSampler( isolate, args ); + + bool found( false ); + int minFilter = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing minification filter from param 0" ); + return; + } + + found = false; + int magFilter = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing magnification filter from param 1" ); + } + else + { + sampler.SetFilterMode(static_cast(minFilter), static_cast(magFilter)); + } +} + +/** + * Set the wrap modes for this sampler + * @method setWrapMode + * @for Sampler + * @param {integer} uWrap Wrap mode for u coordinates + * @param {integer} vWrap Wrap mode for v coordinates + * @example + * // wrap mode is one of the following + * dali.WRAP_MODE_DEFAULT + * dali.WRAP_MODE_CLAMP_TO_EDGE + * dali.WRAP_MODE_REPEAT + * dali.WRAP_MODE_MIRRORED_REPEAT + * + * sampler.setWrapMode( dali.WRAP_MODE_CLAMP_TO_EDGE, dali.WRAP_MODE_REPEAT ); + */ +void SamplerApi::SetWrapMode( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + + Sampler sampler = GetSampler( isolate, args ); + + bool found( false ); + int uWrap = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing wrap mode for u coordinates from param 0" ); + return; + } + + found = false; + int vWrap = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0 /* default */); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "missing wrap mode for v coordinates from param 1" ); + } + else + { + sampler.SetWrapMode(static_cast(uWrap), static_cast(vWrap)); + } +} + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/sampler-api.h b/plugins/dali-script-v8/src/rendering/sampler-api.h new file mode 100644 index 0000000..1eac960 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/sampler-api.h @@ -0,0 +1,67 @@ +#ifndef __DALI_V8PLUGIN_SAMPLER_API_H__ +#define __DALI_V8PLUGIN_SAMPLER_API_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +namespace SamplerApi +{ + /** + * Helper to get sampler from args.This() + */ + Sampler GetSampler( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * @brief Helper to get sampler from the JavaScript object held in the given function argument + * @param[in] paramIndex Argument index the object is held in + * @param[in] found Whether sampler is found in the given function parameter + * @param[in] isolate v8 isolated instance + * @param[in] args v8 function call arguments interpreted + */ + Sampler GetSamplerFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Constructor + */ + Sampler New( const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * Sampler API see sampler.h for a description + */ + void SetFilterMode( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetWrapMode( const v8::FunctionCallbackInfo< v8::Value >& args ); + +}; // namespace SamplerApi + +} // namespace V8Plugin + +} // namespace Dali + +#endif // header __DALI_V8PLUGIN_SAMPLER_API_H__ diff --git a/plugins/dali-script-v8/src/rendering/sampler-wrapper.cpp b/plugins/dali-script-v8/src/rendering/sampler-wrapper.cpp new file mode 100644 index 0000000..17b9396 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/sampler-wrapper.cpp @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "sampler-wrapper.h" + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include + +namespace Dali +{ +namespace V8Plugin +{ + +v8::Persistent SamplerWrapper::mSamplerTemplate; + +namespace +{ + +/** + * Contains a list of all functions that can be called + */ +const ApiFunction SamplerFunctionTable[]= +{ + /************************************** + * Sampler API (in order of sampler.h) + **************************************/ + + { "SetFilterMode", SamplerApi::SetFilterMode }, + { "SetWrapMode", SamplerApi::SetWrapMode }, +}; + +const unsigned int SamplerFunctionTableCount = sizeof(SamplerFunctionTable)/sizeof(SamplerFunctionTable[0]); +} //un-named space + + +SamplerWrapper::SamplerWrapper( const Sampler& sampler, GarbageCollectorInterface& gc ) +: BaseWrappedObject( BaseWrappedObject::SAMPLER , gc ) +{ + mSampler = sampler; +} + +v8::Handle SamplerWrapper::WrapSampler(v8::Isolate* isolate, const Sampler& sampler ) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + objectTemplate = GetSamplerTemplate( isolate); + + // create an instance of the template + v8::Local localObject = objectTemplate->NewInstance(); + + // create the Sampler wrapper + SamplerWrapper* pointer = new SamplerWrapper( sampler, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() ); + + // assign the JavaScript object to the wrapper. + pointer->SetJavascriptObject( isolate, localObject ); + + return handleScope.Escape( localObject ); +} + +v8::Local SamplerWrapper::GetSamplerTemplate( v8::Isolate* isolate) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + if( mSamplerTemplate.IsEmpty() ) + { + objectTemplate = MakeSamplerTemplate( isolate ); + mSamplerTemplate.Reset( isolate, objectTemplate ); + } + else + { + // get the object template + objectTemplate = v8::Local::New( isolate, mSamplerTemplate ); + } + return handleScope.Escape( objectTemplate ); +} + +v8::Handle SamplerWrapper::MakeSamplerTemplate( v8::Isolate* isolate ) +{ + v8::EscapableHandleScope handleScope( isolate ); + + v8::Local objTemplate = v8::ObjectTemplate::New(); + + objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT ); + + // add our function properties + ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, SamplerFunctionTable, SamplerFunctionTableCount ); + + return handleScope.Escape( objTemplate ); +} + +void SamplerWrapper::NewSampler( const v8::FunctionCallbackInfo< v8::Value >& args) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate); + + if(!args.IsConstructCall()) + { + DALI_SCRIPT_EXCEPTION( isolate, "Sampler constructor called without 'new'"); + return; + } + Dali::Sampler sampler = SamplerApi::New( args ); + + if(sampler) + { + v8::Local localObject = WrapSampler( isolate, sampler ); + args.GetReturnValue().Set( localObject ); + } +} + +Sampler SamplerWrapper::GetSampler() +{ + return mSampler; +} + + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/sampler-wrapper.h b/plugins/dali-script-v8/src/rendering/sampler-wrapper.h new file mode 100644 index 0000000..5f2df3c --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/sampler-wrapper.h @@ -0,0 +1,103 @@ +#ifndef __DALI_V8PLUGIN_SAMPLER_WRAPPER_H__ +#define __DALI_V8PLUGIN_SAMPLER_WRAPPER_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +/** + * A Sampler wrapper. + * Provides access to Sampler specific functionality and V8 memory handling. + */ +class SamplerWrapper : public BaseWrappedObject +{ + +public: + + /** + * @brief Constructor + * @param[in] sampler DALi sampler + * @param[in] gc garbage collection interface + */ + SamplerWrapper( const Sampler& sampler, + GarbageCollectorInterface& gc ); + + /** + * @brief Destructor + */ + virtual ~SamplerWrapper() + { + }; + + /** + * @brief Creates a new Sampler wrapped inside a Javascript Object. + * @param[in] args v8 function call arguments interpreted + */ + static void NewSampler( const v8::FunctionCallbackInfo< v8::Value >& args); + + /** + * Wraps a sampler + */ + static v8::Handle WrapSampler(v8::Isolate* isolate, const Sampler& ); + + // The SamplerAttribute ObjectTemplate, we cache templates so we don't have + // keep generating them everytime we want to create a Sampler + static v8::Persistent mSamplerTemplate; + + /** + * @brief Gets the handle of sampler + * @return the handle of sampler + */ + Sampler GetSampler(); + +private: + + // Sampler + Sampler mSampler; + + /** + * @brief Creates the object template that used to create sampler at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Handle MakeSamplerTemplate( v8::Isolate* isolate ); + + /** + * @brief Gets the object template that used to create sampler at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Local GetSamplerTemplate( v8::Isolate* isolate ); +}; + +} // namespace V8Plugin + +} // namespace Dali + +#endif // __DALI_V8PLUGIN_SAMPLER_WRAPPER_H__ diff --git a/plugins/dali-script-v8/src/rendering/shader-api.cpp b/plugins/dali-script-v8/src/rendering/shader-api.cpp new file mode 100644 index 0000000..6080bd2 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/shader-api.cpp @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +// CLASS HEADER +#include "shader-api.h" + +// EXTERNAL INCLUDES +#include + +// INTERNAL INCLUDES +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +/** + * ## Shader API + * + * Shaders allows custom vertex and color transformations in the GPU + * + * ### Simple example + * + *``` + * // this will match the default shaders for image + * var vertexShader = " void main() \ + * { \ + * gl_Position = uProjection * uModelView * vec4(aPosition, 1.0); \ + * vTexCoord = aTexCoord; \ + * }; " + * var fragShader = " void main() \ + * { \ + * gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\ + * }; " + * var shaderOptions = { + * vertexShader: vertexShader, + * fragmentShader: fragShader + * }; + * + * var shader = new dali.Shader(shaderOptions); + *``` + * @class Shader + * @extends Handle + */ + +namespace // unnamed namespace +{ + +typedef std::vector< std::string > HintsArray; + +struct ShaderHintPair +{ + const char* name; + Shader::ShaderHints hint; +}; + +const ShaderHintPair ShaderHintTable[]= +{ + {"requiresSelfDepthTest", Shader::HINT_REQUIRES_SELF_DEPTH_TEST }, + {"outputIsTransparent", Shader::HINT_OUTPUT_IS_TRANSPARENT }, + {"outputIsOpaque", Shader::HINT_OUTPUT_IS_OPAQUE }, + {"modifiesGeometry", Shader::HINT_MODIFIES_GEOMETRY }, +}; + +const unsigned int ShaderHintTableCount = sizeof(ShaderHintTable)/sizeof(ShaderHintTable[0]); + +struct ShaderParameters +{ + ShaderParameters() + : mHints( Shader::HINT_NONE ) + { + } + + Shader::ShaderHints GetShaderHint( const std::string& hint ) + { + for( unsigned int i = 0 ; i < ShaderHintTableCount; ++i ) + { + if( hint == ShaderHintTable[i].name ) + { + return ShaderHintTable[i].hint; + } + } + return Shader::HINT_NONE; + } + + void ProcessHintsArray( const HintsArray& hintsArray ) + { + for( HintsArray::const_iterator iter = hintsArray.begin(); iter != hintsArray.end() ; ++iter ) + { + mHints= static_cast( mHints | GetShaderHint( *iter ) ); + } + } + + Shader NewShader() + { + return Shader::New( mVertex, + mFragment, + mHints); + } + + std::string mVertex; + std::string mFragment; + Shader::ShaderHints mHints; +}; + +Shader GetShader( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + v8::Local object = args.This(); + v8::Local field = v8::Local::Cast( object->GetInternalField(0) ); + void* ptr = field->Value(); + + ShaderWrapper* wrapper = static_cast< ShaderWrapper *>(ptr); + return wrapper->GetShader(); +} + +} // unnamed space + +/** + * Create a new Shader + * @constructor + * @for Shader + * @method Shader + * @param {Object} shaderOptions + * @param {String} [shaderOptions.vertexShader] VertexShader code for the shader. If not defined, the default version will be used + * @param {String} [shaderOptions.fragmentShader] FragmentShader code for the shader. If not defined, the default version will be used + * @param {Array} [shaderOptions.shaderHints] Hints for rendering/subdividing geometry, e.g. [ "requiresSelfDepthTest", "outputIsTransparent", "outputIsOpaque","modifiesGeometry" ] + * @return {Object} Shader + * @example + + // this will match the default shaders for image + var vertexShader = " void main() \ + { \ + gl_Position = uProjection * uModelView * vec4(aPosition, 1.0); \ + vTexCoord = aTexCoord; \ + }; " + + var fragShader = " void main() \ + { \ + gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\ + }; " + + var shaderOptions = { + vertexShader: vertexShader, + fragmentShader: fragShader + }; + + var shader = new dali.Shader(shaderOptions); + * + */ +Shader ShaderApi::New( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::HandleScope handleScope( isolate ); + + ShaderParameters shaderParams; + + if( args[0]->IsObject() ) + { + v8::Local obj = args[0]->ToObject(); + + v8::Local vertexValue = obj->Get(v8::String::NewFromUtf8( isolate, "vertexShader")); + if( vertexValue->IsString() ) + { + shaderParams.mVertex = V8Utils::v8StringToStdString( vertexValue ); + } + + v8::Local fragmentValue = obj->Get(v8::String::NewFromUtf8( isolate, "fragmentShader")); + if( fragmentValue->IsString() ) + { + shaderParams.mFragment = V8Utils::v8StringToStdString( fragmentValue ); + } + // Get any hints + v8::Local hints = obj->Get(v8::String::NewFromUtf8( isolate, "shaderHints")); + if( hints->IsArray() ) + { + HintsArray hintsArray; + v8::Local array = v8::Local::Cast( hints ); + for( uint32_t i=0; i < array->Length(); ++i) + { + v8::Handle entry = array->Get( v8::Integer::New( isolate, i) ); + if( entry->IsString() ) + { + std::string entryString = V8Utils::v8StringToStdString( entry ); + hintsArray.push_back( entryString ); + } + } + shaderParams.ProcessHintsArray( hintsArray ); + } + } + + return shaderParams.NewShader(); +} + +Shader ShaderApi::GetShaderFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + found = false; + + v8::HandleScope handleScope( isolate ); + BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::SHADER, isolate, args ); + if( wrappedObject ) + { + found = true; + ShaderWrapper* wrapper = static_cast< ShaderWrapper *>(wrappedObject); + return wrapper->GetShader(); + } + else + { + return Shader(); + } +} + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/shader-api.h b/plugins/dali-script-v8/src/rendering/shader-api.h new file mode 100644 index 0000000..1c9e1a2 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/shader-api.h @@ -0,0 +1,58 @@ +#ifndef __DALI_V8PLUGIN_SHADER_API_H__ +#define __DALI_V8PLUGIN_SHADER_API_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + + +namespace Dali +{ + +namespace V8Plugin +{ + +namespace ShaderApi +{ + + /** + * Constructor + */ + Shader New( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + + /** + * @brief Helper to get shader from the JavaScript object held in the given function argument + * @param[in] paramIndex Argument index the object is held in + * @param[in] found Whether shader is found in the given function parameter + * @param[in] isolate v8 isolated instance + * @param[in] args v8 function call arguments interpreted + */ + Shader GetShaderFromParams( int paramIndex, + bool& found, + v8::Isolate* isolate, + const v8::FunctionCallbackInfo< v8::Value >& args ); + +}; // namespace ShaderApi + +} // namespace V8Plugin + +} // namespace Dali + +#endif // header __DALI_V8PLUGIN_SHADER_API_H__ diff --git a/plugins/dali-script-v8/src/rendering/shader-wrapper.cpp b/plugins/dali-script-v8/src/rendering/shader-wrapper.cpp new file mode 100644 index 0000000..f3aff6c --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/shader-wrapper.cpp @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include "shader-wrapper.h" + +// INTERNAL INCLUDES +#include +#include +#include +#include +#include + +namespace Dali +{ + +namespace V8Plugin +{ + +v8::Persistent ShaderWrapper::mShaderTemplate; + +ShaderWrapper::ShaderWrapper( const Dali::Shader& shader, GarbageCollectorInterface& gc ) +: HandleWrapper( BaseWrappedObject::SHADER , shader, gc ) +{ + mShader = shader; +} + +v8::Handle ShaderWrapper::WrapShader(v8::Isolate* isolate, const Dali::Shader& shader ) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + objectTemplate = GetShaderTemplate( isolate); + + // create an instance of the template + v8::Local localObject = objectTemplate->NewInstance(); + + // create the Shader wrapper + ShaderWrapper* pointer = new ShaderWrapper( shader, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() ); + + // assign the JavaScript object to the wrapper. + pointer->SetJavascriptObject( isolate, localObject ); + + return handleScope.Escape( localObject ); +} + +v8::Local ShaderWrapper::GetShaderTemplate( v8::Isolate* isolate) +{ + v8::EscapableHandleScope handleScope( isolate ); + v8::Local objectTemplate; + + if( mShaderTemplate.IsEmpty() ) + { + objectTemplate = MakeShaderTemplate( isolate ); + mShaderTemplate.Reset( isolate, objectTemplate ); + } + else + { + // get the object template + objectTemplate = v8::Local::New( isolate, mShaderTemplate ); + } + return handleScope.Escape( objectTemplate ); +} + +v8::Handle ShaderWrapper::MakeShaderTemplate( v8::Isolate* isolate ) +{ + v8::EscapableHandleScope handleScope( isolate ); + + v8::Local objTemplate = v8::ObjectTemplate::New(); + + // property handle intercepts property getters and setters and signals + HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate ); + + objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT ); + + return handleScope.Escape( objTemplate ); +} + +void ShaderWrapper::NewShader( const v8::FunctionCallbackInfo< v8::Value >& args) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate); + + if(!args.IsConstructCall()) + { + DALI_SCRIPT_EXCEPTION( isolate, "Shader constructor called without 'new'"); + return; + } + Dali::Shader shader = ShaderApi::New( isolate, args ); + + if(shader) + { + v8::Local localObject = WrapShader( isolate, shader ); + args.GetReturnValue().Set( localObject ); + } +} + + +Shader ShaderWrapper::GetShader() +{ + return mShader; +} + + +} // namespace V8Plugin + +} // namespace Dali diff --git a/plugins/dali-script-v8/src/rendering/shader-wrapper.h b/plugins/dali-script-v8/src/rendering/shader-wrapper.h new file mode 100644 index 0000000..b4cb2a0 --- /dev/null +++ b/plugins/dali-script-v8/src/rendering/shader-wrapper.h @@ -0,0 +1,107 @@ +#ifndef __DALI_V8PLUGIN_SHADER_WRAPPER_H__ +#define __DALI_V8PLUGIN_SHADER_WRAPPER_H__ + +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ + +namespace V8Plugin +{ + + +/** + * A Shader wrapper. + * Provides access to Shader specific functionality and V8 memory handling. + */ +class ShaderWrapper : public HandleWrapper +{ + +public: + + /** + * @brief Constructor + * @param[in] shader DALi shader + * @param[in] gc garbage collection interface + */ + ShaderWrapper( const Shader& shader, + GarbageCollectorInterface& gc ); + + /** + * @brief Destructor + */ + virtual ~ShaderWrapper() + { + }; + + /** + * @brief Creates a new Shader wrapped inside a Javascript Object. + * @param[in] args v8 function call arguments interpreted + */ + static void NewShader( const v8::FunctionCallbackInfo< v8::Value >& args); + + /** + * Wraps a shader + */ + static v8::Handle WrapShader(v8::Isolate* isolate, const Dali::Shader& ); + + + // The ShaderAttribute ObjectTemplate, we cache templates so we don't have + // keep generating them everytime we want to create a Shader + static v8::Persistent mShaderTemplate; + + /** + * @brief Gets the handle of shader + * @return the handle of shader + */ + Shader GetShader(); + + +private: + + // Shader + Shader mShader; + + /** + * @brief Creates the object template that used to create shader at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Handle MakeShaderTemplate( v8::Isolate* isolate ); + + /** + * @brief Gets the object template that used to create shader at runtime + * @param[in] isolate v8 isolated instance + * @return the object template + */ + static v8::Local GetShaderTemplate( v8::Isolate* isolate ); + +}; + +} // namespace V8Plugin + +} // namespace Dali + +#endif // __DALI_V8PLUGIN_SHADER_WRAPPER_H__ diff --git a/plugins/dali-script-v8/src/shared/base-wrapped-object.h b/plugins/dali-script-v8/src/shared/base-wrapped-object.h index b9f2cb8..3a0e9d9 100644 --- a/plugins/dali-script-v8/src/shared/base-wrapped-object.h +++ b/plugins/dali-script-v8/src/shared/base-wrapped-object.h @@ -83,6 +83,12 @@ public: RENDER_TASK, RENDER_TASK_LIST, TIMER, + SHADER, + SAMPLER, + MATERIAL, + GEOMETRY, + RENDERER, + PROPERTY_BUFFER, TAP_GESTURE, SHADER_EFFECT, PAN_GESTURE, diff --git a/plugins/dali-script-v8/src/toolkit/builder/builder-api.cpp b/plugins/dali-script-v8/src/toolkit/builder/builder-api.cpp index 3c499a4..55e6ae7 100644 --- a/plugins/dali-script-v8/src/toolkit/builder/builder-api.cpp +++ b/plugins/dali-script-v8/src/toolkit/builder/builder-api.cpp @@ -33,6 +33,7 @@ #include #include #include +#include namespace Dali @@ -292,12 +293,16 @@ void BuilderApi::Create( const v8::FunctionCallbackInfo< v8::Value >& args ) v8::Local image = ImageWrapper::WrapImage(isolate, Image::DownCast(handle) ); args.GetReturnValue().Set( image ); } + if( typeName == "ShaderEffect") + { + v8::Local shaderEffect = ShaderEffectWrapper::WrapShaderEffect(isolate, ShaderEffect::DownCast( handle )); + args.GetReturnValue().Set( shaderEffect ); + } if( typeName == "Shader") { - v8::Local shader = ShaderEffectWrapper::WrapShaderEffect(isolate, ShaderEffect::DownCast( handle )); + v8::Local shader = ShaderWrapper::WrapShader(isolate, Shader::DownCast( handle )); args.GetReturnValue().Set( shader ); } - } void BuilderApi::ApplyStyle( const v8::FunctionCallbackInfo< v8::Value >& args ) { diff --git a/plugins/dali-script-v8/src/utils/v8-utils.cpp b/plugins/dali-script-v8/src/utils/v8-utils.cpp index 3466198..f843d1d 100644 --- a/plugins/dali-script-v8/src/utils/v8-utils.cpp +++ b/plugins/dali-script-v8/src/utils/v8-utils.cpp @@ -390,7 +390,7 @@ Property::Value GetPropertyValueFromObject( bool& found, v8::Isolate* isolate, c { v8::HandleScope handleScope( isolate); - Property::Value daliPropertyValue;// creates a property with Property::INVALID + Property::Value daliPropertyValue;// creates a property with Property::NONE found = false; @@ -445,11 +445,33 @@ Property::Map GetPropertyMapFromObject( v8::Isolate* isolate, const v8::Local value = object->Get( key ); - std::string valueString = V8Utils::v8StringToStdString( value ); - - propertyMap[ keyString ] = valueString.c_str(); + if( value->IsBoolean() ) + { + v8::Local v = value->ToBoolean(); + propertyMap[ keyString ] = v->Value(); + } + else if( value->IsNumber() ) + { + v8::Local v = value->ToNumber(); + propertyMap[ keyString ] = static_cast(v->Value()); + } + else if( value->IsInt32() || value->IsUint32() ) + { + v8::Local v = value->ToInt32(); + propertyMap[ keyString ] = static_cast(v->Value()); + } + else if( value->IsString() ) + { + std::string valueString = V8Utils::v8StringToStdString( value ); + propertyMap[ keyString ] = valueString.c_str(); + } + else if( value->IsArray() ) + { + propertyMap[ keyString ] = PropertyValueWrapper::VectorOrMatrixFromV8Array( isolate, value); + } } + return propertyMap; } @@ -480,6 +502,7 @@ int GetIntegerParameter( unsigned int index, bool& found, v8::Isolate* isolate, found = true; return args[ index ]->Int32Value(); } + else { return defaultValue; } @@ -498,6 +521,7 @@ float GetFloatParameter( unsigned int index, bool& found, v8::Isolate* isolate, found = true; return args[ index ]->NumberValue(); } + else { return defaultValue; } @@ -545,6 +569,24 @@ bool GetBooleanParameter( unsigned int index, bool& found, v8::Isolate* isolate, } } +void* GetArrayBufferViewParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + found = false; + unsigned int length = args.Length(); + if( index < length && args[index]->IsArrayBufferView() ) + { + found = true; + v8::ArrayBufferView* bufferView = v8::ArrayBufferView::Cast(*(args[index])); + v8::Handle buffer = bufferView->Buffer(); + v8::ArrayBuffer::Contents contents = buffer->Externalize(); + return contents.Data(); + } + else + { + return NULL; + } +} + Handle GetHandleParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) { v8::HandleScope handleScope( isolate); @@ -765,6 +807,7 @@ Image GetImageParameter( unsigned int index, bool& found, v8::Isolate* isolate, } } + RenderTask GetRenderTaskParameter( unsigned int paramIndex, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) { found = false; @@ -781,7 +824,6 @@ RenderTask GetRenderTaskParameter( unsigned int paramIndex, bool& found, v8::Iso } } - BaseWrappedObject* GetWrappedDaliObjectParameter( unsigned int index, BaseWrappedObject::Type type, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) { v8::HandleScope handleScope( isolate); diff --git a/plugins/dali-script-v8/src/utils/v8-utils.h b/plugins/dali-script-v8/src/utils/v8-utils.h index 534c547..7cd6891 100644 --- a/plugins/dali-script-v8/src/utils/v8-utils.h +++ b/plugins/dali-script-v8/src/utils/v8-utils.h @@ -195,7 +195,7 @@ Property::Value GetPropertyValueFromObject( bool& found, v8::Isolate* isolate, c /** * Given a JavaScript object with * @param [in] object JavaScrript object - * @return DALi ProperyMap from the JavaScript object + * @return DALi ProperyMap from the JavaScript object */ Property::Map GetPropertyMapFromObject( v8::Isolate* isolate, const v8::Local& object); @@ -252,6 +252,13 @@ bool GetBooleanParameter( unsigned int index, bool& found, v8::Isolate* isolate, /** * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2). * @param[out] found whether the parameter was found + * @return ArrayBufferView from the JavaScript function arguments + */ +void* GetArrayBufferViewParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); + +/** + * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2). + * @param[out] found whether the parameter was found * @return DALi Handle value from the JavaScript function arguments */ Handle GetHandleParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ); -- 2.7.4