From 1078bf7204abd5aae62d74d8bccce1c342d7841f Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Sat, 11 Jan 2014 22:39:10 +0100 Subject: [PATCH] Version 4.0: Fix globals warning; Add Values_Debug variable; Add contains_any/contains_all functions --- Makefile | 2 +- .../de-DE.plg_vmshipment_rules_shipping.ini | 8 ++- .../en-GB.plg_vmshipment_rules_shipping.ini | 1 + ...tools_vm2_rules_shipping_advanced_v4.0.zip | Bin 0 -> 26115 bytes .../plg_opentools_vm2_rules_shipping_v4.0.zip | Bin 0 -> 21208 bytes rules_shipping.xml | 2 +- rules_shipping_advanced.xml | 2 +- rules_shipping_base.php | 63 +++++++++++++++--- 8 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 releases/plg_opentools_vm2_rules_shipping_advanced_v4.0.zip create mode 100644 releases/plg_opentools_vm2_rules_shipping_v4.0.zip diff --git a/Makefile b/Makefile index bbd0b7c..5c57efa 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ BASE=rules_shipping BASE_ADV=rules_shipping_advanced PLUGINTYPE=vmshipment ZIPBASE=opentools_vm2 -VERSION=3.97 +VERSION=4.0 PLUGINFILES=$(BASE).php $(BASE)_base.php $(BASE).script.php $(BASE).xml index.html PLUGINFILES_ADV=$(BASE_ADV).php $(BASE)_base.php $(BASE_ADV).script.php $(BASE_ADV).xml index.html diff --git a/language/de-DE/de-DE.plg_vmshipment_rules_shipping.ini b/language/de-DE/de-DE.plg_vmshipment_rules_shipping.ini index 05b9644..ec6c6ec 100644 --- a/language/de-DE/de-DE.plg_vmshipment_rules_shipping.ini +++ b/language/de-DE/de-DE.plg_vmshipment_rules_shipping.ini @@ -44,4 +44,10 @@ VMSHIPMENT_RULES_EVALUATE_SYNTAXERROR="Syntax error during evaluation, RPN is no VMSHIPMENT_RULES_EVALUATE_UNKNOWN_OPERATOR="Unknown operator '%s' encountered during evaluation of rule '%s'." VMSHIPMENT_RULES_EVALUATE_UNKNOWN_ERROR="Unknown error occurred during evaluation of rule '%s'." VMSHIPMENT_RULES_EVALUATE_ASSIGNMENT_TOPLEVEL="Assignments are not allows inside expressions (rule given was '%s')" -VMSHIPMENT_RULES_EVALUATE_UNKNOWN_VALUE="Evaluation yields unknown value while evaluating rule part '%s'." \ No newline at end of file +VMSHIPMENT_RULES_EVALUATE_UNKNOWN_VALUE="Evaluation yields unknown value while evaluating rule part '%s'." + +VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_ARGS="List function '%s' requires all arguments to be lists. (Full rule: '%s')" +VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_CONTAIN_ARGS="List function '%s' requires the first argument to be lists. (Full rule: '%s')" +VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_UNKNOWN="Unknown list function '%s' encountered. (Full rule: '%s')" + +VMSHIPMENT_RULES_NOSHIPPING_MESSAGE="%s" diff --git a/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini b/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini index 1c19d7b..ee5381b 100755 --- a/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini +++ b/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini @@ -55,6 +55,7 @@ VMSHIPMENT_RULES_EVALUATE_ASSIGNMENT_TOPLEVEL="Assignments are not allows inside VMSHIPMENT_RULES_EVALUATE_UNKNOWN_VALUE="Evaluation yields unknown value while evaluating rule part '%s'." VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_ARGS="List function '%s' requires all arguments to be lists. (Full rule: '%s')" +VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_CONTAIN_ARGS="List function '%s' requires the first argument to be lists. (Full rule: '%s')" VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_UNKNOWN="Unknown list function '%s' encountered. (Full rule: '%s')" VMSHIPMENT_RULES_NOSHIPPING_MESSAGE="%s" diff --git a/releases/plg_opentools_vm2_rules_shipping_advanced_v4.0.zip b/releases/plg_opentools_vm2_rules_shipping_advanced_v4.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..1b968da339511be20e2c2fa4ff0754c82d8b1c94 GIT binary patch literal 26115 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 literal 0 HcmV?d00001 diff --git a/releases/plg_opentools_vm2_rules_shipping_v4.0.zip b/releases/plg_opentools_vm2_rules_shipping_v4.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..38afbe1bebd6dd2f776b9447d5f5356658320d6a GIT binary patch literal 21208 zcmWIWW@Zs#U|`^2c-Y$O6#w*tN;ESAg9RG{gAjuZLs4l?YH@sVMrJ`lW?s5pK}JDn z2qy#c)BMc9FOpvZODnh;7+GF0GcbUO){xtIx7`G4&Gsj8NlZ<-u;lHxlbRQHbgj|| z4LMkH<uvz3rS>P+PTzeSry}k8&vvu-$+8Oym4Yko-n1+}H)rPjx@&X&CP_)_ZEX9v zqQ?Apv6-x|gX9X!KKJbzb01D!932*#@iya=mglF<n_12+c(LPMpw)##+hd%Z*GEms znBj4-qVZeJX&u|G?GCe>9(?Cui`JjPxOPo4lg=#J<xe&|U)SvQHR^$L&61rtFArEP zFsgaF$I<%)<Daj5y-&Rky<BA1%RVdg`x@691&?j^r5`(*{CfNG*`;ePANm>WYPcxq z*ToOpiVbRiN%^Z6looz`{PXJ3r&qhD6tu5d&SLK5(6i-;n!o|8-)@^u%Rdm?`DV(B zhvs5-QYM-!mMMN(Kh>@B-4r3S$re{sU&KVUoU^Q*`~3G`yX>Xsr(}L^P})#fx!U#G z&bR|LUlr%CpRT#Gb3=?z`s$=<t>1!{i9apo?p?^ST55YboAHj<FWzXRotImfY~7-( z^f%Zv-@-JYI@wnGNfB2}J0t%y=go<4w})u!v{wZuOnQ@a((#~8wEUgJoKaziu3t$@ zb&_*hd+~#8@thAK%+;yybY(oQKTwUWXMQ!oD{zWr#YEQTNk`7lel_!%;o4qbEe(V8 z((|b+CRnC^dSIp6?0z_XXLr}vB@uRiYyVz<oAmFS-U><Ee|M5r#+c+O#4JvZacO8M z%(zv&=)(3JVb5aSBlkUNO^jK=-}p_A*)392-_y;ha#qLTJ-PCUhgmW^Hf(rvZ;{M~ z&n@N#|JDhexg{juv3TjtdtYBCNi<wcVfwGC&i4Q7od-Ye{(AN<cV}h%y6N)Ix<eTy z_i);Oak|Z@6~I6Fzv0iMEZtka^>^5|Cw@5nC?NYMci=A>fn%oTlfGK$osJhj9U1Aj z$=ubfOM0=*B%Nk4{esNr4j+qDZ)})2W#!@ePfrp*@>HvrNph{<YILwxI?dwtrK6^Q z1VeovzCUW!I@_*e_MuxVW?kbh+}R`R7FN2T{jf-Zdz;d|z2beB^OPn}G~GBafXSI{ z!5#s|{54P4@;Gd$cC!had#KCf_&=Aw541Ni+F4Bb8lJppi{tfUr%$!M)IF(FbYqIa zKRLh5uYa2x4{FXe-_sjwanXeTQfz#^*x&y*!cTIZl$&xsap?k~Q*J9GXV)+xvT5N4 zZI>#24}-H>3=Cz<7#PGcvT1x$VsR=wuP)noF$jdw^6D9zmsPiqmF-`;e8!4DJeL-F zoIDq%d8t?DqM2}R_@X(tt^NsgNKD$n#wgXTvGptSSIb{Xw$INrF&YSDs(#<*_h`cA zIkmH!8SDR?PTF?k&X=Dm9Xrn7>ihlqL4I@c^23i>elq4;hufT;lrZPu8gseNCZ$%t zXV3oo{Ji<i;xb!qv0}N@9KmOo6_SK+m_8Ns-?QQLB%3EMzpb5q=vs)L&u$$ayP|0y zGUci`qmN`hYt?yrGM3@MO`{WOIWp(P756Xq?N*p|$YGYDg0g&i<)PpMJtyjSJ@%A3 zBACtlSBzI@&qw$CQ#W@joGhw)rYgz1{O8(PJ5{WLx2@G&B>K4G;{=w=k;nSJF8@~8 zzW2t>pJ~63o_oj5tRh{Q&&SYrXu`!)B0C(}cHEC<%=xam`;ntbxAXkJj~=#j`a1*^ zy;<I$wT4|uAwtnZ)yr~r>dmC}_v7`Z@6DX@{ZYy-cN4|=DSuxoy*az7^2EJ4_rKha znOEjGXU<%{e)i|ro8?}KD@cA}*PN}gL8({$<|Xfn{@yf$WlJo-%iTD$`|+D;#XrP; zA5>xB)%&D!)>d)7PTI{LWxH=~8M9-bZFkVN7X4B-Q@nBSk_4v=+wGRK{25j(E}Zdu z!E*~oi-xPuJqw<vGCt^5&yiG@4_2G`EmH2_7p@SY5T4aS2gPqB>|wZc*~0%A>ujzZ zuc%#Zt+nUpvkL~jNG-hNzPVf3B<RnJdlQd5Q`q?L<I$)4V|nlIkzHtV@&vc6d!gI3 zZl2#ZpPMEKDDbV^!X)sj_sXlMH+dG^=yCkP{etmkT+xw-eUELJ44K5<3SD}bCx63Q zpGC6B%x7=EW<Sfje`yAZZ`U7NIDMJkes;Owf_J-rKHd6(Vfp36|2ub1{NP_X;lsD{ z)7=+uf4AHC`=>9@&VKka>+229f2`JGD;-+bEPh>o@6Gp{t|E2}+Zp7ZbhQX6EvPzE zy;ttxx&?79m&=Pq_0|~}?YKTk{JZFeHJnWR{Q{?-JyYpFCK;8&P+<2o?nYi^?6qA> zTRWJJ?N#|Gm$2vXJlo`>-=i6Qo08)%Zs49~bI~B7HuHyAo9%=A$HtEpXH4C=_vyxF z<{K@OPy8<y{85tOWoUG)v;Y1<(-a1gkNrKpvCq3*=PVH3^Lf&N-L0Lr-?TNipZ-@{ zaWmDu_)6jQShbD(iF_{GyxWfL{n(>>Bw_kT>kZinwe#8|84QJTWNli0%Q8%8kZlu@ zk+k-@oFJtrR~D`i;!=Kdr}^^~Rj2&bQx5;AJ*F(5)MBPE;ruhUv_@XR3gM2<k8kh) zv`E(N*#6_-93@ZVYf{HAs?2!gQ(x??eS?*|-=!w~ZMu|0_*(H(EFKQ`?!{%6*6OA# z@9hm^Q_TH+f%oytDMtzpxP_ZH*CuNn{&>{=A49R<1M96j7sk(D*m<3i-%*0SNn6~Z zVb_x;>+Mp8Z<CyeM+_WkrSs9VH_1&tCGBiLJgbdiZT$qvq3_hK41bOiv_dh<sZ3 zVMo*LiObkSxtugMOwg6~vhv$8oikrm@5CN~8C|Lg;R1{PN*v;0G5vPH*zMiz!*88t z8s#~j_&NW-S#sZn=T0nXYr~%8>78*^2%p60=lxGLLMr^4#jafnlT%C{b8ItvbwkWk zAa#G0CrjAvyt4~~8e8-~I2`%a`kA%a!Tz5|rJGK2k!Xl&CeJ~!8U1s79Go1_Ms90) zu#a6~Sz-;h-Q7i&?{*70bxAD_kY2K2V_ELL%Z;qkTN6`loSrf{ELk*t$*Sn%YKLzf zJHLLf;gU7&du=CtyqLt;^dW%b?YVD?{dP}fg7z{bITTk+I>O0$!Rg{}{)}lwhI&6^ z%;wKuvZ>?PD(2g3=4s>}Jh9}7Uha{;xTCZF%g8j{ca5yxemL*k`u6;D?CNj+Bpo@I z@8^H>;@KC6War7p^PXdSuDsm)Lzm3!AdeDn4ig*Z1$Q*U+<*R=rd~R!;Bmz>)wk32 ztxA1XwXnRObJT9(5#Hi=>_7K7?Z2~j+YZ4U*}U@a*x1#2?!SBUMq|zl&o|aOyRB5u zxv(Za=MkzfXy3AH_vOFK_MD!4a>=gs0X~^K&-kyNp8YK~ak6`(W3=L1K5NN6cDpQP zH{PEUfA7z;knPFWwtAgU@XXfv{O)dA_2F2}98T4R8(M8#j;iGzm|Eavy7_`l=#>Ds zpE;I?cNL52uN0Ya^3R%AP8#)@1(S{lJ`3hrlQSc6>K+c;6G|4VXWa1<KX8V{Y0mr9 zd4esjZm#d=GQF90^h={fYgNUjtl+a<ndPUP{o3tJ*H(V@ZHTzbyn4bW-@|(6T0=5s zJWQ6m!+hbh44?mu`Y$^LBEB27Ny;%9u$Ws2lti+XvS;s?ojbS8rExz`&^{yKmnV(i z&zsAtSW$Ls!on3Fc6O|DOcvKzcb(a{^0wNIcaJB%-jtr|ctSzrQ*_RwN~J$s6|;Sl zdS{5Lz4SGzY!hNLYz~&3`zFXk;m-ZzbNC<b&Z!Q%d7Gtlsq7-@t*^GV$LCqfhE0;N zX1}vNv^&{ma+foU+znmV#R@VHn-ULLIuuPhq<A&luJqHYlV?t-8y}9IK2M`yN@qFu z?Ite8^^y|n!>v-87g^~xZt&lg`u5S9+MYdv?Xf4_+PTsvel#=}c3oN(5ayGfv`Tl| z-trWlLc2ZXalLc+Z@2eLdbx{o1<A~?_%1oc(S4$YhV&whBM**iOqa~?SyJz~be;QA zqb(a9Pb}^Cu(rICcJgQl>;Kn_FTZZo(b^!yS3GaucD3A9PS+A5b8nb4PMh>|@q{x| zfAgALz5ILEk*j6X0;Xg)@V9<b{K1&9u#RU=)V{fw{w<Q4pgKFCQEpp@OBkcP*EF|l zT6_x|Jf&7PrK!B=V_l#pprdfrGlXet?seAY)apW}Z8_V;1XK+rgul%Vv7WN+fk)=r zH4<LkM`lzy9R9Jg@36DS8qX)K>H<oJTZ9z~MW*U0^v|yk;w<E5pSe6lAi|A**V1J9 z2dA9pzj_^guIP<j>PDsx&#H4Sj4bU-6r_qhB>cEGTJdc3pPHWepnJm0i;vdd;5`yJ zGa_HCVdmthc-{vd0ta@^t^ODO|4EYDvu-cd;5N0(g4u#Si6)&lTO}6FGdU%?rtILs z9S65;wY0qQqxgjE|AVc4s{CtLrN{l<Smnl2ICJ%@%m-JSJ%XI~^VIGwS+a?7>$>bf zhl_v3(${X8zN&;J=%e1s@Y~lWEpp+^w!FB`yZyuq-Tz`cG-S{C$HlIgcTPP=HJ0Cx z{kXEj-(RmD_56LeK~CFr&We(EhR@5}mQUdQ@#XdHgI62=<{kWH&E&%1Yk6`1Qn^d< z#q(?!9?tJ_bDrIGf<ag2NZ;#2H$E@jxP9xoch7G4Bvve8G5*Q2W7~uI^KLNS;oUI1 zV47cOv-itGg)Ld4yS$WtSok0KcAQ^b>3~IRW=PaUclGqcpC5jG@hYRFaH;eqW4R{& zWqooI-W5g(E6uhpS+I0j<5jM-po;=bliD49zutRrqJZJ}^ooyBQBGd3-R}Ke-TshM zJ7u|1(>?Wrhsv(DA4{8Cem}83@yGw~d`He~^j^sr#63YzBw}XKbGeGMOkr;}N^P=Q zSN8HX<L!H{HTL}q3*Nllsqwzs`1{=tStZ66*1M#3P7fDXH$SdiUh>8K`=3WO4@w05 z8J$b~m-<`Tcljx<{E*NsH@#)S@wLuNYF=;8$c|tCZl+$(y-#9Hwr&clQNLHMuITih zvwHUBgIlZrmQ_?*+SEUuCqI{W&N|J8TL;r^JNEN^*y$@dB~m!kHl#!^%P>&(u7hsi zr9Er8Uas*Mevw$gBcBtp@(|a{SCeZ)!dKkNtgSgNeqDv}DfjL6ZWW2*RMW6?8`OR= zO*=40z&X+V>DqJswVPB9=j9x%ZeC<A-L<@BO7X^3sUi}oPZw{t;0+S;dF1m&tK`eJ zkV}hhO=K_X{OQ1^ZK+u$J}a<%VxOFt$VAtjxq4qKt+weOmE0&|uX?aaBWT3~o;C*q z(?oBRN8aByzx$xAwVhv7YU76BH$0CuTXPK^Z)HSx97tW+(Y!_V>UoYgF5O>`7C9}< z&}6<)*>Ya|rgQX}RT^;~VM-Gde@<ywb@b575Y_~y)t~y6u58f$^v5u^Vq%x?(v+-K zPI&@~r@7>(|GVLy&^~LK*ezMDzYZ(Tx-GUV5IwWnH+s!p*Yi(SGPU2Z`#kB&w$0nG z-n?WX-nzHx&k~jD*9Ki1q%5Ymwk}({ymDzwoW}{B<y>Aafm<`bZt@iPnI30$tdG%d zQR3V5l9XnfX|EP9`L@G^-}tXU0{6+ARu)Ho?Kr({i$g+2HaFXot<5T}j6WB+SRQ=w z=t)xl-quah2CqsD*i+4Hb#tfp9np+)&QJ|<-B53#$;3UU$>wj%l#9AE7$RRMh37~* zyzM)_$nw*T)a{jOA8Z8}&aQeB+<81xV9kbU>SsCxc$ZJjkr(2bx9zK5s)?7$`&N$^ zXFPQ~PxT1&&rsX$-nqDqXF}5KphY))ljkq(Wc>ZS&?Q`V3Qy2Mxo`ECW`uHm`4sM5 z`giu)>#3Riuk3@&r<uiXWJ%mHWznUerFGKB7h3(evR1G{qTZ%YdA`YvuxP2fLNSk1 zl;!VC&0(9OT+8F(v(w_)g<y}xs?JZBZeldHU8Hg^kUfD_P$b{;&(VLof+K6ZT2(ei zw#pxE3R&T;)~Cz!XWg6Z{aZq!!&2vN+4lEP`nlxV=ZXiGC0^4t4eix)vYB}x^LDpf z*KMteN3QPrIz3iRY0pJ}E8j}YnUf>Wmg(rS`-A*Sjn5y~uc;4~nzLnYd3r?Tqt8y^ zSG1pt@48|m9TP9VcVX6MHPOmVjhiQ&&;Oixd!^LO%d59LxK3d`{r%%g9f?LoD;}XG z({z)UyIn6<D3lOR{dUsm<%V0uR<_IEyxny;>t6gyv-w>PA4J-|oNe%&VEOE2^uujO z+Cv{M{B&GMc9r(5CT5LWMQ!%WUR(Og{;Us4`SD*&Vp5yNf~+R@Iq}k53t3)kyy7sr zx+H13)@+U6YrgoW{?hW>d^S+KQYA=J>6G`2Su4)<pL%|RWtC^p`#^J{*uqc8_dc6& z^Tvv=-4`eN#9#WBW)XO`Jmm7qlKM4Ie62<OPpxd%lA5q6IXi+Yd;Oj{hi?@M9Wc{> zQ=)6m7b$Id{GYR2l@goJq>6Q#e@suLDZk$roO^TDw_V}CzTNY*-O%Cvr|6|^!1OQ7 zTRl&&7E9u5IK1V-rT2!FbvpCjJe(J|b8)-gk#7o8J{J0CJ(Qa@Q@l)m{hICO;n6A_ z=k@UB<3q-i&jl&ozH-Ir$oFYdA@zIKhC0ldX{&1xTbgH`@UuclCG(h;x`SvVON+$b z{cZ_+e=l7$?UMiBDL?$St>c@)C}U%MPC4F|!BGFu$p^nPmb^AP93|uEX0Xzrq+mhM z(U%<^Z3=FM&srbdd%_y=!_o3wS7({-nrq+Ww&Y&8aXq!Z+%YY0T1DWiiK?X$^6NA5 zwr8(CHp9rcg{^Jp<=Z#kN>p4I$?KHa7Ax(<mD(R%#^S0OzccjOx)g((8&%?SoDaRZ zvS{-Qg&^nXYl6>CZf9~|I{mn0@yhKtzgYOnyphkG8(sbU|0AjEn>ig%z1myU`J=ot zW8DX?CApnyF3y|xsD$5DxA(eSQ6shBI%l@4r8eVAURkv_A#**uC2e}`7XMKVzfiVP zU8e2D%=?p8&E=2C2|3;{ZSLQ;xeYEi+IL=+F!>htAg(3IKD6ZNQ>n1jy^V_#4=11C zULF5Zj_E*p>?x_Od1txrSo$w3vC&JK+8yyh@oja3Mv(vZOvVF?54{T&Sfm%Gz5D5B zjd{+?L=DAj>g!{bUwmKcvq)xz8^f}Sv+V4D@5(ap^j%o8>c4WeQRRQB`Q9OdxzP>( z6qC1n`tV$8RoH2H<IpK<Or)HBWS9Qwy8C9;+}Be6*^?@g!=_t)j1#u*E&HW*$^Ol> zj6RPRmL=McyjQLA`L@8sY@buAPDgv<pZe{2n?n1in?~%OG--|HuFn;G`ZZf5<0hWX zz0eb*pLmjK;=LP*X+0Jx);@Mx$NEmKJ~;c~&g!q-)qlRd_;dEbu4}&x{1vnAy9Lkm z{pq_ZHMMrzG`H;1nFZ`+I*hBuIo}=4Y+SeXk!15lJ+}wnMb5J73dF4YA<Mox<8i1p z=lAm~t<PH4oj+cAtiOBH_6x4%zKh>o$~|zd%A_m!jN@a+6>Ap0)$daD6`FIPFs$o> zPs@U(2Y-4V-S$uAbfwRsH=IgtoaL<YX5Fv9mug5Fy;5^t((viR($CW^R7<KJ@$v25 z?4j!^sJ6J`WeIoJHI)oq%eA2wq{S|3T>Q4{*`{SS(k&UiX7i<US>w~s_S^{7YHL(h zlT*1qz2>B&L!R#49ap$r)^4@>D(Wud{cLlXb^P^HTv5C8S;J4xye9PGbyaSl!=D_P zC9l$#9=}^~_rr!|lJ9CZc9nGrFMHLn*4g&eyUl+a7giiz{bFX)Q78R(C$C2z<!!pO zJMl+DOzEeB?%Lz~oI2kN6+gC%+3BvWt#WbAn&yM&{C_S~)w{<Us3T-odf8PX<?Y(K z-`k&Tf3g3={Uw+0zcON0`|0>mCg|OIyM{S#8=3+S9z3L=B`0!9ibc!WtZ%VS$0x7$ z$qf6<_0F!-47_PA^#1JCuR*z~kDFtH1^UYlpXQJDmgT5kzUNm%+4gL)ut^2Q0Wvqr zPshIdny`Pv!MecazmGIG#NSHTzvf`wPmvq<ZzR+QH~&2woKT<L{5O~P+jjrPzjJxN zm7CtUZ_E1ayV;HV*Awdhi`=lkk?=pD`L8o)ne&v@_nWtGo%wY3%JT~s$(?sG)%|rV z;Bke{*#%3a#KVO*9FTl{$@)Y@PyU0)zrV#_G+xiUbK%nW{U?9K&dIsblkvZ|`<;fJ z_0;fFeB~}lx=s<5jIBmLUG3|yY8Z;1I{Egn|Bqxr$8P~uZ&t*wm>wO*y|F_2!F&yu zvw6N9Q9;=p7g>_ycg72L&x+8UHaX$k;*dMV85KJuKV{518xz0w5Bo_k{ZCW3T<JMB zM@}OD-@T)Wefpc^4m3vWnQ!_1op<w@nd}n{Kdt}OAE#eod|g`kSk<!&5BF?|IT*oa z*C%Q4#Dle^B`|7T!kH(xx3cmiFY$BF+}Wg9H;b){UD&5`1K-MBnZf(Edg-<}sj{<M zyH1Yd?_#@r%T8~P&6@k&ZBnfKi*AWMwT+Zzdcq#wvH!G=@#&efj~CD0dTR0ePcJh( zll>1{Ra;$~`6skr-$nZa*XrY+_~hjnKYzIHb17uU<?5#{kG?3H+vaoad%CuDd!i)g z{f5rApX-|LZajF=&a0ql1=sQ!>kqADHr^XzAX>+0UzN;kpCzYy|3DY#p<}1C1l&3V zzUc37sN1@}vBr{j#dO{)(hNCA)-xousX6|6!`(4obiG*A%J9z(wbvZ>aUOE}uO%?G z<Hy37ju)N!38z@D9hkmxN%rAu2eMf=_1^uea5}9b&_*QS+f&c=VWu6|C1-iFeJ*A5 zlJ@ug<Q=^z`r4$YmuBhAE|&b45uAKB^mOsBz*FL(o6mBxFP(l?YO`<ho$#Qg7vgKz zUlZaDv$(S9L))>64TlznHAc)j_+X+(nC|QA297mFb&-4Ae|m)8KXiKX<r#I~*4zo* z@pz)V`qhhHlH+7&RR`LAeBsW#`t<$-Y8;y~c3mmq4qmlBOf}4=PK_n&)Rw-a5Ho+( za8Vbx@(`VX@6S$H=bZLg_SJe$Xrf8-${hWdH;<`Cd|Ezdc1+aNCD%_Dem*w4Ci0x4 zr8RrI%6mQMBahB44?b`#(|O)8DNb?m6aCL}IxAy>r2-U>=WRNEg}-9QxeqE=M67J@ z`&Ve?_iy`9n|;($STV3fRPISXOCrM*<wx$#bCMpo<~~^}rRX71weyFgG-s#Vlk!{c z%=%f%`rU$}DW0oWJuDRaE%W+MdGRk7^THRw(ZZ{hH|MZ>?K_=YvvJz56Gu;5mn>g2 zfl2bgs=JrAdwsd6ykX&fwyfgs%%)eh8$K)&oS>>NHPd|VlVy)4Rd&|=jB&3C<Xz1E z_c8a?r}|RY_A?aKzV4gOYaJ(MJ;guhh4WLpWwwb5uV3_q-7;CeW?f+ZQ9s4<<`wRt zX$dA~O4Ec|(qb=eTD6SjxV(wPpS^5Hf-g@jnflACyKIT@)$6yuF1oCgBj)e=guBl@ zQ9}P_g;>kJinZL2GR2H1@cnZ)|G0O<kEd>bvnJN8Uh$Gw;zsqH<&ie#?`N7HS$&E3 zdipDN?SQuVv!(pA9dh>ttPknG9ujhHuiQiF)7D>_wn$W(CRO{K?{fJhfAD`<`CH%I zCmw(De~2XOxBDiYQ9f@xLwDK)+jpBLD5V6KM)u9R!CaACt<f+0VA`GZ{dFsrUh6q# zmQ(in)v9fqDpa;E30r-2(ysbli)LiSr##f=IP=|LHhb%OUE!-MYd%yyU0xFK?}L5N z(hXJ*mh=9Y=4+SwIB@QyYtqu%R<)Za?0dP?UUP~4$4m3YF3qocd7kU#`8{8rw|;r9 zx0m^t#FFPfo#%J+7|oAP({*Gj66@~aWZo&EAQpXS(RLB96PdaDT+VD?x}~B$U%<b( zQm`ah=Kh`S9#)d=UKjt{7g$;U)%A)za(n3$Cq<u=*Hen8Z#^$&RQGvR&i3gO<@|R| zbMh>XJ-7X6n{?KZj)KF@HceGtZjN`;*jFSQFSQNMI%KwQQqEDk=^?r&TYse&Y8Wiw zKDWqmf%b)^IRR!izc)VAab@k5z9e?4ZhN5FzAewc8|i!zTHd8Aa64J|k?Y&<*IvwC zRCzo2y3ab^Z2PZm*&R*k8~8XDM}5oKzuWMe$-(RY?8-tErLz1U{c2M7zb`Z2>eq$m z<|i$-FIcrhGTi>^J%^5hn4F6{4-_R{yeG<bE$}v*z0nbFEu%T=cix@e(%<m-ri62@ z;q;x^h9_R`xx@7;M_n%KOr${Ooz`Q5m3AASB)oBUEf(_8SXAgX^Ms0`P`dKbE4=f6 z2OYCq_3*kb%a?uZ3vx<-XH9vt!!C90id#Ha@2<&PpLlH*zwPQ;&mI5rIfBp3h)UX; zA|o;<QIbzp>4KKx6v;nJHDuLdela)Y-(`9#r>IfJAvPs(he6OX>Hb|pAGnlno-{R` z&8=a{p;%#3(_WAyGU4)j?iT{g5pyISJdgKv+5hHc?UyH476(KXy`Gmi>rtEW%kSw4 zeu4&9<UZX_^n3b3Z}nr@{a@oMTmLM(?Ik+%gF(pN_20c6^+g+IcF%s?c)BDeGQ|JD zoozFeveiyyv@X1!cyP}v^`8gKxkcPqR>WsAzQ2<+Ia20obGT5czTjoGr2>!UHCS0l z`UdDM&T-1mGg109@reHO!u9?A2__jnBD<DOd}XssmHXR8gGHJgNB{X9@LhXN<6UYe z=Zs?#j`ofJ;yT$Du$$`0NX%R?gU72xK*FX!s4U(jEWg29)$_{6)O=}vr)ivC&k`gi zZCJPL^)-?9I?dGg*3L}|Y*lk-7|)uyZ5eCgj@jkURAXPy@@2cJbFHwscwyh^R<@}t zW+hC$I3@JbV#!%I+?{9r-Ypza{xR#}+<9`<YmVtBUbk^bXw?4P!)<3TSl=kw*tM?H zfc2O!qv2OQ&m8xj$Bn^<DmV^b+3&N^@N9;>Y@u=pW4gJy`9;waTLLxBu1!;8SgRy> zJnGY@%gIZQ`dLXWG;&aw_EXI{VAcdj-Q`oZSOxwPUoE$+YTo?C=7q{p%heTw>bjCU z_VTB6U75&TBBuPHsxLOncgde%u~i=o&Z_4{iQK8&b3ko!>Fl04=NJBydg~%>*Y%+4 zUai{_<2#3pUS2WHzbn3Aavj4;!-X+C%9~=F7tGnh_wkd`i&Mo+HLnAX|8z8zWm@*7 zp=8I_WkI(u8J$Tv^J@EzhVVFbg)F<KPtJ@wwGV?hZswnqGkbBIZN>J5RiTTfKhw)| zv)cacL$_Iuji6TevJb}Xe-5!7u6aCxb^1&t&OJ8;wghObKVcxMU9#_Emyo&7Bt7>- z|NjJUxfzq6XVW{Wa5<-Uk@~y^jt?fR_T0B(Uqo9w!=~<>I`(RvZM@H4YR=rI#&q(1 zw%C%#)6I`Izd5(vIVvFio7s}QW7kFAuosKWW}fpb__?avj1#Ga&(?S9Tv&d*?ukwA zMCS?De@ax_PPlwv-PJ<t?On0+?tZjVit5d~xJ^ks^vFp=MxD|e@3Pi?<r|cJZYVU@ zbX+l)y79Gl(Hfaa7M5rFcUOPe(BBd;{pW#SzF97D-gEWM<W$(~wypVR)_E*&w%)X< z-0xz(=1;r6UvgFb<}LruvS0nbWY0hKg}>%cx%U5w<5zp#_5U+h{9C^Ct9@<2-}9$l z*Nd(CADQ|0yj;lt&!2wHZ+}%E7xn)$`_=!8_WToH_$z+Owf~PCzwXyr|37ubzv)ZA z?mu(=d_&vG9e)+}uKn=j*qUPx_aETSxAI#4W0thN$+FK0ZTcTQ+Rt-%snwSC-^)DC z>$NGu>9yWw*9}@vwnbQL)$@HjUT5CjlkLjye}hHr!V{h9ojp}SJ^Ma3Y`H64YBqgu zhN+_Ms{4Avy~?bUMAxree&NTCx+s;$epa#?!HoCrNsGRk>80Xn_Ao*?@}6n@C&?Ha z(Iq{b%ZiGx`tSDKyDik1F{JT==BZPBmUZ8CN_+IzJFj{<?S7kgQ^%9#A6S@d-Lxn4 z>H2OB|K^~z`<>#wFj*^GzuzxS4{da+dziz1|6uZ*@6#k4k|qfpT>C=U<lpCMr*)d1 zb7=%laZ*!NpRoSpj^%R}-Lbnn-#|`B^yMkV3SP&l2b3m;bKO3h7W{3OWSJP-<EeA` zX1vPSkr|XQ;ru1LW3{)RJ$)7)`P<-LVO0K3mTj>UAAioYQ+<)XvhtIgGH3ip?SdV) zD|WoHdfAY3YMRn+_x?+L!Z-B4TQu<Nnoc(U%q1QA<kssg!oOohpRnGN@&EPsTJ5=q z=}9vC?Ef5pc(MKP=K1CQ{AKkO&K&JFjB6hJR{w0&?DTm?`Yik8YXYlo+PF_l{J^na z;r0P*UaN=&9iA-pPc~0t6nUHKAiDmHft;1``6FpB_WKFTn>}Q%{PX4P{d<AG4FAZR zuW>G~7rQ9DrX|kwS%Jv)X*+(i8m`^7&eA5JtntAK*_bUK9z6{fiv98-(sx&p<?*}v zN*mNm$^^bEUkIt#*>+|^S6xHw^nmkE#27qQu6Z2DB=zjqCiYsRtttnUA9yx3`@dVM z(Dvyu%WmH%(`EA4Tt8%XFDh^Q$M|3A?f)L$|584?_`-eBfA`EDoPT-srbg!VYjr2( zu5Q0w{&wze*<a<=&(|^4Z+XA%{jG9q?FoC1`3V~x39$Xmcf(Npy<%t3)c4vG*L;5Q z%+QbX#x2(~kMv}u7d}}hxHivZ(e~rN?dR>S{{8I1lQ&oY&2FB5?pxXYd3)^dZ5Ndc zk5}4xDKGy=cS9IcR-}M1b7a=3LrOayt)Ktw_c6^6oEA?n^6E%CvA&ObdH!s$ZMRJB z?xn>Yvv_YEd93oHndL#q0rRd-9!=f}f+nnc_r3E7znLO&>p9Dkn*qD03cvojMc|s* zCzo~FR<olw8|TjBGC0O`|HYw#Ik)-FczrbRdjEOW(>q@8U%a(bd~@~9jNCcXviGs7 z?mXpr<M7;*vI!!R&6n-hOLU()QGex+qST4K(MjT=t9B){be7#Lp0#~ni<DWi@`)X3 zKZQJAYFp3dyC6H$>AL?BA;ZZQ$_1fE`os6<nkf1xo@6$AQI_(LZRgFdE2q?t-r73t z*G)GgMy=d_pGK}TY0+nFrF4%<U*-<~qt;-?Yr4>AF{ky;zLu45&MXpo_Q=nqx%a=} zRDGSVx0~+?<ld|^DiLvb^VdI1%DZ$z;tk0dSI1+4e}t>w&P-axn{@P#<>sg-=U-{D z9uAmux6<%m)`dF-t0$(sHA}w0VYB))`>sD0l1rXF>R8|4@paKdqm+F9z@vOzCvRFE z;qmAH#BzJqr`U76e<gQ5<m0hddA8QBbZKhdq8}?}ubZ_|!al5C@_U<S_*O0vhxIc} z7Jn?w`t)`3XTvW=D*h#ktQ&S@bpD#Ayz~F(ceB6mR{ve*@x8zQY{fZ=BY!SP*!+&Y zzhm)k&I=2l+m?L2AZNDBX8(sB3+kr6^4+C9t^cd4=W)^0lEf*`%P(e6>U8`gStcU9 zt2uc~afFAS+Mg%lxehO0p8BU-$-42h=pPl%6Dju}zirsack9owMO~$JUy~~>i<Wb3 zRCg4e{`Q}~`+56m`F!{0?y0NaQC?I~Qn9W2kMiD}#WzatFN`&a-H_dT;ZpTSt=)~G z(cAXi2smJ2^z+m06R%P_^c%M*eSdm=i}@9ihS>Cq6?JW<QuEwGpKcE8P5IIN#CnVC z5k>Y%p99`}J9mD$;E~fd2F5F17f;&ay6n=~3v(?Frq!vx;#C!UR%7NU^N3~s4`Xv} z$=|gCLOC{jmVS5SHPKnk`)s-Nv98y1WO*)&nTR{pNcTB9r{3RTdEd4DrNmvK0Q;nD zA(pk9E?<h7zbPo?z1TzV)UbB5oc5-ow%|Ey`OUNHM5av1-OhZ!*k@BabNBtKNM8Sh z#WUYqwmbjY8MF4?#|e)uYyuANdU}ITWAC%3J^7u#f~zhX{P7QNu6A!%-_3sCMRwNI zy#Hx7UDkJsKR@ZYA$`O8TgAiF=5wCEHf%K5r+>XhE?G?~^~&X!!H4wpJf~k*Rnl9x zYg4Uqs8O)y=@`4_osm;lMr>Mf(&g&xm=jKm`Rflw%;dS3m1}3TA*<k}hRIU?&js(M zg*?mR3YW;~-l+NSzuLPsGri)AkM9lh*cQ=|8)0g{+REqcm#Lns!wNTFo?u~OGnwh$ z!szWc=T~ofk?XR016xxlhf>Dk4aelO{}`^GEA~Am^oG9gG0$}j^*rJ`eAE|f$<27p z^uut@Ug`TmdGqaRc%SX_n{+<J>G?jr)3ywO`(0kiy)BVAQ#1R>(Xz+KFWqTvyCWvG zC~n3n-ohg0qWnE)(t5YPDO}d0t(dVZaMAq4+5T4?F1^;i_TYR*R^#WoS$#3QUy8FD ze*`c4$!Whlt-W^kxwwgY8rK|Kd(ZUPubbVmTNAT8z8JL3*ljs`=iPg*`ERl&FWB59 z*nWJw^um3<vU5$d@7YY+|4e#)b<hl}24fGO<Oh>)@}%@NPMbTq^H2FZffY4+H-GbQ zKkLr)GxTQkMD~xpu^mS*>+hS$x;J4rU)5o!Z}&EsSlhC%E)Urf_e?V&Ggd;m%)siH zTh;<Mho>*{-|p$Js(z}v<E@Y0{v7Q+=hK8=)IQE#;D6<I_0P4z&-UK;jmus>N8abQ zjTq1JBI9Ly_BABNMs2PYH2B4%_UJ;T+^pkVf?5raCnX8nT@Y9p7yqZZzxBw9o%0PJ z+b$F_N_?@X_x$O-#s!aOHRfG=W^(uY%f<QsWQ9`YRTjso?{XJ>9Q1Iy!ehCg?He_w zG@kF-<+<Pd#lzT#%Wto^mSdJ(@iDU1epUCes8pu~;kVx2(%%|YQZBwy|LQF+IsTPC zi+VelS4&@D3QVvpb(J(T;C`)goAaJ%jbC2xYyZ6kf{Js_1}^KD=iccrS{wX;f2z(O z-|~lU9M87)2b#^Px|W<(#=TR})@b>ml-<k1fBu~kbMr#oYo+>+TU405uWv}RcU*qe zW2J0pYF&u#yGE^r{X6&i@`riNo_A#Lybj|<vO6E$j}8yF&0MfX`kGiu`n?ru54|7f zm-qAEJGf+P_@o^zOO^jWiQL1S)60=we|p`SHw*#Sm%p+R{gCKcT^bje_-faA(cjK@ z@A#%i&N#hl$yJUUTGi*@sx-Erdtm4+cKp+)?9CxHGc$O7^j~zH{}y^*R#x`0ZotjH ztM~XG{x7_Ce8H{#Z0{ybo4!|i<=w;KuZlX$uM}TptXi_Aui3fuquH6cJ1f%bcdaQn zc-Oz`@BMG@A9tCz{8~O=YRBndd*<>ItE<1C=3UuQzH{ZnS#kO$R(peNr=Ju~m^aJ( z^R=x<*zFi69lHGeu*CBak9D(F=WPf(Z7#p{S@LxK8NRQ6Eqorn?9IdDp|uk;J6!q~ ze<<9bxkXB6i`Cu>ixU>QU*=xR%DvWC|BHC+i<${#R~PJVS~%%HSJ?OUn_ji-U%z#t z&XzT1*{((Jge=x~A6jH`*~Db(ZDF0;Z|+>$<gxzJ{q%#+K735B<CFQOuT?h3w{L2i zsDIJMeQ5>_G4=&--)QfCC#Pl`<=L~;wB_mX8=1Vn6qB;%i2q-n(|d<$a=F#U8*Sfg zAMV<ecz8Bb+@9L$nyW2~zC4}yDb-c<DS!V>X*I4%`m;IP7A3w*uz9{~;>Wa)eHCjw zAIeO7>8KJBtaWN{rz4k$TZFRKl*3^gFI4(p-WIj&<JuDqDIQnS?z~pN8<w(iTejb$ zF43kR2P-V)b6)ss2dNgFUHB(sM)l+Gw`7;<WqsCuKi^e5_xQ}7ox5}P-SMxC&^oq8 zLOk7=zwmhPDv9oEb&W~d87fz_zoeft`2M`)N8H?73*<kzojz!n&Rbn=@_EkdT(=)m zJf(?!Ix=5e#UyWX{A4(tsn6S6q->}Ax_o6uan4j5jwb@j7H>Y8eP_!L`7i2R>o_-g zR`1bN@kgh+-dTOjHauXzwzFtD<Ij~mr`V2u6Q~ONo_@Qq=xV=p4fC(r1@E&>`t)^5 z7<Y!&@A~>9d)`~ssBZ3OUthQcMBbDXIlZ-4%zCx<vmm3LIYEXtSu3tzt6N=vC-!gp zo?q|3Ufn-$u3g;EUCSPc^VT-rDRjycN-$OaD7S-AcI($?`41-C@wvgxZ~4T!G$Zd^ z^Pij}JuAcOSDQ^|JNxRoR;6*Rqr86T6_diF!WkEP+5W9%_%fqfXP3`PF_D5;%^=@P z^{e9A!faXigE(u|RvJA}QCZSf$=i2PbV<kQl1uL=y;)Y#?Q3=2OTT*dj%B-o+y2~n zu$jS@ZReM=-BvzN!%L5rc$c2~`R}^(n~!RrrXAt>C>Xqaep<^?p?IBt;)vC;zZNfa zYOefp%9fddL6e(-K@wwitX^?)QD#92e0}Wn_(p7N+24lVF1l<WQ2RanO$%S4S9Wow zx8|2qswK-*&obn@ZM?qCYMV+)=E*7lthH}@dUG?j6;(R$&-?0i%eK0#_Ro)%TA>pX z&#|T@+DpFOfBXJheuu0R7HxkGrB+vF88S~>mf=&sLGZ}x)r@Nnc_-?u)=Jwck`Q!u zYU>=mTSAVZ>mD@u{cMh28Df04`_iFzhq%hwKYaMt>~7$u=M|ayp{r8aeJ`8Q`O2>7 zpoJ0JgTmB=GG+&e{%m!us4HPu-v4eb<CJTw5@qJko$K0KF!74(o6n&$Ztn;P4Y{?8 zX_qv+W0YYsNA$;Kc6vKk1>V@W`hv<o-@?EW)rEF>r#R0sFSvT;^>wX>%Y|<(4SRLY z^#08tpUtz*Tr4{_#r5tHAx)+=8?G@MC}utR!V=6a)w?L6CMxmptTHD7rlkJaeP{Jb zWR4UjYnm_pq*$($YvDiXi;!Q1@_QTIQl7jk4_BW_=$azc*eQ8qrc#dO)|<!wg%#FG zaj2}xc&Rh>+qNf}H}5hs#TmKUes*`dSM>8_=gz5xlTQU-@q8}vr|zAYq)F6r)&o<P zaY{-GztxcAU6=jrS9OebZ{<^V^BnK^-JM_Af28fye`<gC{_<$4YVMlqY3o*8k^h}i zKd*iL#0!q`pHj`QM@`J)=wM`BtiY1B?!euslgl<#io2bkA>MtnAY#GY+m<}GmDAm? z&6n7+UiMYwjdHDIlj8D8EcQ{CVw_w;7v%;E?4139;hdMs-;B0O;i}woa=aC65eu(} zzrWUdY?fd0?YDD8=D%2a_wuchs5`IY-9ImEEIPW|z$(dh?%Q`qHz{Uh|7^egzxVut zqkD50c6C25KD=HyPJ3l8$6sO1*Illb%h}HK9NlI3+u%mSYVoi=)2j@vZq3`{ajd;v zxFg~H3_06rS7Qn;DY_+Jj^3fI#&w))&zB4HfBihS^?FC$*3S3qRc2o5ymF=J;VaEo z9S>YYc5E*cWk0VdW2>xlSg~%&61AKOylfXLjb~{+TKx519k1lN_iy8?|4x*8u&wLG zv!iCgcYjXj-}XcM*SFHWQ4K#ek4h!`*01zif1oP&C+pQ)((-Z#Q>vdQ$lse>GPfvK z_L|S_lyyd(`7fqV`cjv?^HU6q_<Tl0er#B+?eZwoVA54)28M0oST~ha<mP}kl?1H3 z7zDy-3)QdAxSjXdOrUMOu)=$X4{Ex%BJ7T9sOXk$UYC63HOt1k-&Qe&C#7t&5>QE1 zul+S?k&3sS%AusjQ)USh4?isUQLlVz!q11QJO|i}{T`iYnj0p~B(rm)yVCup)lb)( zD|6W02%oOjxx>NnXgNb;#nKy1CLT3Hjt@3lEEK!bQsbM^q0H#man$OY&WwQhiu}%! zTqpV^7Yf|oUmtnLUw(hjbMNPwrqcR8%BJahdWStuEVWZ^e4DrX^6t#?{9DSGSMa2q z)0p_$;5X;w3|V%$AG|A%8K*6q$QvpXuCw8~(}j4R<lT3-C3P*97Cg?F?;7zWcuMd* zZ=ZO{kJk_FJ01O?eYbq0*X#6xoU3<xbX*)_WD0Zq<<b)_|2}C_<ZL#NGy8jV?&TBK zH)pi(Jk1e0+fLx@Pn)<qGu>{g&i?AdbSCw=Qm$rZqgtxtv=fT%iHjzgY+3zREH?P^ z3H4B=H<ecLg2#{FSt>Q-CS%thmY)%QS<aa}>=9Er^m~^^N>|>B+N#6Ee(QA8PS#}y zKgkJrh^<*-@ss84m!u{8b)|lsTc<F0Z||fI4}r*@_kt7le`;P(6@ApNsQcN{vfcXo z<t}cTwr8E*SM#~Pg3gNUCq8QkWphiN;C^~2#y}-W?X>=q!X;lqebb$1cocNZFetjK zXz(U@W68{d<n8{8XFaO>{+ng3+sY%JH<z4!bLM7C{p*J4BTAu%U(Q*@zx>2e9wvVK z#VP{Vz8>8B*&^C^+2?G52fTbKxhuVw3%zo>x`k)zXTBu+XB#|}bi+89zJ#8&@360) zVWYF)p6AD%8h2MOf3~Fj>qD1A8?-;}^Ro0@(RK2{ChsR(U3OU1@?XDdbzlwS!C4hI zG|$XEBXIIm;NHJKH|^j!s(&fiPL1J!e%^$NOP}?Zui7^)r~B&1=PH7N)_b=E-nRG| zu6y|&W7G1ff0AwH-qD|XwPshyzkJS!qN_%7&(!+0;@5mHx_m7EM6TI9|7qX17HRK% zS9E)Q^f&)qm!ey%?dRFXHRsQ%`MzP6{`_T+U60SK{bMpOR(|30W1cD@sikF1qGq1+ zPqW9o3bTvJS{b_L-@LHa$C_PCdo7M=t7`CS?G)ZQ_e{pmkLSM^P1LjMRt{RaJYr(& z1apo_{{s{fK2D1+;AqtT9}!V-rB1o^%lEx1W#_9S`2R}JDl`3+{9DtYe0JZy+Z<o+ z8av-#-MH_1$(Oxu3*OI_{8h*M<?ph^@6DNN|DU<QpS3{VME36j!58f5ZFLdMe>c2* z(cbG|Z)5yryXl4dX0m^Cl`q_%C;2Oo_simCi{(w3{=TSpSbtAa?ESuVdcMll%=*>; z!36{t0|?xms^bKrVVH|Sh9NUACAC5?qXb$oOj`IcU<=o6^xbBNLMC{HwoAIr#U~|P z3=9jD7#PeLWEgT1^U_Nb(^K_R^K{*vAf#SFPI`P<E@(SjZfaghJlgKI%)Cr+K@_|A zVh{+U6+~~NUgt^g6#cjVz&_^3N)tD)_I`8Y=7DK38t0A(DtR~Qo!jP`9bi1gCFRJ> z0*gsk=hx1&3!T5@xy(7=ZzqZ_Z@Iw~tMG~EWbytF%IW8Cp8aaLTgWTp-R6r<Z3{z+ z#eRK^StVa@kv`pV$Hk(325&xmQcXU-zOOHyzcr-$!1o*Kef-7?U$1%lyXTs#Pq)X5 zsUKc>+@HEGU}6Gy@}bRc$$R6jKi68vUUl!o+mI_W+Usf)r`hd(<tr85tas@vlkyG8 zjZ?ig&HUneWQu^CG2?75vBC)lDvqc<=HI$~4I9gw*#Ezd%jd0gm$z=tUT(fm)^FFj z6{Qm*P48|<?5Rm>OfwIf9T8KU%O@vvcVD^N^tH{KW`6rU`<mnJ=)$K>O!p5-TRi#W z{fzzY$<XE3tup-dC;Sc4IK0e;DYG%@vr5RU7TI;IzxJGRlC9X7y-4fvX@#(7s@$z< zdUmgT->z>I3fyeCS0ng%*XFX?^ogMzb6+2qv+Bss6!T78a{5Rtho#U-2UV-78DB5H z<a3bsUl);Lwl5=e*`2>e*ALvYPTpVb|9|f03Dqb5zA@Qjo$kF(G5dVn;o_%@c3SLv zv0g!NX~gD)V`rRH1f_DPJS;!Urjv2(pX=r6;(X=eXQq2K{4>xDWohHyB;l?kDY=F5 zhD(y`IR^iOE$X}xf`;o1#FZ_>U+m&I!&bfgQpP%SoeOdnY|~wop3IUi&|c!LGVKy? zje@)Wl}KT(rYVxm%MR43m8Kj}d#o2=_EJe%%sFHN!|MZ2_euXgFkwyirI?cD6E3CK zW*Tzt%HdUR_mEJ@lPbQ*eTgN{?7`Nq8j(K-v^cIReYg?j#JcK0!&~D`Nt2DAv=!c8 zpWYSB?_he+OJGl1L$tkaqJ!H6FUBPt=8bJ8RS#!>);fGYZ0goG(cE(Lx4wDNZF%<m z<ezWes!E<WWmWrFzm7@zXre?$iJ?baV}#w(HKmHPvjxImSU7AJI`WK1e4+fUDF>f0 z%dB7ac)sR!`M&=fjVmlHJh+r*C$?+F`5nxjU_Q^~e`4&?($7Z9IoT_?;zc-D_Ozte z{xE%Z%473M%{(UixUNH0!V(^*M0uCr^sD?nNl0ID_q0_Gk*Oym!dL8!%;~S4cJJ@P z{@dpcJlicMQ1rw5<#ET7cZJfmOO8Y}?+*}}D0s*Dt5Baw+==-%OD5dXT5F>cactj2 z#jwXrtAu4HtA}neW)!w}aF1Ii_v5l}^^MH^udV9y?rzyFd_1e|W{5_-^wl#BbB?W> z$MuS}OJ?qew;$IQuqa9~3I^KrvuB01x^y_r&p*JjGUEnotfoiMTBaL9pEdHYE=%1L zduBzFfV1gmYqes<ZJ8Yz+TS!cpLa0!a|$|U{QkxP(MJ)-wx3(!F1lmenrwrt4VJ%? z*aDf4@_DO>PfLo|)M4K@ch?HzdF+L&e{0n@?|Z^?$}8h#(y?OuZMlJto7~knI7Bou z3aw+OKJjL*uCI9b=hi;C64?f+FfF$;$@=?_HCmP@@yedIYZhN{-|_vP>w%hQ{a!6! zpYhzk%66;p0Vb;mqZy5P+^UVKOm6aft3sC^II~5=BsYq?`2UaF_X{t_vKun2S!t1N zcBuQ=75+Q=E80$MTAMo6n*HAumt5|{?g>Tn7$=LZx;7`v`!l2Kvf$?$eHk-V?b6p@ z+H&IQ!hSc0qklCP_#CMBJtr1*CTc3vn%|Qe9ao%XyQV&+!-)4z;79%KvFi$JVxk4@ zn%>^J(wF_{TtaZ0g}I+!_UfmFx?eqWcdZnBp->XBQ$j#%t;-qiI}+Mcr4I@GIi&V$ zyS6J+o&MfyCug5(b>%!K8{c+iisd#94kzXV9-2)~YbHHdzWkAB7>mxE{ml_di<wRT z&)cB-Fyelj-pLn>f2c-&-p`a|biFoRW%8~>@j03cW~RJ+JV7n8WSVY0L*As1uda3J z&IsP6#BQ_n^7jS)S=ZwJ1YaqVW=Yj4Q(DOMR!ruU#`nZUOwI2(dNxh?7j{ALb;O*5 zmyNZzFz0L!QD0+!CP?yh*ZLh_0*@|lT-C%qzhjM1SFz5ngx*^zb_ch*_Obd*J-UTq z>AR-~Y&T44eHgdobYj4*6CBq=wl(-J6}kE3-OZP=1{(@4wZ<JW&s=}b<kW86Iolql z#8i2-1^wT7Dl7C`@Kn=PZz`w$Z9UUe(csV6&!}{o*U#q2@`I~p6tGw%J-v18{b~J< zXYcr4mliw@()#VNdunY->zB8e&+s$l%G>U<Jn}W+D3g3k;p?61L5pwIaabI8G7)py z-=<Z<?C)~>uimLD={H&{iq`3{C473hO@6lN^|+}Ai=(;y_}?o&Z``<WdZ5kMP2auO z?Kqxq-*fBc=A~Y7YE`E~zp*WuleTcH?8WznfA=lBFZ|2acalW$3A2OdnH#6E{nb3N zDXB2}X`oGImxjTY#~reaHH*dXY|rWb)5~=B^8CQ-^EcVqU0w6>?26C-7krj`q0>0` z?!VCbD^@SqJ}=;zda0!7qJ_}D0^Z7t?N80VFSz@>Juvw%&kLX6I>DM#MaLeksG2$B zyx;RzkAIY1dfgMvF6ObJbJ9}t`K?<!lWyd5yF^61Ze_{H{=^xO!uP>#s?^Ib>yF6_ zzbxB*Pjl~vZ3=g{yBG?DZa;ckat}v??EI#^0^i!CZ;P*-a!ouW#BaI+Ux0P<wkNxU zrt1Bke6Qk0p_}{myWgyrdz)|gX<Jk@^VA2Usj_c(9XLBf=6!n6p6MrF|MiJ`pIWqO z{>hVZYRiAmobxXAQ=0u`^Xi#@HqAe&Up;fr-Sbc0#;L7s_EwspR8?~K@UHS;E1j=4 zk?D+&HhgJlQ=R{Y{fA_`S(rzhO{?H1!P6IVR!OpSzd6~}zHq<eHjYXo%cXad?)(!y z)p!5x4DZ*I?yKsmD?KyH5BSd4WNdXtbw<0FQJ~JwRa&7+KlNN3Z&?0+p)OS;TT&Ii zeebue$@>j1nhW1~S7yHNn&bSk+}qc^?0I>Q&-D({yXz+X@*-EY@WkoIYfbc46mss< z46nKL`^xM3cXyX1>@772j1SomCiyFA>hnO>R>8D`(~TN6=l?q(x$XGh#B=J_zDsHr zg{*d$<hylvVsZ6d$=(ZVKRo*q#ol-Az=>|t+R0BEHa^Jb>*>5H`MTXnm0L${*}2t| zP9K#_x|P1$b<&F4arHITH{bTp`R+gU*1bvFk9oTby!gdfXUZ*Tm|6e1;|~Aidrx;< z{%>|sbJB6yWA#22ofYi;>2EhOH&yRFxz+fM!z}Al^ER7?&1zUI>#85<@<3Pn;Jj6? zd~phEj-<E+d|ZBg)3=~+lGc9&)ZLF8Cw<>^MslXvV*4)(7%dJfs!iVeA!*TzzC~h( z9r?e9hcxottdJ7Dw_oeiN>3fGbCnBt%;xKC_P%|Vxia%bab={<f8|d?%a<Km6V80S z_v?P`g}hIzt}dQgD1Xk%e8>K++~!>!Qw+RHZXK5s^YqV|pX)g#_wI}n{`}Ih#tyHZ zb>%PlVEadG!ZwpX77W$093E%A^OasccFKB?d}-I*ix#V|e*3^BXdbsar`@M}{l+U5 z=Z^giIG>!o?{B?mjc52w{>hVVBR{0duUh<Bgf%00`ReN-z3-R1KKf}h^-p`3$fWZ2 z4MK%`>$WY9vtAtdo9odpneWf)k+ywnvJ^RO4nF?kD+2>V3nK%A6?tvk;>uz@SUY!b zkXzt4%u^huPB`n=>>%Ry-S-z?e8fwpfIBnHVik^NvE(e+kh>rzVN#)jv9ss>xC2XO zy*PH)cVG3nzmdw^vPW#yH=hul>LGQl)aS~Jig@FVF>4-fz3aMZ*To$l^BAAMyI0xK z*}3eg>b*}ZS9nAfSRTK#T)}gqO>m}f%>h3Zk%bp`Mc@2pz!RohwR-B-v-_1&ugh+i z`g?F=cTn|qel@);(?rwknF%W-)L9)LPuk_`81U1Aai>#Ng_(R}AH%$Rho35OPo93g z_Jw<U@*K9hO@`~jMW_FaXk9h+#EdJptvjzA%YU)st8jkupQ$@;=OpiVYAL>azWnd@ zYLlAZ_TUZ)<QR<bl3pi<w-Fm`SQr@2b22c9Fvu{Z=A`DP=9Lud7iH%pCZ*=+!4ATB z7LbW82-k+@=HE6G_@~4CkH7uQ44K2zUX}b_^z5wn=A6uDqMp0>B)S@=ofDIuCE{_) zFYwF$?;fZ6uIe7ObCJ(^b?^Po_T`5suUfNfZizwFvgNmbGJe^cU@XGf+9oKmZw-sn zQIlvUu9!tz5=2Grgf!JMb@N}Vv`uGSvu)`mhx4XIky?QVq@VE>Uvb`{EBJ3sz@fE4 zhYlQ(m|C2+bJ98U@T=-)#h12je!H@M8$Y}LF@490w@+AYcUk0{pu`emE$lp#=ar~f zCwGxnMc*ZbuklgQshPXt)=zF-BfL~RbFs<GMM9pL)0y;^y}#7GJ^b8P+jBhIGd9JZ zFS~c;=G~+?uX)Cd=B1&UxyB9gQ`b#@JLi7Ixw)>VQXBd0ino7`+0oAy5;m);WbxG* z(Fv7($4abO&+R<2i2vi=r$6sMPd9wS?7RGdhf>qota;HoQq`CCy(-%!yC5Q6_1X76 z9hUI5f;lI7&sbjU{C9m$oa#vd6IMpk@6Rni@?7`2Z?D#;f8Q^!e)sRxqGGxH;C7vt z2@WgS3>eSf+~N|p;NFLl9f_Ku>IHf3J|9?JWtvvbm=dE`bIR1Pr>-*bbjuCbtxtUp z@hmiZ;xVCF(WWC_;E;4eh@DXRi~B1-Hcs+Ln|kjKdqGB-_0EK22cA}HJpXles`jKa zx~Com-g{f~u1x8^mq~*g$E1P+CVd;;2X0ft#AI(d?n<)iy2J3~5T{1^6PLZ#&w1Ph z%*!pmCAfZ$YO{Nm@p+TymG_p96~Bb}T>0`p*?-lcz0bX(*0%I-^}o07#0v2!t0udO z-4_ivPpJ<Re)@Z3_@y2{1)2VDkDg?1R=L-$czc%BlXo-RwuxJaxJu=&RXx(akCVNW z!-LiGzKY1?BgYGiD!uPTmR;x14R~|-O113ndyDng{ntI=GQ)mCn9su<D>KDhBxn6# zzMFEVr=_RqX=X$%17o^E!-)c8)rOVLyA<EA`@Ub+Idenhzfbx9&li`Ay`9pVw*3K{ zSwht1rnZw}mCv1P|GD?GhLt>@x%=3c9{x#%iw$C)t$XruhoEI&=+~Yyg`Afn3UA&s zeLk_g?ClZH`!c=t&YDpo>t}z_yD=-X+*o*j@1hsVwe=a+msb5;aV2O2%hoU}!7Rau zN4<LMuPB|4cv$8d>@dx=dFksvH)4hO6(#o1kMXacAIGCucjZ{(N`cd}qspbSjBmVr z>~JYg;dyz_VbPp5+$KB!&D(1JVCvzdX#ZJyH*K5Z7iG6hS}PzSa9|Hd_xe~5i#a)b zl0WL=OcU-e_}}1vKQ^{8&_yZDc5+zEZK>%#m$heKbX#(CWtKOO_MNgNrO&%>B(9EM zoN&D>$7Synwa=v&tk$>weSVaE)zQ?OJ}Z~L*x7&Z#f^NW?~2>^ylSuNG?Hsp-12kF z>BWf|D-UkzwEk!IPFVWg%MEWU*zM-6U#eRFGm*Q<``_g0zg2X9o{ziNlaRjN^w-<E zU!Oz~!y0~TpE|XAHedH;VPNp)gv@2YOQN#eoYcJZl8n;4OvGHq62<G-ile2W_4$w7 z1pZ3f9i7vXB^-ES?l19|TiZEyIv92ySZM1yaqA7{d&lmTmR~Peaf<!b^B3Z;-`sLo zv^#k9v7e2S@AsL1es=cP@%i0bGSqfFV-mjKt+x2SoAY|!Ajd-&^W#mb)6;!7?EkPZ z;iK~HgyfS`H4PI^?bx6f{#AI#*;BmYQV*&nQfDkSxTTx8)RVL5<fi@qgJcrd++6H- zvC*<<;whcR_!)a67Z<%wj(j6}e+gULacld$!@EC!mgo3=_vh{H1*e#tQYyvSBH8j* zvb9QG6`Q=y`E*5(lk$>dB7fuZx8E)`U-ZUn>&wVRJlB_P*W8qs^@+#s+`B6I{N=J2 zIt*m_-8Uayk?pFqBz;QE;i!vTy4TZ=i<Bw)Xl`>|x>IDrX4@q>-5Z>i<QqNA?&B0$ zdP!B-&s_Q7l8m1Zl(|B5nr|1m?mV>R)OKbcl>;WFPSQuimnyROT~RuBipA9Q<RgLX zrmp;%509u{-!S=ApmS^q)6xaU|2u^`dqyo?wQEK6rUh5F>V(#4eP&p#oyz}o+c8i1 zD3Mna<KGCYyUj6Nn_IW^Z1UFnb@z2|M^{J8b3Mgf9>4qeyZcLR{NCE}PL5s{(YI{V zF{eW}8vIf{mqjXivi!Ii;AO_ERTuPootINkrt902GdLA{?+SZwd^S5MFi0(Q)14Vt zUIu@3KEP5LDfp%C__x?_(F^?X&Hs;G6?vGR)%k62s$EG$-0r(9yF~s47PbC+QYH}R z{(1Infn5bV7u3sn7wP3F&zyM5x-EI8c+d^UO2O`Jeyipzu{s)jhD+$rPbcrZyDu*; zsnb2^s@1(Z=t$d>i}B}+Bwd<MC)h~qANr}VXJ-BEz7YLu>>HG`uRd*lce<vliDj?w zlaT8(pL`Mcm$QrI&dj9sn-3c@HbvER)Fu@6M45A`@*aEg>v6MgaBrI|+s2j2w%<Jq zGhD@(?=_d7I<R{M2Y=*YDc?EQ=G1vVk<G|FBjd@wFPn4bg&SKv!WXAJW4Jw~Wbwt< z2Sp=8PsFybIW%|m&CGRg4U_JEcY0SBzi{r}m+P;aP1h_v!e={EO6_{0!Q1c3vr=;> zsFuAq+U~gG#GfpNvUAUjH%&YgbEzVF_PyQ34;!C_JkvASS0Xrhnp7Cq&BfjS&TaEK z-X-4Vx0tv8{ua((+}#bP8&%bccX&zvzb^aji_MHh7b_O+54$@-yz17{?`7gE^WV$o z^k?L5^IkkDrRzoNkyB?b*ew&e{X6c#!Qb-}geJ{ild{iz59gw%6>|4_n-1Fayi0p* zFpIY-P^4npF}@1tTc3Mh+dJ|0M;u(eu}S&b^3&IoYNgKT^Jj!V%)YqpMT^yf-t_gZ z(&yW*^PRO!&^_7pB=P_0YnQBfqxyGjKd@H!^r@;-Cs<RbOw@fZzvAz4#gBWl+;(r; z(EPOY&NIKgQ|<1~k&8`dyrZ$VAtFRT`uD%b8)K6Tv-U|fhkWqc-lp|!o~%Hh<3df* zy&w2g#NX9aW|__Z$B0xui5fU93lr*;VPIg8XJB9uMsAX#jp4Siehb(q`~iIocXMFL z$8x?-o`TR58Yj<g+^l(0=cMP>%@^A*#4sQ%>XeH{u?RG&3m@N2N!4|6)km}LVTo=a z+1B}?`3uE5$Z#^6brktdyH^jzcc5T|7xQQq8JT_wz|v&LAB>Dla?Fsn?L&+s-Xy@| z?u-l!3|ksOOtc|!a66Y3a^M@<aCm?>!d%QVsSxHaX<W|CfOe2vd=mVGDpm$&ET>Z; z8~zJpN*`hPmd2xc=!T<A@Ut>7gC_X#xE*tb6504rBMjrg^OdX&%vk0sA<pIk1tbIJ z#0JD%kmQ!eGBXC0X%1Ef=1B`b2H<fg<|GHiJW$;IZ`@_ZK=zaeD+4o@=?;irAn69P z^NDQtJV&zZhId6-8JIy`Q9ORf?2{qv-_pqL%z&eZ#>&79>Y?E=8MBRrZ1O~RB$F{) zT&xVtpcWTC<I#!|VFqO54SkRT4mqc@GBAUR6g&oF7Kz9P&q6jBvw&n}U<MVCc#Ov^ z0+Eg9^hI(vW`Ri9^_WE-vhfwZNTH4vET94q!`-ZGpiITfz{~KEg@NIrFNg;K!!Qcw literal 0 HcmV?d00001 diff --git a/rules_shipping.xml b/rules_shipping.xml index eace41a..1c31e6e 100644 --- a/rules_shipping.xml +++ b/rules_shipping.xml @@ -6,7 +6,7 @@ <authorUrl>http://www.open-tools.net</authorUrl> <copyright>Copyright (C) 2013, Reinhold Kainhofer</copyright> <license>GPL v3+</license> - <version>3.97</version> + <version>4.0</version> <description>VMSHIPMENT_RULES_DESC</description> <files> <filename plugin="rules_shipping">rules_shipping.php</filename> diff --git a/rules_shipping_advanced.xml b/rules_shipping_advanced.xml index ee0a926..058b612 100644 --- a/rules_shipping_advanced.xml +++ b/rules_shipping_advanced.xml @@ -6,7 +6,7 @@ <authorUrl>http://www.open-tools.net</authorUrl> <copyright>Copyright (C) 2013, Reinhold Kainhofer</copyright> <license>GPL v3+</license> - <version>3.97</version> + <version>4.0</version> <description>VMSHIPMENT_RULES_ADV_DESC</description> <files> <filename plugin="rules_shipping_advanced">rules_shipping_advanced.php</filename> diff --git a/rules_shipping_base.php b/rules_shipping_base.php index 34a1f98..08a2635 100644 --- a/rules_shipping_base.php +++ b/rules_shipping_base.php @@ -29,8 +29,6 @@ if (class_exists ('plgVmShipmentRules_Shipping_Base')) { return; } -// Keep track of warning messages, so we don't print them twice: -$printed_warnings = array(); function is_equal($a, $b) { if (is_array($a) && is_array($b)) { @@ -70,12 +68,14 @@ class plgVmShipmentRules_Shipping_Base extends vmPSPlugin { } public function printWarning($message) { + // Keep track of warning messages, so we don't print them twice: global $printed_warnings; + if (!isset($printed_warnings)) + $printed_warnings = array(); if (!in_array($message, $printed_warnings)) { JFactory::getApplication()->enqueueMessage($message, 'error'); $printed_warnings[] = $message; } - } /** @@ -619,6 +619,9 @@ class plgVmShipmentRules_Shipping_Base extends vmPSPlugin { $cartvals = array_merge ($cartvals, $this->getOrderDimensions ($cart, $method->length_unit)); // Let child classes update the $cartvals array, or add new variables $this->addCustomCartValues($cart, $cart_prices, $cartvals); + // Add the whole list of cart value to the values, so we can print them out as a debug statement! + $cartvals['values_debug'] = print_r($cartvals,1); + $cartvals['values'] = $cartvals; // JFactory::getApplication()->enqueueMessage("<pre>cart values: ".print_r($cartvals,1)."</pre>", 'error'); return $cartvals; } @@ -880,6 +883,34 @@ class ShippingRule { } } + function evaluateListContainmentFunction ($function, $args) { + # First make sure that the first argument is a list: + if (!is_array($args[0])) { + JFactory::getApplication()->enqueueMessage(JText::sprintf('VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_CONTAIN_ARGS', $function, $this->rulestring), 'error'); + return false; + } + // Extract the array from the args, the $args varialbe will now only contain the elements to be checked: + $array = array_shift($args); + switch ($function) { + case "contains_any": + foreach ($args as $a) { + if (in_array($a, $array)) + return true; + } + return false; + + case "contains_all": + foreach ($args as $a) { + if (!in_array($a, $array)) + return false; + } + return true; + default: + JFactory::getApplication()->enqueueMessage(JText::sprintf('VMSHIPMENT_RULES_EVALUATE_LISTFUNCTION_UNKNOWN', $function, $this->rulestring), 'error'); + return false; + } + } + function evaluateFunction ($function, $args) { $func = strtolower($function); // Functions with no argument: @@ -920,16 +951,28 @@ class ShippingRule { case "substring": return substr($args[0], $args[1]-1, $args[2]); break; } } - // List functions - if (in_array($func, array("length", "complement", "issubset", "contains", "union", "join", "intersection", "list_equal"))) { - return $this->evaluateListFunction ($func, $args); - } // Functions with variable number of args switch ($func) { - case "max": return max($args); break; - case "min": return min($args); break; + case "max": + return max($args); break; + case "min": + return min($args); break; case "list": - case "array": return $args; break; + case "array": + return $args; break; + // List functions: + case "length": + case "complement": + case "issubset": + case "contains": + case "union": + case "join": + case "intersection": + case "list_equal": + return $this->evaluateListFunction ($func, $args); break; + case "contains_any": + case "contains_all": + return $this->evaluateListContainmentFunction($func, $args); break; } // No known function matches => print an error, return 0 JFactory::getApplication()->enqueueMessage(JText::sprintf('VMSHIPMENT_RULES_EVALUATE_UNKNOWN_FUNCTION', $function, $this->rulestring), 'error'); -- GitLab