From 37de6068e7e66e22b229fefb92fedcac7b24d022 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sun, 23 Oct 2022 02:38:22 -0500 Subject: [PATCH] Update C++ Co-authored-by: sigonasr2 --- C++/scripts/build.sh | 14 +- C++/scripts/md5 | 2 +- C++ProjectTemplate | Bin 711408 -> 62528 bytes config.hpp | 53 + data.lua | 33 + forward.hpp | 1321 ++ main.cpp | 1268 +- sig | 2 +- sol.hpp | 28907 +++++++++++++++++++++++++++++++++++++++++ sol/config.hpp | 53 + 10 files changed, 30418 insertions(+), 1235 deletions(-) create mode 100644 config.hpp create mode 100644 data.lua create mode 100644 forward.hpp create mode 100644 sol.hpp create mode 100644 sol/config.hpp diff --git a/C++/scripts/build.sh b/C++/scripts/build.sh index 0656a8a..29e31cc 100755 --- a/C++/scripts/build.sh +++ b/C++/scripts/build.sh @@ -1,7 +1,15 @@ -#Compiles the entire program then runs it, producing an executable. +#Compiles the entire program then runs it, producing an executable. If the "test" argument is included, will try and run tests too (in the test folder) #C++ printf "Running program...\n\n\n" -if g++ $(find . -type f -name "*.cpp") ${CUSTOM_PARAMS} -o ${PROJECT_NAME}; then - ./${PROJECT_NAME} "$@" +if [ "$1" = "test" ] +then + printf "Running tests...\n" + if g++ $(find . -type f -name "*.cpp") ${CUSTOM_PARAMS} -o ${PROJECT_NAME}; then + ./${PROJECT_NAME} "$@" + fi +else + if g++ $(find . -type f -name "*.cpp" -not -path "./test/*") ${CUSTOM_PARAMS} -o ${PROJECT_NAME}; then + ./${PROJECT_NAME} "$@" + fi fi printf "\n\n" diff --git a/C++/scripts/md5 b/C++/scripts/md5 index add9549..0dfebb2 100644 --- a/C++/scripts/md5 +++ b/C++/scripts/md5 @@ -1,4 +1,4 @@ -build.sh:530634457ea9041267c05d4ced95eee1 - +build.sh:ca58f10d4e30d807987ea0105930ae51 - commit.sh:d03a46e721060c22ccb146e19d27e70a - debug.sh:abbbb0c6d9f2409f3a90738ab3d9d44f - lines.sh:3b907786f7fc9204025993016c9080de - diff --git a/C++ProjectTemplate b/C++ProjectTemplate index cfee198c0d825b24ab6c9279282042d02fe82841..0f82c229ae4d860e3038e42830f4ba58f401a843 100755 GIT binary patch literal 62528 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 b!1qJzmugqxPR32V`f2+l$23O;N74Ad(UCbN literal 711408 zcmeFadwi6|^*_D=qVa+WDw?)lLaho_F+srKrA>rK7bP|b(RiUDgaFap$OS_SHW*^F zUAIPSDz%`YVokk51sW~ja*>Tz+n}gv#dfu*8-q3~A5E<-zxO$F+1bfHA<+I_-+zpf z=Q-~=bLPyMGiNT(JWqb)OuKwYLc&mw{2A)`jwb>4Sxo}SlK9$Jj+S>w^JIF4GT`d!q{u)aSVHUrG6?OnTt5Ht`q!O z^JA~M(w^$7>`B_uzf5UQ`zD^O@JnBki(9eu_YvvwKdATxQ?{h+u zeLe9?AzxipdDD?kSVE*9?6)%OHL^Unc4(LFpsvc#&Mz&QGjaU+rE||KEh(?9JFhNt z;&~ItkFBm4JC2Jcz0&ZHeCmp;^E_ylAYsyso+0&uR`MwAM43+fw@$e9zRPaU*`M~s z>y1C`I%E08sl)zEJft_}As+f6d9ukh{TJL35831R;p;q8k5Bgy_7?vA4gZc_dgYH7 z1W)PMRs6@Y_wr}28oBF_-#Gf0mHWrvbLsMtD~_EE7T2H8j)%-Rsb@ivc=+$oLF3^g zT=-8uDL(%-2ru#EJp8rzc#DhthhXG*a&k`act*sj*Tci(^VgmnAK!zGAOi=z#I${M`jV&ZXS{pic4RT<)U(5iW8@Lr6S1FTl~_;pA`e@K*Gvc=#p9#>ac% z#PRt1T=c(xWPJXArN+l84#tyzuZtc2fDRas|9uxfS?+C#Xdn7`vkucU;a0bijR9;`q5`D_!lmE{=&sRH@LJ* zkBgjFT*kqFxY*$#7dvFR@PF#!=SR8t!{sjV_9d5cpLQwtIv4xD>muiVm+|5x7rT|Z zwAT<9`#<91hcCFq=cO*?23_Lq$u8sj<1Y4j%EiuCy3Ci3cfn6^sn>fh_}MPw?5!^H zuW+&FbQk|gbg|D=7e9Rb$oT#AL6ShFm-d}@O#F7a+9lrp0rT*9AG!GLH7@*ranbX3m-?RVV*lkXa*lGrPj|sLy7bcmmvZO3^!G#; zzbbLD=c6w2?{u+SnT!4&7r(vFrN6x4;)hKxa%kHoo*&-n;1sE^=~Qul~?QPN@q&?I*>vbB@b=a*|6tU*e+YaF_YN z&t=~Ax=TFIbm^yEF8yMz3;%c*JzntyvdUn0(voCUq8 z2!1l8oX5Z)uiOfZ7lhwFGPc~?AZG*ypR7tDKSj#%6il6&Q!uxA%$&)k z73IY<3+I#;dkPBXmsOM(RM!+%)f5y6*0_xMR}|M=S5iK=;@0e%nyQjHwKc`np8RPQ z6}Qw@URAufdU2U2|LWqp8fQ^)d5tIk^3vMs1)lsV#nm-c6^lhiPkv5erMjJ5Ra{t8 ztf;BwB{ee_0GbP-Gf+}aZdFB1MNvg5=&9wh;HjyoD!#g~tk{$Py~^V9DJ9jFrG<+<^Gls_w!r+-D~ii!Li5@x)M$R` zwZ&C6#dYK6>DvqFmgSAForBwJpk;1JT`^RfU#e<2xdKYo)etgyK}AJ%@wFw@wS}di zy(O^6{8E(QlrJJt`7>@Uth}st-n`-}k}$cnxUh=F3$CeUh4YKYO(8~@9A+rWo;w$+ zv2G>Bw^mkEkvyk-E`CobE-kJpHnfL{Zz-N!TUAA^Fu(M&QkdoP+VUdYb3uf`56W@P zSC&$mLriXA6)XjFmw*BEKO$!6$OQ*l?w_PoexoH_KK>4n#GmHnz6X9vaoz^ z!ThSi#RVA!;|j)8u1uYys^Zo;i^(HN8xm1MRxDUhTrz)wD2>62g36jI=3!-OE9b%o z3rfo82~CM-4iukTTv@Xq%Eq#oq|Ll9#g2D=954 z7CICm4aLW^OJyP26=|qs)%-bH7+2rGqy(yfY1ya&ZY`OMniSk{^^BT~33CdoONxlE zxUg(a?YyZ)05ggf6vEV1g(WrBQ;QrYvtm(k)x6S*Tb&Y_ZM?` z&{Zv|bIQ12G5{ND2B|soT2y-?)I_hCSTLgop5Ppwev>n%<`yk-oS6kMz%^IRxPZhT zhD|Rlz$j5zQwU=U0U5ICEB=3NdTE1<2`F9+L&7NJD(SW5B@1hdsnZud!sw-=2${qN1>7nEs zU%j}zNO<#%iV4-l#kW*CrLgEY?v^t^&n>As6oHc}=M)y*GOw_tRK<)#?ajK2pj`(S zZA7bbj~XZIa>%VS0d}u0cFIKW)I|^I?H86*7gQi}ahWq}N)a<*IxC2Z5Ooa_E)cb; zkfC#C!OZjmhkL1e|C}+tV8(=kndHxh(h3(+OIFOA*S{@Ek2oQBaO1(G+H%Ysc|ahW z&n?YeB<(e^2qCt-;(~%}$7PJGUW}P#SwT^0MbRx6lwGR1Og6;fw^E2=95&*3(eu0QTX+^f0ZnW32xD-lJZh?I@ucFd@#s#2xF0!Z{_2G7zaSoD^19^E!~%Xkuzd31W6nKF*#< zzHMcvH9&PqJPBxu%mPdsYcOHKq?5d>K=-9d2*b7ISis*xo(*LR3+B*r8C|HRh!;|a z(Pu6oPnYA8YMa5j@8oguC-;L3Q4_1@)RtAM_#~%GXi@}Ou3IJcJP_`yYG|uMEN@J& zQpy?~k){%5m8EjpT~$=-dSc$}4xRpc$gsjZ?n=4AhRPiwS zKPsZ4qg*+%3mrzK#`CJ~aC1-KEd%yn3@~V0qw`hKc1(G(T4+ljAEa;ARbwc@`b8~Y zl(!AGYp4(fD~UnBV#2LeSWTHLBDYZ`V>~)KHUhEPQ&d)2Q+>GIQ|VB4C`)E+C}4w7 z6*)L-O(?;ZO)-W4nu#>_($?)^ZAVNfMtv8n!VlHva7sNQn4Wk@6P^iGbFuw&xGG>E zfeO6IF>@-0ltC{iOnvSBDVNEE-V#xsJ(%UG4g=I}4?mEJdh&dj7n-Q5wa#?nEHR5_ zVu3lKKt+z|lys0aMtrw6)*uc4iy%Fy<@tDCApaNpf#tW#N&F-+jm9i2-ZI;fe&n*I z!~$9>Jtz;EP^%ZYSI;P+S*~)>*jXT&MLNTw_8ppAhz(ok8rpQ=5xAQ2Jec&WV z9O=J%s1m#3<%s#yVc2#8FV7A;e2go|rmc*E1tr+! zL}V;J`^E}mfyyhvYsHPiFWyP)YJoE72%2SY6ek&e>7F<(YU5kgy zqH*WpnL{Z;ji-zkrk=9mvNAkT^T>yW9*R|XcnEI1q(u{JdhA|S2*LAc)bz~bsi72x zO~|^E8j^uro<-H=mDsd{LfH1N_RPaJkq28#2zYBMl=bWP%%k>O6jhvJoM@(+_hZM6iyJV@oi0ZE zhH?qSK~gCB+iZq?MUiS z$e>h`KLR|&C3K^bs2q_~XhAxNvZ;ilP##glCwPgA@(pF(kJK6yDpDx*7}ofB&Pm#f z5);8qIY^fz&k49vy@uf3L&`IR%c2yj4e3pqk}ZWkq$m9+aG|@fFKLFOI{2O7xjaq0 zr-+Lu_pHS@Npqs-`$XU;0dJwsOcUw3pie9*!HK33o_P|x_wJwLU`?{8Qqt?09`5;} zq-(!kf|HZSc-zDI>Ga>#1`**3iV0xtXDLrALrRB=~th+1@eydbV_G~P|S3q=R`@DFg?t3hNKrVJ;XB(H2tXeh#{1J z(tP5YE8j0x_|yjzI3eG{!%c#JfrV$z6X%^OE&SXEa3B*ubrybu#Op2m#MOeo*}`+B z{1q1d6Dgk#r&E&Otc zr&)NN#7A5Bof1#C@NE*$wD8+r6y;`F_;G&~xYxpGN<7!X7f5`zh1W~_EU@rlbA){= zEqt8B>n!}{=Y>A?7JibfSF?q$P=0ISD~m;qd4ni-t%bKryxqb(>BTqv z1TFlOc7b>2*}`v@a#mQlif^qJuHsvp zg{%0s*1}bM3tD)uv`>eHpY(*VL#Kr=l6Z>z>Vxv16!|@jR14p@PRL2K@DqP4@Ma6| zl=}2pcv#}i#j$bNBg+k1_-KiDSoj@s{OYvu9TLxy<*0hi-Xg}kd<)+w@!1xx{H@Z) zC4ZfTtNJ!scv$i`TezxktBuR=cC=Y|Skmnlo+|k}EIeJ}T^61z@rZ@bmUy3qS4uod zwu7=~y~I;3yj9}q79Lb`95O?-jDk5@1CPpZLh;*|zJUXjp0X$HTE*BSg(nj7yI82lz)Z}4Xs{OJb2iMJX2 ze>C{ly5Q|Dc+ds!aKSrW@GciT?1D#J@D#&;%zCA|;At-SXcs))1unXSnf~#?l^fb#&lj8;9&ucC5y)75KtwPKn==T{0 z|5^jzW8m!ueu;qx4cu$s9R|MHz&j264+h?4;D0jkuz`0Oc#0hNsJhcZ(FTrJKJ`z!f#a2V{gY|nc=c8PWEnVK;nY7~1IH&F^iQsVDZs4O0JZRu!47|g@zir^127Zo#cNsXno2q`o27aCb zag7-GSOf1h@beA4&%o0S+;dCR|1%6c$-u`Mc#45vVBo0+KHk97419utk2dg$2A*!< z7aDk`foB?cmVr+)aIb-1WZ=05ezAe)8~CLLKHI>*W8e!6{JRETY2eugUT5H!8F;;c zPd4x-19uF(*}yM1@D&Drg@Lyk_*4ULGw>@7e64|BW#H`wKFz>`2A*T!9R_~2fp;4C z_YAztz;g{eY~a%kJYwK847}ICXBv2)f#(^xr!?yS*BW?|fnR6fDF&Wz;Hd_Fy@970 z_zea=+Q4r#@N@&e$-pxWe3pS{8Tj`N+-u;o4LsMt3k^Kqz~>nFYy&Sc@C61w*T5?c zyx73&41At}*BkhJ18*|$1qR-1;5Qri3Io5zz*`Nx)WF*eyv)GY8hE*Zw;Oncfd>t| z(!e_me4&AN8hEvVcNsW+TSWbY4ZK!?xJC?ok%9Lb_^k%sXW(@P?kS7<|6&7AGVmW5 zc#47l(7;m-e2Ial8Te8IA8p{b8F;#Z|H!~I4ZPmKvkZKhfqM=7b_35f@CF0VH}K^K zKHI<>4Sa!t|JcAQ4ZO*~>kQmy;PnRn69aEDaKC{!8~B|DzQVu*2HtAmKQ-_+1Ha3_ z*BW@Ufwvp@-3A^s@Ouor!@z%L;GG73uYq?Nc#DCD4gBW@9x?Fy47}ICR~UGof&aq5 zJ>^mVzu&-<4E&b{o?_rD4LsGrR~dMkfj?m2qYeB)15Y>bRs+v8@YM#MW#A7RxYxjc zZQ!{E{)mC+8+e<6&o=Pi82ADMf7HM$4g4_!uQTw+4ZPmKpD^$y1Ao%Mn+^Oa17Bg_ zYYn{Bz}Fdgn}PqP)Rd}V>JEbx^D zzOukq7Wm2n|L-mEY4T}bcpLU5dHso74%JHGK@z8Ja$p=~0><&h!XPAIEfprjwce_&=(?DNMhu z=@Crt()966Z`Je(Os~`QiA=B7^hl=f*7QkCFVpnNOfS@QD$|9U{u5u=d>Yv8++nOH5^e#<*lj*IRK7;9Xn*J8kt2KQl z(|2q7ET)%f`fR2bYI-!&g_<72^mI*so9S##pTl&9rq5-1l%~&PdW5FOGM%95^O^qm zOI81Lrr*|d2GhGVJ&x(En!bSPb($W}^lD8{VES%NPh@(TrY~fAp{6sLF4XiSrl)KA zBBrx7eKFG+n!beTQJTJ#=@FX#4$}#m{w~uW|4Y?Bi|MyDoz3(vO<%_JR!vW4dYz`H zFuhvS4%2sQ`f{e1Y5EGL7i!webfKoFGCf_>S2CTg>8qH|(DXE>M`=2T=@FW~n&|{h ze~;;pzfkqhW%_MRPiK0UrmtaotEOi#y-w3JnO?2wJf`o~^tDVc)AV&rFVu8C(}kM8 zp6ThDzJcj%P2b3LhNf>~dX%PTF+D=l-)A~O(*;a_{7+T?*-XE!=|ZM=X?hORTQyz8 z^g2z?WqP%yi6*To>1<8k!gPkFOPL;}=`yBA zXu6!~1Wi{k{c)eFe#9+rA&{|^leNhX!=J?fBdeyEJ_} z(_1y&!1OvzFK2qSrW={QThn(iy-d?TW_qEfo0u-tw2$fOn*IsX*_!q8+an8Pn@DeJ|6iHQmDW-J1S6)5|n{ zAJYppy@KgNP5*-F>6*Tu>1<8^lIaXhuVi|ZrdKgNLemd0ouKIlng00yRQ+3-ep}P4 znck)8UopK^(+@GdPSb0cUajeenZ8@ozh-)wrXOK?p{CoIF4XjIn4YfbN14vn^kYnC zX!>!cM``*ArblS{Nv0Dt{S?z5?^pF-%k2;c3&-7|dZ(#av zO>bm+nWlfo^g>OyGhL|ZXPBO@>1UbF*7Wb0&d~HGrblUdGt(n9y@lxnO+Ux<$Dhjj zV>M8VzZaN%I>vFD|AU_OVJw|z(K#0FSoEb9J;9>Sv*Qa(Pvup zsTMubqK8{_qDBAv1FQWl`a_F;*P`FD=+`XzWs82^qBmRg28({eq93;CRTkZ1(E*EY zwCJT4U2D;07F}%7vn)E#qH`?TvFJ-JdV)otXVGU`^r;p-(xQi3bfQK7yW47ii~i7} z-?iwsEc!Kze%Yd*x9H6ly}_cNu;_;^dX+`DSaiUm8!dXNMb}z%nMD^{^el_cv*;X) zb}af*i=JT7=UMcb7JaHkkF@CF7M*C(|BhJgZ_yuG^t%@QmPNm2(Jx!{^A^3?qBmId z6BhljMX$2x7K;v8bfZNtwdh)lF0<%ji=JiCc@~{x(T+u5YS9xc`aFw1)1ptc=#dsZ z+@cdL`rq$c?QhW^TJ*aX{gy?)X3;NO^z#$5dwxw0Z9kK^LSmN^3(dH{!(&RPwhE*-iAw`eGj)@-@7%(di|Fkfozd6 zSl2}6VzYl|BDrD0EacVYQ~vH-)suicWW>{wEU#~Am#=oWFR#;=^U@Tb(=o-DvtzE; zKkUrWR7aoFml5>(oi1-fFv;r+MQB5gXn)>rUy8Wt^yLoo2AqA~Ku(7@khjAdsC|i8 zY44G<26B@)-M7>0dm}So}5bG_$?Qfd+-f5Q&V3)}e_jMOXzn)MMIiK1n4^9$Rl z3Y45Za|U!z14qQ`s||a7d0k##PA9lKiJKPDQ++$QY>>2v;Pq_>3C>W2wotrK#qUI> z`QG;W{z4$_yAXoMMQJx?-!w}XMFpkmg8Z{0O3ZdC#`m|#iz>5!R$o*}WQ?i9@d;c+ zpR(jQ&_g(6QdNp)va zJOFZ7PIcQo5VD>>?-rXX}E(_cp#HU8$tJkxUFy+ zsR*OAqIILKkOcI9+zOXaWd~(-(v$oY{vbP~=qvEsP$U)4pQQPQk?Q0&f&5|0y8p!E z8JT=473ks_zS>^o=p}(6hq<inJ zMyGdcIO(WuxY@TgoWeJet>M(8I(^%uM;Ot7x|FYWe^dtD`SbR}Z!9i2F8Nm#f znY1nW-r&J`T4Hz__NAl5u1}LkIJ@JFqRAUQ$s2?7lK&C>H2K^3cfGTlSoaEK1cFT< zZ!gBmu-ErGxz_Rwn98^9)8v%I#&d>Yi*f|@916Oe{BtBDjq!cZy(@WRR>C0_a7MI% zZ^bEKf>8h&hYA>SNCj+5*EQJw?fx~`jbv2=Y9uOPX!6FsPm|Ae(9|7t?M>d;N!NYJ z8+)np*}guq%?<<=3MBqKnn|3<^A*e_T6*o7#38lF_Ycw{pPaAj^XZuW^%-W=Cw_|@ ztbn_t1>6&-fQOK*3>Lpd4pu;Vw1A8_1zctnaEL83j-qn^78&}F|Efh~AL&(n1oO;1 z@`HV{6U-i~TcmKbXp#L$-Y=7@kSq*#Zjb{+S5wMBUB$JWzVmcB|2(^YIY;*|CpTfB zF5_CzUD1M?;}oEU)f#yk*k`KbG1FX&+2cFFOY1h8Q<;)E2lnM z&ayb=+|$1t7rP&-r@@*H}-h~8r z+YT)BY&W47NulwrJFw7K#<*zuE)q!7LD;tm55(ix_xkSt!oCCf#A$9iXRyxwq*t}R3F#kHkt9Brq_IL1AMww&c+z&0e<-TYv}yl%p7 zl)}vJeK2AFI@3k7C%ze`5c>n!Y?(L!P$e&s~)D{n7;%?evK#n_z_ z#;?RiTh78am>_HNLotbo){c6_mmtIm6Et42B#UEiuPZ8 z99Qi>?6uUUi9GKwkotT2>zjBz7jcubXI}Dc+t3Lj^ODQA(OTgq7{=%9_vh^aihWgq zUd|{q$)gD)HWqkMH3eId_P~>6tCB+NO2`rmQ(n%7vWD@P4Nz_I9dnFW@rJU}RFc@Q z;+%rt*uIFfhvGzZhDfvkY*UKe*hi1%0+1vNz(%M)CrnlM`u@n96GwSGJ>R6Z7h9k@ z>#}c=zw!3WZ{MdHo4avJ6S*~PnmQu(gSA>+QML3Y@d-jLB&mA$+b^d1D(ws7>KDJW zh9y6>)w_cCJl=?Wo77__?7{_{y>yTV`yrvo8Cc(OE{<}3%C!x-Xx%J!IO~zqtg+VW zt}}Fvg9s~RBy$V;rgv;B=sgyrNna6q=_bAiLhT(gx!*v$47q9M4u{$imU}jS?3-gl zi|gMfnrjlOY3{d)U2d#*YkPfpw4m%&nbQ3^MDtSkW$c<6xx}t9^_C7_?G9gFuz&k? z__NX)gS9{MJ3AVKb>D-a4u1-WN!xC_3>(Y9E@muu7$|_}5hWX}!=D5&`Kb=@Cv@l* zdk2>Ad%C{`U8upb>1daS&U1O_5SNDO-;2FfN)tbz4H8ROC;Q>xCk8R8Yv|eO#0? ztRa%%Bfmp03DE92_xC5$WZ>Py8U~y_GNA+sycvXolb`C$_U#r*uoT*SCvC|_Q$FK1uF z()}K8u0Cu~Is2DRX;|9psrwET>qGq}IlW8A(Y{5*( zvS$r5^V4Qeocu?~{D|WF{W&Z}^qEB3UA9&Vcl|YH-azpzA606jkz);2skMKfXp5}| z*iwd{kV=ExO&I);4~n-zaZ}e;V*2RhC{rs^-~2TBhFNRod6RGJ!msjRBmtr26Ry-+ zBxCfvp}3Wj!y@^ew^j0bze5}^V0VxPR8m!x-Q{=In+YgaB=_ipy=jzX&Tohz($$(;i>ccUTnL zN4P~ND$)={Z+i(|K!Wi^kb7HJKf#x?;7!uF>{Po^Th5J~ta7K!Jw&Sfl2jSewaU+) zVynCl$Nqg3O}NA>-8**3+=cW|xYYnzK8bC(<+% z*p6w7-$7804W#$}WiaFT5_nSVoS5P)KLhaPA#^34_W~Z$qm&H{}9Zs zXvZ1Rr;s)f+>Ab!?s|@%o=2|#GgRRx&s}2J?m__MC!jyW0^IB4r#)Rf#!y6* zGnrH9B?20{x~TjM^#ff@=|YjwAo0w4n(sZLI^LkVBAn)?;S#}ggDyR%(|ivPIJbyr z_#7NtoJh%e*QY1*bQ6#7&0IY8^4zPV zDQ_P=iVBRJ^$h%i=Upju31uarMW_+_yrHZVG6mlUa#Lw&2#px#!TYHAjYUV0jz7G4 zyeLU!qyfC9ob!-h`Epa>d}$%!e5ZUvIbZHH|Iyeai(s=1V`dK49#d2NQ-@{yUewf4 zzCUIAdVRa5_+Ihha0#4qmye9!=i_-c`D~5l_vr7^!9X@yf*X$3A8PzsX9$@tNf1^x^>WGQi`q8WR(1P}Zl(-`}d% zc$7tq%9>@mWI?>>MQBp%z1gH0%Va~R!qC5aUKsl6uPH-Udi}>!FZWMPVoyEr3fP(@ z+nt&%-|Ih`B9GU94g8=s;$M^m`ySYZic*!$g~iasezHd+!)iq{;Z^iz5_Mmpu%r<2x~l?s;sd< zSi@8SYD?dZS@)Q=f}<^$onlKGH6(ypyKO6E(Hv8rJ;HO}ZB5QgzRo76!*&Z=n)4(g zXSZC`PGJ3bCXXJ&^NNqKoS^2WqAp6|cINQeN31*sf7(SqcyohXX zL=G6D-i4@s4LXjiVni3Ni3*(b3>$UXL3N2)dC^HKso_t#@nR})o>A)Jvd6?$7RB*tEUxVE_?120D7Fv9iY37}mBh(X zQN4Q01<)=cUhH$%Q(v{)SNI!wx!kSDLf$wYNgQaks}X{usp{;L7f#X+)2{X9J?_hC zGkv3rcOsA&imZJZAviE{>jw60Kq;s|JIY1Ngd!`y;8@a*RZ$iuc(R%A;i}DA>(6@} z%@UM;l=O8neO?gxI~c4FYGWb`1>o3C)Db~Dpk;PB_Q zO$&T0M#G(e#UU;&iy{)vr%m&HAon%Sh1d0rjqc=V&Sj!y*$`*bgh1@-?0Jofce>0_ zRJRLQ!w#=J{H4db=qVHmk1$!mOJEF)4E~l43W(IDy(2d0WB-)Fxgl6d+|wb}R82Gf zN-=`zPJ}_JS~jaj8%|mS9Tfv3uM&m!i9-8OC>L_dAGki6z9~wxQWHg4$QFvEp{#+T z(;X^0)eRBR>A63}crV$b4xZNp&#O0mj&{ESPAfd59)kpud6Vt6;~*uF(@K8yEF^j) z{vovt`&KBje?QIzZC6wgsO4|g6vWH*J0sVHu&mEnp|YKeY$1nUdW4fYP2|u>YLy-> zMyI?LFdYBw!=A+7GbeL|BDbJT;Tkd1C6>q*M{B%1n;A{ zjk^7Cn^0pGa&nUy@&b&S@@|KsqS-@{BM@Z#%z-f?kk<;lURHIL@S|3;_~{6cp~h)a ze9r~Yk`0saSjmzZ_4*p?1jV4QaW<$>;}o4CK)2oi=aKd1w)-_UdP0r4lCOIVnl;qu zjb@|UIN2&_e<;wnfKp+K-JN7H;>BNy`t zq%sNnA!L)`C=n(J%2A{e%}a(O7>1+5CNWWk2oMlO_NyKpYE-2Lyf{+bkKqCJ$onC-6Z_-~n2wu4rJfkp(;QuhrFatA zNyYH93E9`v5mPW8sY9l;LO_O4p@D$7^iw8XD8s3=Khmgj zKeB^zBa(3zKAg{8|G*2ZE3*Z>X>rW*Rt(3t;&A+)IHKyWJQ4K`v{217%8oJ%3Cn}Y zjU%{EOGPk?6cy_veqT$M$R;SXCi3{W@lcs)(=;w1Hov&QI6F@;ZOn;4|0qz>r286v ze4=f91}W)ltdA}2d@2pYC*!_cs%$QCK-RY@gGj)G6|!UtCj~@{h(XXHrf8m%I8Q(p z5=KZf{cX2sD@rAa2w+kacHk(ZXf2AdKDR3`_7(B5L6W<`i1OjHdn0T=t zzVJK^^^_Rnw)v15FUZ^vb`(vekR~^x!^=TZd;G{_*teP`%MpT9Ii5idYvfE`PM-|v z{sn&Np-^|$RoGqVnIFZKLoeHcp))$&)}@mjdoGOfvmv4BkB*KRNwq7_w{WHB2o7aD zc5g&ijTDj1n-G z5RKX9X#>6Xqba_ekzNfIqq_lWJ%*)CZ8P>MvGB_2w=VP3%r_LNK~Bu8Q!%JFp)6!! zAG`&&?&f!q0^-%EJ3fG;g`6N-1`!jBDZKoKYX`~rK6g+&T9Wkrf^P4r_3{I!P~;Ny zQykcAa-Kq6g5JR71mq8bpLLl19J$a|Ok~(yy`O*V_3iS~UM;1wJ};wRLcloZsV3)1 z%-r#h^y0MtqvB*iPw{;oHZSy(uA2Z+cjD;WecQIsnl940KY?Jf zJIZI)L1NZgOfwkEstHs!vG%v>Xjm0nG|`Q4-eDMdS1WJ4bcsEXF7%2dQlw2ZPZu6F z(4!slTO6`USGV-!H}9WA5otzbji)r^%Y3#M$y+=$uYiQ355QuSf~^C3Krs>Q{>1V4 zt@iIP`a*Iv1id`gZ4nU_^OXPSl-$^q_0g34*Z_UMObKPpR$4--xv@;O(d?zMDL3lu zHAeQjSf+_Od!#-#iN`)q;}SaqX~QI7C-DG^%2}rm*KWgB$uEv?ob=ei7C=Q zp4CXIMA|fxCXt)99+^ty&iYB}HdIe<4W6mX!dqWl)=kfHCxGwPchDZ0X6U35AIeNc zgcj;`0f}v_8DA>5Z4M)mT4?!a)I#&{TeVRA=aMNgB1NW2O}&Ypp`ws-jigFsCItg- zgft*RgTRW>lp1i}C&hjxLI>_K4^8aq9tw3a0RAm9=`$24nKu7kR4-KTB{51;Vy-Nv zRuvp*UI0j(j!Gjo-y5HLALEK634P5i3F||VG&?3&sD42b0Q~H%FQq#Y6{;`O;6eq$ z@>LQI)&D@=%?s7v#osFy6K<*Mrz@=~00l1I00x1CLGM32(@M>H6v?p*gK#!+>Cri@}`TV=0re59He>hJ0 zk8-&&?PlEOLX{8Siz$k5Hq{r#qr(U!NJd1VX*5sdT&hpj|6TIPc$`XViMU^eIUAT` zM$@C%<=ytVAG@E;)~EKlwLvOH_4}d*sS|w=h%(3n8@V_j%CpxC{edX&e^%5Hh%yN4 zOS7y*WrsUO9f2r2oGa=GMA;#gX1Sb8*`e+owgb)9cw9<>Hs+2=%#03}{0}X$AYn_Z z^sDcoWny>#b7>&7zC`eXKM#izQ=4*jH01@GoK5C9DZfjA=i!^0n!{)@e_p2_PYCgZ zO)Nsw`eZZ^kJU5f@u?iVahZ~M{wEZl#Y1G3&`Aj=$pn&PJUTw}(->h{bU-nOP6f%r zo>rkp6y{~O3FOMFHQ{&b#s==XH`t;se+i7k%?Q6|%Vq9@9vYKMRl6ZyP0Ur{VS_ahr+TW5n$xjlmxs z$x#NAE)mgVH_0c$I(v~w2Pt)u@jQ#22rqWN=nL~V2zMN67cTMe>9I~2RG4~j71@T4d`kLBLHG8|fH+L9LXliD6+ItD*M&Ey zLb(qAHJA9_5I32=*R$CU&!9CtJ{+PBMJBy1diu_+5eZ7nyW9vkR={F8K;8prd9e29 zq?vwvdLIo;fyAtb(e)wf5}s4waM1_#I9%i(ehP4YTER_=(?#GtQSzoJ-fg4lp*#*7 z(8+|))(Al4sXLp^(1^(GZc?G$8hn6 zm_D0*t$IeA1s7;D`zAe^4I~!H;)arKaL5TKsFdRL=(;5sefmK&2IR<)Id)OtqJ6=k zG=ZJwM}?iXQ1 zO4AyRd*!)Qg+O9~6mWpUEZM-TY#^AiKB6%skT^kdzNR_hi=vse_DAxwB0Sa;>QP~# z$UCpWF}u);^rTlFCqC0$_c7NdaLJKsI|_`HKaElwc4YCB;Oy_4@42g!9CS*ZPbVD* zMGKrv&bG+QToUic?2|Y9qqbQ?SSGyKFRu2O9lp7hgYZ_I-@= z-7hxf?QL>!-f`AmNRC8@olzud()Q$g$Wdl-TA(?IV)6V=9QJ=B@+Y#EEbXDcacKyG zmyL!r@)E>JJI5;IXv!Z!iHN#;o0_R2@b#EcdXO6ah)P!)j&d(^440W=mxAb-hOX0x z?*QTXXcN8f=tL0nvWC%(KMDHr`6&_hwu;z3l+=y2WhM`uy>!$UW7vqCmzrWfK7b`9 zblVM~T~X_9r$JrmehEr-Ucv|prwkiWcI-Ym>}fON2oCT4T+4F;9D&DkSkl(qL^ysO zHH5Xp^Z%}5ekUc&6#SVHdwgT>m=VG*NVvYd3iy=0s5C^V*6HIst0w#afB|ds`A?`C#rg+Rr zo!A&@DSGUp)3bup8(0yff+Q~ze?=A)tFYg21BvI3dd|8R`&@y1+Ro)&GUTX-64vHy z&FG#{YDp4hypFULllm3EMW~$oWWP4n7V&3|j@rXS=^J3jveCfe_h2>!{XOoy!!>W# zFwLxeN=f$fa=*V6jE%G@VMcLsj@rFAUF)SI%SD}DU#B-A=uN=y4sYUYEGCnGmzy-t zm-laca^vVG=Kw31{5#OUdu1L7?@>7AorgWjSG-%_N%5YE=aL72^)G`8@YCy8W&xF$ z=%aukvVdWSQh@SuUF)p;*izXW{aN@-S3e8EkHFkt!t6M_{;bTn=p}Jbgbm)j=`R~4 z*2P7=anankC={`EhTKvE?e``aj6g%5cN#A7-wTU(Iz1OgZTHo#_vNkifS#PJI zb39%i;J0;nndb!q-josFbipdidEAh|Ij_&z4H&|MVvA0Em4{!@pz(AM5}z;MhQ6V-G-G0sbe$Gx<@G&7Xg zhNCZ(516MRjL#qHKGm?V5{}>It6k&EYxU)Ppft;;!)xL8Wo|-wWSYq^C1USqyXbhP+4$o^PTDZ4GJH5Yl zjX&pJKUN+D^SdYwPJ06Mp5(OOwxyevnhi^LbBR!3jVzILT_a1J$tAAwIqRb(K8URv zw-TxT_fn@fN?eZ;S59))qr@{&B918Y8=F(NVcCthb2PEX@9aqko`d&4oK2XB((N8B zp@3eD{g1moNBfd}>Q02JP)Ha8qJ7Sep5yrnYz2(N>9noD2I|Eb12=WqIx*^o9DZ}G z=Z6i>`h>q;X0;NWO+DvP@r#cjlhqwd_qXBqZqIE;kX3tzHI$KU_n-m^L9nax zD-Wss2InORS%0y!Bl*t7Xxi>ixY{Vusx~UxVOJZT(V>c^Pv#v~wcAncpyx-ZHrFFK zP_@@{wW)!-&{$M$TH&(U7avmjqT1~jI~}6h)Je?+!`o|Ob{5pSh$05wdiLc+rueY^ zw--x)n$DQ-KrfBR*PtEWR{8B1?4ZZKkuBb4rP+`#FYL?NgTCK2#n*vFQp3_cp1LV$ z)z7==eWQ!yU3f`4O2IlZ6rsN?;@gH<)R@jm&YmTy3ZEeHFyl*)ZeFGlfhu?t{J?*rPqv-NwH=ZQZl6E&D7AB47auIrH_dDTp@CMH| zghT|9!1x4zPM1^y!@I~f4B0ZQZ1iH){=g+eFfoI%1LJYS`S9$NHnDWx6yz1PjTT9H z`zWuo_Z$SSoi16kko6p^SkiVs8;rEx8KW${yPUlILpH?zi=DpY&q|68K~aQGZXb=$ zYxrxw^dF@Lqc0ITzP#88-}Zd7v15VWO_R_Lv1jbd*@XVsZjHkfnyF)MqK>(PIws!* zxnp)v$84f+cfjB~r~_`|j>-5+i3b_)-!ZSoq?4p4|8x}Y;&!g2Qvt#Z-tZS!X zAGL&NC(=#simwx#L!%mYwhl*f)UX%F1ljl=E!JmOCv zjWs*f<0s6zhdpFBd&q9(A$xkNkr$(5&DC6Lmn?O+Ds^{kso#YtF0V_Kw_BDc8L2$} zSSd6jU)&A%X20u-`W=Spu8W=B$$=9vJh9((MBCe+(@q7{?hq!Ceg`5ZnxF8XYc!{Q zF3kVPZ~S$`_yTt_JQHnBseRFKZtZueu|az%Vq9%qwpYGnPVNFKHrjXZ!w1)_XioRuaO2mSrF->tbeo zLHR{lOm<{qU2~x8{{Fgls9YDyTt**Kr?cpR8A|FR-4^`=Jz~3}?gf?n)OH`6lhd<+ z5Z`;-=!y@^IAQp+hr$qjn<8*xBaz6D*DK(ryM06G^;;xfjG^((=H`AodYBW7FH_(} zH>^(*Z@E)!md_827kis*Apx(E0M5dg$b7?kzQzEbMq@_2ODs5(5S`4G zzKlzlbp+w3c1VI0JR1pSlIgJSp_vduFF)zYMOX3RvmrDWkD?bbilKDRF;18l)Cf49 z?lD z>|JBxSV|cYX9V9cbjg68#LF_6Nhp{L}ZRUwnQb0SglH><&M+;+*~6 z^zm+%PSc3XSwM{RG1#s{iCM!w@1hsfT}8@CPB;C@GnPkV`gBoHrYJJ#ucS`jF3tv$ z%&6*_TuP>?IX#*R`Y$r{-rsW-i>8TEcF3V6EqQEzxl(CQROdLtAPOe0J&PouDA*d_ z6w|VcF!-WnyDvm&CB>s$W=rQXSGb%0>?}Aa80sbQ5%-ffYmevMe(dyP*0Ud{|9xcJ zzNTh6{uA>(Vq^UNpTx{`^i_KXoP+qk7oNu7*W)+wyXba*!_vK;#Yf85`Jo@&9G~#+ z!P_I)nOH>+W0Dm*1SmpG!_qM42+Q{19LIBxu$AM>4=6{No-0uqss%a6dZghKHdc-Y zI7ctd9w`UUq*eJ(a*q90juo5(;TZFlzMe_wQ8a%!lQa3%o*B*x`18J`&p3!0A~rQR za>lZM$*T=cA7US-V7*J8vt}=3%RWR2_zOL8&k17)Lgz=+;UO(Ng|{;zQ-qh>n;T&4 zL)hPwoqL^w9aEV0NOEGawW0k)JsDEp{ZXSFa;A#eoBQ~7Bn5gJ-FGP{Duw$Y2zM5D&h3$jkO&5W*P@VqPbijZp}E>HlL}6h&=ezVD;gZrrB-!@20P zeSGKwZ+iM_m;3VSeSswi+f&3FYEyiH8c=hM)0uSYB;cgVX<-u$20NYmJv*IWVkfBH z&o8!NcsbV_Xc6zYIrVaohb+7ffCzmZgvS=V4wMr2(>S=V5nMP+@7vpSe2)Jm4L2b`a!u9>3UGyYx6*c_#^$*wmB77Qwy}uuVPV8Zb@A?o)!($r~_Z zoX+~C_j_u-g%OkYtFYPCx%554YEJ-`K(++dwPa_{ux2d7us4?A?54bH#yGp{m;TaI zbBZ6IHgI-OwVd6Q_m`g9V}K>#6m+M^gUyl0Z#zQi1!^r(&<}cTLfTT1wuz~=M3L^; zBlqWR^4HR6#QQSz4k5;t`^B4O;1c>_>jpdD&M!4gMPn&~-?S4Z{nlAuLyeERB;UCM zW0|avXlVA_LAeRqnmtsy2{|D-oND*4q1|Z{vQ;+gpD??jcJCQRJqhK@Hsph?-Ioup z4H4gjt+)-bUZnOzQ&3|qK{KsX%{WFhV>7qk>B>G}+p~071I9wmvS-N_s(VIr&)7Jv zd3K!EJV~^s=oFKjwY4GT4F98s{pgFsYFNY-XZ??kkJc>tr%zJL_Ww%Bth*1kYU53~ zFm1wxVQzCb0iy=*Fc`}=dl!yYEcqBLMV3y_e6| z$Zgw@(<#8+)R&=0tJpF-0qV5L&vpgT(<$_bRGNaG$f@$B{wWxlaPGJ+Z+;t z*jH5{KjJ|kcr74&n3M6RQxd{e@+LLBOVM?B&i7q#2RoHftpQ@tD|e9ty#>>oRlV~6Rwui ziNd<%bD}OkEfO%l5`Q{o3a@{neyE%ui&iFzk| z`C=z!$sO7?_3T^C?YYy~W{1ys zo*#P44`eBJd{7|DKgHxfL-JGJ3vr)(9ld|u3DJ0Rt-hW0t(};@#*|I!A`9%(NGjtN zkJ_)tH~aF@@8fIs%nn!0q%_*5QR1?O#gP}Id5M%qnlHt@(7Y>F^P8V%&B;_aWYvT= zLhZstiJ7tI9i#^uQ{a~*XB6c4M}7mpRn^CkfIwps7%+k7oPhwDM;`TDhDW|gPZjAT z#~TPRw-^n!i}W;+&TOLOViT4aeZmx`&)*8uQV7!mAs(B7XK^`s`~fQplg_evNV8X57<< zm@qADtfX>7jdi$4nT%jsNeMo@SNSRo&IL3Cb7f^)yJ=}e#zZqV?jue}GhDcEI~W=j z!+vJK3Z!9Ml3)tb$G%NLg9$vLp0Sae;tvLG`Nr zw!LoUe22@)G|D+ml*7*LZ)qcOG39iTtO2@$hw2n)^oTwZtH(vi>u(_y$?{*asxj@i zdMmY`Vi?9U`nBH@W}*T}ios;I-*queqNslDHx5kHep7urv!A18o96p?n(trJe7)1~ z2vxgZnl$l4=n^P0@wMkD#*J`ViRh5T8X|r#i8dmhlmxpxJ|mXBSrma|>pl2VCw=xy z7m+E8_!jj_5nBEAd!dmJZ`vxF1|Oeur=;a^Qc2->AgzdT_(-1KUGX=nTW-2415;4= zzKl2Auh6SseVV#6eUDH5oz9r!l8WtdViU(DOMEykd152HV%d%b81Urb^6Y}>NgQ)b z^olW&dL+g~5t3WFnBw?~F|h;GG+!V{pcoU|aoc}Pq|7iYjfo@2pWC{?#0MLzGnoKl;^m~0|cXB(j5Fak%m)S`IxxIsKNsyzFGMqSOV;F zItRY|+Aj-fgDf}U#0Pg5)zeqv)SPZLycf65jJ%zsh)+dcvXqLv>YgI6x~Isi?p5S% zCJ7-9)G|^r;%`~OqT@&2vkumC-`_llp1X~i4$^a1#W1<_+&VCMMdWQ2^=ZRJ)`t-p zyR4B!Mc%Hzb3bEi;ybP|w+MIv@LJxgpN;@!F&5$~JzD1O-v3TFq2c&Q@du{-%TkgwxYLVfI2 zfnHn?@ksmr@lAFMif_^#V&hxEGcoZ^vU7Y>{4w$Ee94dY8$KELBEFFm8SyP0FOX5R z;wh~dd2#+Dg+Isp3O-R!Ax=rpqIeYzV^kSrMRu_wP=Swq*bv2E)3;@D?CU2>EeALx zQfE>j(f3SDBd)~5G$0Md>$p70Ioq8UlBnNVn$eUh6nm_SX!GZb48igrXd&TtebqM(S^5>LA0?*P$wkNt^}|dLs5+NpM&iCkYNqXG-Ew z!qP9v8p8L@uta^q&tF;)6EUKrVTq`IVJZ1_vW-0v+sxJ$<2b_7m5&Z8ES*7YA}ob} zgs|lQA&OtNBQ-WG>C+eV_D%<8h1iwICq;c5a{1EY9cXt(AhZcKX@Nf$i$Q7 zP~%*bhu#E@i;$xuV%|c1_>mUDkMfVSOB+=ljaEJ!Owm|UByGN*H&36!E7AlHu zD6xtD5yV5O$SrlGWz3%RVEP0e4qt+bxp#(d-~9;XJhwL5BVNV5-6OWs5rg15_a1R2HF>m0C>^*bh^nq24t$H% z>Qbst9K{06KA~J&xxRyWgujK_*4_Qz$21a#O8m!DvF`7LCvmySx3Bu2`TnPWis$>Q zyJCEQ?3zLO{*lBce18XCJcv}(9+vOR@xa~pPk(3t-~Z#E2l9O{D(2$*=k-rgzW=NK zNy_)%-w@;bx48KJY-lx*?+<%&VBb#@`Q3eg`x8;$e*^b%eSgQ3?!JFDHTi(PzmhoI zeSbI$VBc3ACzGR-h%6i9W>(!|ERqKr5q7^Jy2PHx-MYjb|FbR;#%U5cT@q29$N!(c zMyMVRzOi~xU1EQ$?h@oyP{{BtxR2X09(&BaV@#li z@82;D-)R^Kycw5NS{TBz~IVEw* z>0jeb6mGnIb9v}YXVi!V;e}h;S<>fpPtB1zT%KNKB>Jbw#WTt2pjD;S&jb9-h{ zfTQp0L<^Y!NyZm0b!m@rz!jy9uy|ClKPDbAw^*Rn_Q zG2i1&5FYpZjB=;JNgk1mZhYl1{BrK3Ke6Yf6N<6V2TyqfqS!mB=zvh1zxcCSUQWl719{6~Bhl*I2u***m*e1|F&~iGbu)Vq z9nFOY8SiKup6}T1a1Twa`?)hCl4)4ljoe+a221nC{T@P}ChBkSS4jxLKqI z$sOvWsnQ*$8L4xksnQ+B8mUu|s@i-o?r_nH7#UJItzBzf3IH8RtIdwa1QZ+0K_6sW%~2oKod(PiFHu==Nkde4+r)SaI?j=Hfn|_w$%W zJ_)4J=Z|EP-e75p+u?tP7eM-T?a$`9w6JkjDibR;%rs~tKK8jVwsRYIGs=(RF!!dd zcsw7b$C&1jK@*VZW1XMe3wh#ct9m-BpRFh9uN!wz{Dz;1Abfmlv^7Sr7Ae#kXxrhR zJV;yIz4(ns5Zoe1L^*hiyOTLyG&uIQY8kRs9yd~Vs#G5ze!}C1Hq=ON&kyj#GEF++ zSqL`JEHNK4^`7@tlHfh>??|GJ*fJy`_q+!@-+=W54{wi%ct(~!q=(7}Iop6W35$OR z-AFyB5zkviJN)ECcAxl* z+iCOZFK*uuq<}&X3c*Hyw0o6elYh7S8BC%T8=W->@qsWDNw9uxxkS?*<|Q5kqFE03A!KX~#NJ{7_p z0}aOF0s#+IKtzY-Mo*PBi-|5%whdIXN6B4v3~|@)cJN8Nrwo7L7rg0#>SYb^d>!;E(>S+tDipWxa<7uR@Tyv26iAe4Dv}GA~ zz%j^K$HLA>#bHf$adfav0TN)YC}W}HeO6F|L+CI>7t6EG3DD@PMmcrA2F&Wd&A3WBtCebF>v1_2_Co`CBXxCog@xr;Qr{jX!B9%=2->Wu}cI{8Yn0( z`$wJ*;i~sdSizY@{}v}5VmiZxLZ}>S+2%1rZ5fV^D4(H1DP~f1ZlK{#cN18#9aiK1 z0B$|Nw){M*$z%5otjQCwAo99u@^|*>=%B9#*nd*><7*<1#ic}5Qf4{rAj+g2M44+X zWz;ZQ8c!L#dJvrnDGgTsd|-1tAflYBIq2L8#ES6>4Wow552!)4Ip7eOOx*AUbv7C{ zBVyR>E{KkYG|YevL;MXJ6kD%gyFD+;W(}J&2OKtwp#+=(|DwYtb*uidQ5`3^K;-B* zY*H>ni-!l!{ePnOad}i9iZ5#hEN{EW5j$*BmN>&Em93iX-Fw;W+$`~i%?EMD#l4m} zhwYhbTbkB2O2iJ$#LQgn-6Vd&8ct3 z9X4}}NDyz>9RB-(YF169>YBM*;41KOn4ntUb5C^Gv?Q>xIU9JKc!Z%*ZP9M#OC28}eZaGupWZ|DCbL0h^H`?&w!t5nNw%iRWFGMP zO$?LE+0Er(@?!ORkmXjItls}o7*KPBy$H_YC^@;wAx5Zoz}TU*$e4`2KS9K(%lh5iR{<1`kWM z!g4e(SFf_Ddzuxfdo?SlCxr(4>W5kkzlJ_Xo!EDmF)LUi37!>HNP=etb0ne4q`))i znTT57i!*r9fk90Z*71O$wnhH+(`cv}(JWj}ZHv5#G=Jis1xJuJB>!=j=HP9SXPDz@ zgX85WhujuvF;btBse?TEmnK3LhdemlNJJjA2zTm+ASs|o+)@Wa%*JOFo@*k2k>|U(t^~IB1HAkZOqFyM^Vp<;Sr;LfM%((pTE17T0p*Vqrw=A z5~1*H$QbaYn{$6kVT^L17UugjW*9q?nP@F#F_~fPod8KvOfEj z@1&0MeYT`BZnQC|#Z=SN?gdDz`GE|!>2<40N%?qr!)$zrvb`g=>95yX?%^g?jx?}? z4pPJZes_r4r37dUAde?I(yMJKIY64Sf1bZJ`Mw~3MIw3m3m7(#*hq=E4uA6}7?w>2 zdIBhNv7l(qyJSu&e)#IxoHbRd?E+pk2gW3Ux{`G3_TREw^YSFXZ&2X1Ha4el>&q~m zg4@SVw~YMhIBkP6INir{q!7On3cWl%H~Pivq1eCBCoVZJ{f&ApR74rxyZpA$Mo0@q z&PL(bK?(ZBE1gBJ_@=b9Hn2=A+QX>D(A!pq8u#Lc%Ip3$hAuyo-W9Opl*U#V?S4;s zG)&{8vx)y7ZEpe?MX|(5UEUK8Wfct=I~epS`S^kfoz-}nFXp4sWHUsYFE zS6BD+^z^WGCG+2itgTt}0>#^4K><{Vnwhfq_&8iUn%%cFT7${meLJIq)I5t{U$$kM z{kPl_nYCc!o~T6}BQ7g%K%cBc0MzXQT+7B1Y9HVJ+mZ3GI_VpWkEl(}#I%f?2dzhq zh9#E~_<{dW;r=BTNqcD2fBYuiw)4nSgG(;UBy8)ol;KnU(e!B#g30u0!^xOF-97?Z zPFq7$Bj1vXd8X!@Jr&68sh+A8UsT6Ga@Q~K-nBhn>VKnuz9gJ_zC@#!UPaN@w2Gpy zX}+Yd_1t9vm7V68$TN_HTF_Cw-+enl&zBy1MuvgYZ}rWWid2HCun33Pn$kmVuUtEENP#kLoOf;&!)xF=B=f@vKFt z>Cv@5YNew7!#RH@tb{7i2uw>czsmH1d=^8Q9(`1Q@{NxQV5UbZO}*Wj9{F%I0Qz9Q z>5D`t#(&Opho(dwM<0Pc1oNx{UjjOXC&&+OqYy?^7jEFUa6= z--l?cPA1xfjQgql6JY|oq|X(}Ul z$hfaZ@6T^(d)y~Mt;c;OzT1;7Cy)Ew6wbKMIWn%No?;hv$9*=Z(2wWd7#R0`{DU6{ zzZv(bC!~4wr*W9ZeIC^PM=ZQ+&6R{_bC-N?g#RnasTLP{&8RAwI25yvCp#Axc?NQUh72}J??)57Wik# zxUUN_<38KbjQjPd1vz%1f6$&?>L2&D1T*f71T*ey5ze@Ox)K4|-7d#<=(vBzw6Hqq zaepJVsc+mTJ?x_vHSSa4{&8Q@cHF15eesJ@tsb@PIF~#*IPS0E*?^3n2+=1``bXpb z-UO3z|Lfrx_wR|K_-SisP!AdRap+Ng@YKc_Hek`1(3OUWcshpDKw}9Ua7m{|(ud1= z|KjT3_#>Zs{tzyQ4gw$HV@`W_2wSC(Z$PkoI`^q4&WAm*9=FVAJ&JIk5X9l#A*;`b zc=hmjt<~y#+DGI&VKwATN-KSoCnBdpq}7r|qN4b!ln67r(oV$+^i}9P6DNLF;>6F2 z_=xG)crqEW!#^wH_u-=0>_<;h-kWNt0ZliNL-8lkQ}|6$F`pfU28v^gt4jYT#_1)E z|Dt&q?Jfl9Q>^65SJCk$^sXg?C=O$ci&7WBr$=RL6|QN(%8A^EBGH@ZlmY$-&FhUv zK^8c>lNZkPlSy^z@u6mSZ0qJ zdIFXi_ndV)P}<3)CN%N`9n6uj$^;^L7V9( z>*j?Ye?*2odoiTpd{n5=$}A^|O2&-z!3}PWeeZ=*Nj~5iY2Lc{(LI?N^sR>z(7!98 zu(O46TWVtG8+iYhz7)UF`qD#FTKf`hWA^*f1;=uFN#m|~)S|V&2de&aUpgK|y1s-* z>h1VauK>QbvFd;GC2Fl?Wxi#?-T}GsydMEE!Mkvf1iXe|op#=OlhR?f1Nvj-ZJxC-5opl?O>^kco*h&}ftV`$o z@6NhFzSEi0P6e)cLfeS?oUfxR3*=D9kf>nX`D|Xhb=-MtWRW}9;t5JCcOE)ayR(Un z=t8B4i}Mf{=OQj*>7sjd2F`V?z`2f<2C}~7O9}w4Kvza(yR&0Nzd)+nt&_$UB5Zz1#=0Z*) zHyeNTqqrX?Tc=C`68Z7E)`4&h5k3?G`IhGkgbN@5s?M{4@Ih>h9v)v+lpN7q1T4ZE zK1wwML-kz7C8t)7-ds{j3KYfPCS%R{6c&_NC%xthE=ufza49A|3G25AZV0ZF=H~ee z3$f%4^zIgUgY$)lfoLcHIsSS(|Npf!WMEe+3PG>8&amt-*BR~@rkr7;&lz5Vnp<{; z>#y}Y!+mW#!>J7PJHy2Q{}0YUt!2Utd60=@Z(s*;>qy3~^HGU)nq}7poMt(QI+9JH zTlcn$xP*#uA{jCGBN=!0Tcd5Z`*&pcw0L<)}W=u3>>WB{p6Pc ze_WYp<&T#mi~O-;m_I&zsOyhq-;PCOT7t-gv3k_JU?4)z!S)n<d9^aQ9%p z=4TIL#rg6L_<#zgX&$(JhXT`P6L+pYkwy^tDj$Xpe3CCZ10Qp#476A}x{#VG9p!IQ zLgqYt;}B=`;u||1C+&-)e(yhg^CUh6*lbMQh-x;`SDxo#?}W7STgXBN1(|02Hd9lL zK7`wk+LzOPWd!mX$H?r78~s$Q6mxsNP&)O6t|h&cI*DkddO!dZ(U%jJH0}s4V7ip# zf>_-Up+kTd5@})MpAtx32#zZCh%S`rj4JEPrdHxO*gv__%c$;+4Sb!#-;Bl@{GqDZ zf#C_fG=5N4~z1l-BdT!BZYH|E9uKHwMeJ&nMA1?GL~t|8c^`fEDT6E3E6yTtPC9BIxJdw z^}}U2a~x*_)Ab!?(G-1*u5pXbx^nt3e&q2^ohH&sjnk75-GoHNc*Ed zvM+tXYqq#cwlkr7kVXA7`4?4$Pj{A%+iNRy7wGBq$wdbRV_h-&5QgnGzgpu)wJs%L zvF@iy-1`wS5nj|{z+re*Q4Pol5@~O1L|KZ3jSHv^aL-1WgP}b4jSotveh?Px4nw|< zb@>$Q_J;hF9V9=1@0&q#9(EVwvl-}&Fgf?qS`LU}k9sJ{=keC^cRuNJJoGjlzEZzR z$HPSy!m*NdoLJ5=u|ag^nAi(hWOEpkA{@Sj)5$#Si`K@AJGHX=5o8S@|9^^w!$#3N zPG#RtMq^gUwa?>RK;g=2lk+FVYDjl6c-69>u>sZ_|DmXGOEStKp(HR;U8A2>wb+odE==qgIiAnJ_9cR)ozyf+vnm#9o9 zN-ir~J`vSJpga%3H65KzHfY?Pujlf0XIw+|3L7YII+x}&_!I-a^|qEU_*4KLhZ9|5 z(zB0A?%RR6%uJ5-F;3bMt2Bv>V=}$?NAiu_>BT0lWKXAe*V0i6Ss6`})6sc+F_y*o z!fGkTA=DVbb8hx?{PG$_)_KT6WSyRfk~xqu+eds9Sv83&@&%ISkFWD^{tj7UNOazm zsxln-t&@++_cqILc6Qm+xt+7`{2tS%vgqv0cB0m{KC2Cy)>;5tEPySrN(x)dZ_gHaqzKt!zOqF`S>MJl$2C0c4+dVf8nvMKweBfjm2xCP zP@|s1k!S|8*vgwI`Y+_BWkNnIOHruap1&ILUfdt8U$$m4uj|@VRS`5=@I^eJTktKp zc<}%nLvGev>7;TZ6b|scNsCaELtGd)nu&@EHA_=s9>f~~mZC01Nf!VAji|n=RSx{WCjes9EzN6SzTHs)?oVZq2M{VLWBsn^;B6zxLydGX4_ zRoRJBxf(GqHXc#8E|!^!W#VsbEOH6rWFLae>3il2SSrF>ab)mzvjGt+bB5#U#G=E0@zra$U|CBV2J z1p_rOG325&^1x)|nw{l)f{#!RKC2ds-%<;yO}oMx@aR%X2y(bWUQe3Jw*$!!3gF=N zR1m(x^X_gpoq@kM^Y`|ViLz4`z!(@UvXQK$#FE`I#+Y6`?tJdm3sli&o#0P=stuia0SVZ(F9|U6R`f$sG_5J6*nyT| zRVA=wG(JeYk`=@IYvxjakzfof#*zODJfVc>v6Pcc3IR_p_<_d`w=oSf4tj#x?dI{c z>NpO6^{V5Ith?x?ju=TM39bbEKmwE=`skd>2J$2+aVhO=F*C)FIll2(c1v@Jz^ezS z{wgBq>Qq#Saaq-5m9MmHJb2JnGTKOuxH`j#9@K_*^z!Lws!IK=m9Qi4wrXfs7O&IZ9_Oyp$)|3-98X?0Hyvh#=?HcTht9Nj zWADvyL)sp%Vw@z$%AOoj{aHLdQkibE_J{TFTHI2@KGNMjS>1W=Tm$DXa=(y|GLnowVj z#~!#LK$RmSp(bV^a&n{QnMo4Vlb|FOLdfQG2}vhK@FA91vrpu%N1pD4zm8=Kg!bT( zWyU(F4)>L0l9AHGH(~WKk-Kd!20zC>BjR3sT~T}^S>~+I;2&HMgk_(j4&l7)J7|NA zX&$bDY9T1!?NTV3$i2X)?s1|nH-^?l2b@Q4k-c>Xah1Ev`ACj&91ZYMBV{Z+bjpdO z&tXIHb2xMdqZI0JB4(9X7WJcN0i9j&87$j?RqKt=IVJ{A60bJyEIbVYNm-5%{9u>k z$uAN*RUjHnG$;B!gtgE_x4X9|7 z%1(RJK!Q9@s&nX)-Re#@<4N~(NMno}$x)TiXCez?eM`<1>wa){TdvohbuVTv*9}J@ zPh09rE;oE2d9Ad4H!Pv;vE5GCjx03_n)|ydpX`(N-v5-UEyLlq`E<>9q2!>OcjKfs z(A+&3SxKZXKx(ABWIGMz0rhp{`=+60WIdmFWhUAMV{U-!z5tilHtpRM$k&?e=+op3 zV3g$N_QEA5ME-lN6Bv3ygW5ymyZg{zXKlvQ1y9dohk~Ei$;Lx$oQ_4oXQN`gtircf z1#+opVQ=ihCAQR*=7W&gv^6nEBCtlDDW)pm=`K{|rhJl~)5N2tI{l@jD;l$CGM@wi z?LGYt2F(Nr)9bVsN1E<{Sf*6rIGjF56S+$_)07Ppxyx{2CUTc^E)!`YH&^1jbn%&D z43@Rx5UxSmYoU`IA?^w-4%@b!w$Z74QaVvZg(U7FE5^pZ zO1tAIL~ro!-V^fl`Nl*|7E>H1v}$ry_w&ghNq+7PTX1uAM;6_9ej*{7cvc*!6d$S- zzY3Xb2c)gyFcK+FL@16=eRF{cZe;$JTtzxs3Q55dA4a^i23IaA78|4ru7Oap7%eVw z!6p8Jua$y{h=NDB1=EAA3Y8U$aC4xM&+Q3Qp#9ytAKkVlLzO0nD@|zKk~Nv^*W`N9 zgow~2&(WkjbyMdhH1TeV@M9tXF4KA?D|~)pEEb!|OXGZ7^p>|iFVLv%*>nUVYa2E_ zRMq5aco^CA23?aI{WX~)H6bDt9q7~~#?xK$3~SJBDO?O$eNC{6`?XU=w|<*?nEI_4 zsC0ajHdaAL+(?PFZ=yo=9n{U7%S7sUb;Kl27mH+YC`fxdVwh0x11)Haju2ryBw3k9 zoJrac$5ZNKAOIHF*+?e3x#JoEszad&at~$V_m7<<(E2-`){jd8rh>7E#thQ-eK zBz>dbgpMKl`wgMXeFJRm8ux45?7_I_7>%@9PGZiq_adA=uC1eoD`hH;jWSk)91~{c zV$2?(q^CI&p$66f-0PCLk0C~?@OK{qgEsn6%IGmfcrtng8$E7}emjg_L1xLP>6RGP zF5OMv&Sz>hD&j>9+{vHD#qs=#>q(2P$q}IB9%(5Tl0kVHme!g!cg8#i?(!Q20rgnp zFzPTQ5&8Su&Lf|FEsUA&A9JFM+-7fn8)hG_bXL7ZhLhN|RcsX*4fbi(tcf|?@lodY z^r$di#?7ETN?6n0hMkQWt=St}e75I@4THC&Wh_~aEk&3G;anG*MnB=k$|nKKUsP6Vale9?R1SXUz5XhwwZH@@oi+Pd01a4VX4fr z&}A|D7Ex2lyzmD&6-`Q<9hi3z-C1p-c@z%~zL^i@@mjVbP~rULdBW0Y62SVu?@7E^ zbq}srV?{lPqE+@_$+SWlgNP-qW?T5?H*Tr%NGeen%YJTEJc`}El!qao@`^YQhcxky z#pvtm4r)Xlz3NAGd6#hLC=E~_Za9UK*gL`^W69WLICX<+*DL8RfXKANI$m5X&@l?? zu+%G-!}-Pm5|Y@MZBAF}bcJ6KFKRVTV|OIYCzIT`EOp^3QA!I&ssbsf9ewww?0xG5 zMBj#`t3;)_Dx8AP!5_?-#ax@XrIixOiaOmdib}!G21F03r270P)mO}*>$LP{a&M{= zb{BKK*z42u;F!>Coyt@v!fyN=>Xj{mi%4Ql7rl+q`K zGlPmXoa!isxm46kl#&hlMZb{5bWY%2T|7~8r3!*fZj%wO>qood`5RAICqZN5oqI?s z9PDc}xGguo7cV|vOKV^lw>QeAqS}*oc(}9)A_Q%~MPePE_5@MsSQDiy6etiu79MUP zhZ~5ZonM~1o^I2;bm93>CqpDnu(=Z`mpsI2w2nKtJ2oV0#PMvZ8I9h8c8kr#m#&*D z?&vTf3;cnIgBA|QVxH6rOHWm(d_2SYxuTNV6%c<+bbBLE3O$VicltWdCT4{9Z;I2Z(Jvv4xfTa~@$Qu4zbZ1TvD zCAPzOvH5MhhcF|Bi9vaarvT`n7)4&!*O3ZX5!0f2R1+OM?Ty3|7SgpkeW#@BnhruY ztR=(%T9eb;!Z32u|8oFG10f$JYT)O@>h6@SMAr0F$wI&pDCm>$;3Q_!YV+GXIi9qG zw!`8KG1nKk^c}^bLNhx;~lmp;1R*_XF)vK;o-vpw%UN#`MLK15#0Gmx@x z3%T0y68Hh$Yr*?b$6zjSOuV)tT3ZwS4MW=|sFcyz6TFF0oAi@o8Uz~f02$AX!*UC8 z=L#@w@X4&pUYwH{L5X@iZpJ>Y!K<>T(|w#D0auuGD$2vgy-ji2V9=_h?8UJTA=za= zWX4~u$O)m;6n4mL>K{tT#6Z-l0N~NIK5vKrP!}`aPCQa0t`4k~`6_Ko>rfWmM0y_< zeLedYdJ(U5>Tem7ib|)}W=!g>1+a$?h$XUA27)rr&Nr`X+9Qb3rRs*={I)+X+UJ=W z)V^^(!x#fhr#=NRD#avvo;k;ZBHsGW>_w9g0($y3rR(oB=-rA-b6t`zu1bI zEzPuBXbDN^KM-9>N$^LoV~Kl&Uu0@@+FNiq&6jRU#ns8A>RZdgjOk$E~km_R{Brz$6O@}(Bg4hGaH0~H(g z5=zV%wnQw5uR3f(Ej3#OjgTf)dAUEe;A%=~A&>zf5DUAdy{CObw0%aNABz`{QNj|% zlhjqbc&xfg7fvE6Dg|5QqXw`=w#p&FOTXE?xu*O#w1mdRR7BUOAYfq}t%UK3-V}<< zsTv9Mif4x@reT{dgz|`ejDAq^dD&V%>0lx~To9frAF_k%Cad^qkMh{AtP8&MjKEfv zs^FAQ?4Bf6pJ%2DMj~X_w3ygDb{x1Hp zX+L8?W0(S}qkZ7=!VP}IFcIczlw5N4rjfoHl#3Y)MTY#q^fd00a*(U?L`|cgPed;g z5oUz7C==t}-KxrH@xkK#1uBQv3w77`_8o0K6B_s3fMhaqzN-1y5h#TRyU8&cqoh|( zTUEg>wTNOstn9l|xW?vnVB1fz_0w$MlolmAB)WA$J{QZk3&S?oDOCdFQO$Tg9;x7w zLNP|uc}&g8OmhSQ#nfMQEQun2PT?B-yG7dW!6IFQ0l~hVlyhX|d`cCA-h%ZSPobq6 zosDPUgK6|F%%N4BelBS&NNBWTqvT2Ag44gEh?tD@R9fVb7PMWZBhV9z68S#yJw*nl z2Wjt?gRoX#m_@6K8-{JhJun*rZ8#s*74PijWBm+I3!qtd^ylE3>cKwPQoz`?P(nUR zpppg+Bs0lL!bsi^2&Mw0^Mv2Ta_67m)48xHQQ(7502~jTeL1Hgrzklw%a?UD6^jqg zCywcjeMm*|AGuQR`4GDkqAWEa7B3$leSv?V&k1M;iQ2obr{B$xZs2*}ZaW>@J? zgGoj*^2D!Ffk%$lO&=5IWx9$nKJJ%EYFJk~4+M0j`+OQ-i8}<*IPEP5xoH<4aikD& zFMw|(vQT5+Tq5ZKK>HolL;2lZll?kmS;Dg*P)xfFx6-KFYrja{(!+J#(5>Z$LW#!{ z>x#MX7W}Hg5zkhoWEvQWq>_o!c}U1(AL_~RN=h4S4rA$Id(BWh(%!%Nnn>d;a%&ML z+;L3Q*hjH*E1WqFW_mfw$aQs)GVuUbdhbiUO#xW#A#a+h?!JP)p7=Avi5BP!LJ&zpxUHndLf4($Cb8_8Tw%0u8Td>y&uXEAhFJS33_ zSV&H!HwMvogODe6PqQIWeN!@IR%asUUuM?xHC=ux+7TJ}qUsoR zg`=t_tINh}?%-9F)>W0(Jr6T|+>B(eNR@d5;^kurfLARThX=>nKiK96yV&y`EFC{5 zzQowBE_Q;0?dW1Z-OAD7GGG&|Np-_^*r#4j1ywg}(*>6#r@CRQE_GX%6Aa(h!QXWG zS@=tpZ(M^v2~I90YsIVI*%+_elTqa~m=a1ogT<>W;Brh%*8F`xWYSmph?>2)MPJnF zi#mOQ{SM_b0UE~l>t0J(d=o14`+w{!0-4818xzz2$I>1Rn+k1YNdTbh;CJ9n$jJN5vgP7w8i5I`0X zz!DsY20?fR!TE&9#s3J=EQl6H^v>(S|6)sf9N44Bfk*+7@g3`tML$c3+_^`Oyx39@ zJ0I9Nizf+!$fKX6(!0EZBqrns6)mALBVJzW=1!H|O5`@32Q-oCj=TI!>P^aM$(i|Z z5o}tZ%#_zDdodOnIDx}O;&jO1Ot8s9_{1Z5^q~xXG`zt(oQf!8$yiJg1r95x5=-uc zKSCt=AGRjZC1mAuEpoTvxQaP-ZYRFNUfunv&yEF(9|d5eD>GCH!woS&KgLTAbf`=+ z_Z_~f@x1=TbUu*q1sa{`5`&m9Ev1ztpr0^&4=KI{%r^mG+~E=*U0S|+;k(B0U8?vd zGv8$Z^G$2AoGvXN84~3UHGGFCzCz}k2ryn3r1I#}@=XxFtqosC#h1l=lK{rfWa6Vs z%eO%IKGy0m<}$vBzY+3;=dPc^Oan)jvp zRRD}tK;olI%g2vn;U$bFe|b&uEn&Vp0PZGybZPm<(gY!y`;g(gU-6YPUnRiX3Ljls zKAu=4b1yY~;}u_w`DOr|Eqruo`I@D?Lk!>kiZ6%xW&(`q3)PPh?m!Oo34BxqmZvgYn19%7Fqf5&-M)(dieETTAmc6Nd^8wBkKDxAgbA@m7zPdmB z##c37iuo1*yrb~ZrRDR4?={1>TJcpd-$Hy0m-^ z!gsFW8?E>v@;qyG`-sGhYM1dk7z0TE3X@ zooV<^QG8xss^1p??Zk3}#8)-mWaj%8 z;HdD?rRB@-%JrLN`0i4Ch0NCs@Ug;2mzHmW@Lgc|&QyF^%=a_E#|a-@TD}FsH_-6) zReW`OkzHB{EPQ-v<^?Un_g8_g-%os1*_k303l`>xrz$XeHU0S|*!nfA&y{!0R%(nx;CkY>2 zTE1rCyUp-TReU+jmj`gM@X@8^8;sE#{e86I8=?5>;m+yuo&cXLd~|8~N`-HC!`DOc z&1JrPfJX`+U0S|c;cMDU+vPL9s_`Z;UvGd<5k9)Kd^wmcK+i>n?`g$1fcXjlK2`YW z((;WFz5{mGRzV({6dI^h`+r1&Hv4y{^DMs7!cZB4ouONFaX@Wb~>;L;V zZbkiXb)3~Siq-;o{e4T~()lE=DE_&B)lrM?MWSW*;WaoT*6W4yeX(FT4|CPPyZN+# zVK5%#*J2Z3%Kt1_UPi}D-m+f>?}}r4Jf0CZKxJQU1LxA~y1vYtIg^g?O7Uw6cvbf; z?~V(YzaAS@8bHC00bVBh53=!;13RoC0bAgBfwh``=SwKGWe z4<&O~yoEJhY&43+bNDUp9b<{e#!o1ZUexAt|HSGE9*+BW9|iX-1=C^sBw;$)q3P~Z z!h;WN35lz{5wsNm4L+G$h29Rw4gfykl{DnNd?QdLpElnQ7nFW8CrAopvT9%X|DNJ?FU} z-~h=gPGY%)a+BR82Cy}U_9bP@^Ax<4;gZC=oeV!dpO2G{93=6A9JGsY?WDMl7cNd3 zu0r98Sgv>W;<9#DTssICCk@wF;d)nM43#xUxOP!opHlx!mUB{b-CjzeCyr&P$YYlA zd|}L2jE@N;Ck^9V!+4ct+(#G-6ys&W$VtPPGK_;QIQ%c8Klp4K1?3DY0hnjl16h#aBSLY-ie{S zK*d|M?FMgWJo(~yt2KY=8#c1Gz*CZB)4@+4kfd&rJ0z)_b*dz_Z(Jcs?O^9hQoCod zB&7~`%1qkh5wWfnR{S`J4={L^FUwgA3y4XsY90AehU4J%IMFewCkrIYrGiXI5+T7x zjU|%ONXnSpGadjP(?sy0F*2HlC-|BU_Rxj1nB!@8Eh2C-GW`ST##3NTamJZFR11IL zeT~dAmVh&TNGQDAOUrpw(jJ5t$hn3K4Vh`s5D0 z)hT=WNEFi;!yo(XO?%e@JWU)PU%zDsd+AGZu)qkcovnzx&-Xk~d)=TwJ~tsM*)x!@ z{jgIYUpwTtU%T?PXTBTA*Dks&kgt99QRJ(c!f<@5z?wt1)f*iosM_$)!^lN2 zil@CCFnTYOpyUN!V19w=MNWL`rg%w9+0;#$+2x0J%E*{DwT1jIyL>++;A0cs7atqL z{U-9^yOgB3cM=n7FnG`5ytMZvY(9*i;k=Y0N1;C}=nv3+l$ha|@hD6wC`;*&JSs~@ zA_~*TVhRaEe^$^R$ocX;Q76-4K*(51e^yYx0cNejeDaeii^zg070hD_^HLb5P%z~R zQx(8aF}kb^6y~Y`rj#)B2l_-6W<&r}NErG<_EDIA0SuP~2w@@$6A55SL0+LSU#hnF z>_@lmg+9z$g;{PfRLoL;S&u2qEQ={64E@n%l`Bk%#S{{T{%Fhv3Uji>a9MyDOjKd^ zvzStlrM(D9_EDHF7E>6+L=@&r4D-szY*};#IbXgb{!?u+rA7{20kc+N=2%Rj!O#^j zk15Rc7QS9hSe zpZ3n%$dCgKWG4f8Q9*_ZBufcBiWi+CnTF&0w@Ew+{V-F6b`y?I>vXwA2J)&B`psv~ z6nO=Okd-uAc$GM;#J)#B?-*^u<`(|b?e(76;ZlH?k8&cf@FmXjUzL68>g@it*Y1z^ zI_Ma6yyHVhtLOB2krDU^;;P!MvQK@T&d|sn^-*@gYuTq&LkKwAD&_)P%z0ZZrkD|U z*<{tLQp{Ox7en!rYlLmW*e#gyKL6@(-%B?ByAIrm#Bk4JRit|px@VzWJp4pR#XAGI zz&7f8Qa+e`l)~PwlufPADCxR{{G)Le{_qtB-pR3aw1sk;&c<-sKw@L`QjZ*@i!Ivf z)(ZRd=(S-yYsbH)Gl2ChR=*Txt{k`7hwuWl<*+u30Y;5k9 z<0WhSwGaqwC9}-*#$x#@AZP1E{ln;cpwfual1c zd?++TSI4p5XN>rQJ{r#NdC?caG117qX&VYd>y{EKmN=;M>m0#(yN!1(*&iP1KYZiO zPuU!vyM90@?DchZ3aH}oGHV=enB-%2n^m9LnM;;;uFO1jQp7tSB?U^69*tg|!v)53 zd=APT#!(=LqX20JU&4ILeN&2K2G&HFj$L_N1N9ph`RPKe&AIPkF&8AJi4gXNmdHzc zSmmb0ort#_Z#RT=*MM>0=CDWFyB9$LB2Y!x2tJ)S)Y}P?uuT>@)DSX_hukQ_K$v;B zO3kq$tFX()nnNa{cpC%N+`Z2KCY!T<1S-9uChJ6302P7ze z7nH|o>SO}MTI}$wN`<_6Mr1LcwpDoBkd+JR&KW*v+6fI~t`Qs=lTR3Ug4qX1BZq1G zL}5-0+n?wVz?LFPBt~$fFU5)`JfA`;HgEe|NVlE(P5G@`V_i=fD#Co5 z(eMSX75l@}VqP3l+FJM4vLD{{|0~(buE)R4A-Q$gihg3R_U+cDT@-&F_Jp<9?#p&- zpS~se^=ZnJeJZGpZe>%ISb`@M2*LHqihx&``{%0Iqe`||((f0SRh1^LsrK;M%7m0RH7 zxCQ!sTcB^L{KIeMWjr)zXty)wsOQm4wM*?bRS#h2*m!U?*0(uH`?C@qyPoJhHC z+7IvHkzv!6z)ULZjrK?Uc6|UP z*1p~jf5^Oj2ArTh`!C!AJ*bcV3P}NOKoX2{aC8L$WB|$OqN(9GC7;EAe!xAn@EmzIOt*@;%1qPr&j_nPrVJqM=OM zqkVH$?ukgDP?|dz;@TDAwn2tzFRMn3;gy8{paP1*{V*K_*kP z_hYRF`C5a=EO`Umr>Pe?znr!XacOTOy^AOhbq>SyP$u?H$$7>izI%oftysEMRW}3< zUx98jzmxMG6WT2h{hCUzU&pH|Y+Tx&fn_Zr>60xl>Wr?Vz)j?gWMR85)5q3FfocF! z^|=(ny&cg50(UDguyfZu?b`)pxcKr3T&YE4@e{ADs5%S36@2!bzXo&|4Bk`%&CCSn zqG|cASe+4DT%Zvg?oiL0f`|bcK@o;5aaIs97zkDYsS{D~cb5 zTQpAMO5JmY?Xcb;f-S$=DYzvdDlGiC2dNe{zqKcMy<$FB%(#tBY`%37Z;mxRl zq;zD+%e0(<$|NK2{oR48CtZav0vY83SSR3iN)!FID(U-UL30 z2T{U)rX+jgB^k0%5hW9m_i!LQEo>a_i0NOHh`dacwyLB|rj|Wceumv9-mB1WMF(u& zT3L*s;Qfi@5*eV}82dJC<;3nBxHc9*Xc45afF&DWSX@h55=F1A6~g3v_xC_r$!}8@ znkq+&RZPF4)?pEKs4{+m3`4rwA}$@8MqYZVn zV!!;h?9`UrchC;nJ_(jPOv`OS{PONam+`fy9`gsIQEM^cr63o!$D4O41VVBEIAm-B z=W;B=X;_p81folKiA>zTKO#TEMnER=Q4G@WS0SI+;q&C>(_e zeJpV&3NI^b$wdBElz%Ga_c!?+kWcHu-r)j>*GbUi&ML~BgMGo|cX7Gl2OjmF?Z zv#P;rGG}HWSd$z82lC|1!+7m6@l_Sk^>G|>hfP8D{3Cf(L~RpGVg)~5BhQyp5Q}s0 zkYq=?8^xDSU7s;&@1>b|i(y43?l^^V5rC4HVe(EvUK54|LfYIT2+4VtyC3pO@#qzD z>8+m?9gK`@MpIr#llLdIfZR+M`6Y5C&mz|$FA>=j<0x5g1?{L_nXxB)v6cw*q{1EG zen1ZmS(Bu*9Q{@~L%3Ze$6i7r^rCq@8mhN%M5D*);j@?Exav{&{WfdlgiO2xHz5m; zcGM2Acx}9TDW!eg_VX3s#zff{6Tlo+&ePZ`MN>v92cK7@A1>!)oY{nehAknh}SDK3el`TEF(W^&Y0A7CGCy$ zK115ApEE-G+lAt3b7CS7e)zC&+FKjorI`+1o_v(%R4;uuc3ctNz|x5nbAz20Jb#$jhZuU(PAnPJp66 zR-wUNI(2EsVE)l?RODxrv#zKVNY#HG1^D;~CFlieq zW71ZvK~J9;n(E2sBzVtlXiS>4c)V#+g+ zjD?Z9bTowmGn%6937QB&`0Q|OJPyj-<~_nAJ-XOHL3DWu1FBI8dB~+Fa~<(C6o*x)R0mGgsubn}pb>uq zU(tHfGIeOhE|~NtMl4H=!dFLYWpSb>_8ib>k%3o*U^E{RtGP?^-1KWJrg(-I<#78@2BM?{Pk8MUY|lcGElj+R|klc5L2d<4Q8h!~+ek`2)XrQA#DhMI$xd zO8Vl+2g*x`-4kqgrTu;_B%+Gx$?`g8<(uOxNVYOnGRcHw?wr@DBwmDgkSbxz{*4yr zwE&!iMsZyg3(Y!z*dc@Ot$_86!MA%O3f!dlnYGzOKpEc#2|lD z8&3+GhUk?uTkMl)1OHBGt`^F_4Igz=i%?$y;@!>B!#$ImMox9d%BluN)mC}_u{2Rk zF#tWkFiXX!o6#AV#dn{N655oKjErEH!XhT>OG9PZs(gL=m=a`0`C+5&IieNR!13iY zG{@0(leF|ygfoOF{bL1x-?oB}!t!^tT0TJe<9X!7Y43wgBtjjahl(J<3qrWT;qNEo zchMxsL&NY4fNL3Dpp*RghmJPZ)O>_T++Rc&@H;11K%lw&T~yLZ^d?er)Lr;K)CgJv z#@7AsL94{ZuObS3SO`sfmoO+=c})EGW9VEvS|o<>G0cg0+*)H#6){p zn8mT0+AxCqMl_A8Qi0*+MO(?Otn?M1E}VQ)=^k2}qGW7;8L}4CSih)IaBtCQ3#_>zY%Lh_v>h2RG!wCB1D*`*i!S9~t#FvVo?=(CR@`!zaXdlQad^BA&YPzvL}~9pd;r~P9E^W7 zI%-t{EmKuW_7b0%yaZFfstU>w-;C!Zs_yV5asQGoCkC!uk}oMF;yl<#BzhmTFAjDk z12AnI*}@OoO2M{eSf+xV7ldv2w@CYXAClHV!Nvz+OB5`{u#O6Leh_xIg3V%>uEGUD z*d+>fHNzrG+J!;b(F%3~!?seei-NG83f7xpofT|C5cUh*y`p#hg(a<;j4TDaI0$=F z!QN+B7X`Z{2zx@oo?}>71-mo|D^;)xhHb52mjz*`E7&-OZKGh92Vn;&*r5#TreIeD zVOuNM_6*xr!LAI#zL+Zp`L-V!BwN8~JAmUz%N1-b!*Uetsvzt>1$&TT-4*QWAnZy7 zyN+SoDcChZSWLl+8MeKGO$x$xSFnBz+d;ufg0MdxlA3m4SgwLy8-%^1U>{=xR87W? z3U*x(HebOOGOUM!O%B4!6)efHJO#Tx2s=l?E@aqF3U)&fc8G!vW!TONMz{M;W92AV z9>e-5*vcTR@j)@j57^39ld+eArGl_k3ic|)`YKp;5cYtAJ;Ja81zQz_O;WHa4C|+0 ztAnr+3O0&idn?$QAZ#xM>(8)#6l`q}wt0@!v@^r@Rj`^MtX{zy@TzuA#(oNx4#NJU zU@tMOzk<~UVYe&TJq+7l!Cnc%#w*yR3>%iA zVc*RbgZzqD#A`AJDcHy$EUjQ~F>IiMC4;cJ3O0{nM=4mhAnbYto94i>g0PVab_TJUSixu*clzlB1)IpQLlvwz2pgtg!x?s%f{hNsc2=-G7^;EC}g0N#1>_mp`s$d5OVY?|LJ&4f!5(H)g0Srs zY!`-&RIq1*uy3oxAV1?Ri<*p66zs5|zpYiUHyAcX!S)Zr9#pW$8FspY-4ujfr(icT z>?{RS$8=d~9Tco9!_HQ)zCmdp&k%!rj`v(@ zGR{#jJf?O%WTApBW7xS0c0>@CRIn$noH{%SR$e&UAlYMOS`;|^YepdY1gdC z(tfAl+Acl)sG!9btj^*F-oL1ar=pF^vG#_WeqPR?^*fv;LrWU6vY-Dr)&+Rwt*m96 zlH(1ImlAv|m9$hKO9}hUqa}yPt@m`wNL0;6KF&eMUm@O-#B+obP@)#PV|Mv6Y6?kX z4Xc0)FBgGT#0eTL>3}v^Xs`+jt3o+MD->ExXbXh4L};?S!(T_o!c9tOwL+6MShYn` zJ#nb27aA|>;AnGBMP9y}s)8L!s0uMlRbIRURVl@)vaU*p?DA^yDl(v1ll6ql!3P1122s66S)*G*~#O#Id`IpID$^$9IzpNA>~_35R`7-`EO-K0Km zp!scmN}c*ps*U=5^AOkPz+hR=QwD7J)y}3qwybgFY7OvvU7t?bI%MDM@3${9Rw_pkRi^+VNyOFw-DKUClp7q);V^i!fQ#BMC3C=)rxOUfclhBR~ssdWW_%t z>K#Z_@&i4s##SY}LD&qy6IJI!<3y4=mvoa}(7fp^jqFlF=kHwt zTXh ze_{flp3HpzZ$dleV!KKX#cc>N?=VexfQ8~oVA`7p?y&tvj0b%&M$`7_T`|XQj~;xt z!qErvCvAbhU<>pu$sZKpx9vdY!;bDf*z(DlrQ{Hl=Re!+NSME=v9djzq7GZqaXn_| z|1UOL5vW7ZhF5Qa9<&iZSv{3T?ui&-FmmVNbqxQ=UC(bDP%gR1DeK`b$=pM4M6bZ} zea@xFNOUFp(C|T~EV7=H^=Rv?d9AbNx6WG7I%{F;EIuLJEpeGe#Ud$6K>P8euTncw zuQH#tnKh-&$kfWGOMga+Z)1fgUD|>SzG2lFn~=e`raFTT9p{@+RZMbb7II?A^4@H# zw09B31D&KT5jVU=kFDsLulMJ>rtnyDW`QvFQH=eCQIf=XjAdNqFvf&&FU9x^rf(=w zlEj!}8RHJ)1Yzu}7?%m7B#CkTn?}`QVoa86=(<_HGVnr_B(>@GWVmg_}{7 zoLi5aqU1qu-~_{AEAdhWHH>cjjd>UmlFKPs6#t&A5&%5M)$1$$4T6e@Rpfj z3qfTTxRn_}^BaH5-0`ZZ%x7=;DpS|GGACC#Ewha+hx!MVlP)hnAAt7sjzA=diecw} z`MwnDl1zdJ&Xs!3!w*jyZ8v%VC-T^OGA>a?xbS+;C%ElSZapuMXlTRgbFY|s{{E(~ zo;lc}66j7B&v5G5+m=J!33xbkgrju%0;$Xr{2-$F8|_U#-HT%alw@3@ig4kT*}#WU zNpMAX;zCS!nu!}{r_sKtHI>=dUm1GAEl`=+_d1ms?UXZy%E4|5U!&E(A&oXj8jVP3 zw3O7d7C(VT`-;xKP;Ho4#JI$A!VQl%52w(FFo-XS^3eMSpOc|0Ink};3lhX^i*0Kw zdE6Vm7OMmw)*Pr*Ju<#{k5kF3opNSMB?tQ|`4hqsdFJ6#Ng|<=byCUt)|Je3D#^IS za>9jFGS?}5fm_KpB_7yH4oI7pJnwa1CF{T!Xvw$lb}E_Vm*%xG>!p%~zDjPZDtU}l zl1QjzgH+OMUCEv#(6l7u63Yn}Qpo{M;mvL(8zoNIN}f_V(a>dd7kXK$ zP~FA;*6hc~ps6rkslvSDU}P*3Oe96UOWhAUC=T*Un@9#CfkNHppd>^pS%nrg&OveP z(XvV{>M#ezomZn$7M1Iu*!wjq1FIiOukXM2+kxFjqxi#bQpZ;arSkFhLNYbJM1vnS z4(lj0N_>ZtiA9V{EGJxu?_BJ|!jBK-~Lsg)<`z@qflO<3DC!4FrrJc&j z+}^9nt+?ga-G!~!3laLv{!tSE7bo2<%6ew{U?5-LEZiE%*LMw9AiuF&Xc4CbSacB) z9N^NJg;>>EtNb=t-o~m|V+uxS&GKJtQ}gYGHB;<|h-Gpp%hEPjE+du!p)9wx!7_wc zJa}1a#ZGO5Wh-Kt8_KeK8!Yc^1C}wNEZ-%>RPLRiz5oHb3q-hMBlAIj zCdUM1#{HRNXbeK;B!6a}$~@Pf$w3UrWohzTi0FR&#ue1BSA#p`7ZNk>U-oT{F(Z0`W}C#zVDvu&(wG5 z6a1O_Uj7t+W|q1`ALLXMD=}n{&HifYg`YROTIGS6_7+BRIdY^HaUh0woa~7nIR7+` zylHD_L5%jZJGyreP3Bi z_z-cxBuT<&OO1rfT?yaa_V?!Dcquj@;r^h6N34W>TnY2TC5#G6xWGzitafT~Nw|dV zgA)2$2~W5Z3c@9~OX#;nVU^JKPqO@Pd`Fiz{JvxP)j>LWz~| z;Y!C2XM{`W7?f~`m2kf+Aun7)HH84(O{ib|{-UwNC|AP!(?jiWb5O#|R>JnKgc;!y zjtEMaY9*}0Lo1_S+8Y@z;ZJmWgQ8jtwG!@fCFF!lcqu3$(@GfON_ev@)DG7LC9Ga- zEV;ES;f`<#2L&aRTM4f$ckFO{xP+h3=^Z;9XC>U`O2`VA@SmWBE>=R+l~8j_s2#2h zN_cINu|r2!!t`(n`voN=t%PdqZ7?;&evWVnP3ZInMgDM-m2k5wAtPMElR*jHt%M_7 z2`i?B+To(0gm)GiJN)^wQ;R9#68Z!s+;1hkO1Q|C;N28zhr5FkdRTwx<4SluT*65~3H8>JpJVrp(J$?tA1SZ~|nV;o;#^uvjD z;SwT233IH3S+0bg!zHXn*f8ag9nP^5M!OQ~r-a&JT2R7nRzj{T;l6MQLxU0;{$u*Z zJBuAVoEk3SFLZjR7XP*q?sg??7cSxDpoH_Sgp*tebvK6E;rgJ2JFxK!PrK<3rJF0^ z&Tt8b1SO2H5?)*6*r6y~!Y}CbjvaEWgt#lAYq*3Lf)d_&&eY;KS3>O#p?0_`D500t zA>vB7HC)2}K?xhJ4yzYBb~q+n!hg}}9XmW~B}{WAbO@L5bWp+sD`BWBA$5JI9WD+^ z*vCrv3+JX9{cvJsxP-nz3IBc8w8hJ=gu}xne2GqP%Awxq*337Syx5iS z&9$L+xHl-F!b<4tN|+Ze;pCu%Vk_ax1&$pq4404{l(4;(@Q5p+cesQ%(CHmJy#KVZ z!#G#M#*$DwB!UuVSqZzj66S_W7#@^xmX+`ccF`LB(%w1Y5;_MZ>}DlA;7aHjE@3Ug zhAD^Q!^WqK9Zq*8d^9Q44rM_Jk68&lTnRJ7B@7Enm|!Km_pD=w)50ZeMyGdbv5%E- zuPb4Pa0#@D-;wa$lg17wyAs~MCe#i$1||H*O2~F4REA3!5|l8>N_gWL#||fkOZW|) z-l@eQRzkv+uuZsxML`LF%rkZv?n-#|>QFme6O_>XaU-F#E1@D>!oZ+}b&nYdYv((5 zI5u3u_vrMF9qzRf%3KMZ!X-QtlrY>%80Jb?bycVxE)7ap^n|I!=BJ%nl!i;_7nE?l zm9X5EaAdfIuhHopI~-vp+~`W!G%>Umj|C-US_wm32}{Ezj1Nj!YyIK3ryM&>4wtZd zP(s{FSma7LI9$R8bb7}QBdmmLTnRs48ES_)K?y#u9_UJVK3u|?K?(0!kNW;e#|{(2 zCF~TG;5}+Q>KRu;e@IC1^A%K^9;m2C*L(eng5q>Mjy#Cr=h?$9rSsl24rgb4iO&ke z{LhK9r$5{k=jq;$KlCsWCqEf$V*l$Ecvjsvl=K9Vwh1NOL8Kq>aI3YztBCY|DCsmJ zy&Ot9j7W1sN%=%74<$v2bV(@bo6A8uDU|dUkp_j577}TvP|_?S{f$R=t*d+!kv#(so3;E|m1!WgwjuN?K2(VWFgIBJCAQdYnjGhmsORYVI6n zjfq5hFO)QjNJ~RWhZ5wGeb!q6R9wilp<1}P|{;W z>KaPAok-u~6tdRVxROZkhLTPt(o3PFAw+sGl+=qzWuc^wM4Avv@-7BxL@4PEA{`J) zdY(u%9$p`>Gp^mHg`A0pvZz7X@~5UC`T^veX0&Il!a zM5Ljiq?JVK9ZGtXNL@lnaUy-Eb}YHpxPnOUgpy7n(vncpU?R;4CGAS2TS7@4h;&gX z>FbL?DhegNPNadMr2i0U$57IJMEXtKWBas?HNn?q$Hk1@45^i=vT6u3G-4#m8 zCeox(($5!ybb2W1Ln0j+N?JjrJwr*45GgB^R6(TwW`-$$Ig#EDC5-oq(r*;0Plz(jN{2I#d-#Y(U%HOed{(ZX?sd zQd>`eAJBol*^sQKwK$#=yNyD=QQ&_gw18MoLqVA7@*APYILiZ^&)a3(e= z`!_7{Nvq}0(k^ERyB>N#Lrx}>yr(%%ODez4;%Pd4Iee=JAtzBza){&N7wJUv>Th<- ztXtQ@Cs=CA1x$&JUlqGJbK+BkB*O*-8rd%$yf|Jo^5qJZ;qqm+Qn_@Sk07nbj++x78hED zCWw}|{@btRM6$zM)ObmGI|Io9qU8coT5DNRNe+{YET3tN`O<7h(VlH8n)eSBtt@5v zV$lfJ?=nQ&`iHHy5j@m`8>GG6L|R3q;|Wb+~iNv;;pt|>)aLVrZME|58I=lIsU+;ml;zV&#OG11wsMyVItGSM=oNGEvusi*d) zj*4y?ukN=lPRGjo`l-*WZh6R>&3M%-(vad+HN#fAUPW6*-M1R?N+WyKjbD+lEqT>1 zI6vI+s;=ic?eyn4oYY?Rtt6jNfn$y|DkuH1ZOy&LWP8tY8Zr62>pOHlua0iF1!%s8 zRH1Af1xnYio*K&v&Qls~%^JyjX*x)7C>vr`x__pl(jWh6s}+9*r42_{o>fOt(I~{8 zwUa3Hq*CYxcC;!^YK3&v>N~@jsiUjYg~5{JbqMY~={<98tXzN&@AUKg{up55tEAZk<>klMRsX(Qd{w_!b<3E$ zfW0VwtL7?8@s#Y!)45989Cgxm5<9B636sZT>WRJ{xjSjx>h!xEO_x0trfGG&u3v4k zr)hFj=}7?pfx2p7y^aE?QI`kSlr)HL%-uy@2_;J1+xd2YHU8!fqwy2S^$na|Lp647 zyXnc+%JOYiatEW9Z=8LF;;HTnOUTtxVdYQyChMv**xGWFrS;`;mi5iC`u=v8qwg8e zrL`}FSopYqqO=`^cknBnq2l$K;<-B1EE5-zP@|RRL70_J+-{6~l&kb(^T>c<_plE$ z#f>(`ZR2&A9Qy*J9h@(upsP)+2j^!_W1FgQGeE-4VEka6)iim8U%*NvnVgtIWS$~# zh{Zpmb{hFHN!Al(8OvLTn%Cv+Pka0I*(tU?A?0mJYVTYvN!_;=N>T@e$0Vtv$7$@@ z?xeNbK(;NPKKNDA)&@lle?mKitO0zJzwVFL;bDkD`9erPGjN;0(2a%()6+OGoHmN9 zreocU;uA834Fra};>H6CT`eDZJY35V$Gy`)+fY>nh4Uy#8dW(cJbfyws-yHaqN+@0 zwZGb+@D)Z$HO08+4#%dyJQk{LzmUPa!9YW`^@WA!DO75o)nVaxX?s1)oFOhO(_F2w z4GV`_jT;h<#zz}9TrW`eEk_S9T>wtAw}FRiZR5fw3YS`I9T$#v9r#i45E;?5);2E0 zZ!>n@+toVxXsDe7L)%n?@+pfIE*eyP0oX=|m|tfd9qt;*zM=bIv$%>gzTM84gHZEQWMfB$4wT*s0_L~(bd<4HX$-p?w& zJnkr-Z?th-B+RL|Hqdqzx3m5Cv4m_C*R%ayMR7gk-6T%q4tYG=XT`58Hx}>YDt^(w z+qHPmw@)3J23YyZGNb%)6^_-Pdbq8j z?{QFMB$qWIp4CxnxPzX(8@P%>s`icvYL30+B-XQ;$FcH48T4ZK!BUXv@ezI%Igw;? zVh)j=LGSE$NwOaF5M)d_{`vI>USNLxZ4sBP8~77RYDaxjlDfmKl%yW?7D!SDzK12L zBlkU$)MHMWB=rb6$>r_CepV$xQ{6^(>(4F11LmSzttHTud2_Yh{r=(3__`X*kUKvg zOfzm7RD(gsjGOP-z?P__WAe~Yd>SCm;MLYndt1|SXUTGHgUiInoVcmy*hfw?9`y@6 z+&5z#^U#*{Ki*&*{iUzl8C6+Ijio#K)u%)KpygOPT*FbnXceokTl5)mJvW5f;dSZF zrUnPPHMsA=E!UvJV4NE0urHlncZLP;b3Dc+c~<%+B{7^fnwJGvcnD{TBrRA!(fqY}-nDzPHPmC(I!H>rdh zUhN>fSE;GQV`WYyvY=r2(_#syWAKCRDW((3aSw?k zlM{1@?1a;8-y#d>aLQw|vWGvMR(u`^r*n?uvUP*rDM{_5H%n4?zKN35p=6vSbvPaA zf;)1+tdgFpBVI@$3bbsmhKF|Mz<>|j_R(pggg?hwOHC(cdZ_xDJMqR>T@ZRRdhK34kI1pHw4kL_Q4#tP1|CURm9k)8ha z>}w=h_b-ldA^oeMA<(~$IL2wx{*u&=xSJ$(|H_f1wrVxIgZoIZ+jlpREx8Ase3Pwg z+<(|5>TT=A2g)RprBbhoV7Q%NnUmH&ajeL6U`${2pJ@}vdPB@w?rS;q?OwTi{ zo=;9SrdwG6)x7$nz#mU9#Wm`JEdt9)J1>Ey`IY$uc##3C`J0r2N-W|EK%1W~0keJx zHFGAGb+yj$%U)0wNv+vRl4Fw+zXAqbe!VehMo`iH!xi0#7#Lbxbcj*(0tT$cThQuT)iG<)hc5=RvFJQk(btc3 z6uq3}Sc~=wQ}ou!#-h*O7*O;RYM|DNR-Uabx{LwgindJfE4si{bWc~&HLfR=L`m;} zMVqcOibjHp4hmQFYb>No({JC7q9-|uE^!sT;RwfsySR$J&M_dM=t)-5vu+4jG(n!! z+M-7qMK57MxJ4ho$ZyeS z_xiss^ebBHDq7$w`ikobH*mBHSac_=XxE^kL&6pP_6)6PUOS4O>L^<0Dthx_jz#k! zM;+MC6C{28GoqosZt-1j@?G=sf@%bEj%|*hhwI)f=c^}@6TyfqW_CvWtJ3Jg%OG@uK+W_82-F^Dcq6`SbPMd1N485AuhS zcgl{y4e0CtSc&x?w4=nA@T4#$-U#GtB^HtAi4tdoDbd#R&C%^CF*Z<`wnQwDuay`O z$k+3pyg^Y>pKnaP`C1W1*a~Mua|O`1oHKo&fGx0et24ed}XZt5cFEL7~eF8 z%>MR%znvC4Fi@B_)-Hj3ZLE%gd~K|zA#UZhvED(xQhGAtN-L$?T45`BuN|dt3KXW5 zzA%ull|C_$ua!PHkgt{Q70A~uyj37yxA1p^-OB40em{_}TX+TXl~KlH*llH$w(gV1 zzT1vbE)Eo?jdF4zUmImeAYU70_dvcjN|!*sHp&l&n9AITn9`~;ZQYdI`%XKRnGK;~ zfn<6hUsvX`K)$ZbsaCoF!`zp^S5;j9CqOh>F~J%|t2HWGaK)tx;u6%SPX)yV3vR_7 z_l+o4(P)VB`g|G}6s=a=Dy>#i7mOPOq`bJtmAF(QTD>tUQK_Vg@c(|#%-lP3mzPBS z_4Dtil6Pl0bM`rNX71eo!fZpxC9EvY*%^Z;`Pn`J#QQZw9JQXq6+}9#Rt$IUg8r3y ztT~me!3rUR(va^K506P>9<-Pevq+wNva^8z+x-L&8{F1!KJm8z=T* zy7Iq`qw60iO`vPbgt6wJi_!mtv5t-%E0sLfQ#;1<@UUR4Fk!5-49sy{H4>N3yj>q5cvtWuh3 z@T|To6g;bs3I)&Vi$cM(`kYYktiC0b>dMzlLzv3{)gSwu|0P7;2#bRQQ(7@(Yw)e1 z8=o#J%BMbO>vrrm5TRCl^FnTJ(}@b*ToM*5k^7)`+K}T7 zf3EC?rm0P3b-UujJoWk$SX7X)>CC@J%GaZ2lElojE8Lft|Mh}-UtG6P!k^DGp z(UWWApQoP3Km5wPaN%@BHQ7{~=`P5!1D7KEoq?rDMHT)v>y@*gQZo>=hBnX^2Ak&};4CH^)1`Rw#W{ydB<(Wu;n!3n6>qdJ}Q8Pu#9biWkSzI+Dlel=SbV9?eb zD_7MDgNn^yFbS=8dGE_c^!N4tVA+lGD_=uptyi2$wdGS>$N5alO`}QyjW)0ZS_zYV z)jJ&6WqEj=N|&i;i@baq^75N!;MZi7UUAx~u2yF1E)5iQ&W>6QcenxqnK3QZTsHg7 zX=9(qdllt1AFrC0dZBD~s+j^rnhqvaLzLR_SxkdhR%v>wrfh0)xHMvI+km+2xXNs* zCQ>zkRaKQ>%T1y$j}b51m?AwEfc$5GGGq2ZJkiqAa7n$(gEw69j#>#8=D)F}}p-<0GN@6jJ)& z=+B&T#+Ikrf7j2yu;qi&A>Xo+cAi$ulQDEx{Fly_aJyE8aQ z-OXR3bhlM>_Z?q%--YhBQg@p~cex`P>uKwIqPz2PMV>IKKEm<)StT6rsi&LI)_4;gkIIsyzVjsjbbO>5T} z6=HEiHq|gf;)KgEncZYq+>nv7+SE;8F(BD2-X37$SsbJEJ87kVeX>&eHc|QyeWhOl zrEd$Aenyf+X7ofNFF#D$;bUh+B=QKWdL@w>0R~1!ft@VCsPsLN$gatNHeyvsBF|(~ z&jd<8!${;Aqx3T%5ujvC7#(2WL1d8joDOVp!ByJ7B?EDza1$Gq2P6Z}Rm zWKb|Zyt`bc)@8G2>82}JJ#S}KuK2u^Yn9BirD%?v0=w~ZdMgl_+l)eP0n2bH=5qY$ zqxsdnpxbTimaP-kF_DlPJyWlhE6|4`#&g~~ zePfYP4Sydezv~qEymyFt6pTv`V}M;>Xu z%QREz-8d*374C?T!l^H!vv$rfnj{99aUKSlF|F=+6ms&Megb}&`LpgsDV0BPF5@8= z={!_-K3aD^$#g#1?uL1kAI=ilATiB-~>yvzg-{YN2W6K zMrOKn8ms@~U~KIIWKR?wYHS!{|I0B%w&E>opc^reMMNct2;mMIE_=Z=$=1kmqij`q zwyK}v#8xmAp@PKe!v}i=P%-Q@=8nY=VBl}c#v86E$ho?-W`XIw>UTa)qp~yAfFgae z?WS{GHa9^g_^-VG>H_>2vbsvKI$Lq$kpWBpN~pPK75^mJ3T|>}-GSUp=lZ|@i+)9i z;zPIi24vdK4W3<}#MB!wNVZ~vHPoH~0l=(=sdi$xDVmi1jtEldU{|){>#+fXr9m$e z`oK9Zp|f3w%#7^j`HQ% zD_8BC8)Pfddn_t$3jvE5%nN81YGVd0w+HMT>yR}i+ARY59JDE5i>U?>HP9a88f%Pf zjXJ6JxKfoIg@x>7!>C;UxwwE%6hpQZUVRHHq5M)-zCn+iaGe~?@C}dpHL|fBo(1_# zeUfhue^EdO{KoIk$9vC;@FPOl&Cxd0Ct_-o^Xw7Sb<4N>5wn~zubHUK=9K0;?nIr+ zS@aOG3VV(e0AwrnvcQbz7>asWX|ptGG=P2_LYR;b6r#QAYG6bt--`; z7#YOQ9aT;z1gN22*!7F)rDw6x`}>u1sx$>dGzHKgMFDIipa8~C@>$76>*@d?o};}_ z07@x2P${c>2br8eNeXKDiGu=>LNarJM#$be>=;Gc?PEvLmi{T=v{5wPVo6=WOrsNn7D!A}Wz>E0;Z8wqSLx*=os!&`V*Q+{mm>sf8d0to zftmpr=y1nQx$u;WGAce^kS<(iW&O()qe` z)^xtc?wnJdSsBH(Y-)W~2))?3vHi55nK9DU%j$Rud=HKERj$NM{D7Mdz~AnSbfajS zI3wNXARu8IY59SHk#32~0!Di5eK-@8z0X>E8m+EgBc0oL?^S*AnQi=NU)h&qFxFwL zwIN2xR;+7{Gv`1b2{!oQ05({Te@zH@hibrin{;O@PPZy+SZM;gS#lyiVAU!t(wQK2 zuNjh8o&m{Uj9m+O$o|aZB6*?3>9>2<{cznKRO+=Hm(2*e^WKsJNZaEQ=;d^59$v;B zen93c9PNvw;JVvmP0Gk~C zlQfuaH5j291RS1hRsNclNgTcd`H%z-%OcL_@m7Es$K&&p0oWp1y1(ik!{f`+KaR%- z!e1xzxR3Do(iNJ=o8yPY<0F7hw&Gy?Yk1tn$WxgTdAzGM*uiSBNHrjj*F#ovfP^&ZwRiKuGRoz_`IGF(0g58f(bF1&wYi@>wd5K z{PcGYpFdBL&!6C5!{_?_96rA)4W73eoTC~TK0hQ4W?2mmW`iVse)+gWKD&%M3J~Ks zeRod*Y^(vqaQea2kJISMJdPo$G?jqL)yvgTPVDsMO@tk@R48k8Vy6Wvy-fG+$4)mL z1NfL~ua$Wb@$hx{;m5;BIWhcUr9IV}*y(q=^Yy0l4R+@nRcBVlO|?~+TJx!fH4qTw zQ;#7Mz@Nrn$e(A{!XGV9GXs@Pdp}%=eU!567KTgdx{#dGapl+GjXK5!G&1#!I2^!s zG*%B>bY)C5R*$aMnl~#)!gwiWaf=Pa3h5N;z_MDlrhq`chEPbdKaL6f3k7*Z3_iw0 z3_)b5q4+`G!lRTlZxYr+n$z*am*&k)lf;`0nirXMx#ow4%*U;nNX2$=MJ^t-#d{)}3XrjKC#w*J2FrEKwcfM0~W@Qw4 z?0f9uV-pi%Cvw02grJ`Z153;5E?t|@O#X^aD=`7r{7YaR#5S9Q0}O`>W%(tb@o`ZK*76KeM*K%R_9e?4$G$m6$X0A@jq?OVYfYdl z_hN&O@vlMTX4N1FQckogFJ`6h)Mo~kOJ(VT7gIrsb5E4ILBXCr>i{v%slV(4urJt& z#E}Q;?lCU?9q8VV2?Xz(4Ai>`1Q&gyd3+guU~Cg=&&5|OvK3F_U&F$~1q(kAyiFR^ zSPgbm4J;m8l@+W^;_*$tE5KuS>f8h{}BRVOAz_dAlQHxvXzN zYO!_s$=&0*T=7&iZ9 z1PSato6koMHkr-+#4X>uRI~XY{IHbyn%&6etMIR3bERP6EAy$+V6@d>)ovmOvYG3e z{iH$j@BqRGY>>q2V-GLDYMalW0b(4Vck}^7`0RR}ziR+7oZekX=sl-PFDS(665;f2 z_|%i+K|cJ#;q+!eCtI z3vk+H)n$Mg$LobYh;Dd2QUi$Lb;~eP*?V5!eqJG7uO_^H<#WyJYW%RYdiJhlWdr^- ztUOS#@U{ASX>gI%V2Em9czv!kINxee$_7cizIse7ujAbGI)E9+>!W-S-SGOYT@-*A zUZ1qa0_Yh3#-Ais)6Bk zKWVV0)!_CZbVg<*6x{vlkXT-;;4b8>@B3{$v%fgl!03kA6E%PsW-rG=_s1yqbJ*D= zv$Zne0A4AhS7*^aypAQ)C5@L;0M<~^~PT-@KW~&E%)GL_LCaVQaqD$o}R${O}9i({p z7a0tc>H~HiLbtvp+MD?Jd8t zU~}co97)|iJ>Natr37p-`k42w2cej<3$93Oqiy0=q<`BHsM#yhi*^VcN)D9;R-_BC zhhwnPr&%3i`uqyQjxnbG|8$IL{-r*9d}F%d0Hp{I8d?6`mgPfAmaMcD!5Gt6-T7hD zxxw!I57n8Kaf%=(WfiY|W7@%2eaYk2DTmv#Y9B_pS2EIMDqL>FHd?g+L3sgnGk zrYYGxSM0B(BD*iNu#wDv=~pM~_QnIe6f14181tN~J9GLG^E|-re4y&g$~dXuC|Q7> z!MFXQpwy&#!0B^iPN7tRyeCQHQ~bw2YxS?c-0mJI1gcQ4p+BXdvl7tDbZ3%u&9gpN=a|FUbM{eWK5bw^UAKg-36vD$dGLxz?NoQRroy>PWmyeZ*H58v?g9ynNLh~K)FFM z>FHMB+MYq7rpm?=@2|iW*xMR>)4?m@D_lL$vxXiW$OiYo6Et4r7{fp6C5@YolU|%*0GV?I>gjKE{bxtAp4&`$ z@7)d#UuUqn%);+< zam${o+JX%a4#uoeKenq_`I}%anx!ZrXUMi+el1dyM@9Xx&3vi-B?x5Mc8!tldFn5) zMdI;n$LAVjHu|oLUo~4@f8?`oC~oD{IR-=9$CTF-j3jfB?SJC?T=hajRJ-7q^=zyL zjI6(G7g-w`uKWB4d2%pnpq?e$tc^%@F#(3e#V;X+Zy$gsJv?Nk2%l z&y#-(`a4PgGON*dd-a-r!N}16UK0IS8u|2lF8xrU_7$tg(htf({}vYgq{*Tmx5dM@ zEcvG^1Nygc=?7^x{m`(jx=8;DoBlm}O}}7d=zlkfek=oh`agB)|BUpn7E3=U2mOOA z`bm>T|I#r1FIe;k@uuiMNVDnx81%Q1{*P_?_vkhKf{~&Boh15^6!7W)#HAnR(7vK1 zmVQtU`r*(_)@T-Kvgn7Obmc$aqJMM34D=tQ+4RTT|L(n}UobNCwJI@2l~I6OFu}n>5sSn5xu5gFf#NnN}?axAYc9; zyY#~x+HsC5j($)M`r*=i`bm>TKYXW4|5+Oa^anAm=s!ra>5sSn-Fi*GU}WfjJBfZ| z)O`9sa_NUTw6DPI9wUEH4*H?eKK-Q0qF<(8+yA{_$-j~?1N{eSHvR9x{#$AP?^}(& z8{TXB1tUZMTS@faWzoOHr61Z-7t{RLIlYR_dBuN}l+Ddutu;UeA`&0#HVwW{G|g(wy>-gm1M zfN^zB@qik2ouL>shf%i~nn$TE8{7hr)8j{)udW2t9R}1$f4!;!mzLr>9jKPjj>k4U z=IdI37*w;U{SYML5Dn95+`&SSeaDypYdToo`>7U!@-l11m%qZRq9pw|zCd5c*6RKI z0d-!`6IC-6y#wx3P0CAdM^7+Ln&HjeCba3_g)(@-CT}V11qC_PSl;F@xkx%FmH1r7 zDbH~Xv@2OGb*kMWt6isVr~j7BRqaF`%R+VQTXnj9of_wuI`uq2=rc+KZrrxB&5iMz zd|pk^rGRSyE*EoOmmLLU%1icx zn-p_UZ*HSqwqh%knR&KqL;6{BCSTda+f?$up5Z&y9=!sdDj8p(<<-*uar9ZA7wHW)_`T?q+4opCG3{WMOGtoG# ztoJGaP2M+P46$6l2Usq8FTnCo3V@I0B{GPM7${iLsn!r^_ui7+HOS9gsk?#?aDKuJsTLG%dXMptDJ!mrZ2ys}y6=mmAknG7)*1 zbf#{ovUd3c4gUd+QCjYn?gZ>m%4AmiuNbTcLC8z0Y8a|0z{M3&0e*xsQJozZW9|=T zN_DG%?;A9TF_`9QGjvABi6h`7yOu(TZOUd>Rmu$*Wm7*52*Th-SB>}30Mq@%(>xt* zEAvy__~j*!3LWF-OV=87g+OHbQ*Jdf{mtFZa>HmV@g)$yZ zTbF_mW)Y|_$G0D+rb6EVK=9Aeb$-4s)FxX;w9{GTS~Fw#8aYd{V+QJ9AiZiWk<0iT z=T@tDBh*#g`AgnFfna8QjCD! zxcwBG#&nvAUn=v)KB&M;>2(WMFko!~UFH=|vZi($i}S;!TCVIXtDE+%aDV}=N@Qc9 z==%@lIOHp#I$F)DrFsBuKFmjP^l2ujiHCS zN!qxIfg-y)`2)0HKM9?DS7Ay^PnJ?~6(0y#KVNy5sv4}o@DELyFYEt>4YPHsrm7rQ z6HhwDEQnO`sN6&{oh?RXC-7j5G|r8oc-7DJAT2$eVLw6+-$?!+7d0$g*tcj@raibS z`DC0d?ih;R+)(Lc{0l&zSIUYXa@8Qhnj_bxw^%NU=Whe&^%w8x@?(k=$F z`MNfM2YJ5ZRYJ<%!2NI~!b67uE>7djK}*@HoJ)+%R&|q<*6|NEn+(FRg=uOHQ7)TB za2+sMUi$4v_^j^O(l032YmQ^Wn@emLuz}pj-oU+ih1_F<6>?1S3v%=E!$_(Y5Nnpae z@Rxc}HE9eG#R>4xdQ{&3oBqH7&DRg=N*1FG(_W~{G-^Z8s$Qd5avE@lQqY|nEw(k- z?IltTfcWh2iw5XV1eo2uG$caRI|w*sD^mE^IQ8Gl8#ZDoxcOxUBO&bvVCEleX}ROt zrW$ZTvLztv?_;QczJMBLik=O4oRhW%;dVeU6D~<(H4%AtEt1Pi>eMXB{M$dRet$r} z+?c+4|A|M+<=hmymMoX9jEV3bsqomoCklYh{wH13RsBJVzjC1yhUco1n7)r39B7TR&1hmN-)0Qho{px2ORgr(#QinrbjmThf_%Px0Cz4Rx{i$_zl&JEpT< z;TGwe0E9G`FFdt{ovEt?-JnJO0G+*lPqZX@wMs8mrBsr3yw?blR10)ihAJ?cid^@x zh*qmqsv(<`f?Sx05f6ii{>L||3|LlBGo@F*?tcrqT%7s^_3@#4B$3*cxFOnWlZ0MR1ig-l z_G*6~+`xK9Tb2^Xn=D*CC=~0S>lXTEp4-MT^UL_CMD|6?539Tx96on)oBphhb?t0s z3NBf!?o8uDIc2jEN2fZ=W)}^ck54;TjcPw1%1_&zl+N}Of053lcrk50)d}ZO)KQYI zO?4J8Of7}y9gC}YQ=Msk6+5+5-vN6aR9#l+)o)8>b}a9FRjvnD;(iYevhIAvwT0#8 zTR*hBjTT}{z^XT2+VOyQTc#zQ8Qn51g>9>2Jpe}`vaMherVBix7AYKlZ_=y4C}nfT zq9MKrBMs$aF>|QCzcyUf0OV|-V&6lr0+w?_C~)&K)gNcZwq;Wv%lAK)bzGDkOH@v4 z+N7@IP(*^2^SqKXnor8K3~9#q;!`WK_-ag(TaC|#WK%10>Ei5IoVftv#q%@Ir*kDQ zmmrFo-LH6BpKNNGzED_d(HaMl9#Yk%)B4n&wX9F=l(rKus>Q!+TsQ(_aI7v!5>N#s zPD}~Ri!GR4IA(L2Jg-Y}d(+B0)<)ObrlDY!Jma%Q{GP#M6GeX|Y%Z7+vmJJzQQ#NF5ec6y>XO;~)xuI;xSxsd_s$0s2Olh-JNml&4 z=2&v!xIVa4t`|&mf2FwPY0mj_@-@BuoAen?P>p%%D?Tjhq*Gp!9`ZtZ_?wf~0h&c< zn6ABMP*)jMvK@lIV#zA}P7irA_+9txamI zYuCJl3zdMCuN#DC%$t};Qy5+^FLiVv3A0gINv~sZtwN3IDpm2ga4Bn6$Rk%F4bMA& z)494|@()z?_wYekRfuZ_bkp4KeK6filkDSqm0c(GOayTRb@rMZ;6xg&UYg_v@02LfdVVa6}eg?*XVe7y+`$d%MFz z`Inh%nlnFprPg70FM#cCiw;Oo)6^xmqWp8-+c?tv0yLN2La6`cF5lN=i>&W?f&8H) zKhrra^(JnpAKOJ$_^0@i!;P+9^#%lPUyb481?1b)eD&$AXKJWqA!hj1v4ensfo0;Lba>?P)=Yp(V6CHVSVyFm;h)i+0MUh&g*+9RhfY*g^|QQict$KA4Cmc;y72Yy=!3+o{Dm_TA_o@#ji-R)y-PB#iwTRu z`9H$-%y?WMNyb(4UQ?3JS0SIHam-gS5aA~u6S=9a#`MxXj1}FY*wqE70|ioyT(qXX zOAPhzFU@aUT1`%G2M<=r3SL3`LiK}%DV#-N+cIH3Xhs0^*FOnC2S+m1%Q8yG5UFO$ z*%JcGjBz}awTys2D@7xCv2sZVI`lGI6 zm}$9)DHQ_XS3xIjD#bdk!8_Gl0t!e`vUaGQ<%vveqx?%o7LE9gy)Ol`O(9hU2vU5e zWN!$tEj8K6CHyw)los##Ruv&h^oRbt z0x|W~;NV-+Xm*_R6NvjX=^nKUD#PE#DVJGLX)oriy!QuybCt7*C1f{hXGm?{dq|bR z)#bgZ`gbz#Za|BmR(%H~vk5)##1f$-ZT?+fdZRqDg*{H@A{p zn(&n7QaczWZw^gq^zPviSjPC->PGgu1ib=Iv0pliW;;t?;nW6mb&uKw!z85>NHApS z!i{GD(B;+MEYZArS8DTKrz#U(E!4jQZcr}7+mj!x(IFd(J}m6Xk6~K_B<#r#wE&&fy(e#`ibOp*zEg)G;ywAs7@-4u z<;v$@Z2*XSYUfi-tv}Y_SQ=SQc03~0w7C^^FP5u~QzWCiX0JkKi zeN#F+Mo)94Y96&#$YHH{jFW*TsoDJ2anrZ&7M8~>MOvaB^*Jt(m%{fdGXkW2{$hdd zL^nbpkw;p=RM3hhf^D-9SI^8KZ+UxUX?^T0ETQL8h4!Iq%%*1Y_gx$;L%)N$Qh!eC zT4)B!nwXuz2Haefh6p3@;+!n! zMLFh*xqyBt%6pGWb_dab`p7c)BF*NZ8QwJB(KKsiH_fh2lMot>H}aTKk)Y{)=@I#O z(qV94jnHY`RDdrQV8~A4lizy0Z>4DTt3U(pJJqJ{Xhw!LyQH{C%VHVZP;?rPiNu4l z$d2Wg;rulCGRQ(XOpk^+Gb@)Ul)a1G1*WSu-vb~0F%)vagIR!#85poygLc*gFebl zTM~SWg{}lI#Aa_qg1_X}u(H*DPeddblEGwYtS7GUoO2c{wex&dkzw@E<(~L>tyQO> zlO^*QxtaMxdRe~PL|5caGxWR3wtxAynq>EyDAx5f-nkT#jiSw8?<2@c?F*8X!|^}X z8VeYGG#W@r-W#DD9!AM~|Hdxw0T~>!K+KjMh(7}24a`voWEPmm$#}%sFsvj-Wj(K< z`l!Qjn=SG&$gv*i!c;4K*jEt4V`xil7NA;kNrDCMfbA9w-ZC|(Mc|Ed;Q6tj_$9qW zdr!KOrEO%{OY#V#eGWz&js^X>9WvtAD;R}n1@Uz*Xk%%OuZh-5V3JIYN~;xDSYlgg z7+*nfx!=vx%)C+bM79y7#aq%s=2LoE2;TlsU>GQ%%H0hf4b~p*jG&8dxwR>eT&>sDCC14 zWK#np?1LoA(Ws73h)yHt6#3#b$1fw&f+uL-*iO(d?N|@awcGH>_=0r$Cmsn$N_i|zGzm2wq z?9HsB#Us8If@M6M5UsmyGZiI(Gc`93;-OGWH#BA`+k-=IC^@zU(!LbH%F$Yqi^De0MK4k0K1yyb~ zm>kxbK(SvYo?4J(@5`+Lp5Q5NwpNM0JVJRS?8ii-8>^rG9(#CcqGIqSklmug#%+i+ z&!7ZFi-cipffGJ2^2h;~8}6yM63|v4Qd=fasXTeFv>WfYVWIj&pTG1=^}j@)|AvLa zA$Um%?$EN}a`9qXSC_D9CczsDH*~|W&)3p%_^u#Z5&kQZ=u*&Cg#QS}v%RzVYPVYG zv}UT`%pgyb8QnaJ`7wQd=1=*RJf2qKefMXml_cE9(Wb>h$m0XJk))FO|HS}YC+eKd zA%Fj26&Hv(oCAVDs_-bgPN~+>nNIT>QGV4MP*!eTj68PaaTZB&L{`!Pa{Ux>g39I0 z1356ec3>3bt`-LeZFB-mJa{RWZ;3+&w z_hVHiV=;RV1Z;j~6?F&HG?-^XB;1RLCU0vQH_ zv)M*`u8YCSJLrpT40>pb$HdqoKF=sG@;bJ7Wow)t=`D@2lOTH}!sSO9;fJ}rnOdhs zxV&K;jY^ySIL1ULRprQY^As$N%;ZNH;fNgHQ29Po;pk;<%w(mWV@i1=va-KNc;uOg zp--T@t>_nPA!d9iPMZ4?(OtwHWZNWu7je}Dq@;(Lp;tEm{6iMNvmCWN0nyhz4|4R0 zf>0!$u<*GZO=9q=W3g~PdOqcP)CKr(jGmrPIScP1+wqN=3q%YS4fg&=Y#SUV3AYg# zM!uztRpm5LUpucE3ky68!_rX^CuXu8Cq?;}6SmA%ERdt4!FnXLI`{B0vaJc0$AOX| zsr~fR=x9G_CLBKL@rxNF2)E;6Jz0mjmDI&`U`~~gp9Sl_Ey(=VrFF*HI zahbJ*DDghHwTJ$}k7RJoP;Ua66W=uMA>bLM0q$ar+oU;ceuvNHR>njPCUoj;NcGMe zQA{l9G2BoxS3#NnEx7}po#TC2e05fWDXzYoyd7|%vc1Nzv`j;z<}k#geH(2eFyUsn zQmL2~*jm_8l-nS{w$=#NXpSGSbvh>QGT9JhKO|I?P$QfSIeJl)SHXCl;&!?aD8n`s zye@TMF_3YO*LU}x0L^yScZblk=%qmgUjM@|&1mAh)wIPe$?H3Xp0=VB0L-??xcLu( zE~oD7f&Fe>{$E+8bRxgNlHG1yzDm4dSLSOqM^wFSSYvtDh@KiQSM?jhV64+{d5CC& zg7ocM5lGrHBBwI2nl7>Znb8c(pEqK$664Q#@;J$#KLFMT{`?{XAZ~ssap#x*=-I75 zN1v!Jc9WIbhCYu|T1ecxOpjS@MPWsD+}@`u#lZXICL3OO#T=-o!^drTgC zl9fuMOIP8nl%+Z

