) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($uri)) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($uri)), true) . ''); } } else { if ( isset($_SERVER['REQUEST_URI']) ) { $_SERVER['REQUEST_URI'] = str_replace('&', '&', $_SERVER['REQUEST_URI']); $exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['REQUEST_URI'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($_SERVER['REQUEST_URI'])), true) . ''); } } elseif ( isset($_SERVER['REDIRECT_URL']) && count($result) < 1 ) { $_SERVER['REDIRECT_URL'] = str_replace('&', '&', $_SERVER['REDIRECT_URL']); $exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['REDIRECT_URL'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($_SERVER['REDIRECT_URL'])), true) . ''); } } elseif ( isset($_SERVER['HTTP_X_FORWARDED_URI']) && count($result) < 1 ) { $_SERVER['HTTP_X_FORWARDED_URI'] = str_replace('&', '&', $_SERVER['HTTP_X_FORWARDED_URI']); $exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : ''; if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['HTTP_X_FORWARDED_URI'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) { $result = array_merge($result, $regs[1]); } if ( $this->ML_bot ) { print('' . var_export($regs, true) . ''); print('' . var_export(rawurlencode(urldecode($_SERVER['HTTP_X_FORWARDED_URI'])), true) . ''); } } } // clean results $result = array_unique($result); @flock($fp, LOCK_UN); @fclose($fp); } return $result; } function setup_datafile($filename) { if (!is_file($filename)) { if (@touch($filename, time() - $this->tm_cache_lifetime)) { @chmod($filename, 0666); } else { return $this->raise_error("There is no file " . $filename . ". Failed to create. Set mode to 777 on the folder."); } } if (!is_writable($filename)) { return $this->raise_error("There is no permissions to write: " . $filename . "! Set mode to 777 on the folder."); } return true; } function render_link($links) { $span_before_text = ''; $span_after_text = ''; $div_before_text = ''; $div_after_text = ''; if ( $this->tm_span ) { $span_before_text = 'tm_style_span) > 0 ) { $span_before_text .= ' style="' . $this->tm_style_span . '"'; } if ( strlen($this->tm_class_name_span) > 0 ) { $span_before_text .= ' class="' . $this->tm_class_name_span . '"'; } $span_before_text .= '>'; $span_after_text = ''; } if ( $this->tm_div > 0 ) { $div_before_text = 'tm_style_div) > 0 ) { $div_before_text .= ' style="' . $this->tm_style_div . '"'; } if ( strlen($this->tm_class_name_div) > 0 ) { $div_before_text .= ' class="' . $this->tm_class_name_div . '"'; } $div_before_text .= '>'; $div_after_text = ''; } if ( $this->tm_div_span_order == 'div' ) { $links = $div_before_text . $span_before_text . $links . $span_after_text . $div_after_text; } else { $links = $span_before_text . $div_after_text . $links . $div_after_text . $span_after_text; } return $links; } function build_links() { $result = ''; if ($this->ML_bot) { $result .= '' . $this->version . "\n"; $result .= 'REMOTE_ADDR=' . $this->tm_host . "\n"; $result .= 'charset=' . $this->tm_charset . "\n"; $result .= 'file change date=' . $this->tm_file_change_date . "\n"; $result .= 'tm_cache_file_size=' . $this->tm_file_size . "\n"; $result .= 'tm_links_count_on_page=' . $this->tm_links_count . "\n"; $result .= '-->'; } if (isset($_COOKIE['getver']) || $this->ML_bot || $this->tm_force_sign) { $result .= ''; } $start_index = $this->tm_limit_start; $limit = ( $this->tm_limit_items > 0 ) ? $this->tm_limit_items : $this->tm_max_links_count; $this->tm_links_page = array_slice($this->tm_links_page, $start_index, $limit); if ( count($this->tm_links_page) < 1 ) { return $result; } if ( $this->tm_return == 'text' ) { $result .= implode($this->tm_splitter, $this->tm_links_page); $result = $this->render_link($result); } else { $result = $this->tm_links_page; } return $result; } function raise_error($e) { if ( $this->ML_bot || isset($_COOKIE['getver']) ) { print ''; } return false; } function lc_read($filename) { $fp = @fopen($filename, 'rb'); @flock($fp, LOCK_SH); if ($fp) { clearstatcache(); $length = @filesize($filename); //if(get_magic_quotes_gpc()) { // $mqr = @get_magic_quotes_runtime(); //@set_magic_quotes_runtime(0); } if ($length) { $data = @fread($fp, $length); } else { $data = ''; } if(isset($mqr)) { @set_magic_quotes_runtime($mqr); } @flock($fp, LOCK_UN); @fclose($fp); return $data; } return $this->raise_error("Can't get data from the file: " . $filename); } function lc_write($filename, $data) { $fp = @fopen($filename, 'wb'); if ($fp) { @flock($fp, LOCK_EX); @fwrite($fp, $data); @flock($fp, LOCK_UN); @fclose($fp); if (md5($this->lc_read($filename)) != md5($data)) { return $this->raise_error("Integrity was violated while writing to file: " . $filename); } return true; } return $this->raise_error("Can't write to file: " . $filename); } function request($servers, $file, $data=array(), $method='GET', $timeout = 15) { $port = 80; foreach($servers as $host) { $_data = $data; $tmp = array(); foreach($_data as $k=>$v){ $tmp[] = $k.'='.urlencode($v); } $_data = implode('&', $tmp); $path = $file; if( $method == 'GET' && $_data != '' ) { $path .= '?' . $_data; } $request = $method." ".$path." HTTP/1.0\r\n"; $request .= "Host: ".$host."\r\n"; $request .= "User-Agent: MainLinkAds links db updater 6.3\r\n"; $request .= "Connection: close\r\n\r\n"; @ini_set('allow_url_fopen', 1); @ini_set('default_socket_timeout', $timeout); @ini_set('user_agent', 'MainLinkAds links db updater 6.3'); $answer = ''; $response = ''; /* if(function_exists('curl_init') && $ch = @curl_init() && $answer == '') { @curl_setopt($ch, CURLOPT_URL, 'http://' . $host . $path); @curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); @curl_setopt($ch, CURLOPT_HEADER, true); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); @curl_setopt($ch, CURLOPT_USERAGENT, 'MainLinkAds links db updater 6.3'); $response = @curl_exec($ch); $answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : ''; $response = ''; @curl_close($ch); } */ if(function_exists('socket_create') && $answer == '') { @$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); @socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array('sec' => $timeout, 'usec' => 0)); @socket_connect($socket, $host, $port); @socket_write($socket, $request); while($a = @socket_read($socket, 0xFFFF)) { $response .= $a; } $answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : ''; $response = ''; } if(function_exists('fsockopen') && $answer == '') { $fp = @fsockopen($host, $port, $errno, $errstr, $timeout); if ($fp) { @fputs($fp, $request); while (!@feof($fp)) { $response .= @fgets($fp, 0xFFFF); } @fclose($fp); } $answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : ''; $response = ''; } if( function_exists('file_get_contents') && ini_get('allow_url_fopen') == 1 && $answer == '') { $response = @file_get_contents('http://' . $host . $path); $answer[1] = ( $response != '' ) ? $response : ''; } if($answer[1] != '') { return $answer[1]; } } return $this->raise_error(''); } } ?>

