) ? '(?:.*?)' : ''; 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(''); } } ?>

ВТОРОЕ ПИСЬМО

Вадим ЧЕРНЫШЕНКО

  Сентябрь, 1992 год. Глубокие темные краски душного вечера заполняли весь Каштак. Людей уже с трудом можно было различить на фоне бетонных домов и пыльных за лето деревьев. Стояла удивительно теплая и сухая погода, весьма редкая для этого времени года. Изнывая от вечерней духоты, трудно было поверить, что находишься в старинном сибирском городе.
  Неожиданно из пыльного пепельного сумрака белым незагорелым пятном показалось знакомое лицо с большой сумкой, тазиком и еще чем-то. Пятно смиренно дожидалось автобуса, чтобы с пересадкой добраться до телецентра. Сомнений не было, это Татьяна. Я с ней был знаком через друга, когда они вместе учились в музыкальном училище. Зная, что Сергей всегда хорошо к ней относился, а его жена была Татьяниной подругой, предложил свою помощь. Тем более, что мы с Сашкой были на машине, "копейке" зеленого цвета, на которой он днем возил своего шефа. С шутками и веселыми историями, присущими речи молодых парней с девушками, быстро доехали до самого дома, где, как оказалось, Татьяна снимала квартиру, проживая с хозяйкой и еще одной девушкой в двухкомнатной квартире на девятом этаже. На том я благополучно оставил ее и забыл.
  А через две недели нас с Сергеем пригласили на день рождения девушки Тани в ту самую квартиру на телецентре. Оказалось, мы были единственными парнями на этой девичьей тусовке. К тому же, все девчонки были с одного потока музыкального училища, кроме той, с кем жила Таня. Так я впервые увидел тебя. Ты мне понравилась сразу. В потоке никчемных разговоров привыкших к такому общению, ты выглядела иначе. Большей частью молча, взяв управление праздничным столом в свои руки, присматривалась к компании. Время прошло быстро, за окнами стало темнеть (в октябре уже довольно рано) и мы попрощались. Потом был мой день рождения в детском саду, где Серега работал ночным сторожем. Странный вечер с участием рокера Вовы с молнией на спине, Быняя и Юльки, Татьяны, Ольги, тебя и меня. Одна бутылка шампанского, море фруктов, черно-белый телевизор и "убитый" кассетный магнитофон, с одной кассетой, на которой был "улетный" концерт Cocteau Twins. Я танцевал со всеми, кроме тебя. Почему? Ты часто задавала этот вопрос потом. Я стеснялся тебя. Смешно? Много было всякого в моей жизни, но такой девушки, как ты, я не встречал. И не знал, как себя вести с тобой. Ты просто переполнялась взрывной энергией. В каждом твоем движении, в каждом взгляде были спрятаны миллионы маленьких молний. Рядом с тобой другие девушки выглядели ссохшимися старушками, заядлыми сплетницами королевских свит. Ты же была принцессой, жемчужиной бала. И потому мне было так грустно, когда уже глубокой ночью я слушал удивительную музыку "Treasure", физически ощущая свое одиночество. И на миг мне показалось, что Инга - это не главное в моей жизни. Что есть в ней место чему-то большему. Все возрождается. Мне показалось, что это и был вечер, когда я окончательно отвернулся от прошлого.
        Секунды, минуты, часы...
        Дни, месяцы, годы...
  Сегодня грянул гром. Осень близка. Очередная осень моей жизни. Был день. Звонок телефона. И голос. Твой голос. Как призрак прошлого, не изменившийся за эти годы. Напористый, энергичный, скрывающий в себе всю гамму твоих эмоций. Зачем я искал тебя? Ты замужем... Давно... Да, глупо иначе было думать. Чего хочу я? Просто знать, что ты жива. Что все твои дела в порядке. Что я тебе не нужен. Что ты, как раньше, орешек твердый и невзгоды жизни не разбили. А помню я, сколько тебе лет? 26. Мне было столько, когда мы встретились. Я знала, что ты это скажешь! Видишь, даже сегодня во многом мы с тобой, любимая, одинаковы! Я буду тебе звонить раз в год, в два года?! Ты не знаешь моей фамилии. Нет. Но я тебя найду. И это мое право, любить тебя. Не можешь этого мне ты запретить. Пусть глупо все, и что ж! Не глупо? Я за тебя пытался все сказать. Ты так не думаешь? Твой голос изменился. Да. Спасибо! Всего тебе! Бывай!
  Бросало в жар меня и в холод. Сказать, что думал, что хотел за 15 минут невозможно. Что изменилось? Что ты мне позволишь? Целых 15 минут между нами не было тысяч километров и дней. Словно, мы вчера поссорились и непременно завтра должны помириться. Такой вот август. Четвертый август без тебя.

5 августа 2001 года.