0,]']╠>SО}WЪмu╖Пp8╥d%qy)6o;]иA╕ЖsОВТТТ■╟бVl├3????????????????????????+,,--....?OOOOO ) ┌HПП ░ю?ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмлллллллэщщщщллллллллщщщщмлллллллэщщщщллллллллщщщщмлллллллэщщщщллллллллщщщщщщщщщщщмэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмUUЕН^UUэщщщщ,""лл""бщщщщм""бл,""эщщщщ\UUffUUещщщщмUU╣╩[UUэщщщщ\UUллUUещщщщщщщщщщщмэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмUЕЧЪО^Uэщщщщ,"л""л"бщщщщм"б<3ц,"эщщщщ\UfwwfUещщщщмU╣╚╙╨[Uэщщщщ\UллUещщщщщщщщщщщмэщщщщщщмщэщщщщщщщщщщщщщщщщщщщщщщщщщщщмUЧЪЪЪОUэщщщщ,б"""",бщщщщм"<333ц"эщщщщ\ewwwwVещщщщмU╚╙╙╙╨Uэщщщщ\е""\ещщщщщщщщщщщмэщщщщщщЭлощщщщщщщщщщщщщщщщщщщщщщщщщщщмЕЪЪЪЪЪ^эщщщщ,,""""ббщщщщмб33333,эщщщщ\vwwwwgещщщщм╣╙╙╙╙╙[эщщщщ\""""аещщщщщщщщщщмэщщщщщмоЪЭэщщщщщщщщщщщщщщщщщщщщщщщщщщмЕЪЪЪЪЪ^эщщщщ,,""""ббщщщщмб33333,эщщщщ\vwwwwgещщщщм╣╙╙╙╙╙[эщщщщ\,"б,"бещщщщщщщ лпщмэщщщщщщЭлощщщщщщщщщщщщщщщщщщщщщщщщщщщмЧЪЪЪЪЪОэщщщщл""""""лщщщщм<33333цэщщщщlwwwwwwфщщщщм╚╙╙╙╙╙╨эщщщщл!,ллблщщщщщщщ щмэщщщщщщЭлощщщщщщщщщщщщщщщщщщщщщщщщщщщмЧолЪлЭОэщщщщл""""""лщщщщм<33333цэщщщщlwwwwwwфщщщщм╚╙╙╙╙╙╨эщщщщлблллл,лщщщщщщщ я щмэщщщщщмоЪЭэщщщщщщщщщщщщщщщщщщщщщщщщщщмЧолЪлЭОэщщщщл"лллл"лщщщщм<ц<3ц<цэщщщщlwл|глwфщщщщм╚йл╙л╛╨эщщщщллллл!лщщщщщщ пщмэщщщщщщЭлощщщщщщщщщмлэллмэлмллщщщщщщщмЧолЪлЭОэщщщщл"л,бл"лщщщщм<ц<3ц<цэщщщщlwгww|wфщщщщм╚й╛╙й╛╨эщщщщл"лал"лщщщщщщ пщщмэщщщщщщмщэщщщщщщщщщщлщмэмллмэщщщщщщщщмЕолЪлЭ^эщщщщ,,л,блббщщщщмб33333,эщщщщ\vwwwwgещщщщм╣╙╙╙╙╙[эщщщщ\,!бещщщщщ щщщмэщщщщщщщщщщщщщщщщщщщлщмэмллмлэщщщщщщщмЕЪЪЪЪЪ^эщщщщэ,""""бмщщщщмб33333,эщщщщ\vwwwwgещщщщм╣╙╙╙╙╙[эщщщщ\,""""бещщщщщ пщщщмэщщщщщщщщщщщщщщщщщщщлщмэммммэщщщщщщщщмUЧЪЪЪОUэщщщщэм""""эмщщщщм"<333ц"эщщщщ\ewwwwVещщщщмU╚╙╙╙╨Uэщщщщ\е""""\ещщ п щщщщмэщщщщщщщщщщщщщщщщщщщлщллмщммллщщщщщщщмUЕЧЪО^Uэщщщщэщл""лщмщщщщмщм<3цэщэщщщщ\UfwwfUещщщщмU╣╚╙╨[Uэщщщщ\Uл""лUещщп пщщщщмэщщщщллэмлщщщщщщщщщщщщщщщщщщщщщщщщщщщмUЕЪЪЪ^Uэщщщщэщ,""бщмщщщщмщм333эщэщщщщ\UvwwgUещщщщмU╣╙╙╙[Uэщщщщ\U""аUещщЮщЪщщщщщмэщщщщлщщлмэщщщщщщщщщщщщщлщмлщмлщщщщщщмUЧЪЪЪОUэщщщщэм""""эмщщщщмщ<333цщэщщщщ\ewwwwVещщщщмU╚╙╙╙╨Uэщщщщ\е!""\ещщЮчЩпщщщщщмэщщщщллщлээщщщщщщщщщщщщмлщлмэлмэщщщщщмЕЪЪЪЪЪ^эщщщщэ,""""бмщщщщмм33333ээщщщщ\vwwwwgещщщщм╣╙╙╙╙╙[эщщщщ\""""аещщПНщпщщщщщмэщщщщщмэлщэщщщщщщщщщщщщщлщлээлээщщщщщмлллллллэщщщщллллллллщщщщмлллллллэщщщщллллллллщщщщмлллллллэщщщщллллллллщщПОч щщщщщмэщщщщллщмлщщщщщщщщщщщщщщлщлщэлщэщщщщщмщщщщщщщэщщщщэщщщщщщмщщщщмщщщщщщщэщщщщэщщщщщщмщщщщмщщщщщщщэщщщщэщщщщщщмщщПЪН щщщщщмэщщщщщщщщщщщщщщщщщщщщщщмлэмлщмлщщщщщщмщлэмэщщэщщщщэщэщлщлмщщщщмщлэмэщщэщщщщэщэмлщлмщщщщмщмщлэлээщщщщэмэщлщлмщщ пщщщщщмэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмщэщээщщэщщщщэмэмммммщщщщмщэщээщщэщщщщэмэмщмммщщщщмщлщщээщэщщщщэщммммммщщщщщщщщщщщмэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмщлщээщщэщщщщэщэмммммщщщщмщлщээщщэщщщщэщэмэмммщщщщмщмщмщлщэщщщщэщэмммммщщщщщщщщщщщмэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмщщэээщщэщщщщэщэмммммщщщщмщщэээщщэщщщщэщэщммммщщщщмщмщэщщээщщщщэмщмммммщщщщщщщщщщщмэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмщлщлщщщэщщщщэмлмэмэмщщщщмщлщлщщщэщщщщэмлмэмэмщщщщмщлээщлщэщщщщэмлмэмэмщщщщщщщщщщщмэщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщмлллллллэщщщщллллллллщщщщмлллллллэщщщщллллллллщщщщмлллллллэщщщщллллллллщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЛННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННнэщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщмэщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщмэщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщмЛННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННнЛНННННННчМММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММММщННННННННННННННННННнЛНННННННщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщМНННННННННННННННННнЛНЪОННННчщээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээээщНННННННННННННЪОНННнЛЪЪЮННННщллллЪЪЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННЪЪЮНННнЛНННННчмлллоллЭлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщННННННННННННННННнЛНННННННщлллл╞╙╙ЗллллллллллллллллллллллллллллллллллллллллллЪЪЪллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЭЪННННННчмлллоллЭллллллл╙≥лллллллллллл╪╩ллллллллллллллллллЭЭЭЭолллллллллллллллллллллллллллллллллллллщНННННННННННЧЪНННННн ННННННщлллл╞╙╙Злллллл▄ ≥илллллллллллл╚йлллллллллллллллллЭоооолллллллллллллллллллллллллллллллллллллэМНННННННННННННННнЛНННННННчмлллоллЭлллллл▄┬╩хллллллллллл╛╙ллллллллллллллллллЭЭЭЭолллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННЧОННщлллл╞╙╙Злллллл°╘╩йллллллллллллллллллллллллллллллллЪЪЪллллллллллллллллллллллллллэмллллллллллщННННННННННННННННННнЛНННЪЪННчмлллЪЪЪЪлллллл╗┼≥┴мллллллллллллллллллллллщмлллллл юл юллллллллмллллллллллллллллщщлллллмллллэМНННННОНННННННННННнЛНННЪЪННщллллллллллллллллщщнлллллллллллллллллллллщщнлллллл лллюлллллллллллллллллллллллллщщллллллллллщННННННННННННННННННнЛНННЧОННчмлллмлллллллллллННллллллллллллллллллллллННллллллллллллллллллмллллллллллллллллллэмлллмллллллэМНННОНННННННННННННнЛНННННЧНщллллмлллллллллллллллллллллллллллллллллллллллллллллллллллллллмллллллллллллллллллллэллмллллллщННННОНННННННННННННнЛНННННЪОчмллллллллллллллэщллллллллллллллллллллллэщллллллллллллллллллллллллллллллллллллллллщмллллллллэМНННННННННННННННННнЛНННННЧНщлллллллллллллллЛНллллллллллллллллллллллЛНллллллллллллллллллллллллллллллллллллллллэлллллллллщННННННННННННННННННнЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННННННщлллллллллллллллллллллллллллэмллллллллллллллллллллллллллллллллллллллэмллллллллллэмллллллллллщНННЧОННННННЧОНННННнЛНННННННчмлллллллллмллллллллллллллллщщллллллллллллллллщмллллллллллллллллллллщщллллллллллщщллллллллллэМННЪЪННННННЪЪНННННнЛНННННННщлллллллллллллллллллллллллллщщлллллллллллллллщщнллллллллллллллллллллщщллллллллллщщллллллллллщНННЪЪННННННЪЪНННННнЛНННННННчмлллллллмллллллллллллллллллэмлллллллллллллллННлллллллллллллллллллллэмллллллллллчМллллллллллэМННПННННННЧОНННННнЛНННННННщллллллллмллллллллллллллллллллэлллллллллллллллллллллллллллллллллллллллэлллллллллЛнэлллллллллщНННЮЧНННННННЧННННнЛНННННННчмллллллллллллллллллллллллллллщмллллллллллллэщллллллллллллллллллллллллщмллллллллллщмллллллллэМННННЪОННННННЪОНННнЛНННННННщллллЪЪЪЪлллллллллллллллллллллэлллллллллллллЛНллллллллллллллллллллллллэлллллллллллэлллллллллщНННННЧНННННННЧННННнЛНННННННчмллл╞╙╙ЗлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННННННщллллоллЭлллллллллллллллллллллллллллэмллллллллллллллллллллллллллллллллллллллллллллллллллллллщННННННННННННННННННнЛНННННННчмллл╞╙╙ЗллллллЭ/ЪЪмлллллллмллллллллщщлллллллллллллмллллллщмллллллллллллллщмллллллллллллллллэМНННННННННННННННННнЛНННННННщллллоллЭллллллЪ/оЭлллллллллллллллллщщлллллллллллллллллллщщнлллллллллллллщщнллллллллллллллллщННННННННННННННННННнЛНННННННчмллл╞╙╙ЗллллллЭ/ЪЪллллллмллллллллллчМлллллллллллмлллллллННллллллллллллллННлллллллллллллллллэМНННННННННННННННННнЛНННННННщллллоллЭлллллллЪолллллллмллллллллллЛнэллллллллллмллллллллллллллллллллллллллллллллллллллллллщННННННННННННННННННнЛНННННННчмлллЪЪЪЪллллллЭоПллллллллллллллллллллщмллллллллллллллллэщллллллллллллллэщллллллллллллллллллэМНННННННННННННННННнЛНННННННщлллллллллллллллллллллллллллллллллллллэлллллллллллллллллЛНллллллллллллллЛНллллллллллллллллллщННННННННННННННННННнЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННЧОННщлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэмллллллллллллллллллллллллллщННННННННННННННННННнЛНННЪЪННчмлллллллллллллллллллллллллллллллллллллллллмллллллллллллллллллллщщллллллллллллллллллллллллллэМНННННННННННННННННнЛНННЪЪННщлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщщллллллллллллллллллллллллллщННННННННННННННННННнЛНННПННчмлллллллллллллллллллллллллллллллллллллллмллллллллллллллллллллллчМллллллллллллллллллллллллллэМНННННННННННННННННнЛНННЮЧНщллллллллллллллллллллллллллллллллллллллллмллллллллллллллллллллллЛнэлллллллллллллллллллллллллщННННННННННННННННННнЛНННННЪОчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщмллллллллллллллллллллллллэМНННННННННННННННННнЛНННННЧНщлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэлллллллллллллллллллллллллщННННННННННННННННННнЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННННННщлллллллэмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщНННЧОНННННННННННННнЛНННННННчмллллллщщллллллллщмлллллллллллмлллллллллллллллллллллллллллллллллллллллллллллллмллллллллллллэМННЪЪНННННОНННННННнЛНННННННщллллЪЪЪЪщлллллллщщнллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщНННЪЪНННННННННННННнЛНННННННчмлллоллЭМлллллллННллллллллллмлллллллллллллллллллллллллллллллллллллллллллллллмллллллллллллллэМННЧОНННОНННННННННнЛНННННННщлллл╞╙╙ЗнэллллЭ/ЪЪллллллллллмлллллллллллллллллллллллллллллллллллллллллллллллмллллллллллллллщНННННЧННОНННННННННнЛНННННННчмлллоллЭлщмлллЪ/оЭлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМННННЪОНННННННННННнЛНННННННщлллл╞╙╙ЗлэллллЭ/ЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщНННННЧННННННННННННнЛНННННННчмлллоллЭлллллллЪоллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННННННщлллл╞╙╙ЗллллллЭоПллллллллллллллллллллллэмллллллллллэмллллллллллллллллллллллллллллллэмллллллщНННННННННННННННЧОНнЛНЪОННННчмлллЪЪЪЪллллллЭоПллллллллллллллллллллллщщлллллмллллщщлллллмлллллллллллллллллллмллллщщллллллэМННННННННННННННЪЪНнЛЪЪЮННННщлллллллллллллллллллллллллллллллллллллллщщллллллллллщщллллллллллллллллллллллллллллллщщллллллщНННННННННННННННЪЪНнЛНННННчмллллллллллллллллллллллллллллллллллллллчМлллмллллллэмлллмлллллллллллллллллллмллллллчМллллллэМННННННННННННННПНнЛНННННННщлллллллллллллллллллллллллллллллллллллллЛнэллмллллллллэллмлллллллллллллллллллмллллллЛнэлллллщНННННННННННННННЮЧнЭЪННННННчмллллллллллллллллллллллллллллллллллллллллщмллллллллллщмллллллллллллллллллллллллллллллщмллллэМННННННННННННННННЪо ННННННщлллллллллллллллллллллллллллллллллллллллллэлллллллллллэлллллллллллллллллллллллллллллллэлллллщНННННННННННННННННЧнЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННННННщлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщННННННННННННННННННнЛНННННННчмлллллллллллллллллллллмлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллмллллллллэМНННННННННННННННННнЛНННННННщлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщННННННННННННННННННнЛНННННННчмлллллллллллллллллллмлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллмллллллллллэМНННННННННННННННННнЛНННННННщллллллллллллллллллллмлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллмллллллллллщННННННННННННННННННнЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННННННщллллЪЪЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщННННННННННННННННННнЛНННННННчмлллоллЭлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЛНННННННщлллл╞╙╙Злллллллэмллллллллллллллллллллллллллл,бллллллллллллллллллллллллллллллЪЪЪллллллллллллщННННННННННННННННННнЛНННННЪОчмлллоллЭллллллЭ/ЪЪлллллллллллллллллллллллллл""ллллллллллллмллллллллллллллллЭЭЭЭолллллллллллэМНННННОНННОНННННННнЛННННЪЪЮщлллл╞╙╙ЗллллллЪ/оЭлллллллллллллллллллллллллл"лллллллллллллллллллллллллллллС?ооолллллллллллщННННННННННННННННННнЛНННННчмлллоллЭллллллЭ/ЪЪллллллллллллллллллллллллллаллллллллллмллллллллллллллллл<СССЭолллллллллллэМНННОНННОНННННННННнЛНННННННщлллл╞╙╙ЗлллллллЪоэллллллллллллллллллллллллллллллллллллллмллллллллллллллллл3цЪЪЪллллллллллллщННННОНННОНННННННННнЛНННЧЪННчмлллЪЪЪЪллллллЭоПщмллллллллллллллллллллллллллллллллллллллллллллллллллллллл303 юлллллллллллэМНННННННННННННННННнЛНННННщлллллллллллллллллэллллллллллллллллллллллллллллллллллллллллллллллллллллллллл лллюлллллллллллщННННННННННННННННННнЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэМНННННННННННННННННнЭОННННННщлллллллллллллллллллллллллллллллэмллллллллллллллллллллллллллллллллллллллллллэмллллллллллллллщННННННННННННННННННнЭЪННННННчмлллллллллллллмллллллллллллллллщщлллллллллллллмллллллллллллллллллщмллллллллщщллллллллллллллэМНННННННННННННННННнЭЪННННННщлллллллллллллллллллллллллллллллщщлллллллллллллллллллллллллллллллщщнллллллллщщллллллллллллллщННННННННННННННННННнЭННННННчмлллллллллллмллллллллллллллллллчМлллллллллллмлллллллллллллллллллННлллллллллэмллллллллллллллэМНННННННННННННННННн ЮЧНННННщллллллллллллмллллллллллллллллллЛнэллллллллллмллллллллллллллллллллллллллллллллэлллллллллллллщННННННННННННННННННнЛНЪОННННчмллллллллллллллллллллллллллллллллщмллллллллллллллллллллллллллллэщллллллЪЪЪЪЪЪЪЪЪоллллллллллэМНННННННННННННННННнЛНЧНННННщлллллллллллллллллллллллллллллллллэлллллллллллллллллллллллллллллЛНллллллолллллэллоллллллллллщННННННННННННННННННнЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллэМНННННННННнллллллллЛНННННННщлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллщНННННННЧОНнЪЪЪЪЪЪЪлЛНННННННчмллллллллщмлллллллллллллллллллллллллллллллллллллллллллллллллллмллллллллоллллллллоллллллллллэМННННННЪЪНнЪЪЪЪЪЪЪлЛНННННННщллллллллщщнллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллщНННННННЪЪНнЪмлЪмлЪлЛНННННННчмлллллллННллллллллллллллллллллллллллллллллллллллллллллллллллмллллллллллоллллллллоллллллллллэМННННННПНнЪмлЪмлЪлЛНННННННщллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллмллллллллллоллллллллоллллллллллщНННННННЮЧнЪмлЪмлЪлЛНННННННчмллллллэщлллллЭ/ЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллэМННННННННЪоЪмлЪмлЪлЛНННННННщлллллллЛНлллллЪ/оЭлллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллщНННННННННЧнЪмлЪмлЪлЛНННННННщллллллллллллллЭ/ЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллэМНННННННННнЪмлЪмлЪлЛНННННННчмллллллллллллллЪоллллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллщННННННННННнЪмлЪмлЪлЛННОННННщллллллллллллллЭоПллллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллэМНННННОНННнЪмлЪмлЪлЛНННННННчмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллщННННННННННнЪмлЪмлЪлЛОННННННщлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллоллллллллоллллллллллэМНННОНННННнЪмлЪмлЪлЛОННННННчщээммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммоммммммммоммммммммммщННННОНННННнЪЪЪЪЪЪЪлЛНННННННщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщщъщщщщщщщщъщщщщщщщщщщщМНННННННННнЪЪЪЪЪЪЪлЛНННННННчМММччччччччччччччччччччччччччччччччччччччччччччччччччччччччччччччччччччъччччччччъчччччччччччННННННННННнллллллллэМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщЪЪЪЪЪЪЪЪЪОщщщМщщщМщщщМщщщМщщщМщщщМщщщМщмэМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщмэМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщмЛННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННнэщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщмэщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщмэщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщМщщщмлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл3-- title: Stickman vs Zombie -- desc: Fight waves of zombies using turrets and power-ups. A fun action game for beginners. -- author: XeonBrix -- script: lua -- tags: action, shooter, demo, beginner, tic-80, stickman --The game may not be modified or published for any purpose other than educational use. -- load function name init function init() t = 1 -- GAMELOOP AND MENU AND GAMEOVER AND INTRO mode = "INTRO" time_game = time() coin = 150 s_sk = nil del_sk = false circs = {} stand = {} stickman = {} zombie = {} bul = {} px , py , ml = mouse() text_menu = {"Play","Help","Exit"} num_menu = 1 stickman_t = { {name="afk",t=1,timer=9000,hp=75,coldown=0,cost=50,id=258,spwndown=180,times=0,ids=416}, {name="aka",t=1,timer=7200,hp=100,coldown=85,shoot=1,dm=40,cost=100,id=256,b_id=479,spwndown=220,times=0,ids=418}, {name="moon",t=1,timer=10800,hp=800,coldown=0,cost=50,id=262,spwndown=600,times=0,ids=420}, {name="boom",t=1,timer=9000,hp=125,coldown=10,cost=150,id=266,spwndown=800,times=0,ids=424}, {name="cool",t=1,timer=5400,hp=150,coldown=100,dm=30,shoot=1,cost=175,id=264,b_id=478,spwndown=350,times=0,ids=422}, {name="aka-2",t=1,timer=3600,hp=100,coldown=85,dm=40,shoot=2,cost=200,id=268,b_id=479,spwndown=200,times=0,ids=386} } zombie_t = { {name="ok",hp=300,dm=0.5,id=320}, {name="okay",hp=400,dm=1,id=322}, {name="okay-pro",hp=850,dm=1.5,id=324}, {name="okay-boom",hp=450,dm=0,id=326}, {name="okay-pro-max",hp=2000,dm=999,id=328} } grid = {} -- new grid for row=1,5 do grid[row] = {} for col=1,9 do grid[row][col] = nil end end z_speed = 1200 z_num = 1 z_min = 1 --story_text={ --"Brix:\n yoooooo", --"You:\n ?", --"subbbbbbbbbbb" --} story_text = { "Brix:\nYooo, you!!!!", "You:\nWhat?", "Brix:\nI need you for some work :)", "You:\nOkay :)", "You:\nBut quick question, what kind \nof work is this?\n\n", "Brix:\nUhhh, I want you in some kind \nof war work, something like that\n\n", "You:\nHuh?", "Brix:\nI want you as the team leader :)" } lines = #story_text lines = 1 char = 0 mrt = false mlt = false end -- :) sq = math.sqrt abb = table.insert del = table.remove max = math.max min = math.min rnd = math.random sin = math.sin cos = math.cos abs = math.abs flr = math.floor math.randomseed(rnd(9999)) -- load init() -- hit box mouse onli function hitbox(x,y,h,w) return px < x+h and px+1 > x and py < y+w and py+1 > y end function hit(x,y,h,w,x2,y2,h2,w2) return x < x2+h2 and x+h > x2 and y < y2+w2 and y+w > y2 end -- draw grid function draw_grid() for y=1,5 do for x=1,9 do if mx == x and my == y then if del_sk then rectb(x*20,y*20+10,19,19,2) else rectb(x*20,y*20+10,19,19,15) end end end end end -- mouse pro function mouses() px , py , ml,md,mr = mouse() mx = px//20 my = (py-10)//20 end -- function ui function UI() rect(0,0,240,26,13) rectb(0,0,240,27,12) spr(500,13,5+sin(t/10)*1,0,1) print(coin,10,15,12) for i,s in pairs(stickman_t) do local w = 16/(s.spwndown/s.times) if w >= 16 then rect(50+i*25,2,16,w,5) else rect(50+i*25,2,16,w,2) end rectb(50+i*25,1,16,18,12) rectb(50+i*25,1,16,25,12) print(s.cost,50+i*25+3,20,12,true,1,true) -- draw stickman spr(s.ids,50+i*25,2,8,1,0,0,2,2) -- t7ded stickman if ml and not mlt and hitbox(50+i*25,1,16,16) then if coin >= s.cost and s.times >= s.spwndown then s_sk = i else sfx(0,"D-2",5,0,15) end end -- t7ded 4kl if s_sk == i then rectb(50+i*25,1,16,25,0) end end spr(430,220,5,6,1,0,0,2,2) if ml and not mlt and hitbox(220,5,16,16) then s_sk = nil del_sk = true end print(" TIME\n "..flr(time_game),35,10,12) -- mouse draw stickman if s_sk and stickman_t[s_sk].times >= stickman_t[s_sk].spwndown then spr(stickman_t[s_sk].ids,px-14,py-16,8,1,0,0,2,2) end end -- function TIC (60-FPS) function TIC() mouses() if mode == "INTRO" then intro() elseif mode == "MENU" then menu() elseif mode == "STORY" then story() elseif mode == "HELP" then help() elseif mode == "GAMELOOP" then gameloop() elseif mode == "STOP" then if t%60 > 30 then print("STOP",100,68,0,true,2,false) else print("STOP",100,68,2,true,2,false) end if ml and not mlt and hitbox(240-17,136-24,16,16) then--hitbox() then mode = "GAMELOOP" end spr(208,240-17,136-24,0,1,0,0,2,2) elseif mode == "GAMEOVER" then gameover() end mrl = mr mlt = ml t = t + 1 end function story() cls(15) rectb(0,0,240,136,12) if t % 7 == 0 and char < #story_text[lines] then char = char + 1 sfx(7,"C-5",2,0,8) end local text = string.sub(story_text[lines],1,char) for i=1, lines-1 do print(story_text[i],3,55-(lines-i)*20,13) end print(text,3,60,12) print("Press lift click to continue",5,115,14) print("Press X to skip",5,125,14) if ml and not mlt then sfx(0,"D-7",2,0,10) if char < #story_text[lines] then char = #story_text[lines] else lines = lines+1 if lines > #story_text then mode = "GAMELOOP" else char = 0 end end end end function intro() cls(14) rectb(0,0,240,136,12) spr(448,20,30,13,2,0,0,4,4) print("XeonBrix",119,68,0,true,2,false) print("XeonBrix",120,69,0,true,2,false) print("XeonBrix",120,67,0,true,2,false) print("XeonBrix",121,68,0,true,2,false) print("XeonBrix",120,68,12,true,2,false) if t%120 == 0 then mode = "MENU" end end function menu() cls() rectb(0,0,240,136,12) spr(448,1,136-33,13,1,0,0,4,4) print("stickman",19,11,13,true,2,false) print("Vs",114,26,13,true,2,false) print("zombie",139,36,13,true,2,false) print("stickman",20,10,12,true,2,false) print("Vs",115,25,12,true,2,false) print("zombie",140,35,12,true,2,false) print("By: XeonBrix",32,136-8,12,true,1,true) spr(445,(90-16)+cos(t/10)*2,68+8,0,2,1) spr(445,(92+64)-cos(t/10)*2,68+8,0,2,0) if ml and not mlt and hitbox((92+64)-cos(t/10)*2,68+8,16,16) then sfx(4,"C-"..rnd(3,4),19,0,15) num_menu = num_menu +1 elseif ml and not mlt and hitbox((90-16)+cos(t/10)*2,68+8,16,16) then sfx(4,"C-"..rnd(3,4),19,0,15) num_menu = num_menu -1 end if num_menu > #text_menu then num_menu = 1 elseif num_menu < 1 then num_menu = #text_menu end if ml and not mlt and hitbox(91,68,64,32) then if num_menu == 1 then mode = "STORY" elseif num_menu == 2 then mode = "HELP" elseif num_menu == 3 then exit() end end rect(91,68,64,32,14) rectb(91,68,64,32,12) print(text_menu[num_menu],91+9,78,12,true,2) end function help() cls(15) rectb(0,0,240,136,12) if ml and not mlt then mode = "MENU" end print("cilck lift is exit",145,120,12) print("Maxis:\nThis is a robot specialized \nin generating energy.",5,15,12,true,1,true) spr(416,120,20,8,1,0,0,2,2) print("Load:\nThis is a robot that fires \nsingle shots.",5,40,12,true,1,true) spr(418,120,42,8,1,0,0,2,2) print("Neon: This is a very \nbeautiful shield :)",5,65,12,true,1,true) spr(420,120,62,8,1,0,0,2,2) print("Map: The team's explosives expert\nhe likes chicken, but that's fine.",5,85,12,true,1,true) spr(424,150,82,8,1,0,0,2,2) print("Lux: Very cold, but good.",5,105,12,true,1,true) spr(422,120,102,8,1,0,0,2,2) print("Load More: His twin\nbrother, but better\nthan him.",140,20,12,true,1,true) spr(386,220,20,8,1,0,0,2,2) end function gameover() cls() rectb(0,0,240,136,12) print("GAME OVER",42,40,12,true,3,false) print("MOUSE lift CLICK",74,88,12,true,1,false) print("TIME : "..flr(time_game),5,120,13) if ml and not mlt then init() mode = "GAMELOOP" end end -- function grid end function grid_end(x,y) return mx <= 9 and my <= 5 and mx > 0 and my > 0 end --function time stickman function sk_time() for i,s in pairs(stickman_t) do s.times = s.times + 1 if s.times >= s.spwndown then s.times = s.spwndown end end end -- function game loop bro function gameloop() cls(8) map() rectb(0,0,240,136,12) if t%1800 == 0 then math.randomseed(rnd(9999)) end time_game = time()//1000 draw_grid() if ml and not mlt and grid_end(mx,my) and s_sk and not del_sk then sfx(7,"D-3",6,0,15) abb_stickman(mx,my,s_sk) s_sk = nil elseif mr and not mlt then s_sk = nil del_sk = false end if ml and not mlt and grid_end(mx,my) and del_sk and not s_sk then del_stickman(mx,my) del_sk = false end sk_time() upd_stickman() upd_zombie() upd_bul() UI() if t%800 == 0 then z_speed = z_speed - 60 if z_speed <= 200 then z_speed = 200 z_min = 3 end end if t%3600 == 0 then z_num = z_num + 1 z_num = min(z_num,5) end if ml and not mlt and hitbox(240-17,136-24,16,16) then--hitbox() then mode = "STOP" end spr(208,240-17,136-24,0,1,0,0,2,2) if t%z_speed == 0 then abb_zombie(rnd(1,5),rnd(z_min,z_num)) end if t%1500 == 0 then coin = coin + 25 end draw_stand() draw_circs() -- mlt => ml true and false = ml end function del_stickman(gx,gy) for i,s in pairs(stickman) do if gx == s.gx and gy == s.gy then s.hp = -1 coin = coin + stickman_t[s.type].cost//2 return end end end -- abb_sticman bro :) function abb_stickman(gx,gy,type) if coin >= stickman_t[type].cost and stickman_t[type].times >= stickman_t[type].spwndown and not grid[gy][gx] then local s = { x=gx*20+2, y=gy*20+11, gx=gx,gy=gy, type=type, id= stickman_t[type].id, hp= stickman_t[type].hp, coldown = 0, t= stickman_t[type].t, } abb(stickman,s) grid[gy][gx] = s coin = coin - stickman_t[type].cost stickman_t[type].times = 0 end end -- function new zombe function abb_zombie(row,type) local new = { x=250, y=row*20+16, row=row, hp=zombie_t[type].hp, speed=0.12, type=type } abb(zombie,new) end -- function new bul :) function abb_bul(x,y,row,type) abb(bul,{x=x,y=y,row=row,type=type}) end -- draw and upd is sticman function upd_stickman() for i=#stickman,1,-1 do local s = stickman[i] local st = stickman_t[s.type] if s.t%40 > 20 then spr(s.id,s.x+4,s.y+4,1,1) else spr(s.id+1,s.x+4,s.y+4,1,1) end -- hp stickman if s.hp <= 0 then sfx(3,"C-"..rnd(2,3),13,0,13) grid[s.gy][s.gx]=nil del(stickman,i) end -- coins if s.type == 1 then if s.t%550 == 0 then coin = coin + 25 end end -- shoot stickman if st.coldown > 0 then s.coldown = s.coldown + 1 if s.coldown >= st.coldown then for _=#zombie,1,-1 do local z = zombie[_] local gx = z.x//20 if st.name == "boom" then if hit(s.x-16,s.y-16,48,48,z.x,z.y,8,8)then del(zombie,_) end s.hp = -1 sfx(2,"D-4",27,0,15) new_circs(s.x,s.y,rnd(14,15)) elseif gx <= 9 and z.row == s.gy then for i=1,st.shoot do abb_bul(s.x-6+(i*4.5),s.y,s.gy,s.type) sfx(4,"B-2",18,0,10) end end end s.coldown = 0 end end if s.t > st.timer then s.hp = -1 elseif s.t > st.timer-120 then rectb(s.x+4,s.y+4,8,8,2) end s.t = s.t + 1 end end -- upd_zombe function upd_zombie() for i=#zombie,1,-1 do local z = zombie[i] local gx = (z.x+10)//20 if gx >= 1 and gx <= 9 and grid[z.row][gx] then if t%30 == 0 then sfx(5,"C-"..rnd(2,3),6,0,15) new_stand(z.x-rnd(3),z.y-1,rnd(0,1)) end spr(zombie_t[z.type].id,z.x,z.y,1,1) if z.type == 4 then grid[z.row][gx].hp = grid[z.row][gx].hp - 999 new_circs(z.x,z.y,2) del(zombie,i) else grid[z.row][gx].hp = grid[z.row][gx].hp - zombie_t[z.type].dm end else if t%40 > 20 then spr(zombie_t[z.type].id,z.x,z.y,1,1) else spr(zombie_t[z.type].id+1,z.x,z.y,1,1) end z.x = z.x - z.speed end if z.hp <= 0 then del(zombie,i) end if z.x < 0 then mode = "GAMEOVER" end end end function upd_bul() for i=#bul,1,-1 do local b = bul[i] b.x = b.x + 1 spr(stickman_t[b.type].b_id,b.x+8,b.y+4,0,1) for j=#zombie,1,-1 do local z = zombie[j] if hit(b.x,b.y,8,8,z.x,z.y,8,8)then if stickman_t[b.type].name == "cool" then z.speed = 0.05 end z.hp = z.hp - stickman_t[b.type].dm sfx(5,"C-4",6,0,12) new_stand(z.x-2,z.y,0) del(bul,i) end end if b.x > 240 then del(bul,i) end end end -- function circ cool new function new_circs(x,y,c) for i=0,2 do local new = { x=x+4, y=y+4, r=1, c=c, mr=16, } abb(circs,new) end end function draw_circs() for i=#circs,1,-1 do local c = circs[i] if c.r > c.mr then del(circs,i) else c.r = c.r + 1.2 + i end circb(c.x,c.y,c.r,c.c) end end function new_stand(x,y,m) for i=1,1 do local new = { x=x, y=y, id=331, id_max=335, m=m } abb(stand,new) end end function draw_stand() for i=#stand,1,-1 do local s = stand[i] if s.id >s.id_max then del(stand,i) else s.id = s.id +0.4 end spr(s.id,s.x,s.y,0,1,s.m) end end