~*a?|2MinYa;iFKPn|^mU15+QsdCzH}JW7udCg0R@|&ze!-> zJvZ7c^c^+F(qRc~NFOSQjEXn>?8#5kJ`f&yWGH;~Q=LtMFi1f}B{rAwZO8#D2`BGm zp{2Hew%Ms#oEB+8OOEQ5lQ~@vo#GI>;Rc5xn!i1xloTcrx|;)+x|#-(%}kxe=P6N~ z_nvOx?i+MBm-+zK)TrHIE{6#}ms*S?HONNFE_c5{bhl#{0|fw;qEBIN(h7i%zFvN- z(}(=6&j@{UEq~+H9yx8GH8Z8xq8Od z2$pm?8lhOg>VlpdbNmD9=lT}Tffo_nuZhaep_g-7VKSy`(PwZfB4nPy`|+kIN|-O*F!!l7y~^Aff7spMr>l7 zd2cn+S=%%rriG=wE1AQ|*j|<;v7=hO9)D(~O3q`=VYem!2gljFyhVE~kMe#>l^O@{ z1m?Ez_a%Tue=Sw!Jlm&ud(kvLxZ$N4 zm>?#y?sAO{!W}=;mz77Z7~rW)rms}=iMxkxrf=N{1~Drgc(=UwANmW*K)oQVb6;Cy zrU+ygtJxn)n$y?p*X2<(`=%yEd{jS;<@@K%3uoY#XkVr?aN70T8Mw40G{W<(hkmwZ zfbno9)$j+#K6IAMUXjGM31yfaa>TZQT^Er1HZllCJ2vo>HsDVr#>oA^7( zkDeosAa&0@WTn2J`g7m3YQ$K-<{DewS|l{8B>%KUOcqRU|0cQ+K*ue;4JDkT7hh%GSQds8qgD(^E+@_8O3 z@6idhA^An*U2%mwR;ay}_tnSyW83o9zvUHw{$7Za!~C1C+6dwl#mZOlZXfxHSNI20 z__`Ob1~R{g@pr8DRH4F~P@}X5H}T?s>HI#_R{m8Z=l2Oo;_-i2y#G$!i9jtCNP-vitjd1f!dU$~5Ag<_&HzEQ`-L@8yh@V9v{gOMzC?af;` zm-;RN@7;(%H&lR|2-xE(6j{Zf)~sTVW&{12%sIS4OrN&83rvWu3i@Lbi`KP?#g1H;m@Mhn>Ym=j(;o1i9P27CtGviZ=L!_ zLiImIvu*|~qgflt)!F_!Y&ol#;Z+iu{N;*$7YbEW%}{PQdn_E6|1$*6@*VZ5=j{-*^ee5x~K1hS z&@4QxmzfsP&|vPU6C^_x-Uk{2qFciYxW7#fTe0PLdYtR|>{Rl__c8yJ#}EcPPmIT4 za4ZIlL@@a~7_?xA$bX~#f?ds!D9(Ea%Oi(GFOyz+iys(ai5uyJqyb6b4jB0siPB#s z7?vbzpOd9L>hw^{*j&tN?hZ2Bh_U<(r+thK`PyY*7S2zt2D}vxazacSg`J<;j4dMj zLC3_=n?wuE#ql)OnGlCh7@kIczX!_eSd;xbaI7NL8DQU=_-AK+{0WSZct+x%*A(xY zsC$n|yb*dU`IqdXh|+`upf zi4?lKnO_TqQFzVg+Z55e4^+Ojx=k@7@4X{k2ja1f`uKu8_GFi*N^zl_e*()8`yzY7 zx1=Ug0*ec_We-)R5n;@#^TI2)cz6z%`y~K-M1c8nHXcE+COH@#3<%vK;rna|PH6Tw z3H?>Hugi*lvNH!1;qVCR2vVz8lt;o*Sab3Y@)(+v4@Ub) z++WT8BekM@pSBH)u`Oisx#5TbH1|LfHxsuQeIE>Xj>W~pg4w$IzFz{o)^kGe%8kGG z&df2vYCMYA?xuj^jPADJ~-d93uduFC0MK2I#T%M&IZ>Aohi>6Argf! zhHy3?w*VlhiG@L+Q~FrIS$Zr{Mm79IA=CFGmKUf7EActw{7cTNY@mEv@fnQ zvos*0m7!Vq*tT@td$@TTmbGBo53A-dlgo#*z~uUn!Gx?sB6N-OF5Tcfv>?tayTRG# zfQf~0r+69X!P@zya(!@KPF(nE?-T9owDH5pl+C|9Lo>BU%&I~wi_%ok1=mOFK}C;)zI-CqK4 z8LrfSf2EJ*-;HN$mRXZ`u9r<+%4lEDjt?r2gh_}8<>h8v{KaOyc^RgUJ(pg{titeA z%SG#%{wJ|yYk0%qsn!capA0~oR(Q##^LH|>SIXSXXdZ)L8O)QOia&c3j$SggA1nx> zj_q<4-~O2nRkr01U^C@F0l}Y5HdET;nQ?CR$HAWZT6HjR5{wtAIBR1_@sF=EZ=%_7 zvR)JlV&?)eB1nXwt9kD`L5@Xqum>VK;olw8L%!m{oO$1YNBDjU%hr?tQc!K>=}v(| zAnZdX^MdW{rk&7RU(R(a*(40%T8ZLK64qKUu&ObC3JIcKM~3_t&8~U=;H7?wkx}OHSWV?r=Kex zWb`ydahRWl6LplTKCbW!r7ev>95~>OCIZjkYh1apHE2_>{ZJp(tVx=Y6B&vcq8gz_ zyXqaKKLTR})8q1@2XQR*`(%Md_F_Eegv@y#_DL^)Ctdt%Is+wH=zXY^P4^MF>h@uB z6@UpTC|!;TTj@n^qdveC+{5830YRl~)@K%^MAt5oTBun7#p?T{-?vfsEd|l-4_Snr zAXg5;Koo$jm7Nedu~Z%d&wKsE62=1Iy@9ae>JW5P*$^}xS8CAR&kR|Ocl|$fM0i22{^5PNCNa(maR6V`DGZRkBWg1 z`rCw^PtDN&2VBGZcaqRy@)j82T)Hr1s2ZKJ#c1!a;#Ue?3>*lwIKbmEfQe!HYs^NA zBp%_I z8Bj5Lmf=xxv*qm@l(&bNb~fG?MV*?=tI%8C%@v`X;=>}7K!UL1gn%k&5srtc;#IgP z(3^0gLGC&4rjvYMy8&>n2MA{k|JVc~|9OpEmSRU)mGr^3D>N^&xNGl;BGhQE=@`JZ zq8&yAI$E?szEBLbCtz89LbZFx*G6-SBhb+D^`U6B3&IDZ#lG;lMf-jdvjT>MvC`7( zmy%^vA7~)wmt+0nFTbIL2SV;%(WGCS#&~}fEvdbpOyrBabkz_eH7Yt$8GQH2)Ey2QBSyiBaR#t;&ym7=fQQfQJ&v_r3aPcS9oj4py|iV zA-V3)Qy`R6AOjOs2Z(n6tr6;(vb+o;y~Gtj8SYv5Nh^TaCpcOV7ummRMfRia1v_}V zvBaQ}$ll73O#@&zs^{s~o=5dtF$xolYz{^BM-Yz0D|?r=@90MLl{flR_0en=jp}!% ze8eXp9)p18gVr1eVJ{OfPBhKSQ3s4SuV+iLQue!Nz z0tRn{IyE5gIScvdnYfv2h8>is{O1f>;2$uAiaKZVaXcQ?SuJ$Td&A_BH+3}z5x;69 z3#w)|I*-9jhDO}LhB~HtRJt+*WSSdk1Ejk)ggN1XVFH!_`hfpc=-z=(;&8Fe-l8^- z%c~z)U(05U6s0Au#u^6P#D0pt%YE;T5z5T+-r~b(jt-c!0mi#}d|--CALW~3)zQd# zcF=@t7ff(&y>lX(2;T%Lyh$WT9ep_Z>(_wfln#<6Ww$W)m3NJ{0r;u!A7^4AkxGy~@6m2Vr%yLhnSD(3)0nklAJHQ0$%E9u#67MggN@0kT#mS;+Q z6^(~SjSX3IB0M*~-Y5ayiX%es6y?NRf3e|P^mOTRyq@xc#&sJ3fwk@{rea`@qHIZ7 zX{~4=cCMnVkEi zRBI86B6@U~MODSR$RIiLBr69K$=d%)B|ntt0-X(OyOh8n|3GwTZ6y!Rk54#z(-X3y6R$~V{= zOm79OwXP+uBlb!d+tRthI|)M-0H4|rZM!GHw-#^Rt%-g#ZLdNr;`rKQ+L{yqpEj*W z{|nsD`Kh>12;m-*3unDBZ=Bgie-{~g*ve@*lkz%_zypkqM#BH3P=3PdW^GIhreyr3(llb{<9=k(Y{Sz z>Jv21nag6ob||N0L{;y@^skm7ZPeVUc$7=BCGqnV*QWZq-$3565NR8EkEh3h$_GOP z6%=vWKvoG`8G16@+#gSd-;y0N^W_sXi@h|SqT@v(k{}~`fm%FAbW6={u*dFmr`lvs zR(TW5(7+egZGU(CRH^ePVae#w0SJ%&z)E&f^HseYAx5JFJ+0|?Fs&I?70qs#cD;x{l=F%3GyxOOOc7@_YUXT?ZAJ(!)6cU*!bHj9i@4$$_3xQ6S=%#ijZxaUg)Gt>M;?;LSu#)UD($witZp35_@wK&N=e3V+Dm2kwb#toI`Z!)MS0m+eWikeJ7OXLPso#(8vL^J;+&HQB^PixX3{eyG z^2G0rcC~2%%}&tEEkb(9vmA+f`D<2+=;HMfZ+}LQLET~Arjf8Fq?h{c>F)J1^%o4? zonDIZX`@nld2K09iNxvUe-J{F&Ok5MA}32=Z^b`E$^{Z)O3;9biK1VNSB_pIt-ui|XZ0a||(8zl?uT8-X1yI-|CpkIRrCt}t(6yQSY29q7#pY!ex*QxU<9#DwAX?$9#4E4^spBSRu437F{#l9t zD$ht>0RrVHJbhi+3s&^0W(WtJQ4Q+G`Qx=fi~p&s^hxLjNe8^@U8H;rTC8iefG8RL zDLCZdL0Ex#)cn_gK(`}kW*YnN|a{NKGJ@HU;Pu@EpV?=4_SVGFU| z5xCMP70M?T(xgefn{YVC(?UY;2)ur_Zy`*IXzvaPzJ*+=3aT;7ijiReMg|*j`V@FT@W8= z=+dRo&{@L*4Sj#Ouc629)*B7wJ0W2WeG$;(HS{^wNJ1!9LqmHQ<)XFGTqy60v~-(Z zeHfay!mGnkk>~u6CrHE}o+zeFv%p=hI$b*I%K$~y>Q4C>iljuZS7%57uaC5swX>%d zd-NWtkhuYW^Iji;L{$KAIHYPlbl&SbPIMHlWDOcQp)t@g`oekDmFH{5h4QM$AdQLD z`OlqKUGzIYuX-4?L_4ft#cVHe-F()WqeygYUUgYeH4shgylV3VN1{4s20N&R)>3jX z{;iq5=)xz6Ble-t8|rhJYL$sUbUT4cEC7j$yz$qH z1&9gt2>|k54G3^O-PtVZv8Q{T-(MA{jzJtxH;QnKr#nc+0!=b(uEIOb_jHG|S@hiG zHqZ|ggM$js)BSN6>VX6*Zs=vGcSZeG``x5{lA|jjbmd)ucGS@Uel!d4_a!0|bYQ>$ zi;*c@9Gzf93j;>{1J=s&nRzR~3e{K#DmUIX*3IpWp}cuJ1#a#?oaohora$~PMz5Kn zRQ{$@j2Wut?naq;)XDEEKc)8oegi=`>u0BS>)zA`*mQwQoeC8b%fdzi$g+8X?06XZ zP~XLv!*tNq)kIYkGnMaCB_LKJ1b>=beJkOr=dZ-HnFf9!z_7>sa$;~h{i@CuHmVg~ zGgfe7SWl0kCt^0ZLDgV}rf1K4cS+5Bic`{pSejvZB?rL8?SIO8E`p(F!Lh#*Z-?zk zRcyvii|`l1#yBeDpY{&Si?$_Fk_meeH35u&jj}tu-cu5OKZETHcWm!ZCZw7r&b{ zOTK1XnK$#^aNRGO2mDI*s`R8T+711wZlt>HDT^G0&njkhFXdQ1B;<@LX=k<%7pI45 zJvgAdxmq=0dT=jWdLRx~mrTAqUa9x<`YLohkO>H!jYaa`fi%kpM0Qw}>0BnOJn-1* z`v;WTyPCAPiJ)T^#-5p+k^Fdqm60S2sA(fmnx$r?CiN5U!pcbAGJ|>_$w+Rk@-r=} z3$r|;0KZek5Cs<)K}PZkUsbp`H93w}^Gc)QNM}qE@)OxO*h&x>lrm?Dws{8p0aM1d#mLwgFc`eT1IInt(&(JNOVG~ zVX$uAR`|x36{72A!?$3*2N9K0N-5HHxa-l11W86^&X(?M=)_w4Nwu#LLF5amlg>^$ z0{z;LX%(5x4<$A+Z~X)#0SHu;`e)-}Micrtl;W%!@dkX5&x{z$9|c`e3?AjZ<-D0u zq}Zi3<1=xz&YQ1h%*3;Ry?+b^uzC|9&Uik;!3-h3(XvEaE>gX8|B*o`dtVq6RyO%v}5 zw`!wUn{jg$8?5XTmgVf*LQ#Qft)cs}oGFuK-g^sHV9yJt{ZEzUaF8K^teVHkyTY=( z(xuzrq4A#S)<(I~J6WDXd@L@T(V|lCMwZ9Bco{ev>l57CDAuMu?v_~*k>$HRm1UKd zVzO|OakZPISPgUpdXNYU2)b_(4^DtLdteMa%<6jO z694w+is)LPN4BNyceOty%rQ~h%X4+&(5qGsgcP&tUCk^ZoKOVVNxO~I%AYE!w1$p6-5D6KaVxbcbAkk^93`dw;^i=!dRy;nG@_5C$D;+_QCuN z*35INwj{On_2R98@TxlT9n=%lP=34^j&}L2C7=@2N9Tf}a03u669I6M-Mp*V$P;ng zZV=Am-EQ*DtYtCfEm9>a3t*gy{_<8U64c$jt5_9-ujsShprmIU~{(2J<_=wAU{`>;ekIWb}E z9@EAPglyW(sLW6J+rwQ6-}>my9?N|z#21pP4z&L#?Xk3Q*&V;f z^1Oe;Pn*_-_t-e*{gZ=)JWh5hqk^v*>tqm;EV5CDzhHo5Z}BZi&g3Xzsw2F^-_t#o zuX$0Xg3|f3?6G{0U|SebXpiM$Ek~hK%!BfY-D7!x@F4Qw9RPW$O;9ce6X~6rG)p!k zSb>ReXzG5^J(l4l*_;q__gKyr01106H|=Z3ef{KVI*gAa6lvpsQNEvcITa`izj2~?%qw=MTpS=MKAkdk0e$v zhY+5lmuV#}pb*x}#bWQuroXx<;H(^u@D%#k1)9s6*u6ic2nl-meScRkqw^4ka5mZo z0MoF)cIL8BW{Il`VJrTIcIsF997CPBC@cxYKXFF`q_ImWg77N&?d;Ugm%jc^{l;Rk zq#q#64J7hSVJXRbW3b+hgqfB8LdA@=H5DWFeD1~m$zg*mv|ErpPaPLVF;`E{4as_K z5zM0+o592e3gEJK5K5gmK}jRJ6&qQZ@WKz!4(IQ#bT(ScUYSrb6G8GUnEXtbe8O8A zE&Et|qFr3`biXGmU$%?xiSj#p=-mR`W&yWG?GNUSm14TzR#dm)?+gYq{BEJJ1w9h? zL}$kAiM}rfcl|xl{|Y;XVnhznr1wO5rHhPKn`$c+j4W6TEcxM9()p6&WDq zF!f@FyC-_HTyiRuf-D%a{A|@CmwsWXND+1)!&9a@hwqji8y~yOxl{Tv{$w%s$}}D?qNqNkngIidF(=v3nh7whl}^uR2g&wjIG+MpXLe{*@-?Hg|q(b@K1RR%??FM%Y+Lj$-batasge?!*UX#NDFj1Vnfi#a#=O8u|B(b zE+D(=5?Vv59?`4~uR^!xS@LZdfGY_{Ps4xp9|izq)v@$>BFrP6FyVp`;AuR&uJRl0 zJ5#(d*-C_$WI7-O`HeLNQrxco%i|50g#3o0%;lk3QaeQ1xjb`Uo}eKna4GhYKp#(o zazhu`N%6Yi5)R6*0fbxH|HKr$bitG&ZSvlZXuwO7Xmxn~ESJJ{{W5D$K?M$3qVq1M zZ3BvE1jp@3zHv5bYe~DQ2^5fZh!KPON!jOeN|H_E`F7r835S_4obXQ@#v1jv7HCxvI-~!qVrvg zm=oNr_#+v@Te*Tm*x%y}%{Mmll?4-WO6E`05aIKUZS~ z_1f-q#>}3sn81%AL14G;duWnu4|Q>3*5W(-4W$bTBw8j6sOwFA!-M#5nwQ1WvzbE0j&v{nFT%FFjux&6}Zr zP2psRdP4zKc@OJy@%%aubl%N)9P%7jlw3yO7}yO>m@wADQzM&i{Jof-bWO3X1XA+2 zi#*DF1#jigS7+=>e^A5>j(MvGaMoaB|>#3{gN2x{4Fz2k7I}O}m4w zP#x$_>^yj}%pC)T!9Wn7c7v&aiFzLF%z5L!7nXa+-C6gO~S z9ckzfJoVKNhgNOqfsscC(i8Orf$E32hsvXh&;&Z)Z9SNUaVtsNY{Gu{YIJg0S?Q}% zhD!mX4^CRB7QF%vgFEchP1JI}@Hm>aI0a@Ez>0FfV)aNN+vmcL@)*PFAGnUk(DxHJ^a70iV4^f zMo!f_HaXC@Nj=WSySU?SeqB$-y{q833ANEU`Qf}*7Vi;k`iyZ$b$M#%idFNxO>Evcjh(6XctwmIOF?_AoQSyB zZc5ZC;h|`X=@dC0W&kpyo79AYZ;1)jT>dlNnfD$=AfxV26)nY@MJp|O;tLJ(h$*z1 z9a=|c+H{JvNSFdJwF`#2-?AdFCt~zj7=0#2kK~T^>nOJ?L>i%}_zwwC40o;U6+MTA z0~cxcDz7g!FWm{ea8h*yn$I%L|0+m8h-oV2Uy zf0}ff@86S>8?D!hveda;pv#J^wf(_9^yv7EnP4iB#GR;bze&mkrAFehjRq-r$N{`c zL85Hxy3C(RI0(jDG%tf=q5~MN$ey%^!A_2MiGC^$upKsTWU*;BE?$<-8pl$DiyULe zUFsS#(3(!mkzF5)Jy+pm5ZH4H25chkqq${S*CgDZv`xSj+$-dAM(&zbYt`2F8%S3U z8T%Zz?F2dDp1z3@fy~&}c3j92<{o$S+K-g-fO}saAA{y%?ATBp`bcBO(=G$=VJC}$ zzIf%0$4ruVXG%BCx|c=OfQV+@9(#cmfC;V~B{(sP1nWei2Ma=zCMapJU}}vmv1EL-dHjtrrLU~ zEe3-!ygs!%w&2y2;Cq*($O}ddvVWr$IhR_lBj;Vk9^7QizrSJt=Fh6i_f*;QDtu3a zomSu)ikB@^?*sNVbEI33h5Ux68hQ85vCW35AK~R$<(C@RXg@fj;9lpKW<(8pT57RC z%%w}qX7e{xGF#n%zUOx6NjY0J7+K(AHSn0hXwm@Yw`uw|Rqmz@#bllSOiYPa3>x9) zs+=#qh$mJFj4pKO3}v(R{p&X2%%?Ph3jXhM$#>}m&woV05Zt!Y1q&I@PF$GbNs{OKu~Q{} zSz7Kc02EZ|koR^2VNQHD6l1pbh$jQ$d2-t?V|nuXr9I`zq6y(8OA;S=l3Y=q_a5(Y zuV>Nn$8)dJmkF0oi6^P9i=g9nbOYZT(b|zh62-Sfz*1gt2Gy{Tv8@YJt6(`gJ02ti zC%NDw%Tg$42s`CpULb!naI4PZ@OKd$*g3j71Pu4Y?F4j$xH`k;vhNq+72-qyoRt)t zaCXmCbPclhwO^3i&bocqx0nb-_qBIX#h3nxnv><0KP(2s2QX8k_O%~lHb=O^ zD*ahIU@No3Us;(?wH4ui0uP4$lq}5r{p{5_Tz06E6K8d~XmC312V zUXDk!C^!BM`vCB|ECn5MF{`s9H~Rk{RObIX%$44G!te0mz@B;CwXu+}TgK@~rR#Ue zQ+)Q0%*=#ikxg-@j|HyVyawmMT*WgRS+T=baxD;-tDHV5)@JpysuaIlM%-N7c&_Prk=yfyTi6q>Ox9trG6_X)G(AZZ zkltH5k@e&T;7g>lCrcI8pj<)@RPk=(e(9&4IP1OH{J&i2!_R@LK6AL;uKIv2v zQO6-o@hnNYa3tn#mFj!?pyQ#-%&b_07dp{VI9F1@X& zsb~aw=tfO_Fp}ffD_s+cgf91m%+SmP(J-kY)Di~UJKu0+2te{sIn^?ly|i=S$uP@9 zqttzp5RL1Ktr4Nj>%vvJ;VB4{0+p>Rbfd0mW+rbaj5{%zlS}exPtlhZ{6wn$(&tV4 z?3M%7mp&K1Pc7gw!cAEm+!odjqA?7D6EraM!D>d+EwL+XQ^xl` z)GDG?=9r84jGQV(jNNdZuW41w53ge{rJQ;1&i8yYV8#A5$V)DS67K``F-m;VM`)++ z!&t$ej{X`(c|nvzD?$F9Yzgx8Me+!&82@m0l>3)I;DhQeID4{1TR@_Sl)vxKg%oof z@+`D(6`5sRHILuRtVA!%Hh!E=_3fEXS(uKNN~g|$ z*B7Rf2K(+`aT4oJr}o1howyyXQ*R=0>5)zy^p1~)ty4##zqfR8pi`TFh;~Y+X7Ojw zbZUFDBG9Qyc?{{)#y?f34g>%zfY2KG|JXYd@G7b^?hgtYEea}CYF(}tX++eUg(M(C z0to~SBtk$`6e0-(2?;__R8$mHB8#*lMWq%k)@ZTfQkz=EsA!^6rIu>kQ;T{nF40m= zF_7=~o>|Y#+?#;y_k7>;mvPW?tX4sS2k89%l8KwYOM-PTE+`sQ_q46jaounL{J z6ZN+J)T`3fn>tmDs&!JQ3WXJ}PGzf0pH7`AH#HUAOFwl91?;^}O(9oMr(C}yT<`6S zFvVM{p#>@`T^m!8^-1_k=8v9Dvigc#)e!Y4Vm-oPDpz{4`zXtLgqKi{PE#hOaur#R zimXRz;;5*3X;HaUS)+if3iC>UtJ&t&>>b6HtmGQ3hI!H4KWM%6rzFzG(udwM>dVrP<=46%?axV1j$`e`SQ)453qMn|*&O21} z>_9tF7^c*Xl)N!aE>DiX1MSXjO7~UTL-eeBL@MTv>3ZxMb|_(e(o=d#{|>ajNMdbg z!tK@_cL&-{+}Y7pB!-YRga7>-Vdm7^qk1uE%(VNZ>fWjZF3(k$Jw;M7qLEWq&*tmz zpH(*HNDdZ~I?=ASVM5}*?siBcv&WpgmFaWu;>)qtAYBqK(y&~f3m#JJD=^|vFCB$m z=n1NJr_9dk%X~FFbhe|k%XlDxzRY~h)tA4jv4fL!vpJNI9rj**`QxEs`tl1&tm(_% z>{z_vZ??WT?d@2$r{aJDvK2NZJ9;K(Ydo97l*@8m_tE0P!uH{%v`Q1b{gp$FCDE_s zlmildXxv^%^i?u>v}7M8dYDZ0C6MUtTV08M$kM;ZdAzPJv3y;kA9t7L`aQt?l6apb z`siQxL85O@43Q|T*Ud!5Q}&)iX4Wl{Y$3CUyN<+y~_Uy{4rTQM~|b4nnYY?WNis_rH|zBtJ}WNIb*qm_&tH{*C>16~bE+Kv;1Gv-{5 zw!gvUiEYr{fJ~i|Aq1s@!&-K?PwVkT{lD^i^sE0@kDiC*AJl~}qh0jOzj_=d3zMuk zEzjF&1y`FOj5J(Rt@kX=tyqNDTRC$IyurlwH6onePG6=bG1#Ycy%>fQGo7t23Dsm< znXk_ZNIRgmR+-@w<9(ss7uBG0omr*N5^;pA(%m0hqjVMOTAGYHX*2Doh|-13v_C5IM>R63PLJulk-J%c zBe!+>yiRGbl#7Z)ua=C?YW@C7siP=yGi5beQ{?R?jcRh8VV9Zn>jhd))ebrieRBPI zJExWD8I{RDx&D;gH5*#%Os<>f(;-34N{?}qGzaF=VY2(qZW=9opmqLtcK2Aknx=oU zj9=!EtRZ%J1JSZ;tV9;?G#>%eD)!%?WjjqHaxIH8bs+Ad%5y*nWd|)bVFAYyOicLs;*d zId6Q)tJTzie-R(ES2ND$SjY1bgJ(TsMYqi09CTPlyTxK*$1me-hJCi*>>tas!q`V*uM!deU-ydJJ8SnH;LPwTON1R#d#U`g21yLlNPFG4z zf1%Gx-@w)Zl6YpN4|?9AW2`#6#afGOhJHJs#&1`>`6XCH> zibQ?Xr+6A-PpYGLTH2p@)3Q6vNxL$b_8W$NPPwg8uT^eoFzw6Uv|BuBvn1`JS*>00 zm#s#RTR0EGIdZLi+l7opt@~H^mft;YQQx*+)Y_%`e6IJaK4r&Mz6M`pR(60ic*n&y zRj*_yNqRXmz?*QOo$%gZ!tUOLJ?(@GRKmPw&xj-tafGR=GVd3qp>`Pa!qY4t7_sW@ zoPT#tJ!#$}A0unT$m$c!l&u{LquhbTqjH&GOmgWn%5P9Av8tYRzPgm2OPl$4dbhbP zRUea_Es3=;$r08acc!chcfx1NmTvaDB4Jr?&8I-%D(0>ob~VIqP?tSDGi82@=2@b7 zv8T@Y4x^gik=bj@@h8UqL`u}KRe1a+e<$)AareQ#W@dEsLA7ijdRW(^*jkAucGNHa zN9GEwe(@@4jovSw$h4QW2y(?Pp3=@AJ+1UA&@bNotSxD`C0@>jp31$HDmyv)#A)bz z3#XFTW1HT(^qIyglfibM7OH@grR~bN@WXtOY$Ey?c8Y4WqzlZ_Mns>3aTm^r?$-T? zP+K?2Or+(Du%=>mhnQFOu@7GJNm-Pa^ix+|#bNnRU3HV2GHKNi>nVTwj}?u)6V*>}>gst#LcC)+2c0IR z%ibu?4TYS#63-Dhb+yDQ(mkW|>>WZx{8Lvw>A9p4fm2uCs3yr=cdfKAX0=ewC)l$S z=brAN(SPb{i_4xb#YgzrldLFnPhI6~LfD--b@fGmPpxrIT|MRHUdXAdtDz`x>gud8 zGOxScWMI5gSM8!S9tJw6u0E0nHSxsT&)W$9sVnJxEX{h{D#ev(%NnItQ;go^jnG;K+LQh>Sk?+pf3H+z7&W4bLr>-`6a?3Eod+O?iCvDem`%rsa5a#n} z)W=E`@`@n))YUg~$LIE{DAv=@?$fEO`_87^z^SXDV-lRYs{BRJu;ZV)+Vy+Y-8C}u zNyeRbfy0DUoj!H7^iO2p>r+>5bfe+`89%5Ag$AVPjWHYtZp)toRGJh$z8YoS1O@D8Z*5u_{n|!@G?56k{)dH87hv0@g=H(n!u$N}7 z-b=N5?f5fJJZZD%0!2xHm$`Dg6TBQmx{i1m6-ALQ+U4c3a;r1EJV&I^>VutynLK=9r1Ewke9#gEH7`++hiMRaOLqT z)edt!G;*E3@@QG;-p(7w(L!&>6P)e)*Jv1LjcN`Pn)Ff46h`*esOHz735y$I!yi#@ zJ}|0zS-F4zxh~Usr2V0znggkFUq?0nfppJUAU?0VQHi%Nh@bMq0@{dI4b$4741cI* zE;>3ntG?bSQ|7H|%G^V-$l09vYROmIuej7+k?DI`Tbu)#13Sxyr6Oyq&$yqzb)H0= zc>>vi5_b%KkD1Z+ko%^s2keu!z9{mswDoLhjjpZTU2XmMKY5C_-u6(qwjTSa+}}%W z&7sPD)z&ofdSoA82Zx#rcKo7$(}S7@*NzSfC%m#mBHF0fl90=BCqfA7^Z;L38lBR) z=x6qRWG2_NVefYIADpN{!a1d{Dx^E^JJ)q|r|aqyQkNp-|F5;2H$C=JDu3(t(wmn} zS>FBmk4<|i+YoLqpD8=i>_sAlESyG@%$>zq%eh`EHN$9Xa3fq zW2Idt)?O3tly$na|NnhVk7qp&JbR;B`DXK!>gd8_;xpfK4{ z1J6QV)mhS5N2#W$OP^9*C^xm@oS~R$7@AUroRztm0`^|17LrTr@rr0bBeq!YU%D~Z z-g(5X=7EaMM3*vo&=9-Ayl&o+#vR#Y!`_0!@*YDIls{?VvFxgOjJu*9>gFFL&!W8g zuB_TLn>SSlB4sg8d6<-xe+KWL@x3Q%-dg*~yrEXs7Hc};pQB*ma`up_l|5D38*)oc zpL706QLA=Re8BA;r}(n}R;88Q46;#*VAyKiC}AuY+J>O(AMnp{OA3!|`EA;ADB*i| z9x)w)(?g4{mm`Q;1hEc5#Mx`}(ccZjc~kroVteW(Ow5t0QD!3~@n?1tx6x{I>U6p+ z0|rmE&NTY~5h+<UyOak@>MWj(;0PW5fI`BL`dG~{Vp zZEjPCLY%EOv+p5^dNGF7fG(-isOOoL*2y{6Z0^H_hS&vq&J2~)fK+Ibo=xRE-p*-d z>Z>wA=4fd@I^mx>|zDhIkx(!TCr2Cpxr&K)OE75&)@ZCo2B{g z7Mb8qo7-?RpDg8<={?v`z8;sMcG~=etQP0=Qk2#{gecvOHYGw!jWj~o4>_t47rGSI z^T@uvi!-{hGL+NyShq_bZT7v#5jMnLyw7%9j<%s}QIsv-PMhn}rGA{M_st#|rnWgd zZF&w6p6X{*FQO`sZwW-WcE=J^UBBrsm2Xh1&B|ZWENiv-fEVO#>qp4o%jYJg+^`Xv z(>|#uKb~7Ncdnrt4Y4iaf>pKZvgCA{bnNDmi6xZ|!!r*J2HMfyMYhRHKRbAu~*YNLYfEuR$g3|YOar9f9|!n@v5 zn39p@#Ml^*<@GkTu^|R+T=q<`ye;IILXu%?oE_nF@xLMQjpkFS#Fn-;?3hJfz4MEg za%PSY+u7NJGp*F39@pKX&j4woE{&QLl`H<713rZGY**qslF`vrnkaN79#oH(YM}WIA*Lt$Q6s5-if;)@4?kparI%9Wd@#CuQCaTiH#BY@iY9k&G$6E6f?;Lh?Nyf~4-0BqB zH7Ner6oW_e0{p@(bfr$%zpsXR)YFx!nLB8q;$^ip_F9vX$X@rY`_XXSO3P_@Ez(;T zKVEqJO;5Zq_GKkKktV&M2o^!gpV>+Ly;c2<){jz*54;8A8uK;+QJrMH6)${d7TV11 zW=g38*NE-x^WNM+=L?liz;L!=M-*;I6)2GE_J3#Asse^2MG;jRdd|aCPLxs$7^>}@ z(hM@ae4bP%eXTHn@>O5kAa~7%!XGDK*xwT{Omvgb@Sav`tjP)(!Zy_gBZk1<+_&$< zyLV=9Zth5L$k5ekhDZQ{R5J{hMx^e948LS^NGuh7vO|Vxzot?%WZ1!4oL zG?L;*RJ;T>#HyrwM5ojqNVV{Gok~CN_ewTC!#?>gFAGAu-xaruI`&q%DgRn^Nx%^Q zOo7<<@}dYi;E5=wXQUEZ#VL9f$GBD8hU#ekR`Ms?EXDW8@T*DMeS&JYm@W#~5IbC5 zs?YC?%MNzHNe*!o=dLd78AhQtX<9j{WEoE}8T%A)ab+ML(( zDzh2WZk1L>$Yu?vw=$e=^be=2d*mBiPUunj9x;njDXm+-S|_EOx^aZ~H3eX&>XkkWOn z3-scIr^LlhB5QzgK){1y8RB(QJk@r(K%kJrm?qTA|` zMYq_!w+SWUC0GHcj7M0l15qXp#^|g9xzoIuwi6fh6 zf@?FEkVU=Qg?EtiCxQ`n2K3yt*j6bZOXUzNvtJ`6oDtMRSHtzGvi!hFUv?ru`4iQ*_y zXMFEpXhQefTKHV~;S}c66iry>#v(e16Fs z(gygv5vQb;rMZ^3{Wbl+_%zfZI6@9F%0K#BC5c_jh+}5kwOpZobH-53ZyqgLA@9T@ zD&o(T9sA7~b(o`M&2Jtexjj-6Y6BJ?hz;beVqTX>e6V8zG>Ss}Oa~-9oN->3VSi zV*2mLb`NTo!}Ro6N1N%?08yoXRjm-_ZQaq+F5y1w4uh4g#=Kvvj@>=uVmWw)w0Qhh%ClX@zgZxRJ+jITTt1TUz#ML}$fypdi3+IB z?M@o5^7AQDldzAm4yxWt^uT{7;Z@L!#hk!x@{iugqpem~nwE`8+Z&p%HuE&ZK9MNe zBwy*j z%p9SJuw*QtBp>zO)g-Tth-B`mA$GTE7--IZY2@>EELJEHCz!oFUfUcu-f_gUN-INrK{5AcyDx~ zS=@CO7!up{+uiL;>{nkqRk}S#i>ntf&*gWg;v@6T&OwK{a+x_u{?KAI6xwqzj)07|jVcvhoS$c(d6EP_7X7&YkG5z#nJi{=T@++QanGVY5$TT99N8(f7Q`xZP zJ0#EfH~EM2KB5AVe}8I8%n!2YYehBEyV)(8SktjAx=Bl*u7}m4{P->MksB(D50_|F zhRVX^jHL^YpW*elKHIrahM>(tUX_Zbm>_sRb`LpL`fbJ|Et3Hav3`1bj_nP{hx z>J{-mermK_CMA2Ezg?(B>h+3LuXbv=uhUwB=KJ_%%c`q-CtkC9tAH!34QNM5)tcR$ zNe#k`k%DO7{P?mmDKoVX4mfj#r;s(QiNTZ)wfkqsD-s zRF#u|>Dc_5B2$4E)fZU_i>!n<4boa3w^ylD10LCth2p*N^la%>*53;?<{*s*$*iL` zS14uWWA2SO=z7NFbzUd!*+sAp63ht$Qu4~VX83k;{9OdMUoWATIk;FPY1M3-%37^1 z87Jtw2tM8PiZ{#_7vgq%aVa1@k>yQp0@-pCWmK&W}dnX`Gjn(JV-EK zsZC}*Ok&-FP{jm&GrosmfZk(DPmLVKgW?t337C@@j=;edvS>4mr!N-g;PpHar+2BL z1c|DH{o;9xG?xwsax}jgA~z-Tc2hw`%UOHb3fdHR#7~jccECXhVBi||Cy=r{6#K3Jb!{q zm*-p6Lod(2kUN1X&QPB3|6O?gOX|^Bk&x%ddwKq(B09kHFV~0i{PBgIP-JoR{dkUfKzjEUgN=4rEtO)RXK zpN6cLCLG#Tv`C14!|IIp7ox3cw7%P=Ym@J!^3MhPP z<0!q2s^AZ#HaVy+CvnL{8+(WfYCaMIK33JSpjb03iOxHZRUmuGaQKeF<^-IqMngbD ztglpO&aoYc=d+($1SGppKfxeltFBSgaDlf%?+t${_xJN>rXtvE+&}Z^6#V?TQxaGN zU*O?Smr(v3k4NzEXS1I_h2n^0!L>8|`Se|fKObKg;Lqpo(-(OftG@cX^XH!J!U3=T z{MEys-}DOM&;HUPi$AwMPs79uL%igX9?(WeU@)G$2iibB}u5^dE40+pPN5?e1{j&IWr>m&_>1m z!9~UudM*C3Oq|t^27fM34~55t`p@s*Elb*NBopYHtZ`FJdfkv^nU@n(5o|`gp4zEw z-|O!~^yguJ2W+hJr;a#bl7ww>*m##eSHj+naU>mu6;ZrIR<8XK#SwRf_HIpAXuX@m z9*>p?!SQ5qm7h+JxP!8I$e+4Xym(K~6(ljioy1Z$iN(5{RiZalU2ZPF)~mrfZ?Yws z1nABOcSVx%=arYTX_7bc9FK@FPjw0nG`wF<{NywLP+RAX6$!N8XSzXs8Gb6{_#+Q{ zH1C-*_Sn9#%uLZD2XcfkIez1v4-F2hECrh(Z}wN?&}JDO%ZzmF#?{W~_yxAH`$xx) z%Bz7*PsIndPubygXUETf9tFrIC4{xMSEP`3hIq#IR1ci+DdmYn1+}NVZvV8ze;uP@wX3Y z1I)D~)_N3c|0x=tXs%qg*T+|D z4VNAx|Cobxz4gB`gdqWMUA89FTlZ7ddwjDiGkwhcCyMoY1aBu5D&1d_!I7?0LBO*n z7^>e%37#R$m8xOR5N0Nq?hxiW_0T(nStoZA4`E~$rNy2_VU1}XY@k- zol~4xq9s8)b*(woG^7C4d$R&5Ud`-VB)kbOCB6$ax@LwO3v;^iqfM5)PTmk>$+|7n zSa#3$I!Py(juY-a?B}hJrNW*BJFNb$XR=!E?L}?>sPD29ADJaSLR=K()0cIy2WR%9 z<_JgIgY&bqobI-ETzozN6$ti+rs`Xz9`_^9-kp!h;IX+*?%jz>VDi~=(G7F&&Vu>c-klE~ zbjN{M?jZGaGl`K1-He zesf4;jtd`>Kflx7ojV^iZKk+eWt=`LJK5uEEZ2@+CfL!lYom8ZkI1$htzCoG z#@mr|Vpn0CyCY|3o4QW0BWE>rn5(cWE&X^RKV(PF_6qNgoO-UTYC?D9T>G$pM@~+< z@*V8P(RSoCkBqw`XR_o7?8v!W1yX85QN1X}GhsV&TH}{`khj!CJ93VGmnK@(%ZU=K zvb(v(y<65)1-<9aRBGB9wv)!6_S^E#q_uX<%;${`ZcM8Do;AYo zX`MYXQN6jh-`*R${^8B8U9Yd!?D}PvE$#Uo8ho*O>e%(I&gezi_2a#QcD*IlYuA@e zQ%u;3EXbi&G*12tc75C|*RIE6a+Y1cA%DiPYnQ*!^*Xia9ijI410H+W>2tc~Q#TIv zJ^p)mW=kG27VRNnjV#hGJshoQe=PwekEp`p)+LV<;B*Sj!Gffd$1lMYP-9gY~u|x*_(VAiH3)5lJft*!FSvSXyZ? zVxqo;+s9;ZV~)_Q4ZQQA1wng#K*Z?_Lk4+K)G7=uE~fWcY3~8OtfbGm}xF z8s^MoT*#$6lQCC4^v-1bT<-keoyizLmAd9RHpAe60fNj;n0qlu>E)*7job(=!357r z@_N`(CGB*l@}_Xxone|iJd-i6Tj^kEv zmtoX=gsxj}tK&^6R?^<81b1IyH!CSS5F?UgiFNdSQGFjPWgn})x1V$B>u){kZ#}Aa zAEjH5(yd4L^2lRjBFkiNd_$e8{qL$N9cPzewoF$HxmviWB9ia2%P`3l4mByJA1{{) zR!P#%7a^Ew|HZV4Y1S(1c6Aw8CAn_3aK^vO@DGw$TP3;Hy5p{r%;HY?D#_>z{i-0W z>+P`4S^_(tL+74dhG(nGo}yDHGbh~28yVtiQ)qv2vJm7y6A=`eXA$EhX_V{vj#QT+ zdkTBVgZR|wp7|&ed$fj@M{Td3l;uu2=P&;y5aOPddn#M*JRx5&rV!3%*)3C3pMfa-pR#Sw zt|G(G_2Qs8SU&7Os(i^j!pZr7HsKS2WzA8PU0MJp1&szxR9Ty zIXwCWbE7g-K-j74LiRU})|I>^bvH_aLQ@xl@#=G@>AdZ%9mijbq&pGsjEU*XBk-d@~h9c^tE@34`|JvMqb zm!9Zv-tKmeNow!rB=+m6AA1jQH9_pT@Ki1Kyp&5%?H6=?lz~o@W$CNrPH60j z#)nAN@@2mwo6nc25BsgE_vE1!`jzsKBCb;sl|5cB+tw$m=1~cso~b_#@G*gQ{*bI* z%MbXgz_9k4{{9?}7Zg1>Qm4f%&!bp*tvlo!BlH^$u_V$89xk|ORx{s8%xmq+dQ`J9 z?`=us^`z3OI%~q>cn^mI6q{wod7H}7P8mZ9Oj<7M7Q1gOQRlECwAUPL>?ahRh;n<_ z5~he||Bpt|4vram215T4_u+O||5TTR0}}r~W2$BBY`7TEz_?!ZZ{5XfJ6@Hovqr4X z+}-UJD7xvgOd-a9yTsu%$&<;c)SiyB zyf~7#A_mp_YW>hn!6KAH&1>-pTne^|*r84gNjJXq@EWGCMSDcIWa8(;m0lM3nm{U= zgDxhk^vG~QKM|VcBsf#{M(h+NB3�BFR0CwApAWbe2y4fAMMmge6B3KJDdy8gYER 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�-AOisaPc#p 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 diff --git a/config.hpp b/config.hpp new file mode 100644 index 0000000..807bae4 --- /dev/null +++ b/config.hpp @@ -0,0 +1,53 @@ +// The MIT License (MIT) + +// Copyright (c) 2013-2020 Rapptz, ThePhD and contributors + +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +// This file was generated with a script. +// Generated 2022-10-23 03:24:40.304940 UTC +// This header was generated with sol v3.3.0 (revision 0386513a) +// https://github.com/ThePhD/sol2 + +#ifndef SOL_SINGLE_CONFIG_HPP +#define SOL_SINGLE_CONFIG_HPP + +// beginning of sol/config.hpp + +/* Base, empty configuration file! + + To override, place a file in your include paths of the form: + +. (your include path here) +| sol (directory, or equivalent) + | config.hpp (your config.hpp file) + + So that when sol2 includes the file + +#include + + it gives you the configuration values you desire. Configuration values can be +seen in the safety.rst of the doc/src, or at +https://sol2.readthedocs.io/en/latest/safety.html ! You can also pass them through +the build system, or the command line options of your compiler. + +*/ + +// end of sol/config.hpp + +#endif // SOL_SINGLE_CONFIG_HPP diff --git a/data.lua b/data.lua new file mode 100644 index 0000000..0da8e6a --- /dev/null +++ b/data.lua @@ -0,0 +1,33 @@ +return +{ + Name = "Weapon", -- used for Engine::GetResearch() + offset = {0,0}, + Icon = + { + FileName = "Assets/Research/Icons/WeaponUpgradeIcon.png",--Maybe Have multi_Icon based on lvl of upgrade? + size = {32,32}, + FileSize = {64,64} + }, + Parameters = + { + Oncer = false, --Only get one upgrade + InitialCost = 120, + CostScale = 2, --How Much more it costs per upgrade??? Use Math Equation + ResearchTime = 22 --Seconds + }, + Requirements = + { + Buildings = {"Castle","StoneTower"} + }, + Reward = + { + Stats = + { + Damage = 5, + Armor = 5, + Health = 10, + MoveSpeed= 4 + }, + Unlocks = {"Archer"} + } +} \ No newline at end of file diff --git a/forward.hpp b/forward.hpp new file mode 100644 index 0000000..14bbfc8 --- /dev/null +++ b/forward.hpp @@ -0,0 +1,1321 @@ +// The MIT License (MIT) + +// Copyright (c) 2013-2020 Rapptz, ThePhD and contributors + +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +// This file was generated with a script. +// Generated 2022-10-23 03:24:40.299252 UTC +// This header was generated with sol v3.3.0 (revision 0386513a) +// https://github.com/ThePhD/sol2 + +#ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP +#define SOL_SINGLE_INCLUDE_FORWARD_HPP + +// beginning of sol/forward.hpp + +#ifndef SOL_FORWARD_HPP +#define SOL_FORWARD_HPP + +// beginning of sol/version.hpp + +#include + +#define SOL_VERSION_MAJOR 3 +#define SOL_VERSION_MINOR 2 +#define SOL_VERSION_PATCH 3 +#define SOL_VERSION_STRING "3.2.3" +#define SOL_VERSION ((SOL_VERSION_MAJOR * 100000) + (SOL_VERSION_MINOR * 100) + (SOL_VERSION_PATCH)) + +#define SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) #_TOKEN +#define SOL_TOKEN_TO_STRING_I_(_TOKEN) SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) + +#define SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT) _LEFT##_RIGHT +#define SOL_CONCAT_TOKENS_I_(_LEFT, _RIGHT) SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT) + +#define SOL_RAW_IS_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) != 0) +#define SOL_RAW_IS_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3) == 0) +#define SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) > 3) +#define SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3 OP_SYMBOL 3) < 0) + +#define SOL_IS_ON(OP_SYMBOL) SOL_RAW_IS_ON(OP_SYMBOL ## _I_) +#define SOL_IS_OFF(OP_SYMBOL) SOL_RAW_IS_OFF(OP_SYMBOL ## _I_) +#define SOL_IS_DEFAULT_ON(OP_SYMBOL) SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL ## _I_) +#define SOL_IS_DEFAULT_OFF(OP_SYMBOL) SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL ## _I_) + +#define SOL_ON | +#define SOL_OFF ^ +#define SOL_DEFAULT_ON + +#define SOL_DEFAULT_OFF - + +#if defined(SOL_BUILD_CXX_MODE) + #if (SOL_BUILD_CXX_MODE != 0) + #define SOL_BUILD_CXX_MODE_I_ SOL_ON + #else + #define SOL_BUILD_CXX_MODE_I_ SOL_OFF + #endif +#elif defined(__cplusplus) + #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_ON +#else + #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_BUILD_C_MODE) + #if (SOL_BUILD_C_MODE != 0) + #define SOL_BUILD_C_MODE_I_ SOL_ON + #else + #define SOL_BUILD_C_MODE_I_ SOL_OFF + #endif +#elif defined(__STDC__) + #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_ON +#else + #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_OFF +#endif + +#if SOL_IS_ON(SOL_BUILD_C_MODE) + #include + #include + #include +#else + #include + #include + #include +#endif + +#if defined(SOL_COMPILER_VCXX) + #if defined(SOL_COMPILER_VCXX != 0) + #define SOL_COMPILER_VCXX_I_ SOL_ON + #else + #define SOL_COMPILER_VCXX_I_ SOL_OFF + #endif +#elif defined(_MSC_VER) + #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_GCC) + #if defined(SOL_COMPILER_GCC != 0) + #define SOL_COMPILER_GCC_I_ SOL_ON + #else + #define SOL_COMPILER_GCC_I_ SOL_OFF + #endif +#elif defined(__GNUC__) + #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_CLANG) + #if defined(SOL_COMPILER_CLANG != 0) + #define SOL_COMPILER_CLANG_I_ SOL_ON + #else + #define SOL_COMPILER_CLANG_I_ SOL_OFF + #endif +#elif defined(__clang__) + #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_EDG) + #if defined(SOL_COMPILER_EDG != 0) + #define SOL_COMPILER_EDG_I_ SOL_ON + #else + #define SOL_COMPILER_EDG_I_ SOL_OFF + #endif +#else + #define SOL_COMPILER_EDG_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_MINGW) + #if (SOL_COMPILER_MINGW != 0) + #define SOL_COMPILER_MINGW_I_ SOL_ON + #else + #define SOL_COMPILER_MINGW_I_ SOL_OFF + #endif +#elif defined(__MINGW32__) + #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_OFF +#endif + +#if SIZE_MAX <= 0xFFFFULL + #define SOL_PLATFORM_X16_I_ SOL_ON + #define SOL_PLATFORM_X86_I_ SOL_OFF + #define SOL_PLATFORM_X64_I_ SOL_OFF +#elif SIZE_MAX <= 0xFFFFFFFFULL + #define SOL_PLATFORM_X16_I_ SOL_OFF + #define SOL_PLATFORM_X86_I_ SOL_ON + #define SOL_PLATFORM_X64_I_ SOL_OFF +#else + #define SOL_PLATFORM_X16_I_ SOL_OFF + #define SOL_PLATFORM_X86_I_ SOL_OFF + #define SOL_PLATFORM_X64_I_ SOL_ON +#endif + +#define SOL_PLATFORM_ARM32_I_ SOL_OFF +#define SOL_PLATFORM_ARM64_I_ SOL_OFF + +#if defined(SOL_PLATFORM_WINDOWS) + #if (SOL_PLATFORM_WINDOWS != 0) + #define SOL_PLATFORM_WINDOWS_I_ SOL_ON + #else + #define SOL_PLATFORM_WINDOWS_I_ SOL_OFF + #endif +#elif defined(_WIN32) + #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_ON +#else + #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_CYGWIN) + #if (SOL_PLATFORM_CYGWIN != 0) + #define SOL_PLATFORM_CYGWIN_I_ SOL_ON + #else + #define SOL_PLATFORM_CYGWIN_I_ SOL_ON + #endif +#elif defined(__CYGWIN__) + #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_ON +#else + #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_APPLE) + #if (SOL_PLATFORM_APPLE != 0) + #define SOL_PLATFORM_APPLE_I_ SOL_ON + #else + #define SOL_PLATFORM_APPLE_I_ SOL_OFF + #endif +#elif defined(__APPLE__) + #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_ON +#else + #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_UNIX) + #if (SOL_PLATFORM_UNIX != 0) + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_ON + #else + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_OFF + #endif +#elif defined(__unix__) + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAUKT_ON +#else + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_LINUX) + #if (SOL_PLATFORM_LINUX != 0) + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_ON + #else + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_OFF + #endif +#elif defined(__LINUX__) + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAUKT_ON +#else + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_OFF +#endif + +#define SOL_PLATFORM_APPLE_IPHONE_I_ SOL_OFF +#define SOL_PLATFORM_BSDLIKE_I_ SOL_OFF + +#if defined(SOL_IN_DEBUG_DETECTED) + #if SOL_IN_DEBUG_DETECTED != 0 + #define SOL_DEBUG_BUILD_I_ SOL_ON + #else + #define SOL_DEBUG_BUILD_I_ SOL_OFF + #endif +#elif !defined(NDEBUG) + #if SOL_IS_ON(SOL_COMPILER_VCXX) && defined(_DEBUG) + #define SOL_DEBUG_BUILD_I_ SOL_ON + #elif (SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC)) && !defined(__OPTIMIZE__) + #define SOL_DEBUG_BUILD_I_ SOL_ON + #else + #define SOL_DEBUG_BUILD_I_ SOL_OFF + #endif +#else + #define SOL_DEBUG_BUILD_I_ SOL_DEFAULT_OFF +#endif // We are in a debug mode of some sort + +#if defined(SOL_NO_EXCEPTIONS) + #if (SOL_NO_EXCEPTIONS != 0) + #define SOL_EXCEPTIONS_I_ SOL_OFF + #else + #define SOL_EXCEPTIONS_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_VCXX) + #if !defined(_CPPUNWIND) + #define SOL_EXCEPTIONS_I_ SOL_OFF + #else + #define SOL_EXCEPTIONS_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) + #if !defined(__EXCEPTIONS) + #define SOL_EXCEPTIONS_I_ SOL_OFF + #else + #define SOL_EXCEPTIONS_I_ SOL_ON + #endif +#else + #define SOL_EXCEPTIONS_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_NO_RTTI) + #if (SOL_NO_RTTI != 0) + #define SOL_RTTI_I_ SOL_OFF + #else + #define SOL_RTTI_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_VCXX) + #if !defined(_CPPRTTI) + #define SOL_RTTI_I_ SOL_OFF + #else + #define SOL_RTTI_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) + #if !defined(__GXX_RTTI) + #define SOL_RTTI_I_ SOL_OFF + #else + #define SOL_RTTI_I_ SOL_ON + #endif +#else + #define SOL_RTTI_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_NO_THREAD_LOCAL) + #if SOL_NO_THREAD_LOCAL != 0 + #define SOL_USE_THREAD_LOCAL_I_ SOL_OFF + #else + #define SOL_USE_THREAD_LOCAL_I_ SOL_ON + #endif +#else + #define SOL_USE_THREAD_LOCAL_I_ SOL_DEFAULT_ON +#endif // thread_local keyword is bjorked on some platforms + +#if defined(SOL_ALL_SAFETIES_ON) + #if SOL_ALL_SAFETIES_ON != 0 + #define SOL_ALL_SAFETIES_ON_I_ SOL_ON + #else + #define SOL_ALL_SAFETIES_ON_I_ SOL_OFF + #endif +#else + #define SOL_ALL_SAFETIES_ON_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_SAFE_GETTER) + #if SOL_SAFE_GETTER != 0 + #define SOL_SAFE_GETTER_I_ SOL_ON + #else + #define SOL_SAFE_GETTER_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_GETTER_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_USERTYPE) + #if SOL_SAFE_USERTYPE != 0 + #define SOL_SAFE_USERTYPE_I_ SOL_ON + #else + #define SOL_SAFE_USERTYPE_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_USERTYPE_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_REFERENCES) + #if SOL_SAFE_REFERENCES != 0 + #define SOL_SAFE_REFERENCES_I_ SOL_ON + #else + #define SOL_SAFE_REFERENCES_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_REFERENCES_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_FUNCTIONS) + #if SOL_SAFE_FUNCTIONS != 0 + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON + #else + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF + #endif +#elif defined (SOL_SAFE_FUNCTION_OBJECTS) + #if SOL_SAFE_FUNCTION_OBJECTS != 0 + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON + #else + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_FUNCTION_CALLS) + #if SOL_SAFE_FUNCTION_CALLS != 0 + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON + #else + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_PROXIES) + #if SOL_SAFE_PROXIES != 0 + #define SOL_SAFE_PROXIES_I_ SOL_ON + #else + #define SOL_SAFE_PROXIES_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_PROXIES_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_NUMERICS) + #if SOL_SAFE_NUMERICS != 0 + #define SOL_SAFE_NUMERICS_I_ SOL_ON + #else + #define SOL_SAFE_NUMERICS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_NUMERICS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_ALL_INTEGER_VALUES_FIT) + #if (SOL_ALL_INTEGER_VALUES_FIT != 0) + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_ON + #else + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_OFF + #endif +#elif !SOL_IS_DEFAULT_OFF(SOL_SAFE_NUMERICS) && SOL_IS_OFF(SOL_SAFE_NUMERICS) + // if numerics is intentionally turned off, flip this on + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_ON +#else + // default to off + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_SAFE_STACK_CHECK) + #if SOL_SAFE_STACK_CHECK != 0 + #define SOL_SAFE_STACK_CHECK_I_ SOL_ON + #else + #define SOL_SAFE_STACK_CHECK_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_STACK_CHECK_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_NO_CHECK_NUMBER_PRECISION) + #if SOL_NO_CHECK_NUMBER_PRECISION != 0 + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF + #else + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #endif +#elif defined(SOL_NO_CHECKING_NUMBER_PRECISION) + #if SOL_NO_CHECKING_NUMBER_PRECISION != 0 + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF + #else + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #elif SOL_IS_ON(SOL_SAFE_NUMERICS) + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_ON + #else + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_STRINGS_ARE_NUMBERS) + #if (SOL_STRINGS_ARE_NUMBERS != 0) + #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_ON + #else + #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_OFF + #endif +#else + #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_ENABLE_INTEROP) + #if SOL_ENABLE_INTEROP != 0 + #define SOL_USE_INTEROP_I_ SOL_ON + #else + #define SOL_USE_INTEROP_I_ SOL_OFF + #endif +#elif defined(SOL_USE_INTEROP) + #if SOL_USE_INTEROP != 0 + #define SOL_USE_INTEROP_I_ SOL_ON + #else + #define SOL_USE_INTEROP_I_ SOL_OFF + #endif +#else + #define SOL_USE_INTEROP_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_NO_NIL) + #if (SOL_NO_NIL != 0) + #define SOL_NIL_I_ SOL_OFF + #else + #define SOL_NIL_I_ SOL_ON + #endif +#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || defined(__OBJC__) || defined(nil) + #define SOL_NIL_I_ SOL_DEFAULT_OFF +#else + #define SOL_NIL_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_USERTYPE_TYPE_BINDING_INFO) + #if (SOL_USERTYPE_TYPE_BINDING_INFO != 0) + #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_ON + #else + #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_OFF + #endif +#else + #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_DEFAULT_ON +#endif // We should generate a my_type.__type table with lots of class information for usertypes + +#if defined(SOL_AUTOMAGICAL_TYPES_BY_DEFAULT) + #if (SOL_AUTOMAGICAL_TYPES_BY_DEFAULT != 0) + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON + #else + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF + #endif +#elif defined(SOL_DEFAULT_AUTOMAGICAL_USERTYPES) + #if (SOL_DEFAULT_AUTOMAGICAL_USERTYPES != 0) + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON + #else + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF + #endif +#else + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_DEFAULT_ON +#endif // make is_automagical on/off by default + +#if defined(SOL_STD_VARIANT) + #if (SOL_STD_VARIANT != 0) + #define SOL_STD_VARIANT_I_ SOL_ON + #else + #define SOL_STD_VARIANT_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_COMPILER_CLANG) && SOL_IS_ON(SOL_PLATFORM_APPLE) + #if defined(__has_include) + #if __has_include() + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON + #else + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF + #endif + #else + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF + #endif + #else + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON + #endif +#endif // make is_automagical on/off by default + +#if defined(SOL_NOEXCEPT_FUNCTION_TYPE) + #if (SOL_NOEXCEPT_FUNCTION_TYPE != 0) + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON + #else + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF + #endif +#else + #if defined(__cpp_noexcept_function_type) + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON + #elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(_MSVC_LANG) && (_MSVC_LANG < 201403L)) + // There is a bug in the VC++ compiler?? + // on /std:c++latest under x86 conditions (VS 15.5.2), + // compiler errors are tossed for noexcept markings being on function types + // that are identical in every other way to their non-noexcept marked types function types... + // VS 2019: There is absolutely a bug. + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF + #else + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_DEFAULT_ON + #endif +#endif // noexcept is part of a function's type + +#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && SOL_STACK_STRING_OPTIMIZATION_SIZE > 0 + #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ SOL_STACK_STRING_OPTIMIZATION_SIZE +#else + #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ 1024 +#endif + +#if defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 + #define SOL_ID_SIZE_I_ SOL_ID_SIZE +#else + #define SOL_ID_SIZE_I_ 512 +#endif + +#if defined(LUA_IDSIZE) && LUA_IDSIZE > 0 + #define SOL_FILE_ID_SIZE_I_ LUA_IDSIZE +#elif defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 + #define SOL_FILE_ID_SIZE_I_ SOL_FILE_ID_SIZE +#else + #define SOL_FILE_ID_SIZE_I_ 2048 +#endif + +#if defined(SOL_PRINT_ERRORS) + #if (SOL_PRINT_ERRORS != 0) + #define SOL_PRINT_ERRORS_I_ SOL_ON + #else + #define SOL_PRINT_ERRORS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_PRINT_ERRORS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_PRINT_ERRORS_I_ SOL_DEFAULT_ON + #else + #define SOL_PRINT_ERRORS_I_ SOL_OFF + #endif +#endif + +#if defined(SOL_DEFAULT_PASS_ON_ERROR) + #if (SOL_DEFAULT_PASS_ON_ERROR != 0) + #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_ON + #else + #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_OFF + #endif +#else + #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_USING_CXX_LUA) + #if (SOL_USING_CXX_LUA != 0) + #define SOL_USE_CXX_LUA_I_ SOL_ON + #else + #define SOL_USE_CXX_LUA_I_ SOL_OFF + #endif +#elif defined(SOL_USE_CXX_LUA) + #if (SOL_USE_CXX_LUA != 0) + #define SOL_USE_CXX_LUA_I_ SOL_ON + #else + #define SOL_USE_CXX_LUA_I_ SOL_OFF + #endif +#else + #define SOL_USE_CXX_LUA_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_USING_CXX_LUAJIT) + #if (SOL_USING_CXX_LUA != 0) + #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #else + #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #endif +#elif defined(SOL_USE_CXX_LUAJIT) + #if (SOL_USE_CXX_LUA != 0) + #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #else + #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #endif +#else + #define SOL_USE_CXX_LUAJIT_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_NO_LUA_HPP) + #if (SOL_NO_LUA_HPP != 0) + #define SOL_USE_LUA_HPP_I_ SOL_OFF + #else + #define SOL_USE_LUA_HPP_I_ SOL_ON + #endif +#elif defined(SOL_USING_CXX_LUA) + #define SOL_USE_LUA_HPP_I_ SOL_OFF +#elif defined(__has_include) + #if __has_include() + #define SOL_USE_LUA_HPP_I_ SOL_ON + #else + #define SOL_USE_LUA_HPP_I_ SOL_OFF + #endif +#else + #define SOL_USE_LUA_HPP_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_CONTAINERS_START) + #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START +#elif defined(SOL_CONTAINERS_START_INDEX) + #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START_INDEX +#elif defined(SOL_CONTAINER_START_INDEX) + #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINER_START_INDEX +#else + #define SOL_CONTAINER_START_INDEX_I_ 1 +#endif + +#if defined (SOL_NO_MEMORY_ALIGNMENT) + #if (SOL_NO_MEMORY_ALIGNMENT != 0) + #define SOL_ALIGN_MEMORY_I_ SOL_OFF + #else + #define SOL_ALIGN_MEMORY_I_ SOL_ON + #endif +#else + #define SOL_ALIGN_MEMORY_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_USE_BOOST) + #if (SOL_USE_BOOST != 0) + #define SOL_USE_BOOST_I_ SOL_ON + #else + #define SOL_USE_BOOST_I_ SOL_OFF + #endif +#else + #define SOL_USE_BOOST_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_USE_UNSAFE_BASE_LOOKUP) + #if (SOL_USE_UNSAFE_BASE_LOOKUP != 0) + #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_ON + #else + #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_OFF + #endif +#else + #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_INSIDE_UNREAL) + #if (SOL_INSIDE_UNREAL != 0) + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_ON + #else + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_OFF + #endif +#else + #if defined(UE_BUILD_DEBUG) || defined(UE_BUILD_DEVELOPMENT) || defined(UE_BUILD_TEST) || defined(UE_BUILD_SHIPPING) || defined(UE_SERVER) + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_ON + #else + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_NO_COMPAT) + #if (SOL_NO_COMPAT != 0) + #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_OFF + #else + #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_ON + #endif +#else + #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_GET_FUNCTION_POINTER_UNSAFE) + #if (SOL_GET_FUNCTION_POINTER_UNSAFE != 0) + #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_ON + #else + #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_OFF + #endif +#else + #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_FUNCTION_CALL_VALUE_SEMANTICS) + #if (SOL_FUNCTION_CALL_VALUE_SEMANTICS != 0) + #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_ON + #else + #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_OFF + #endif +#else + #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_MINGW_CCTYPE_IS_POISONED) + #if (SOL_MINGW_CCTYPE_IS_POISONED != 0) + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_ON + #else + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_OFF + #endif +#elif SOL_IS_ON(SOL_COMPILER_MINGW) && defined(__GNUC__) && (__GNUC__ < 6) + // MinGW is off its rocker in some places... + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_ON +#else + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_CHAR8_T) + #if (SOL_CHAR8_T != 0) + #define SOL_CHAR8_T_I_ SOL_ON + #else + #define SOL_CHAR8_T_I_ SOL_OFF + #endif +#else + #if defined(__cpp_char8_t) + #define SOL_CHAR8_T_I_ SOL_DEFAULT_ON + #else + #define SOL_CHAR8_T_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if SOL_IS_ON(SOL_USE_BOOST) + #include + + #if BOOST_VERSION >= 107500 // Since Boost 1.75.0 boost::none is constexpr + #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr + #else + #define SOL_BOOST_NONE_CONSTEXPR_I_ const + #endif // BOOST_VERSION +#else + // assume boost isn't using a garbage version + #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr +#endif + +#if defined(SOL2_CI) + #if (SOL2_CI != 0) + #define SOL2_CI_I_ SOL_ON + #else + #define SOL2_CI_I_ SOL_OFF + #endif +#else + #define SOL2_CI_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_C_ASSERT) + #define SOL_USER_C_ASSERT_I_ SOL_ON +#else + #define SOL_USER_C_ASSERT_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_M_ASSERT) + #define SOL_USER_M_ASSERT_I_ SOL_ON +#else + #define SOL_USER_M_ASSERT_I_ SOL_DEFAULT_OFF +#endif + +// beginning of sol/prologue.hpp + +#if defined(SOL_PROLOGUE_I_) + #error "[sol2] Library Prologue was already included in translation unit and not properly ended with an epilogue." +#endif + +#define SOL_PROLOGUE_I_ 1 + +#if SOL_IS_ON(SOL_BUILD_CXX_MODE) + #define _FWD(...) static_cast( __VA_ARGS__ ) + + #if SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define _MOVE(...) static_cast<__typeof( __VA_ARGS__ )&&>( __VA_ARGS__ ) + #else + #include + + #define _MOVE(...) static_cast<::std::remove_reference_t<( __VA_ARGS__ )>&&>( __VA_OPT__(,) ) + #endif +#endif + +// end of sol/prologue.hpp + +// beginning of sol/epilogue.hpp + +#if !defined(SOL_PROLOGUE_I_) + #error "[sol2] Library Prologue is missing from this translation unit." +#else + #undef SOL_PROLOGUE_I_ +#endif + +#if SOL_IS_ON(SOL_BUILD_CXX_MODE) + #undef _FWD + #undef _MOVE +#endif + +// end of sol/epilogue.hpp + +// beginning of sol/detail/build_version.hpp + +#if defined(SOL_DLL) + #if (SOL_DLL != 0) + #define SOL_DLL_I_ SOL_ON + #else + #define SOL_DLL_I_ SOL_OFF + #endif +#elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(DLL_) || defined(_DLL)) + #define SOL_DLL_I_ SOL_DEFAULT_ON +#else + #define SOL_DLL_I_ SOL_DEFAULT_OFF +#endif // DLL definition + +#if defined(SOL_HEADER_ONLY) + #if (SOL_HEADER_ONLY != 0) + #define SOL_HEADER_ONLY_I_ SOL_ON + #else + #define SOL_HEADER_ONLY_I_ SOL_OFF + #endif +#else + #define SOL_HEADER_ONLY_I_ SOL_DEFAULT_OFF +#endif // Header only library + +#if defined(SOL_BUILD) + #if (SOL_BUILD != 0) + #define SOL_BUILD_I_ SOL_ON + #else + #define SOL_BUILD_I_ SOL_OFF + #endif +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_BUILD_I_ SOL_DEFAULT_OFF +#else + #define SOL_BUILD_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_UNITY_BUILD) + #if (SOL_UNITY_BUILD != 0) + #define SOL_UNITY_BUILD_I_ SOL_ON + #else + #define SOL_UNITY_BUILD_I_ SOL_OFF + #endif +#else + #define SOL_UNITY_BUILD_I_ SOL_DEFAULT_OFF +#endif // Header only library + +#if defined(SOL_C_FUNCTION_LINKAGE) + #define SOL_C_FUNCTION_LINKAGE_I_ SOL_C_FUNCTION_LINKAGE +#else + #if SOL_IS_ON(SOL_BUILD_CXX_MODE) + // C++ + #define SOL_C_FUNCTION_LINKAGE_I_ extern "C" + #else + // normal + #define SOL_C_FUNCTION_LINKAGE_I_ + #endif // C++ or not +#endif // Linkage specification for C functions + +#if defined(SOL_API_LINKAGE) + #define SOL_API_LINKAGE_I_ SOL_API_LINKAGE +#else + #if SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) || SOL_IS_ON(SOL_PLATFORM_WINDOWS) || SOL_IS_ON(SOL_PLATFORM_CYGWIN) + // MSVC Compiler; or, Windows, or Cygwin platforms + #if SOL_IS_ON(SOL_BUILD) + // Building the library + #if SOL_IS_ON(SOL_COMPILER_GCC) + // Using GCC + #define SOL_API_LINKAGE_I_ __attribute__((dllexport)) + #else + // Using Clang, MSVC, etc... + #define SOL_API_LINKAGE_I_ __declspec(dllexport) + #endif + #else + #if SOL_IS_ON(SOL_COMPILER_GCC) + #define SOL_API_LINKAGE_I_ __attribute__((dllimport)) + #else + #define SOL_API_LINKAGE_I_ __declspec(dllimport) + #endif + #endif + #else + // extern if building normally on non-MSVC + #define SOL_API_LINKAGE_I_ extern + #endif + #elif SOL_IS_ON(SOL_UNITY_BUILD) + // Built-in library, like how stb typical works + #if SOL_IS_ON(SOL_HEADER_ONLY) + // Header only, so functions are defined "inline" + #define SOL_API_LINKAGE_I_ inline + #else + // Not header only, so seperately compiled files + #define SOL_API_LINKAGE_I_ extern + #endif + #else + // Normal static library + #if SOL_IS_ON(SOL_BUILD_CXX_MODE) + #define SOL_API_LINKAGE_I_ + #else + #define SOL_API_LINKAGE_I_ extern + #endif + #endif // DLL or not +#endif // Build definitions + +#if defined(SOL_PUBLIC_FUNC_DECL) + #define SOL_PUBLIC_FUNC_DECL_I_ SOL_PUBLIC_FUNC_DECL +#else + #define SOL_PUBLIC_FUNC_DECL_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_INTERNAL_FUNC_DECL_) + #define SOL_INTERNAL_FUNC_DECL_I_ SOL_INTERNAL_FUNC_DECL_ +#else + #define SOL_INTERNAL_FUNC_DECL_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_PUBLIC_FUNC_DEF) + #define SOL_PUBLIC_FUNC_DEF_I_ SOL_PUBLIC_FUNC_DEF +#else + #define SOL_PUBLIC_FUNC_DEF_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_INTERNAL_FUNC_DEF) + #define SOL_INTERNAL_FUNC_DEF_I_ SOL_INTERNAL_FUNC_DEF +#else + #define SOL_INTERNAL_FUNC_DEF_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_FUNC_DECL) + #define SOL_FUNC_DECL_I_ SOL_FUNC_DECL +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_FUNC_DECL_I_ +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_FUNC_DECL_I_ extern __declspec(dllexport) + #else + #define SOL_FUNC_DECL_I_ extern __declspec(dllimport) + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_FUNC_DECL_I_ extern __attribute__((visibility("default"))) + #else + #define SOL_FUNC_DECL_I_ extern + #endif +#endif + +#if defined(SOL_FUNC_DEFN) + #define SOL_FUNC_DEFN_I_ SOL_FUNC_DEFN +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_FUNC_DEFN_I_ inline +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_FUNC_DEFN_I_ __declspec(dllexport) + #else + #define SOL_FUNC_DEFN_I_ __declspec(dllimport) + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_FUNC_DEFN_I_ __attribute__((visibility("default"))) + #else + #define SOL_FUNC_DEFN_I_ + #endif +#endif + +#if defined(SOL_HIDDEN_FUNC_DECL) + #define SOL_HIDDEN_FUNC_DECL_I_ SOL_HIDDEN_FUNC_DECL +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_HIDDEN_FUNC_DECL_I_ +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllexport) + #else + #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllimport) + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_HIDDEN_FUNC_DECL_I_ extern __attribute__((visibility("default"))) + #else + #define SOL_HIDDEN_FUNC_DECL_I_ extern + #endif +#endif + +#if defined(SOL_HIDDEN_FUNC_DEFN) + #define SOL_HIDDEN_FUNC_DEFN_I_ SOL_HIDDEN_FUNC_DEFN +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_HIDDEN_FUNC_DEFN_I_ inline +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_HIDDEN_FUNC_DEFN_I_ + #else + #define SOL_HIDDEN_FUNC_DEFN_I_ + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_HIDDEN_FUNC_DEFN_I_ __attribute__((visibility("hidden"))) + #else + #define SOL_HIDDEN_FUNC_DEFN_I_ + #endif +#endif + +// end of sol/detail/build_version.hpp + +// end of sol/version.hpp + +#include +#include +#include + +#if SOL_IS_ON(SOL_USE_CXX_LUA) || SOL_IS_ON(SOL_USE_CXX_LUAJIT) +struct lua_State; +#else +extern "C" { +struct lua_State; +} +#endif // C++ Mangling for Lua vs. Not + +namespace sol { + + enum class type; + + class stateless_reference; + template + class basic_reference; + using reference = basic_reference; + using main_reference = basic_reference; + class stateless_stack_reference; + class stack_reference; + + template + class basic_bytecode; + + struct lua_value; + + struct proxy_base_tag; + template + struct proxy_base; + template + struct table_proxy; + + template + class basic_table_core; + template + using table_core = basic_table_core; + template + using main_table_core = basic_table_core; + template + using stack_table_core = basic_table_core; + template + using basic_table = basic_table_core; + using table = table_core; + using global_table = table_core; + using main_table = main_table_core; + using main_global_table = main_table_core; + using stack_table = stack_table_core; + using stack_global_table = stack_table_core; + + template + struct basic_lua_table; + using lua_table = basic_lua_table; + using stack_lua_table = basic_lua_table; + + template + class basic_usertype; + template + using usertype = basic_usertype; + template + using stack_usertype = basic_usertype; + + template + class basic_metatable; + using metatable = basic_metatable; + using stack_metatable = basic_metatable; + + template + struct basic_environment; + using environment = basic_environment; + using main_environment = basic_environment; + using stack_environment = basic_environment; + + template + class basic_function; + template + class basic_protected_function; + using unsafe_function = basic_function; + using safe_function = basic_protected_function; + using main_unsafe_function = basic_function; + using main_safe_function = basic_protected_function; + using stack_unsafe_function = basic_function; + using stack_safe_function = basic_protected_function; + using stack_aligned_unsafe_function = basic_function; + using stack_aligned_safe_function = basic_protected_function; + using protected_function = safe_function; + using main_protected_function = main_safe_function; + using stack_protected_function = stack_safe_function; + using stack_aligned_protected_function = stack_aligned_safe_function; +#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) + using function = protected_function; + using main_function = main_protected_function; + using stack_function = stack_protected_function; + using stack_aligned_function = stack_aligned_safe_function; +#else + using function = unsafe_function; + using main_function = main_unsafe_function; + using stack_function = stack_unsafe_function; + using stack_aligned_function = stack_aligned_unsafe_function; +#endif + using stack_aligned_stack_handler_function = basic_protected_function; + + struct unsafe_function_result; + struct protected_function_result; + using safe_function_result = protected_function_result; +#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) + using function_result = safe_function_result; +#else + using function_result = unsafe_function_result; +#endif + + template + class basic_object_base; + template + class basic_object; + template + class basic_userdata; + template + class basic_lightuserdata; + template + class basic_coroutine; + template + class basic_packaged_coroutine; + template + class basic_thread; + + using object = basic_object; + using userdata = basic_userdata; + using lightuserdata = basic_lightuserdata; + using thread = basic_thread; + using coroutine = basic_coroutine; + using packaged_coroutine = basic_packaged_coroutine; + using main_object = basic_object; + using main_userdata = basic_userdata; + using main_lightuserdata = basic_lightuserdata; + using main_coroutine = basic_coroutine; + using stack_object = basic_object; + using stack_userdata = basic_userdata; + using stack_lightuserdata = basic_lightuserdata; + using stack_thread = basic_thread; + using stack_coroutine = basic_coroutine; + + struct stack_proxy_base; + struct stack_proxy; + struct variadic_args; + struct variadic_results; + struct stack_count; + struct this_state; + struct this_main_state; + struct this_environment; + + class state_view; + class state; + + template + struct as_table_t; + template + struct as_container_t; + template + struct nested; + template + struct light; + template + struct user; + template + struct as_args_t; + template + struct protect_t; + template + struct policy_wrapper; + + template + struct usertype_traits; + template + struct unique_usertype_traits; + + template + struct types { + typedef std::make_index_sequence indices; + static constexpr std::size_t size() { + return sizeof...(Args); + } + }; + + template + struct derive : std::false_type { + typedef types<> type; + }; + + template + struct base : std::false_type { + typedef types<> type; + }; + + template + struct weak_derive { + static bool value; + }; + + template + bool weak_derive::value = false; + + namespace stack { + struct record; + } + +#if SOL_IS_OFF(SOL_USE_BOOST) + template + class optional; + + template + class optional; +#endif + + using check_handler_type = int(lua_State*, int, type, type, const char*); + +} // namespace sol + +#define SOL_BASE_CLASSES(T, ...) \ + namespace sol { \ + template <> \ + struct base : std::true_type { \ + typedef ::sol::types<__VA_ARGS__> type; \ + }; \ + } \ + void a_sol3_detail_function_decl_please_no_collide() +#define SOL_DERIVED_CLASSES(T, ...) \ + namespace sol { \ + template <> \ + struct derive : std::true_type { \ + typedef ::sol::types<__VA_ARGS__> type; \ + }; \ + } \ + void a_sol3_detail_function_decl_please_no_collide() + +#endif // SOL_FORWARD_HPP +// end of sol/forward.hpp + +#endif // SOL_SINGLE_INCLUDE_FORWARD_HPP diff --git a/main.cpp b/main.cpp index 048720d..9db767a 100644 --- a/main.cpp +++ b/main.cpp @@ -1,1242 +1,50 @@ -//======================================================================================================================================== -// F4 Racing -//---------------------------------------------------------------------------------------------------------------------------------------- -// This is an advancement in my game making skills, building off the back of my work on the "Collect the Balls" game. -//---------------------------------------------------------------------------------------------------------------------------------------- -// created by Rune -// black box code by Sigonasr2 from the OLC (one lone coder) Discord server -//======================================================================================================================================== -#define OLC_PGE_APPLICATION -#include "pixelGameEngine.h" // used for drawing the game +#include +#include -//======================================================================================================================================== -// protected variables -//======================================================================================================================================== -class Racer : public olc::PixelGameEngine -{ -public: - Racer() - { - sAppName = "F4 Racing"; - } - -private: - float car_pos = 0.f; // track the horizontal location of player - float distance = 0.f; // track the "vertical" location of player; basically, they're somewhere on the track between the start and finish line - float speed = 0.f; - - float curvature = 0.f; // probably the player's horizontal position in relation to the track's curve - float track_curve = 0.f; - float car_curve = 0.f; // wtf.... - float track_dist = 0.f; // total distance of the circuit - - float cur_lap_time = 0.f; - - std::vector> vecTrack; - std::list list_times; - - bool bothKeysPressed = false; // checking for dual key press; could probably work with more than 2 keys - - // custom controls template - olc::Key Move_Up = olc::UP; - olc::Key Move_Down = olc::DOWN; - olc::Key Move_Left = olc::LEFT; - olc::Key Move_Right = olc::RIGHT; - - std::array keyslist = { "UP", "DOWN", "LEFT", "RIGHT" }; - int configKeyIndex = -1; - char pressedKey; - - // selection screen variables - int cup = -1; - int track = -1; - int player = 0; - -//======================================================================================================================================== -// Menu Setup -//======================================================================================================================================== -public: - bool activeOption = true; // highlighting current option - int highlighted; - - struct MenuItem - { - std::string label; // label - olc::vi2d pos; // label's position - std::string label2; // another label to right of label - }; - - struct Object - { - olc::vf2d pos{ 0, 0 }; // the x position represents how far to the left/right it is from the center. -1 ~ 1: road's range; the y position is how far along the track it is - olc::vf2d size{ 1, 1 }; - olc::Decal* decal = nullptr; - olc::vf2d offset{ 0, 0 }; // how far off the image will be - bool rendered = false; - olc::vf2d drawPos; - olc::vf2d drawSize; - olc::vf2d drawOffsetPos; - }; - - std::vector mainMenu; - std::vector playGame; - std::vector pickTrack; - std::vector grandPrix; - std::vector selectCar; - std::vector controls; - std::vector pause; - std::vector gameOver; - - std::vector gameObjects; - - enum class state - { - MAIN_MENU, PLAY_GAME, RUN_GAME, CONTROLS, PAUSED, RESUME, // main - TRACK_SELECT, CUP_SELECT, CAR_SELECT, // game - INDIE, STREET, PRO, GRAND_PRIX // cups - }; - - state gameState = state::MAIN_MENU; - -//======================================================================================================================================== -// Variables -//======================================================================================================================================== - - // lap times - - // player - int score = 0; // score at end of track; based on final place - int lap = 0; // current lap player is on - int place; // current place player is in - int tracks_left; - - // initialize sprites - olc::Decal* car; - olc::Decal* cars; - olc::Decal* hill; - olc::Decal* grass; - olc::Decal* road; - olc::Decal* banner; - olc::Decal* title; - olc::Decal* cups; - //olc::Decal* select; - - std::string KeyToString(olc::Key key) - { - const std::array keyStrings = - { - "NONE","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9", - "F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","UP","DOWN","LEFT","RIGHT","SPACE","TAB","SHIFT","CTRL","INS","DEL","HOME","END","PGUP","PGDN","BACK","ESCAPE","ENTER","ENTER", - "PAUSE","SCROLL LK","Kp-0","Kp-1","Kp-2","Kp-3","Kp-4","Kp-5","Kp-6","Kp-7","Kp-8","Kp-9","Kp-*","Kp-/","Kp-+","Kp--","Kp-.",".","=",",","-","OEM_1", - "OEM_2","OEM_3","OEM_4","OEM_5","OEM_6","OEM_7","OEM_8","CAPS LOCK","END" - }; - return keyStrings[key]; - } - - // add laps to a new track struct - - struct Track - { - std::vector > curves; // curves - std::string name; // names - int laps; // laps - }; - - // special track ;) - Track javidx9 = - { - // they'll likely be wonky for the game as it's not really modified to fit my units of - // these happen to be measured in meters, as per Javid's original construction measure - {{0.f, 10.f}, {0.f, 200.f}, {1.f, 200.f}, {0.f, 400.f}, {-1.f, 100.f}, - {0.f, 200.f}, {-1.f, 200.f}, {1.f, 200.f}, {0.f, 200.f}, {0.2f, 500.f}, {0.f, 200.f}}, "JAVIDX9", 3 - }; - - // all 9 tracks below are running on yards for their distance units - // this means the end results are in miles; rather than kilometers - // enjoy the US measures of Burgers per Freedom Eagle - //================================================================================================== - Track circuit = - { - // Classic Oval; 1 mile loop, 1,760 yards - { {0.f, 10.f}, {0.f, 270.f}, {-1.f, 330.f}, {0.f, 550.f}, {-1.f, 330.f}, {0.f, 270.f} }, "CIRCUIT", 3 - }; - - Track infinity = - { - // figure eight - {{0.f, 10.f}, // flag (straight); this is positioned somewhere after the intersection - {0.f, 190.f }, {-1.f, 200.f}, - {0.f, 500.f }, // straight; this crosses the first straight, to provide for chances of crashing - {1.f, 200.f }, {0.f, 300.f }}, "INFINITY", 3 - }; - - Track arrow_head = - { - // fancy triangle - {{0.f, 10.f}, {0.f, 490.f}, {1.f, 130.f}, {0.f, 1000.f}, {1.f, 130.f}, - {0.f, 500.f}, {-1.f, 130.f}, {0.f, 500.f}, {1.f, 130.f}, {0.f, 500.f}}, "ARROW HEAD", 3 - }; - - Track track_4 = // ??? - { - {{0.f, 10.f},}, "Track 4", 3 - }; - - Track overpass = - { - // kind of a folded figure eight - {{0.f, 10.f}, - {0.f, 0.f}, - {1.f, 0.f}, - {0.f, 0.f}, - {1.f, 0.f}, - {1.f, 0.f}, - {0.f, 0.f}, - {1.f, 0.f}, - {0.f, 0.f}}, "OVERPASS", 3 - }; - - Track peanut= - { - // No more rhymes now. I mean it! - // Anybody want a peanut? - // GAH!!! - {{0.f, 10.f},}, "PEANUT", 4 - }; - - Track track_7 = // ??? - { - {{0.f, 10.f},}, "Track 7", 3 - }; - - Track trident = - { - // is your preferred Neptune or Poseidon? - {{0.f, 10.f},}, "TRIDENT", 3 - }; - - Track star = - { - // spangled banner; oh say can you see.... - // look, I suck at singing, and not gonna look up the lyrics, just, enjoy American awesomeness - {{0.f, 10.f},}, "STAR", 3 - }; - - std::vector trackList = - { - javidx9, - circuit, infinity, arrow_head, - track_4, overpass, peanut, - track_7, trident, star - }; - - -//======================================================================================================================================== -// Create Game Objects -//======================================================================================================================================== - bool OnUserCreate() override - { - mainMenu = // show menu options - { - { "START GAME", { ScreenWidth() / 2, ScreenHeight() / 5 * 3} }, - { "CONTROLS", { ScreenWidth() / 2, ScreenHeight() / 5 * 3 + 64} }, - { "QUIT", {ScreenWidth() / 2, ScreenHeight() / 5 * 3 + 128 } } - }; - - playGame = - { - { "TRACK SELECTION", { ScreenWidth() / 2, ScreenHeight() / 4 } }, - { "GRAND PRIX", { ScreenWidth() / 2, ScreenHeight() / 2 } }, - { "BACK", { ScreenWidth() / 2, ScreenHeight() / 6 * 5} } - }; - - pickTrack = // show track options - { - { "CIRCUIT", { ScreenWidth() / 4, ScreenHeight() / 4 } }, { "INFINITY", { ScreenWidth() / 2, ScreenHeight() / 4 } }, - { "ARROWHEAD", { ScreenWidth() / 4 * 3, ScreenHeight() / 4 } }, { "Track 4", { ScreenWidth() / 4, ScreenHeight() / 2 }}, - { "OVERPASS", { ScreenWidth() / 2, ScreenHeight() / 2 } }, { "PEANUT", { ScreenWidth() / 4 * 3, ScreenHeight() / 2 } } , - { "Track 7", { ScreenWidth() / 4, ScreenHeight() / 4 * 3 } }, { "TRIDENT", { ScreenWidth() / 2, ScreenHeight() / 4 * 3 } }, - { "STAR", { ScreenWidth() / 4 * 3, ScreenHeight() / 4 * 3 } }, { "BACK", { ScreenWidth() / 2, ScreenHeight() / 6 * 5} } - }; - - grandPrix = // show race cups - { - { "INDIE CUP", { ScreenWidth() / 3, ScreenHeight() / 3 } }, { "STREET CUP", { ScreenWidth() / 3 * 2, ScreenHeight() / 3 } }, - { "PRO CUP", { ScreenWidth() / 3, ScreenHeight() / 3 * 2 } }, { "GRAND PRIX", { ScreenWidth() / 3 * 2, ScreenHeight() / 3 * 2 } }, - { "BACK", { ScreenWidth() / 2, ScreenHeight() / 6 * 5 } } - }; - - selectCar = // pick a color - { - { "RED", { ScreenWidth() / 5, ScreenHeight() / 3 } }, { "BLUE", { ScreenWidth() / 5 * 2, ScreenHeight() / 3 } }, - { "GREEN", { ScreenWidth() / 5 * 3, ScreenHeight() / 3 } }, { "GOLD", { ScreenWidth() / 5 * 4, ScreenHeight() / 3 } }, - { "PURPLE", { ScreenWidth() / 5, ScreenHeight() / 3 * 2 } }, { "WHITE", { ScreenWidth() / 5 * 2, ScreenHeight() / 3 * 2 } }, - { "ORANGE", { ScreenWidth() / 5 * 3, ScreenHeight() / 3 * 2 } }, { "BLACK", { ScreenWidth() / 5 * 4, ScreenHeight() / 3 * 2 } }, - { "BACK", { ScreenWidth() / 2, ScreenHeight() / 6 * 5} } - }; - - controls = // customize controls - { - { "FORWARD", { ScreenWidth() / 3, ScreenHeight() / 9 * 2 }, KeyToString(Move_Up) }, { "BACK", { ScreenWidth() / 3, ScreenHeight() / 9 * 3 }, KeyToString(Move_Down) }, - { "LEFT", { ScreenWidth() / 3, ScreenHeight() / 9 * 4 }, KeyToString(Move_Left) }, { "RIGHT", { ScreenWidth() / 3, ScreenHeight() / 9 * 5 }, KeyToString(Move_Right) }, - { "DEFAULT", { ScreenWidth() / 2, ScreenHeight() / 9 * 6} }, { "BACK", { ScreenWidth() / 2, ScreenHeight() / 6 * 5} } - }; - - pause = - { - { "RESUME", { ScreenWidth() / 2, ScreenHeight() / 9 * 3} }, { "RESTART", { ScreenWidth() / 2, ScreenHeight() / 9 * 4} }, - { "MENU", { ScreenWidth() / 2, ScreenHeight() / 9 * 5} }, { "QUIT", { ScreenWidth() / 2, ScreenHeight() / 9 * 6} } - }; - - gameOver = { "Return to Main Menu" }; - -//======================================================================================================================================== - // load sprites - car = new olc::Decal(new olc::Sprite("art/car.png")); // will contain 8 cars, with 3 angles per car - cars = new olc::Decal(new olc::Sprite("art/cars.png")); // temp file; holds all 8 cars - hill = new olc::Decal(new olc::Sprite("art/hills.png"), false, false); - grass = new olc::Decal(new olc::Sprite("art/grass.png"), false, false); - road = new olc::Decal(new olc::Sprite("art/road.png"), false, false); // holds both road and flag line - banner = new olc::Decal(new olc::Sprite("art/start.png"), false, false); - title = new olc::Decal(new olc::Sprite("art/title.png")); - cups = new olc::Decal(new olc::Sprite("art/cups.png")); // 64 px tiles; 128 px image - //select = new olc::Decal(new olc::Sprite("art/selection.png")); - - // track stuff - list_times = { 0,0,0,0,0 }; // this needs modification, as most tracks will likely have 4 laps, some with 3, and some with 5 - gameObjects.push_back({ /*{-1.5,track_dist - 50}, {10,6}, {0,240}*/ }); - - return true; - } - -//======================================================================================================================================== -// reset game -//======================================================================================================================================== - - void Reset() - { - car_pos = 0.0f; - distance = 0.0f; - speed = 0.0f; - - curvature = 0.0f; - track_curve = 0.0f; - car_curve = 0.0f; - track_dist = 0.0f; - - cur_lap_time = 0.0f; - lap = 0; - - // Note: the following all need to be reset during the process, when they've been implemented - // -player position (on screen) - // -player position (on track) - // -track section - // -all lap times - // -score - // - // if called from other parts of the program, other than the 'F1' key, it should be resetting to the menu - // the 'F1' key is meant to reset the player on the current track they're on - // - } - - void DrawTrack() - { - vecTrack.clear(); - for (int i = 0; i < trackList[track].curves.size(); i++) - { - vecTrack.push_back(trackList[track].curves[i]); - track_dist += vecTrack[i].second; - } - } - -//======================================================================================================================================== -// main menu -//======================================================================================================================================== - void DisplayMenu(std::vector list) - { - // drawing and coloring menu selections - for (int i = 0; i < list.size(); i++) - { - olc::vi2d textSize = GetTextSize(list[i].label) / 2 * 4; - olc::Pixel textCol = olc::GREY; // greys out unselected options - if (highlighted == i) - { - textCol = olc::Pixel(255, 201, 14); // gold - } - - DrawStringDecal(list[i].pos - textSize, list[i].label, textCol, { 4.0f, 4.0f }); - if (list[i].label2.size() > 0) - { - olc::vi2d offset = { ScreenWidth() / 3, -textSize.y / 2 }; - DrawStringDecal(list[i].pos + offset, list[i].label2, textCol, { 4.0f, 4.0f }); - } - } - - // selecting options - highlighted = std::clamp(highlighted, 0, (int)list.size() - 1); // loop if out of range - - int shortest = 9999999; - int largest = -9999999; - int targetItem = highlighted; - -//======================================================================================================================================== - if (GetKey(olc::Key::DOWN).bPressed) - { - for (int i = 0; i < list.size(); i++) - { - if (highlighted != i) - { - if (list[highlighted].pos.x == list[i].pos.x) - { - if (list[highlighted].pos.y < list[i].pos.y) - { - // it's below us - int dist = abs(list[highlighted].pos.y - list[i].pos.y); - - if (dist < shortest) - { - targetItem = i; - shortest = dist; - } +int main() { + std::map vals; + for (int i=1;i<=15;i++) { + for (int j=1;j<=15;j++) { + for (int k=1;k<=15;k++) { + if (i+j+k==15) { + std::string testStr; + int val1=i,val2=j,val3=k; + if (i list[i].pos.y) - { - // it's above us - int dist = abs(list[highlighted].pos.y - list[i].pos.y); - - if (dist < shortest) - { - targetItem = i; - shortest = dist; - } + if (k list[i].pos.y) - { - // it's below us - int dist = abs(list[highlighted].pos.y - list[i].pos.y); - - if (dist < shortest) - { - targetItem = i; - shortest = dist; - } + if (!vals.count(std::to_string(val1)+"_"+std::to_string(val2)+"_"+std::to_string(val3))) { + std::cout< list[i].pos.x) - { - // it's to the left - int dist = abs(list[highlighted].pos.x - list[i].pos.x); - - if (dist > largest) - { - targetItem = i; - largest = dist; - } - } - } - } - } - } - highlighted = targetItem; - } - -//======================================================================================================================================== - if (GetKey(olc::Key::LEFT).bPressed) - { - for (int i = 0; i < list.size(); i++) - { - if (highlighted != i) - { - if (list[highlighted].pos.y == list[i].pos.y) - { - if (list[highlighted].pos.x > list[i].pos.x) - { - // it's to the right - int dist = abs(list[highlighted].pos.x - list[i].pos.x); - - if (dist < shortest) - { - targetItem = i; - shortest = dist; - } - } - } - } - } - if (highlighted == targetItem) - { - for (int i = 0; i < list.size(); i++) - { - if (highlighted != i) - { - if (list[highlighted].pos.y == list[i].pos.y) - { - if (list[highlighted].pos.x < list[i].pos.x) - { - // it's to the left - int dist = abs(list[highlighted].pos.x - list[i].pos.x); - - if (dist > largest) - { - targetItem = i; - largest = dist; - } - } - } - } - } - } - highlighted = targetItem; - } - - //======================================== - if (highlighted >= (int)list.size()) - { - highlighted = 0; // wrap around when above max - } - if (highlighted < 0) - { - highlighted = list.size() - 1; // wrap around when below zero - } - } - -//======================================================================================================================================== -// controls -//======================================================================================================================================== - void GetAnyKeyPress(olc::Key keypress) override - { - if (configKeyIndex != -1) - { - switch (configKeyIndex) - { - case 0: - { - Move_Up = keypress; - }break; - case 1: - { - Move_Right = keypress; - }break; - case 2: - { - Move_Left = keypress; - }break; - case 3: - { - Move_Down = keypress; - }break; - } - controls[configKeyIndex].label2 = KeyToString(keypress); - configKeyIndex = -1; } } - -//======================================================================================================================================== -// Main Game Function -//======================================================================================================================================== - bool OnUserUpdate(float fElapsedTime) override - { - if (GetKey(olc::Key::CTRL).bHeld && GetKey(olc::Key::F12).bHeld && !bothKeysPressed) - { - return false; - } - - // draw skybox - GradientFillRectDecal({ 0.0f, 0.0f }, { ScreenWidth() + 0.0f, ScreenHeight() / 2 + 0.0f }, olc::DARK_BLUE, olc::BLUE, olc::BLUE, olc::DARK_BLUE); - // the hills have eyes; y'know, like in Super Mario Bros. What reference did you think was going to be here? - DrawPartialDecal({ 0.0f, ScreenHeight() / 2 - 100.0f }, hill, { 0.0f + track_curve * 200, 0.0f }, { ScreenWidth() + 0.0f, (float)hill->sprite->height }, { 1.5f, 1.0f }); - //DrawPartialDecal({ 180.0f, ScreenHeight() / 2 - 100.0f }, hill, { 0.0f + track_curve * 200, 0.0f }, { ScreenWidth() + 0.0f, (float)hill->sprite->height }); - DrawPartialWarpedDecal // draw grass - ( - grass, { { 0.0f, ScreenHeight() / 2 + 0.0f }, - { -ScreenWidth() * 2 + 0.0f, ScreenHeight() + 0.0f}, - { ScreenWidth() * 2 + ScreenWidth() + 0.0f, ScreenHeight() + 0.0f }, - { ScreenWidth() + 0.0f, ScreenHeight() / 2 + 0.0f } }, - { 0.0f, -distance }, { 1 * 32, 4 * 64 } - ); - -//======================================================================================================================================== - if (gameState == state::MAIN_MENU) - { - FillRectDecal({ 0, 0 }, { ScreenWidth() + 0.f, ScreenHeight() + 0.f }, olc::Pixel(0, 0, 0, 16)); - // display title - DrawDecal({ 95.5f, 95.5f }, title/*, {0.4f, 0.4f}*/); - DisplayMenu(mainMenu); - //DrawStringDecal({ ScreenWidth() / 2 + 0.0f, ScreenHeight() / 2 + 0.0f }, "START GAME", olc::WHITE, { 4.0f, 4.0f }); - - if (GetKey(olc::Key::ENTER).bPressed || GetKey(olc::Key::SPACE).bPressed) - { - // vertical menu - if (highlighted == 0) - { - gameState = state::PLAY_GAME; - highlighted = 0; - } - else if (highlighted == 1) - { - gameState = state::CONTROLS; - highlighted = 0; - } - else - { - return false; // quit game - } - } - if (GetKey(olc::Key::ESCAPE).bPressed) - { - return false; // exit via Escape key - } - } - -//======================================================================================================================================== - else if (gameState == state::PLAY_GAME) - { - FillRectDecal({ 0, 0 }, { ScreenWidth() + 0.f, ScreenHeight() + 0.f }, olc::Pixel(0, 0, 0, 16)); - DisplayMenu(playGame); - if (GetKey(olc::Key::ENTER).bPressed || GetKey(olc::Key::SPACE).bPressed) - { - // vertical menu - if (highlighted == 0) - { - gameState = state::TRACK_SELECT; - highlighted = 0; - } - else if (highlighted == 1) - { - gameState = state::CUP_SELECT; - highlighted = 0; - } - else - { - gameState = state::MAIN_MENU; // return to menu - highlighted = 0; - } - } - if (GetKey(olc::Key::ESCAPE).bPressed || GetKey(olc::Key::BACK).bPressed) - { - gameState = state::MAIN_MENU; - highlighted = 0; - } - } - -//======================================================================================================================================== - else if (gameState == state::TRACK_SELECT) - { - FillRectDecal({ 0, 0 }, { ScreenWidth() + 0.f, ScreenHeight() + 0.f }, olc::Pixel(0, 0, 0, 16)); - DisplayMenu(pickTrack); - if (GetKey(olc::Key::ENTER).bPressed || GetKey(olc::Key::SPACE).bPressed) - { - if (highlighted >= 0 && highlighted <= 8) - { - track = highlighted + 1; - gameState = state::CAR_SELECT; - highlighted = 0; - } - else - { - gameState = state::PLAY_GAME; - highlighted = 0; - track = -1; - } - } - if (GetKey(olc::Key::CTRL).bHeld && GetKey(olc::Key::F9).bHeld) - { - // cheat code for Javidx9's original track - track = 0; - gameState = state::CAR_SELECT; - } - if (GetKey(olc::Key::ESCAPE).bPressed || GetKey(olc::Key::BACK).bPressed) - { - gameState = state::PLAY_GAME; - highlighted = 0; - } - } - -//======================================================================================================================================== - else if (gameState == state::CUP_SELECT) - { - FillRectDecal({ 0, 0 }, { ScreenWidth() + 0.f, ScreenHeight() + 0.f }, olc::Pixel(0, 0, 0, 16)); - DrawPartialDecal({ ScreenWidth() / 3 - 96.f, ScreenHeight() / 3 - 192.f }, cups, { 0, 0 }, { 64, 64 }, { 3.0f, 3.0f }, (highlighted == 0) ? olc::WHITE : olc::DARK_GREY); // bronze - DrawPartialDecal({ ScreenWidth() / 3 * 2 - 96.f, ScreenHeight() / 3 - 192.f }, cups, { 64, 0 }, { 64, 64 }, { 3.0f, 3.0f }, (highlighted == 1) ? olc::WHITE : olc::DARK_GREY); // silver - DrawPartialDecal({ ScreenWidth() / 3 - 96.f, ScreenHeight() / 3 * 2 - 192.f }, cups, { 0, 64 }, { 64, 64 }, { 3.0f, 3.0f }, (highlighted == 2) ? olc::WHITE : olc::DARK_GREY); // gold - DrawPartialDecal({ ScreenWidth() / 3 * 2 - 96.f, ScreenHeight() / 3 * 2 - 192.f }, cups, { 64, 64 }, { 64, 64 }, { 3.0f, 3.0f }, (highlighted == 3) ? olc::WHITE : olc::DARK_GREY); // platinum - DisplayMenu(grandPrix); - - if (GetKey(olc::Key::ENTER).bPressed || GetKey(olc::Key::SPACE).bPressed) - { - // 2 x 2 menu - std::array gameStates = { state::INDIE, state::STREET, state::PRO, state::GRAND_PRIX }; - if (highlighted >= 0 && highlighted <= 3) - { - gameState = gameStates[highlighted]; - cup = highlighted + 1; - gameState = state::CAR_SELECT; - tracks_left = 3; - track = 1 + highlighted * 3; - if (highlighted == 3) - { - tracks_left = 9; - } - highlighted = 0; - } - //if (highlighted == 0) - //{ - // gameState = state::INDIE; - // cup = 1; - // gameState = state::CAR_SELECT; - // highlighted = 0; - //} - //else if (highlighted == 1) - //{ - // gameState = state::STREET; - // cup = 2; - // gameState = state::CAR_SELECT; - // highlighted = 0; - //} - //else if (highlighted == 2) - //{ - // gameState = state::PRO; - // cup = 3; - // gameState = state::CAR_SELECT; - // highlighted = 0; - //} - //else if (highlighted == 3) - //{ - // gameState = state::GRAND_PRIX; - // cup = 4; - // gameState = state::CAR_SELECT; - // highlighted = 0; - //} - else - { - gameState = state::PLAY_GAME; // return to menu - cup = -1; - highlighted = 0; - } - } - if (GetKey(olc::Key::CTRL).bHeld && GetKey(olc::Key::F9).bHeld) - { - // cheat code for Javidx9 Grand Prix Cup - // add's Javid's track to the end of the standard Grand Prix - cup = 0; - gameState = state::CAR_SELECT; - tracks_left = 10; - } - if (GetKey(olc::Key::ESCAPE).bPressed || GetKey(olc::Key::BACK).bPressed) - { - gameState = state::PLAY_GAME; - cup = -1; - highlighted = 0; - } - } - -//======================================================================================================================================== - else if (gameState == state::CAR_SELECT) - { - FillRectDecal({ 0, 0 }, { ScreenWidth() + 0.f, ScreenHeight() + 0.f }, olc::Pixel(0, 0, 0, 16)); - DrawPartialDecal({ ScreenWidth() / 5 - 96.f, ScreenHeight() / 3 - 192.f }, cars, { 0, 0 }, { 256, 192}, { .75f, .75f }, (highlighted == 0) ? olc::WHITE : olc::DARK_GREY); // red - DrawPartialDecal({ ScreenWidth() / 5 * 2 - 96.f, ScreenHeight() / 3 - 192.f }, cars, { 256, 0 }, { 256, 192 }, { .75f, .75f }, (highlighted == 1) ? olc::WHITE : olc::DARK_GREY); // blue - DrawPartialDecal({ ScreenWidth() / 5 * 3 - 96.f, ScreenHeight() / 3 - 192.f }, cars, { 512, 0 }, { 256, 192 }, { .75f, .75f }, (highlighted == 2) ? olc::WHITE : olc::DARK_GREY); // green - DrawPartialDecal({ ScreenWidth() / 5 * 4 - 96.f, ScreenHeight() / 3 - 192.f }, cars, { 768, 0 }, { 256, 192 }, { .75f, .75f }, (highlighted == 3) ? olc::WHITE : olc::DARK_GREY); // gold - DrawPartialDecal({ ScreenWidth() / 5 - 96.f, ScreenHeight() / 3 * 2 - 192.f }, cars, { 0, 192 }, { 256, 192 }, { .75f, .75f }, (highlighted == 4) ? olc::WHITE : olc::DARK_GREY); // purple - DrawPartialDecal({ ScreenWidth() / 5 * 2 - 96.f, ScreenHeight() / 3 * 2 - 192.f }, cars, { 256, 192 }, { 256, 192 }, { .75f, .75f }, (highlighted == 5) ? olc::WHITE : olc::DARK_GREY); // white - DrawPartialDecal({ ScreenWidth() / 5 * 3 - 96.f, ScreenHeight() / 3 * 2 - 192.f }, cars, { 512, 192 }, { 256, 192 }, { .75f, .75f }, (highlighted == 6) ? olc::WHITE : olc::DARK_GREY); // orange - DrawPartialDecal({ ScreenWidth() / 5 * 4 - 96.f, ScreenHeight() / 3 * 2 - 192.f }, cars, { 768, 192 }, { 256, 192 }, { .75f, .75f }, (highlighted == 7) ? olc::WHITE : olc::DARK_GREY); // black - - DisplayMenu(selectCar); - if (GetKey(olc::Key::ENTER).bPressed || GetKey(olc::Key::SPACE).bPressed) - { - if (highlighted >= 0 && highlighted <= 7) - { - player = highlighted; - gameState = state::RUN_GAME; - - DrawTrack(); - //vecTrack.clear(); - //for (int i = 0; i < trackList[track].size(); i++) - //{ - // vecTrack.push_back(trackList[track][i]); - // track_dist += vecTrack[i].second; - //} - } - else - { - if (cup != -1) - { - // return to cup select - gameState = state::CUP_SELECT; - } - if (track != -1) - { - // return to track select - gameState = state::TRACK_SELECT; - } - highlighted = 0; - } - } - if (GetKey(olc::Key::ESCAPE).bPressed || GetKey(olc::Key::BACK).bPressed) - { - if (cup != -1) - { - // return to cup select - gameState = state::CUP_SELECT; - } - if (track != -1) - { - // return to track select - gameState = state::TRACK_SELECT; - } - highlighted = 0; - } - } - -//======================================================================================================================================== - else if (gameState == state::CONTROLS) - { - FillRectDecal({ 0, 0 }, { ScreenWidth() + 0.f, ScreenHeight() + 0.f }, olc::Pixel(0, 0, 0, 16)); - DisplayMenu(controls); - if (GetKey(olc::Key::ENTER).bPressed || GetKey(olc::Key::SPACE).bPressed) - { - if (highlighted >= 0 && highlighted <= 3) - { - configKeyIndex = highlighted; - } - else if (highlighted == 4) - { - // reset default controls - DisplayMenu(controls); - Move_Up = olc::W; - Move_Down = olc::S; - Move_Left = olc::A; - Move_Right = olc::D; - - } - else - { - gameState = state::MAIN_MENU; - highlighted = 0; - } - } - if (GetKey(olc::Key::ESCAPE).bPressed || GetKey(olc::Key::BACK).bPressed) - { - gameState = state::MAIN_MENU; - } - } - -//======================================================================================================================================== - else if (gameState == state::PAUSED) // pause menu - { - FillRectDecal({ 0, 0 }, { ScreenWidth() + 0.f, ScreenHeight() + 0.f }, olc::Pixel(0, 0, 0, 64)); - DisplayMenu(pause); - if (GetKey(olc::Key::ENTER).bPressed || GetKey(olc::Key::SPACE).bPressed) - { - if (highlighted == 0) - { - gameState = state::RUN_GAME; - highlighted = 0; - } - if (highlighted == 1) - { - // restart the track - // this will ONLY work on tracks after the track selection screen - // or on the first track in each cup (1, 4, 7, 1) - Reset(); - gameState = state::RUN_GAME; - highlighted = 0; - } - if (highlighted == 2) - { - // main menu - Reset(); - gameState = state::MAIN_MENU; - highlighted = 0; - } - if (highlighted == 3) - { - return false; - } - } - } - -//======================================================================================================================================== -//======================================================================================================================================== - else if (gameState == state::RUN_GAME) // run main game loop - { - Clear(olc::BLACK); // this still needed? we've since replaced it with the gradient sky box - - if (GetKey(olc::Key::ESCAPE).bPressed || GetKey(olc::Key::PAUSE).bPressed) - { - gameState = state::PAUSED; - } - - // debug quick-reset - if (GetKey(olc::Key::F4).bPressed) - { - Reset(); - } - - // jump to end of lap - if (GetKey(olc::Key::F12).bPressed) - { - distance = track_dist - 50.f; - } - - // get a point on the track - float offset = 0; - int TrackSection = 0; - - cur_lap_time += fElapsedTime; - - // record lap time - if (distance >= track_dist) - { - distance -= track_dist; - list_times.push_front(cur_lap_time); // push time to front - list_times.pop_back(); // pop time to back - cur_lap_time = 0.0f; - lap++; - } - - if (cup >= 0 && lap >= 1) - { - track++; - Reset(); - DrawTrack(); - } - - if (track != -1) - { - //olc::vi2d textSize = GetTextSize() / 2 * 4; - olc::vi2d textSize0 = GetTextSize("JAVIDX9") / 2 * 4; - olc::vi2d textSize1 = GetTextSize("CIRCUIT") / 2 * 4; - - switch (track) - { - case 0: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "JAVIDX9", olc::WHITE, { 3.f, 3.f }); - break; - case 1: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "CIRCUIT", olc::WHITE, { 3.f, 3.f }); - break; - case 2: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "INFINITY", olc::WHITE, { 3.f, 3.f }); - break; - case 3: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "ARROWHEAD", olc::WHITE, { 3.f, 3.f }); - break; - case 4: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "TRACK 4", olc::WHITE, { 3.f, 3.f }); - break; - case 5: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "OVERPASS", olc::WHITE, { 3.f, 3.f }); - break; - case 6: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "PEANUT", olc::WHITE, { 3.f, 3.f }); - break; - case 7: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "TRACK 7", olc::WHITE, { 3.f, 3.f }); - break; - case 8: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "TRIDENT", olc::WHITE, { 3.f, 3.f }); - break; - case 9: - DrawStringDecal({ ScreenWidth() / 2 - 0.f, ScreenHeight() / 8 + 0.f }, "STAR", olc::WHITE, { 3.f, 3.f }); - break; - } - } - - // find position on track (could optimize) << should probably optimize given the complexity of this game - while (TrackSection < vecTrack.size() && offset <= distance) - { - offset += vecTrack[TrackSection].second; - TrackSection++; - } - - float TargetCurvature = vecTrack[TrackSection - 1].first; // drawing curves to screen - - float TrackCurveDiff = (TargetCurvature - curvature) * fElapsedTime * speed; // correcting the drawing of curves to the screen - curvature += TrackCurveDiff; // update track curve difference - - track_curve += (curvature)*fElapsedTime * speed; - -//======================================================================================================================================== -// | | draw racetrack canvas -//======================================================================================================================================== - - std::vector pos; - std::vector uvs; - for (int y = 0; y < ScreenHeight() / 2; y++) - { - // racetrack canvas variables - float perspective = (float)y / (ScreenHeight() / 2.0f); - - float mid_point = 0.5f + curvature * powf((1.0f - perspective), 3); - float road_width = 0.1f + perspective * 0.8f; - float curb_width = road_width * 0.15f; - - road_width *= 0.5f; - - int lf_curb = (mid_point - road_width) * ScreenWidth(); - int rt_curb = (mid_point + road_width) * ScreenWidth(); - - int row = ScreenHeight() / 2 + y; - - float horizon = powf(1.0f - perspective, 2) * 80; - - // check for finish line - if (distance + horizon > track_dist - 20 && distance + horizon < track_dist) - { - // draw checkerboard pattern - uvs.push_back({ 0, (float)fmod(((distance + horizon) - (track_dist - 20)) / 20.0f, 0.5f) + 0.5f }); - uvs.push_back({ 1, (float)fmod(((distance + horizon) - (track_dist - 20)) / 20.0f, 0.5f) + 0.5f }); - } - else - { - // draw standard track piece - uvs.push_back({ 0, sinf(80.0f * powf(1.0f - perspective, 2) + distance) / 4 + 0.25f }); - uvs.push_back({ 1, sinf(80.0f * powf(1.0f - perspective, 2) + distance) / 4 + 0.25f }); - } - - // drawing grass and curb - pos.push_back({ lf_curb + 0.0f, row + 0.0f }); - pos.push_back({ rt_curb + 0.0f, row + 0.0f }); - - // black box rendering shenanigans; if I ever understand programming enough at a later date, I can figure out wtf is going on here - int i = 0; - for (Object& obj : gameObjects) - { - float horizonRange = powf(1.0f - perspective, 2) * ((distance + horizon) - obj.pos.y) / horizon; - if (!obj.rendered && (distance + horizon) > obj.pos.y && (distance + horizon) < obj.pos.y + 80 && row >= ScreenHeight() / 2 + ScreenHeight() / 2 * horizonRange) - { - obj.drawPos = { (mid_point + road_width * obj.pos.x) * ScreenWidth(), horizonRange * (ScreenHeight() / 2) + ScreenHeight() / 2 }; - obj.drawOffsetPos = { obj.offset.x, obj.size.y * road_width * -obj.offset.y }; - obj.drawSize = { obj.size.x * road_width, obj.size.y * road_width }; - obj.rendered = true; - - // yeah.... so, even after copying it manually, i still have no clue what this thing is doing, lol - } - } - } - - // on the road again; drawing the track - SetDecalStructure(olc::DecalStructure::STRIP); - DrawPolygonDecal(road, pos, uvs); - SetDecalStructure(olc::DecalStructure::FAN); - - // draw trackside props - for (Object& obj : gameObjects) - { - if (obj.rendered) - { - if (obj.decal != nullptr) - { - DrawDecal(obj.drawPos + obj.drawOffsetPos, obj.decal, obj.drawSize); - } - else - { - FillRectDecal(obj.drawPos, obj.drawSize, olc::BLUE); - } - } - } - -//======================================================================================================================================== -// | | car movement -//======================================================================================================================================== - int car_dir = 0; // default car facing - - if (GetKey(Move_Up).bHeld) - { - speed += 2.0f * fElapsedTime; - } - else // might remove this in a later stage of development - { - speed -= 1.0f * fElapsedTime; - } - if (GetKey(Move_Down).bHeld) - { - // move back ? - distance -= 20.0f * fElapsedTime; - } - if (GetKey(Move_Left).bHeld) - { - car_curve -= 0.7f * fElapsedTime; - car_dir = -1; - } - if (GetKey(Move_Right).bHeld) - { - car_curve += 0.7f * fElapsedTime; - car_dir = +1; - } - - // slow car if on grass - if (fabs(car_curve - track_curve) >= 0.8f) - { - speed -= 5.0f * fElapsedTime; - } - - // clamp speed - if (speed < 0.0f) speed = 0.0f; - if (speed > 1.0f) speed = 1.0f; - - // move car along track according to car speed - distance += (70.0f * speed) * fElapsedTime; - - // draw car - car_pos = car_curve - track_curve; - DrawDecal({ ScreenWidth() / 2 - 128 + car_pos * ScreenWidth() / 2, ScreenHeight() / 4 * 3.0f - 128 }, car); - SetPixelMode(olc::Pixel::ALPHA); - -//======================================================================================================================================== -//======================================================================================================================================== - // spedometer - std::string mph = std::to_string(speed); - DrawString(4, 4, mph); - - // show time - auto disp_time = [](float t) - { - int min = t / 60.0f; - int sec = t - (min * 60.0f); - int milli = (t - (float)sec) * 1000.0f; - - // need to change this out to a 'DrawString()' function instead - return std::to_string(min) + "." + std::to_string(sec) + ":" + std::to_string(milli); - }; - - // correct for the first '0' in the seconds timer - //if () - //{ - // // draw min + '0' + sec + milli - // DrawString(4, 16, disp_time(cur_lap_time)); - //} - //else - //{ - DrawString(4, 16, disp_time(cur_lap_time)); - //} - - // display last 5 lap times - int j = 30; - for (auto l : list_times) - { - DrawString(10, j, disp_time(l)); - j += 10; - } - - // debug code - //std::string numb1 = std::to_string(car_pos); - //DrawString(4, 26, numb1); - //std::string numb2 = std::to_string(track_dist); - //DrawString(4, 38, numb2); - } - - return true; - } -}; - -//======================================================================================================================================== - -int main() -{ - std::vector test= {"Apple","Apple","Pear","Something","Tire","Orange","Orange","Orange"}; - std::vector::iterator it = std::unique(test.begin(),test.end()); - test.erase(it,test.end()); - for (int i=0;i 3) +#define SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3 OP_SYMBOL 3) < 0) + +#define SOL_IS_ON(OP_SYMBOL) SOL_RAW_IS_ON(OP_SYMBOL ## _I_) +#define SOL_IS_OFF(OP_SYMBOL) SOL_RAW_IS_OFF(OP_SYMBOL ## _I_) +#define SOL_IS_DEFAULT_ON(OP_SYMBOL) SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL ## _I_) +#define SOL_IS_DEFAULT_OFF(OP_SYMBOL) SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL ## _I_) + +#define SOL_ON | +#define SOL_OFF ^ +#define SOL_DEFAULT_ON + +#define SOL_DEFAULT_OFF - + +#if defined(SOL_BUILD_CXX_MODE) + #if (SOL_BUILD_CXX_MODE != 0) + #define SOL_BUILD_CXX_MODE_I_ SOL_ON + #else + #define SOL_BUILD_CXX_MODE_I_ SOL_OFF + #endif +#elif defined(__cplusplus) + #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_ON +#else + #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_BUILD_C_MODE) + #if (SOL_BUILD_C_MODE != 0) + #define SOL_BUILD_C_MODE_I_ SOL_ON + #else + #define SOL_BUILD_C_MODE_I_ SOL_OFF + #endif +#elif defined(__STDC__) + #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_ON +#else + #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_OFF +#endif + +#if SOL_IS_ON(SOL_BUILD_C_MODE) + #include + #include + #include +#else + #include + #include + #include +#endif + +#if defined(SOL_COMPILER_VCXX) + #if defined(SOL_COMPILER_VCXX != 0) + #define SOL_COMPILER_VCXX_I_ SOL_ON + #else + #define SOL_COMPILER_VCXX_I_ SOL_OFF + #endif +#elif defined(_MSC_VER) + #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_GCC) + #if defined(SOL_COMPILER_GCC != 0) + #define SOL_COMPILER_GCC_I_ SOL_ON + #else + #define SOL_COMPILER_GCC_I_ SOL_OFF + #endif +#elif defined(__GNUC__) + #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_CLANG) + #if defined(SOL_COMPILER_CLANG != 0) + #define SOL_COMPILER_CLANG_I_ SOL_ON + #else + #define SOL_COMPILER_CLANG_I_ SOL_OFF + #endif +#elif defined(__clang__) + #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_EDG) + #if defined(SOL_COMPILER_EDG != 0) + #define SOL_COMPILER_EDG_I_ SOL_ON + #else + #define SOL_COMPILER_EDG_I_ SOL_OFF + #endif +#else + #define SOL_COMPILER_EDG_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_COMPILER_MINGW) + #if (SOL_COMPILER_MINGW != 0) + #define SOL_COMPILER_MINGW_I_ SOL_ON + #else + #define SOL_COMPILER_MINGW_I_ SOL_OFF + #endif +#elif defined(__MINGW32__) + #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_ON +#else + #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_OFF +#endif + +#if SIZE_MAX <= 0xFFFFULL + #define SOL_PLATFORM_X16_I_ SOL_ON + #define SOL_PLATFORM_X86_I_ SOL_OFF + #define SOL_PLATFORM_X64_I_ SOL_OFF +#elif SIZE_MAX <= 0xFFFFFFFFULL + #define SOL_PLATFORM_X16_I_ SOL_OFF + #define SOL_PLATFORM_X86_I_ SOL_ON + #define SOL_PLATFORM_X64_I_ SOL_OFF +#else + #define SOL_PLATFORM_X16_I_ SOL_OFF + #define SOL_PLATFORM_X86_I_ SOL_OFF + #define SOL_PLATFORM_X64_I_ SOL_ON +#endif + +#define SOL_PLATFORM_ARM32_I_ SOL_OFF +#define SOL_PLATFORM_ARM64_I_ SOL_OFF + +#if defined(SOL_PLATFORM_WINDOWS) + #if (SOL_PLATFORM_WINDOWS != 0) + #define SOL_PLATFORM_WINDOWS_I_ SOL_ON + #else + #define SOL_PLATFORM_WINDOWS_I_ SOL_OFF + #endif +#elif defined(_WIN32) + #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_ON +#else + #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_CYGWIN) + #if (SOL_PLATFORM_CYGWIN != 0) + #define SOL_PLATFORM_CYGWIN_I_ SOL_ON + #else + #define SOL_PLATFORM_CYGWIN_I_ SOL_ON + #endif +#elif defined(__CYGWIN__) + #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_ON +#else + #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_APPLE) + #if (SOL_PLATFORM_APPLE != 0) + #define SOL_PLATFORM_APPLE_I_ SOL_ON + #else + #define SOL_PLATFORM_APPLE_I_ SOL_OFF + #endif +#elif defined(__APPLE__) + #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_ON +#else + #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_UNIX) + #if (SOL_PLATFORM_UNIX != 0) + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_ON + #else + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_OFF + #endif +#elif defined(__unix__) + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAUKT_ON +#else + #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_PLATFORM_LINUX) + #if (SOL_PLATFORM_LINUX != 0) + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_ON + #else + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_OFF + #endif +#elif defined(__LINUX__) + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAUKT_ON +#else + #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_OFF +#endif + +#define SOL_PLATFORM_APPLE_IPHONE_I_ SOL_OFF +#define SOL_PLATFORM_BSDLIKE_I_ SOL_OFF + +#if defined(SOL_IN_DEBUG_DETECTED) + #if SOL_IN_DEBUG_DETECTED != 0 + #define SOL_DEBUG_BUILD_I_ SOL_ON + #else + #define SOL_DEBUG_BUILD_I_ SOL_OFF + #endif +#elif !defined(NDEBUG) + #if SOL_IS_ON(SOL_COMPILER_VCXX) && defined(_DEBUG) + #define SOL_DEBUG_BUILD_I_ SOL_ON + #elif (SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC)) && !defined(__OPTIMIZE__) + #define SOL_DEBUG_BUILD_I_ SOL_ON + #else + #define SOL_DEBUG_BUILD_I_ SOL_OFF + #endif +#else + #define SOL_DEBUG_BUILD_I_ SOL_DEFAULT_OFF +#endif // We are in a debug mode of some sort + +#if defined(SOL_NO_EXCEPTIONS) + #if (SOL_NO_EXCEPTIONS != 0) + #define SOL_EXCEPTIONS_I_ SOL_OFF + #else + #define SOL_EXCEPTIONS_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_VCXX) + #if !defined(_CPPUNWIND) + #define SOL_EXCEPTIONS_I_ SOL_OFF + #else + #define SOL_EXCEPTIONS_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) + #if !defined(__EXCEPTIONS) + #define SOL_EXCEPTIONS_I_ SOL_OFF + #else + #define SOL_EXCEPTIONS_I_ SOL_ON + #endif +#else + #define SOL_EXCEPTIONS_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_NO_RTTI) + #if (SOL_NO_RTTI != 0) + #define SOL_RTTI_I_ SOL_OFF + #else + #define SOL_RTTI_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_VCXX) + #if !defined(_CPPRTTI) + #define SOL_RTTI_I_ SOL_OFF + #else + #define SOL_RTTI_I_ SOL_ON + #endif +#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) + #if !defined(__GXX_RTTI) + #define SOL_RTTI_I_ SOL_OFF + #else + #define SOL_RTTI_I_ SOL_ON + #endif +#else + #define SOL_RTTI_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_NO_THREAD_LOCAL) + #if SOL_NO_THREAD_LOCAL != 0 + #define SOL_USE_THREAD_LOCAL_I_ SOL_OFF + #else + #define SOL_USE_THREAD_LOCAL_I_ SOL_ON + #endif +#else + #define SOL_USE_THREAD_LOCAL_I_ SOL_DEFAULT_ON +#endif // thread_local keyword is bjorked on some platforms + +#if defined(SOL_ALL_SAFETIES_ON) + #if SOL_ALL_SAFETIES_ON != 0 + #define SOL_ALL_SAFETIES_ON_I_ SOL_ON + #else + #define SOL_ALL_SAFETIES_ON_I_ SOL_OFF + #endif +#else + #define SOL_ALL_SAFETIES_ON_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_SAFE_GETTER) + #if SOL_SAFE_GETTER != 0 + #define SOL_SAFE_GETTER_I_ SOL_ON + #else + #define SOL_SAFE_GETTER_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_GETTER_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_USERTYPE) + #if SOL_SAFE_USERTYPE != 0 + #define SOL_SAFE_USERTYPE_I_ SOL_ON + #else + #define SOL_SAFE_USERTYPE_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_USERTYPE_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_REFERENCES) + #if SOL_SAFE_REFERENCES != 0 + #define SOL_SAFE_REFERENCES_I_ SOL_ON + #else + #define SOL_SAFE_REFERENCES_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_REFERENCES_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_FUNCTIONS) + #if SOL_SAFE_FUNCTIONS != 0 + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON + #else + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF + #endif +#elif defined (SOL_SAFE_FUNCTION_OBJECTS) + #if SOL_SAFE_FUNCTION_OBJECTS != 0 + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON + #else + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_FUNCTION_CALLS) + #if SOL_SAFE_FUNCTION_CALLS != 0 + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON + #else + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_PROXIES) + #if SOL_SAFE_PROXIES != 0 + #define SOL_SAFE_PROXIES_I_ SOL_ON + #else + #define SOL_SAFE_PROXIES_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_PROXIES_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_SAFE_NUMERICS) + #if SOL_SAFE_NUMERICS != 0 + #define SOL_SAFE_NUMERICS_I_ SOL_ON + #else + #define SOL_SAFE_NUMERICS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_NUMERICS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_ALL_INTEGER_VALUES_FIT) + #if (SOL_ALL_INTEGER_VALUES_FIT != 0) + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_ON + #else + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_OFF + #endif +#elif !SOL_IS_DEFAULT_OFF(SOL_SAFE_NUMERICS) && SOL_IS_OFF(SOL_SAFE_NUMERICS) + // if numerics is intentionally turned off, flip this on + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_ON +#else + // default to off + #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_SAFE_STACK_CHECK) + #if SOL_SAFE_STACK_CHECK != 0 + #define SOL_SAFE_STACK_CHECK_I_ SOL_ON + #else + #define SOL_SAFE_STACK_CHECK_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_SAFE_STACK_CHECK_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_ON + #else + #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_NO_CHECK_NUMBER_PRECISION) + #if SOL_NO_CHECK_NUMBER_PRECISION != 0 + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF + #else + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #endif +#elif defined(SOL_NO_CHECKING_NUMBER_PRECISION) + #if SOL_NO_CHECKING_NUMBER_PRECISION != 0 + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF + #else + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #elif SOL_IS_ON(SOL_SAFE_NUMERICS) + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_ON + #else + #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_STRINGS_ARE_NUMBERS) + #if (SOL_STRINGS_ARE_NUMBERS != 0) + #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_ON + #else + #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_OFF + #endif +#else + #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_ENABLE_INTEROP) + #if SOL_ENABLE_INTEROP != 0 + #define SOL_USE_INTEROP_I_ SOL_ON + #else + #define SOL_USE_INTEROP_I_ SOL_OFF + #endif +#elif defined(SOL_USE_INTEROP) + #if SOL_USE_INTEROP != 0 + #define SOL_USE_INTEROP_I_ SOL_ON + #else + #define SOL_USE_INTEROP_I_ SOL_OFF + #endif +#else + #define SOL_USE_INTEROP_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_NO_NIL) + #if (SOL_NO_NIL != 0) + #define SOL_NIL_I_ SOL_OFF + #else + #define SOL_NIL_I_ SOL_ON + #endif +#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || defined(__OBJC__) || defined(nil) + #define SOL_NIL_I_ SOL_DEFAULT_OFF +#else + #define SOL_NIL_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_USERTYPE_TYPE_BINDING_INFO) + #if (SOL_USERTYPE_TYPE_BINDING_INFO != 0) + #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_ON + #else + #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_OFF + #endif +#else + #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_DEFAULT_ON +#endif // We should generate a my_type.__type table with lots of class information for usertypes + +#if defined(SOL_AUTOMAGICAL_TYPES_BY_DEFAULT) + #if (SOL_AUTOMAGICAL_TYPES_BY_DEFAULT != 0) + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON + #else + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF + #endif +#elif defined(SOL_DEFAULT_AUTOMAGICAL_USERTYPES) + #if (SOL_DEFAULT_AUTOMAGICAL_USERTYPES != 0) + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON + #else + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF + #endif +#else + #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_DEFAULT_ON +#endif // make is_automagical on/off by default + +#if defined(SOL_STD_VARIANT) + #if (SOL_STD_VARIANT != 0) + #define SOL_STD_VARIANT_I_ SOL_ON + #else + #define SOL_STD_VARIANT_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_COMPILER_CLANG) && SOL_IS_ON(SOL_PLATFORM_APPLE) + #if defined(__has_include) + #if __has_include() + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON + #else + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF + #endif + #else + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF + #endif + #else + #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON + #endif +#endif // make is_automagical on/off by default + +#if defined(SOL_NOEXCEPT_FUNCTION_TYPE) + #if (SOL_NOEXCEPT_FUNCTION_TYPE != 0) + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON + #else + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF + #endif +#else + #if defined(__cpp_noexcept_function_type) + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON + #elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(_MSVC_LANG) && (_MSVC_LANG < 201403L)) + // There is a bug in the VC++ compiler?? + // on /std:c++latest under x86 conditions (VS 15.5.2), + // compiler errors are tossed for noexcept markings being on function types + // that are identical in every other way to their non-noexcept marked types function types... + // VS 2019: There is absolutely a bug. + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF + #else + #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_DEFAULT_ON + #endif +#endif // noexcept is part of a function's type + +#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && SOL_STACK_STRING_OPTIMIZATION_SIZE > 0 + #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ SOL_STACK_STRING_OPTIMIZATION_SIZE +#else + #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ 1024 +#endif + +#if defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 + #define SOL_ID_SIZE_I_ SOL_ID_SIZE +#else + #define SOL_ID_SIZE_I_ 512 +#endif + +#if defined(LUA_IDSIZE) && LUA_IDSIZE > 0 + #define SOL_FILE_ID_SIZE_I_ LUA_IDSIZE +#elif defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 + #define SOL_FILE_ID_SIZE_I_ SOL_FILE_ID_SIZE +#else + #define SOL_FILE_ID_SIZE_I_ 2048 +#endif + +#if defined(SOL_PRINT_ERRORS) + #if (SOL_PRINT_ERRORS != 0) + #define SOL_PRINT_ERRORS_I_ SOL_ON + #else + #define SOL_PRINT_ERRORS_I_ SOL_OFF + #endif +#else + #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) + #define SOL_PRINT_ERRORS_I_ SOL_ON + #elif SOL_IS_ON(SOL_DEBUG_BUILD) + #define SOL_PRINT_ERRORS_I_ SOL_DEFAULT_ON + #else + #define SOL_PRINT_ERRORS_I_ SOL_OFF + #endif +#endif + +#if defined(SOL_DEFAULT_PASS_ON_ERROR) + #if (SOL_DEFAULT_PASS_ON_ERROR != 0) + #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_ON + #else + #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_OFF + #endif +#else + #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_USING_CXX_LUA) + #if (SOL_USING_CXX_LUA != 0) + #define SOL_USE_CXX_LUA_I_ SOL_ON + #else + #define SOL_USE_CXX_LUA_I_ SOL_OFF + #endif +#elif defined(SOL_USE_CXX_LUA) + #if (SOL_USE_CXX_LUA != 0) + #define SOL_USE_CXX_LUA_I_ SOL_ON + #else + #define SOL_USE_CXX_LUA_I_ SOL_OFF + #endif +#else + #define SOL_USE_CXX_LUA_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_USING_CXX_LUAJIT) + #if (SOL_USING_CXX_LUA != 0) + #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #else + #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #endif +#elif defined(SOL_USE_CXX_LUAJIT) + #if (SOL_USE_CXX_LUA != 0) + #define SOL_USE_CXX_LUAJIT_I_ SOL_ON + #else + #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF + #endif +#else + #define SOL_USE_CXX_LUAJIT_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_NO_LUA_HPP) + #if (SOL_NO_LUA_HPP != 0) + #define SOL_USE_LUA_HPP_I_ SOL_OFF + #else + #define SOL_USE_LUA_HPP_I_ SOL_ON + #endif +#elif defined(SOL_USING_CXX_LUA) + #define SOL_USE_LUA_HPP_I_ SOL_OFF +#elif defined(__has_include) + #if __has_include() + #define SOL_USE_LUA_HPP_I_ SOL_ON + #else + #define SOL_USE_LUA_HPP_I_ SOL_OFF + #endif +#else + #define SOL_USE_LUA_HPP_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_CONTAINERS_START) + #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START +#elif defined(SOL_CONTAINERS_START_INDEX) + #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START_INDEX +#elif defined(SOL_CONTAINER_START_INDEX) + #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINER_START_INDEX +#else + #define SOL_CONTAINER_START_INDEX_I_ 1 +#endif + +#if defined (SOL_NO_MEMORY_ALIGNMENT) + #if (SOL_NO_MEMORY_ALIGNMENT != 0) + #define SOL_ALIGN_MEMORY_I_ SOL_OFF + #else + #define SOL_ALIGN_MEMORY_I_ SOL_ON + #endif +#else + #define SOL_ALIGN_MEMORY_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_USE_BOOST) + #if (SOL_USE_BOOST != 0) + #define SOL_USE_BOOST_I_ SOL_ON + #else + #define SOL_USE_BOOST_I_ SOL_OFF + #endif +#else + #define SOL_USE_BOOST_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_USE_UNSAFE_BASE_LOOKUP) + #if (SOL_USE_UNSAFE_BASE_LOOKUP != 0) + #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_ON + #else + #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_OFF + #endif +#else + #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_INSIDE_UNREAL) + #if (SOL_INSIDE_UNREAL != 0) + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_ON + #else + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_OFF + #endif +#else + #if defined(UE_BUILD_DEBUG) || defined(UE_BUILD_DEVELOPMENT) || defined(UE_BUILD_TEST) || defined(UE_BUILD_SHIPPING) || defined(UE_SERVER) + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_ON + #else + #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if defined(SOL_NO_COMPAT) + #if (SOL_NO_COMPAT != 0) + #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_OFF + #else + #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_ON + #endif +#else + #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_GET_FUNCTION_POINTER_UNSAFE) + #if (SOL_GET_FUNCTION_POINTER_UNSAFE != 0) + #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_ON + #else + #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_OFF + #endif +#else + #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_FUNCTION_CALL_VALUE_SEMANTICS) + #if (SOL_FUNCTION_CALL_VALUE_SEMANTICS != 0) + #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_ON + #else + #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_OFF + #endif +#else + #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_MINGW_CCTYPE_IS_POISONED) + #if (SOL_MINGW_CCTYPE_IS_POISONED != 0) + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_ON + #else + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_OFF + #endif +#elif SOL_IS_ON(SOL_COMPILER_MINGW) && defined(__GNUC__) && (__GNUC__ < 6) + // MinGW is off its rocker in some places... + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_ON +#else + #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_CHAR8_T) + #if (SOL_CHAR8_T != 0) + #define SOL_CHAR8_T_I_ SOL_ON + #else + #define SOL_CHAR8_T_I_ SOL_OFF + #endif +#else + #if defined(__cpp_char8_t) + #define SOL_CHAR8_T_I_ SOL_DEFAULT_ON + #else + #define SOL_CHAR8_T_I_ SOL_DEFAULT_OFF + #endif +#endif + +#if SOL_IS_ON(SOL_USE_BOOST) + #include + + #if BOOST_VERSION >= 107500 // Since Boost 1.75.0 boost::none is constexpr + #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr + #else + #define SOL_BOOST_NONE_CONSTEXPR_I_ const + #endif // BOOST_VERSION +#else + // assume boost isn't using a garbage version + #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr +#endif + +#if defined(SOL2_CI) + #if (SOL2_CI != 0) + #define SOL2_CI_I_ SOL_ON + #else + #define SOL2_CI_I_ SOL_OFF + #endif +#else + #define SOL2_CI_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_C_ASSERT) + #define SOL_USER_C_ASSERT_I_ SOL_ON +#else + #define SOL_USER_C_ASSERT_I_ SOL_DEFAULT_OFF +#endif + +#if defined(SOL_M_ASSERT) + #define SOL_USER_M_ASSERT_I_ SOL_ON +#else + #define SOL_USER_M_ASSERT_I_ SOL_DEFAULT_OFF +#endif + +// beginning of sol/prologue.hpp + +#if defined(SOL_PROLOGUE_I_) + #error "[sol2] Library Prologue was already included in translation unit and not properly ended with an epilogue." +#endif + +#define SOL_PROLOGUE_I_ 1 + +#if SOL_IS_ON(SOL_BUILD_CXX_MODE) + #define _FWD(...) static_cast( __VA_ARGS__ ) + + #if SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define _MOVE(...) static_cast<__typeof( __VA_ARGS__ )&&>( __VA_ARGS__ ) + #else + #include + + #define _MOVE(...) static_cast<::std::remove_reference_t<( __VA_ARGS__ )>&&>( __VA_OPT__(,) ) + #endif +#endif + +// end of sol/prologue.hpp + +// beginning of sol/epilogue.hpp + +#if !defined(SOL_PROLOGUE_I_) + #error "[sol2] Library Prologue is missing from this translation unit." +#else + #undef SOL_PROLOGUE_I_ +#endif + +#if SOL_IS_ON(SOL_BUILD_CXX_MODE) + #undef _FWD + #undef _MOVE +#endif + +// end of sol/epilogue.hpp + +// beginning of sol/detail/build_version.hpp + +#if defined(SOL_DLL) + #if (SOL_DLL != 0) + #define SOL_DLL_I_ SOL_ON + #else + #define SOL_DLL_I_ SOL_OFF + #endif +#elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(DLL_) || defined(_DLL)) + #define SOL_DLL_I_ SOL_DEFAULT_ON +#else + #define SOL_DLL_I_ SOL_DEFAULT_OFF +#endif // DLL definition + +#if defined(SOL_HEADER_ONLY) + #if (SOL_HEADER_ONLY != 0) + #define SOL_HEADER_ONLY_I_ SOL_ON + #else + #define SOL_HEADER_ONLY_I_ SOL_OFF + #endif +#else + #define SOL_HEADER_ONLY_I_ SOL_DEFAULT_OFF +#endif // Header only library + +#if defined(SOL_BUILD) + #if (SOL_BUILD != 0) + #define SOL_BUILD_I_ SOL_ON + #else + #define SOL_BUILD_I_ SOL_OFF + #endif +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_BUILD_I_ SOL_DEFAULT_OFF +#else + #define SOL_BUILD_I_ SOL_DEFAULT_ON +#endif + +#if defined(SOL_UNITY_BUILD) + #if (SOL_UNITY_BUILD != 0) + #define SOL_UNITY_BUILD_I_ SOL_ON + #else + #define SOL_UNITY_BUILD_I_ SOL_OFF + #endif +#else + #define SOL_UNITY_BUILD_I_ SOL_DEFAULT_OFF +#endif // Header only library + +#if defined(SOL_C_FUNCTION_LINKAGE) + #define SOL_C_FUNCTION_LINKAGE_I_ SOL_C_FUNCTION_LINKAGE +#else + #if SOL_IS_ON(SOL_BUILD_CXX_MODE) + // C++ + #define SOL_C_FUNCTION_LINKAGE_I_ extern "C" + #else + // normal + #define SOL_C_FUNCTION_LINKAGE_I_ + #endif // C++ or not +#endif // Linkage specification for C functions + +#if defined(SOL_API_LINKAGE) + #define SOL_API_LINKAGE_I_ SOL_API_LINKAGE +#else + #if SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) || SOL_IS_ON(SOL_PLATFORM_WINDOWS) || SOL_IS_ON(SOL_PLATFORM_CYGWIN) + // MSVC Compiler; or, Windows, or Cygwin platforms + #if SOL_IS_ON(SOL_BUILD) + // Building the library + #if SOL_IS_ON(SOL_COMPILER_GCC) + // Using GCC + #define SOL_API_LINKAGE_I_ __attribute__((dllexport)) + #else + // Using Clang, MSVC, etc... + #define SOL_API_LINKAGE_I_ __declspec(dllexport) + #endif + #else + #if SOL_IS_ON(SOL_COMPILER_GCC) + #define SOL_API_LINKAGE_I_ __attribute__((dllimport)) + #else + #define SOL_API_LINKAGE_I_ __declspec(dllimport) + #endif + #endif + #else + // extern if building normally on non-MSVC + #define SOL_API_LINKAGE_I_ extern + #endif + #elif SOL_IS_ON(SOL_UNITY_BUILD) + // Built-in library, like how stb typical works + #if SOL_IS_ON(SOL_HEADER_ONLY) + // Header only, so functions are defined "inline" + #define SOL_API_LINKAGE_I_ inline + #else + // Not header only, so seperately compiled files + #define SOL_API_LINKAGE_I_ extern + #endif + #else + // Normal static library + #if SOL_IS_ON(SOL_BUILD_CXX_MODE) + #define SOL_API_LINKAGE_I_ + #else + #define SOL_API_LINKAGE_I_ extern + #endif + #endif // DLL or not +#endif // Build definitions + +#if defined(SOL_PUBLIC_FUNC_DECL) + #define SOL_PUBLIC_FUNC_DECL_I_ SOL_PUBLIC_FUNC_DECL +#else + #define SOL_PUBLIC_FUNC_DECL_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_INTERNAL_FUNC_DECL_) + #define SOL_INTERNAL_FUNC_DECL_I_ SOL_INTERNAL_FUNC_DECL_ +#else + #define SOL_INTERNAL_FUNC_DECL_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_PUBLIC_FUNC_DEF) + #define SOL_PUBLIC_FUNC_DEF_I_ SOL_PUBLIC_FUNC_DEF +#else + #define SOL_PUBLIC_FUNC_DEF_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_INTERNAL_FUNC_DEF) + #define SOL_INTERNAL_FUNC_DEF_I_ SOL_INTERNAL_FUNC_DEF +#else + #define SOL_INTERNAL_FUNC_DEF_I_ SOL_API_LINKAGE_I_ +#endif + +#if defined(SOL_FUNC_DECL) + #define SOL_FUNC_DECL_I_ SOL_FUNC_DECL +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_FUNC_DECL_I_ +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_FUNC_DECL_I_ extern __declspec(dllexport) + #else + #define SOL_FUNC_DECL_I_ extern __declspec(dllimport) + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_FUNC_DECL_I_ extern __attribute__((visibility("default"))) + #else + #define SOL_FUNC_DECL_I_ extern + #endif +#endif + +#if defined(SOL_FUNC_DEFN) + #define SOL_FUNC_DEFN_I_ SOL_FUNC_DEFN +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_FUNC_DEFN_I_ inline +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_FUNC_DEFN_I_ __declspec(dllexport) + #else + #define SOL_FUNC_DEFN_I_ __declspec(dllimport) + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_FUNC_DEFN_I_ __attribute__((visibility("default"))) + #else + #define SOL_FUNC_DEFN_I_ + #endif +#endif + +#if defined(SOL_HIDDEN_FUNC_DECL) + #define SOL_HIDDEN_FUNC_DECL_I_ SOL_HIDDEN_FUNC_DECL +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_HIDDEN_FUNC_DECL_I_ +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllexport) + #else + #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllimport) + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_HIDDEN_FUNC_DECL_I_ extern __attribute__((visibility("default"))) + #else + #define SOL_HIDDEN_FUNC_DECL_I_ extern + #endif +#endif + +#if defined(SOL_HIDDEN_FUNC_DEFN) + #define SOL_HIDDEN_FUNC_DEFN_I_ SOL_HIDDEN_FUNC_DEFN +#elif SOL_IS_ON(SOL_HEADER_ONLY) + #define SOL_HIDDEN_FUNC_DEFN_I_ inline +#elif SOL_IS_ON(SOL_DLL) + #if SOL_IS_ON(SOL_COMPILER_VCXX) + #if SOL_IS_ON(SOL_BUILD) + #define SOL_HIDDEN_FUNC_DEFN_I_ + #else + #define SOL_HIDDEN_FUNC_DEFN_I_ + #endif + #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) + #define SOL_HIDDEN_FUNC_DEFN_I_ __attribute__((visibility("hidden"))) + #else + #define SOL_HIDDEN_FUNC_DEFN_I_ + #endif +#endif + +// end of sol/detail/build_version.hpp + +// end of sol/version.hpp + +#if SOL_IS_ON(SOL_INSIDE_UNREAL_ENGINE) +#ifdef check +#pragma push_macro("check") +#undef check +#endif +#endif // Unreal Engine 4 Bullshit + +#if SOL_IS_ON(SOL_COMPILER_GCC) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +#pragma GCC diagnostic ignored "-Wconversion" +#if __GNUC__ > 6 +#pragma GCC diagnostic ignored "-Wnoexcept-type" +#endif +#elif SOL_IS_ON(SOL_COMPILER_CLANG) +#elif SOL_IS_ON(SOL_COMPILER_VCXX) +#pragma warning(push) +#pragma warning(disable : 4505) // unreferenced local function has been removed GEE THANKS +#endif // clang++ vs. g++ vs. VC++ + +// beginning of sol/forward.hpp + +#ifndef SOL_FORWARD_HPP +#define SOL_FORWARD_HPP + +#include +#include +#include + +#if SOL_IS_ON(SOL_USE_CXX_LUA) || SOL_IS_ON(SOL_USE_CXX_LUAJIT) +struct lua_State; +#else +extern "C" { +struct lua_State; +} +#endif // C++ Mangling for Lua vs. Not + +namespace sol { + + enum class type; + + class stateless_reference; + template + class basic_reference; + using reference = basic_reference; + using main_reference = basic_reference; + class stateless_stack_reference; + class stack_reference; + + template + class basic_bytecode; + + struct lua_value; + + struct proxy_base_tag; + template + struct proxy_base; + template + struct table_proxy; + + template + class basic_table_core; + template + using table_core = basic_table_core; + template + using main_table_core = basic_table_core; + template + using stack_table_core = basic_table_core; + template + using basic_table = basic_table_core; + using table = table_core; + using global_table = table_core; + using main_table = main_table_core; + using main_global_table = main_table_core; + using stack_table = stack_table_core; + using stack_global_table = stack_table_core; + + template + struct basic_lua_table; + using lua_table = basic_lua_table; + using stack_lua_table = basic_lua_table; + + template + class basic_usertype; + template + using usertype = basic_usertype; + template + using stack_usertype = basic_usertype; + + template + class basic_metatable; + using metatable = basic_metatable; + using stack_metatable = basic_metatable; + + template + struct basic_environment; + using environment = basic_environment; + using main_environment = basic_environment; + using stack_environment = basic_environment; + + template + class basic_function; + template + class basic_protected_function; + using unsafe_function = basic_function; + using safe_function = basic_protected_function; + using main_unsafe_function = basic_function; + using main_safe_function = basic_protected_function; + using stack_unsafe_function = basic_function; + using stack_safe_function = basic_protected_function; + using stack_aligned_unsafe_function = basic_function; + using stack_aligned_safe_function = basic_protected_function; + using protected_function = safe_function; + using main_protected_function = main_safe_function; + using stack_protected_function = stack_safe_function; + using stack_aligned_protected_function = stack_aligned_safe_function; +#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) + using function = protected_function; + using main_function = main_protected_function; + using stack_function = stack_protected_function; + using stack_aligned_function = stack_aligned_safe_function; +#else + using function = unsafe_function; + using main_function = main_unsafe_function; + using stack_function = stack_unsafe_function; + using stack_aligned_function = stack_aligned_unsafe_function; +#endif + using stack_aligned_stack_handler_function = basic_protected_function; + + struct unsafe_function_result; + struct protected_function_result; + using safe_function_result = protected_function_result; +#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) + using function_result = safe_function_result; +#else + using function_result = unsafe_function_result; +#endif + + template + class basic_object_base; + template + class basic_object; + template + class basic_userdata; + template + class basic_lightuserdata; + template + class basic_coroutine; + template + class basic_packaged_coroutine; + template + class basic_thread; + + using object = basic_object; + using userdata = basic_userdata; + using lightuserdata = basic_lightuserdata; + using thread = basic_thread; + using coroutine = basic_coroutine; + using packaged_coroutine = basic_packaged_coroutine; + using main_object = basic_object; + using main_userdata = basic_userdata; + using main_lightuserdata = basic_lightuserdata; + using main_coroutine = basic_coroutine; + using stack_object = basic_object; + using stack_userdata = basic_userdata; + using stack_lightuserdata = basic_lightuserdata; + using stack_thread = basic_thread; + using stack_coroutine = basic_coroutine; + + struct stack_proxy_base; + struct stack_proxy; + struct variadic_args; + struct variadic_results; + struct stack_count; + struct this_state; + struct this_main_state; + struct this_environment; + + class state_view; + class state; + + template + struct as_table_t; + template + struct as_container_t; + template + struct nested; + template + struct light; + template + struct user; + template + struct as_args_t; + template + struct protect_t; + template + struct policy_wrapper; + + template + struct usertype_traits; + template + struct unique_usertype_traits; + + template + struct types { + typedef std::make_index_sequence indices; + static constexpr std::size_t size() { + return sizeof...(Args); + } + }; + + template + struct derive : std::false_type { + typedef types<> type; + }; + + template + struct base : std::false_type { + typedef types<> type; + }; + + template + struct weak_derive { + static bool value; + }; + + template + bool weak_derive::value = false; + + namespace stack { + struct record; + } + +#if SOL_IS_OFF(SOL_USE_BOOST) + template + class optional; + + template + class optional; +#endif + + using check_handler_type = int(lua_State*, int, type, type, const char*); + +} // namespace sol + +#define SOL_BASE_CLASSES(T, ...) \ + namespace sol { \ + template <> \ + struct base : std::true_type { \ + typedef ::sol::types<__VA_ARGS__> type; \ + }; \ + } \ + void a_sol3_detail_function_decl_please_no_collide() +#define SOL_DERIVED_CLASSES(T, ...) \ + namespace sol { \ + template <> \ + struct derive : std::true_type { \ + typedef ::sol::types<__VA_ARGS__> type; \ + }; \ + } \ + void a_sol3_detail_function_decl_please_no_collide() + +#endif // SOL_FORWARD_HPP +// end of sol/forward.hpp + +// beginning of sol/forward_detail.hpp + +#ifndef SOL_FORWARD_DETAIL_HPP +#define SOL_FORWARD_DETAIL_HPP + +// beginning of sol/traits.hpp + +// beginning of sol/tuple.hpp + +// beginning of sol/base_traits.hpp + +#include + +namespace sol { + namespace detail { + struct unchecked_t { }; + const unchecked_t unchecked = unchecked_t {}; + } // namespace detail + + namespace meta { + using sfinae_yes_t = std::true_type; + using sfinae_no_t = std::false_type; + + template + using void_t = void; + + template + using unqualified = std::remove_cv>; + + template + using unqualified_t = typename unqualified::type; + + namespace meta_detail { + template + struct unqualified_non_alias : unqualified { }; + + template