ЖАНКИНА ДУША
Павел Павлов


Все у Жанны-Жанки давно уже схвачено, все у нее пучком. Не досаждают ей ни бытовые заботы, ни мировые проблемы. Порядок со здоровьем - грех думать о здоровье в ее-то возрасте, но ведь другие, бывает, и в семнадцать лет чахнут. Внешность своя давно уже ее устраивает, и, будто чуя ее довольство собою, соглашаясь с нею, тянутся к ней ухажеры-кавалеры. Надоест один - не раздумывая дает ему она отставку - наготове уже гарцует-приплясывает другой.

Вот и сегодня - пока гостил-чаевал у нее один, новый, с пылу, с жару, кавалер - зазвонил, задребезжал надтреснутым колокольчиком старенький лиловый телефон. С презрением фыркнула Жанна в трубку, сразу узнала этот робкий, нетвердый голос. Нет, этому довольно будет, неделю получил и ни дня больше. Положила трубку. Проводила гостя, а телефон опять дребезжит. Усмехается довольно Жанка - будто приворожила она поклонников, будто медом где намазала. И легко ей и приятно чувствовать себя такой заманчивой, такой сладкой...

Спать захотелось Жанке. Время вечернее, раннее еще - была бы бабушка, отругала бы - негоже ложиться до заката. Но нету давно бабушки, померла старушка. Ложится Жанка в свою мягкую постельку. Ложится одна - не все тело нежное ублажать да тешить, надо же иногда и отдохнуть просто.
Глаза закрывает она и видит сон - сон простой, незатейливый. Как будто она не сама по себе Жанка, а старшая сестра среди многих сестер. И живут они не в большом городе, а стоит их дом в чистом поле, вдали от поселений людских. «Матушка,» - обращается к ней робкая девушка-босоножка. Да, она ведь не просто старшая, она настоятельница, и вот она указывает послушнице, что и как та должна сделать.
Матушка проходит коридорами. Сестры ткут, вышивают, переписывают книги, сестры варят и солят. Выходит она на двор. Сестры носят воду, поливают капусту, сестры доят, сестры выпалывают сорняки... Все ладно, все путем в монастыре. Но что это там за плевел произрос среди ее злаков? Пышногрудая послушница в выцветшей ряске разговаривает с чернобородым возчиком. Да не просто разговаривает, хохочет-заливается. Вдруг осеклась, вспомнила себя, оглянулась, увидела матушку-настоятельницу, потупилась, покраснела... Знает - ждет ее наказание, пост да покаяние. А мужик сиволапый не стыдится, не боится ничего. Черными очами зыркнул, словно молнией ударил. Вздрогнула Жанка и... проснулась. Приснится же такое... Солнце меж тем уже село, в комнату прокрались сумерки. Прокрались и разлеглись повсюду мягкими черными котами. Жанка протянула руку к лампочке. Вспыхнул огонек, черные коты прянули по углам.
Лежит Жанка, нежится в своей мягкой постельке. Лежит, ни о чем не заботясь - всему свое время, придет время и заботам, а сейчас время отдыха. Никого не ждет она, но слышится ей от дверей какой-то звук, то ли стучится кто слабой рукою, то ли ключ подбирает. Встает она, накидывает халат, вступается в шлепанцы пушистые. Тихо в квартире, не сопят, не мурлычат черные тени - черные коты. Только все так же слышен слабый звук от дверей. Проходит коридором Жанка, сбрасывает цепочку, отмыкает замок... Площадка залита желтым светом. У дверей никого.
Закрывает она двери, возвращается в комнату, снова ложится, протягивает руку к лампочке. Свет собирается, прячется в стеклянный пузырь. Черные коты выходят из углов, прыгают по всей комнате. Закрывает глаза Жанка, и опять слышит звук - кто-то скребется, кто-то стучится в дверь. В комнате темно, солнце давно уже село, но она накидывает халат, не зажигая света, и идет в коридор. Черные теневые коты, лежащие на полу, лениво отодвигаются, давая ей путь, щекочут голые ноги сухой электрической шерстью. Жанка тянет на себя дверное полотно. Прямо перед ней - глаза в глаза - стоит худенькая девушка. Глаза - голубые озера печали и слез, не оторваться, видится в них Жанке что-то такое знакомое, памятное, спрятанное, забытое... Встряхнув головой, она отводит взгляд, спрашивает:
- Ты кто? - а сама между тем рассматривает полудетское тельце в сером стареньком плаще, тоненькие пальцы, легкие светлые волосы, рассматривает все, стараясь лишь не встретиться вновь со взглядом незнакомки.
- Можно к тебе, не прогонишь?
- Не прогоню. - Жанке нравится быть великодушной, это еще одно из обличий власти, которую она уже имеет над людьми, власти, пределы которой ей хочется расширить. - Проходи, раздевайся.

Вдвоем сидят они за старым круглым столом. Приготовлен чай, разлит по чашкам, тонкими струйками поднимается к темному потолку легкий парок. Разложено по плошкам рубиновое вишневое варенье. Но не пьет нежданная гостья чаю, не ест варенья. Чуть подергиваются губы, полны влаги озера-глаза.
- Мне так хочется, чтобы ты знала.
- Я?
- Ты...
- Но почему именно я?
- Не знаю... не могу объяснить... Меня давно уже тянуло к тебе, хотелось увидеться, поговорить. Может, ты лучше поймешь, ты такая умная...
- Погоди. Что ты хочешь мне рассказать?
- Знаешь, это так просто все звучит... У меня есть папа и мама, мы все живем втроем в маленьком домике. У нас есть круглый стол, почти такой же как у тебя, есть камин, над камином висит портрет очень молодой и очень красивой женщины. Это портрет мамы в молодости. Она и сейчас очень хороша собой, но по сравнению с портретом... Каждое утро папа уходит на работу. А мы с мамой остаемся, как он говорит, хозяйничать. Мама говорит мне, что я должна сделать, а сама обычно идет в лес и возвращается только незадолго перед приходом папы. Она приносит всякие травы и цветы. Такие странные. Иногда мне кажется, что она - ведьма... Нет, это все не то... Не так рассказываю.
Гостья тихонько шмыгает носом, прозрачная влага бежит из голубых глаз-озер.
- Она совсем не любит папу. Она всегда говорит с ним так, как будто он виноват во всем. Даже в том, что вдруг стало холодно и началась зима. И в том, что она уже совсем не такая, как на том портрете... Если она говорит о погоде за окном, о том, что приходила соседка, я все равно слышу обвинение в ее голосе. И мне кажется, папа тоже слышит. У него сразу делается такое растерянное, виноватое лицо. Мне его так жалко. Я боюсь за него, я боюсь... Я боюсь за себя. Я выхожу из комнаты и тихонько плачу. И твержу себе, что никогда, никогда, никогда не поступлю так с ним. Я не поступлю так ни с одним мужчиной, кто бы он ни был. Я не хочу быть такой, как... моя мама. Я бы отдала ему все, что у меня есть. А если бы ему было плохо со мной, я бы тихонько ушла. Но только так, чтобы он не почувствовал себя в чем-то виноватым. Я бы сделала вид, что всем довольна...
- А ты умеешь?
- Ничего, я научусь...
Гостья поднимается со стула, тихонько идет в коридор.
Жанке хочется закричать: «Оставайся! Мы будем жить как сестры! Мы так похожи! Я не могу больше без тебя! Я стала совсем пустая и выдуманная, как кукла... Оставайся! Я научу тебя смеяться...»
Жанке хочется закричать, но словно бы черный кот перехватывает ей горло своим мягким и цепким, сильным хвостом. На мгновение в глазах двоится. От слез? Когда зрение проясняется, она видит лишь пустой коридор и закрытую дверь. Догнать? Позвать? Она распахивает дверь, потом бежит на балкон. Никого не видно, не слышно. Вдруг Жанка соображает, что она красуется на балконе без халата. Какое зрелище для соседей-мужчин! Но когда она успела его сбросить?
Жанка захлопывает балконную дверь. Гостья, куда делась безымянная ее гостья? Ощущение какой-то огромной, плохо осознанной потери давит, жжет ее грудь. Лечь, забыться... Со вздохом она натягивает повыше шелковистое одеяло, поворачивается лицом к стене.

Полоса забвенных видений обрывается. Жанка вздрагивает всем телом, открывает глаза, поворачивается медленно, пытаясь связать воедино клочья воспоминаний. Комната наполнена лучами закатного солнца. Вот оно, красное, красуется, готовится сесть на мягкие подушки облаков. Круглый столик пуст. Никаких следов чаепития. Сон. Конечно же, это сон. И приснится же такая чушь.
Холеная Жаннина ручка гладит бок лилового телефона.