/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } Разрушители интеграции находятся в Кремле | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Разрушители интеграции находятся в Кремле

В череде событий, вызвавших тревогу в Белоруссии и России, особое место занимает очередной их конфликт в рамках Союзного государства. Причиной, как известно, стал налоговый манёвр, который проводит российская сторона. Уменьшая вывозную пошлину на нефть, она одновременно повышает цену на её добычу. В итоге входящая цена нефти для Белоруссии растёт. И республика, уже потерявшая от этого 3,6 миллиарда, к 2025 году потеряет 10,5 миллиарда долларов. Попытки её руководства добиться компенсации ущерба, в том числе несколько встреч Александра Лукашенко с Владимиром Путиным, к окончательному решению проблемы не привели. Постоянная повторяемость конфликтов, а ещё больше — острота, которой достигли противоречия, заставляют вернуться к анализу глубинных причин, осложнивших отношения в Союзном государстве.

Отыщи всему начало

Аргументы российской стороны просты: налоговый манёвр — наше внутреннее дело, к тому же при нынешнем уровне интеграции с Белоруссией о каких-то компенсациях не может быть и речи. Доводы эти были подкреплены ультиматумом Медведева — так окрестили аналитики его высказывания в Бресте, на Совмине Союзного государства. Суть ультиматума отражает заголовок статьи в газете «Коммерсант»: «Россия поставила перед Беларусью вопрос ребром: сначала интеграция — потом экономика». Со страниц и экранов официозных СМИ начался накат на Белоруссию: «Иждивенческая модель поведения»… «Никаких дотаций и субсидий, пока не выполнят требования Союзного договора».

При этом, как и во время прежних конфликтов, и власть, и обслуживающие её пропагандистские институты обошли молчанием главное: Союзный договор требует равноправия в отношениях сторон, которое должны обеспечивать полновластные наднациональные органы. Этот принцип положен в основу договора. «Союзное государство — чётко определено его третьей статьёй — базируется на принципах суверенного равенства государств-участников». И должно, как записано в последующих статьях, иметь общий парламент и другие управленческие органы.

Базовые требования были нарушены не белорусским, а российским руководством. «Правда» уже писала, какую роль сыграл в этом Путин. Напомню: через год после обмена с Лукашенко ратификационными грамотами Союзного договора он объявил его неприемлемым. То была политическая установка. Владимир Владимирович принародно отказался от создания союзного парламента. По его настоянию вопрос о принятии Конституционного акта — Конституции, которая определила бы, что это будет за государство, и установила его политическую, социально-экономическую основу, органы управления и общую валюту, был вынесен «за скобки» переговоров.

Подрывом организационно-структурных форм Путин не ограничился. Союзный договор требует обеспечить равенство экономических условий хозяйствования. В первом, заглавном его разделе целью общего строящегося государства названо «создание единого экономического пространства», которое невозможно без равенства цен. Это — базовый принцип создания всех союзов. В том числе и Европейского, поклоны которому кремлёвско-«белодомовская» команда отвешивала не один год. Там, в ЕС, выравнивали условия хозяйствования дотированием проблемных сфер того или иного участника. Германия, например, получала дотации на развитие аграрного сектора, другие страны — на дефицитные у них энергоносители, на промышленные, перерабатывающие либо обслуживающие отрасли. Иначе не было бы создано ни единого экономического пространства, ни Европейского союза.

Для Белоруссии самая проблемная сфера — нехватка энергоносителей. Именно в этой сфере прежде всего и следовало установить ценовое равенство. Но Путин нанёс по болевой точке, от которой зависело, будет ли создано общее, на равноправной основе, государство, целенаправленный удар. Цена на газ Белоруссии в одностороннем порядке была повышена почти вдвое, выросли для неё и цены на нефть. Экономический фундамент союза был разрушен.

Уже в 2007 году Александр Лукашенко вынужден объявить, что «Россия фактически полностью растоптала весь этот договор... Они (российские руководители. — О.С.) не могут согласиться с тем, что главный принцип Союза — равноправие. Мы — большие, вы поменьше, поэтому какое равноправие?» Растоптан был, заметьте, международный договор, имеющий приоритетное значение перед всеми внутренними законодательными актами и потому подлежащий беспрекословному выполнению.

Произволом на высшем уровне была расчищена дорога к нарушению других, рангом пониже, — межправительственных и межведомственных договоров и соглашений. Ломая их, российская сторона развязала в Союзном государстве нефтегазовые и мясо-молочные войны. И тем самым, как справедливо квалифицировало министерство иностранных дел Белоруссии, нарушила международные обязательства по вопросам не только равных условий хозяйствования, но и свободной торговли, создания Таможенного союза, унификации и создания системы тарифного и нетарифного регулирования. Словом, все главные обязательства в самой жизненно важной — экономической сфере.

Попытка Медведева обвинить Белоруссию в неисполнении договора выглядит, мягко говоря, некорректной. Чьи транслирует он идеи и мысли — понятно каждому. Поневоле задаёшься вопросом: почему Путин и его команда, растоптавшие Союзный договор, вдруг проявили к нему такое повышенное внимание и стали требовать его выполнения от Белоруссии? Чтобы скрыть свою роль разрушителей интеграции? Или, как считает ряд аналитиков, причина кульбита иная. Не имеющий права третий раз подряд баллотироваться в президенты, Путин хочет обеспечить себе политическое будущее на посту руководителя Союзного государства, которое для этого надо превратить из фантома, «облака в штанах» в более-менее нормальное государственное образование.

Не будем гадать — важнее другое. Полное пренебрежение российского руководства к закону. И — к союзнику. Пренебрежение, проявляющееся в самых неприглядных формах.


Под братской личиной

В разгар конфликта из высших российских инстанций стали сыпаться заверения в братской дружбе с белорусами. «Братский характер отношений народов Беларуси и России вряд ли кто станет отрицать», — заявил пресс-секретарь Путина Дмитрий Песков. В тон ему высказалась директор департамента информации и печати МИД РФ Мария Захарова: «Слова «коллеги» или «друзья» не отражают сути вопроса. Это наши братья».

Что касается народов — святая истина. А вот по отношению к высшей российской власти всё обстоит с точностью до наоборот. Разве по-братски было угрожать Белоруссии, как это сделал Кремль в ноябре 2002 года, уменьшением подачи газа на 50 процентов, ссылаясь на нехватку его для поставок в Германию, Данию и другие страны Запада? А затем в лютые февральские морозы оставлять союзную республику без газа, обвинив в задолженности? Хотя задолженность её была в десяток раз меньше, чем у пронатовского и антироссийского украинского руководства. Да и график оплаты за потребляемый газ, в отличие от Украины, Белоруссия соблюдала исправно и по согласованному с российской стороной плану аккуратно рассчитывалась за прежний долг. Но вентиль перекрыли только ей.

И разве из братских чувств к белорусам кремлёвские хозяева натравили на них свою пропагандистскую челядь? На телеканалах, в «Новых Известиях», других официозных и либеральных изданиях появились злорадные, с карикатурами, сюжеты: жители Белоруссии, готовясь к скорому отключению газа, скупают не подарки и новогоднюю атрибутику, а телогрейки, обогреватели и «буржуйки».

И уж никак нельзя назвать братскими массовые запреты на белорусскую мясо-молочную продукцию, которые из-за их явной противозаконности руководство РФ вынуждено было со скрипом отменять.

Отнюдь не братское и даже не дружественное отношение к союзнику — единокровному народу проявилось не только в противоправных экономических актах. Российские министры по полдня держали своих белорусских коллег в приёмной, чтобы отправить обратно ни с чем. В то время как западных эмиссаров они принимали без задержки и на полусогнутых. В дипломатии такая политика — лакейски прогибаться перед сильными и прессовать тех, кто поменьше и послабее, как справедливо писала «Правда», называется шакальей.

Нелишне напомнить ещё одно немаловажное обстоятельство. «Нереформированная» белорусская экономика, несмотря на более высокие, почти вдвое, цены на газ и нефть, чем были они для «реформированной» российской, развивалась в два с лишним раза быстрее неё. И даже Шушкевич, ярый противник «лукашенковского режима», писал: «Белорусские министры не носят костюмов от Бриони, но дело знают и работают куда лучше российских». Поучиться бы, перенять опыт, но нет — устраивают сеансы открытого издевательства.

Но главным доказательством отнюдь не братского отношения российских руководителей к Белоруссии и её народу стал, конечно, продолжающийся экономический подрыв интеграции и блокирование строительства Союзного государства. Сегодня применяется всё та же, почти двадцать лет действующая схема: взять с союзника намного больше, чем предусмотрено договором, и вернуть ему лишь часть незаконно взятой суммы. Разница лишь в том, что возросли масштабы противоправных антисоюзных операций. И если раньше российская сторона хоть частично компенсировала учинённый ею разлом интеграционного поля, то нынче стала отказываться от любой компенсации.

В паутине лжи

И что поразительно: высшие российские сановники продолжают утверждать, что оказывают помощь Белоруссии, умалчивая, как односторонним увеличением цен на нефть и газ подрывают Союзное государство. Ведь цена газа для Белоруссии сейчас почти вдвое выше, чем для соседней с ней Брестской области. Путин снова приводит не раз повторявшиеся доводы о льготных, комфортных ценах на газ для Белоруссии: тысяча кубов ей обходится в 127, а Германии — в 200 с лишним долларов. Но Германия не входит в Союзное государство. Да и до неё ещё 2000 километров, и если отбросить затраты на перекачку газа, то цена его долгие годы была меньшей, чем для Белоруссии, на поставках в которую «Газпром» имел более высокую, по сравнению с поставками немцам, рентабельность. Какие уж тут комфортные условия — прямая нажива на «меньшем брате».

О позиции чиновников рангом пониже и говорить не приходится. Недавно назначенный послом в Минск Михаил Бабич, например, в интервью ТАСС, определяя суть конфликта, сказал, что Белоруссия хочет поддержки от России ещё на 3—4 миллиарда долларов в год, умолчав, что речь идёт о выполнении Союзного договора и спасении интеграции.

Прежний посол Александр Суриков, после того как российская сторона, растоптавшая договор, перешла к нефтегазовым и мясо-молочным войнам, имел мужество заявить: «Мы (российское руководство. — О.С.) забыли, что находимся в одном союзе». Бабич же, как видим, сразу нацелился на дальнейший подрыв интеграции. Знакомый аргумент властей предержащих, повторенный им: «Налоговый манёвр — суверенное право Российской Федерации», — ещё раз подтверждает, что посланник Кремля не намерен, вслед за своими хозяевами, признавать Союзный договор.
Как и при прежних конфликтах, началась пропагандистская атака на Белоруссию. Российские СМИ официозной и либеральной окраски с возмущением поведали, что в Минске бьют русских. По телеканалам была прокручена безобразная сцена драки двух мужчин в метро. Устроили её, как показала проверка, два белоруса: один — бывший сотрудник ОМОНа, отсидевший в тюрьме за взятку, второй — такой же, по характеристике следственных органов, полуотморозок.

В СМИ снова запустили набившие оскомину обвинения Белоруссии в том, что она заправляет своим дизельным топливом украинские танки и переправляет с Украины в Россию санкционные товары. И опять-таки по заданию руководства республики была проведена основательная проверка. «Там же почти всё дизельное топливо российское, — сообщил Александр Лукашенко. — И россияне поставляют, постоянно наращивая объёмы этих поставок — бензинов и дизельного топлива — в Украину». Факт в общем-то давно известный специалистам. Как и то, что санкционку через Белоруссию, в результате противодействия её государственных органов, везут в мизерных объёмах, и делают это украинские и российские поставщики при покровительстве таможни и других служб Российской Федерации.

Возобновились обвинения в «ненадёжности» белорусской границы. Хотя даже самое опасное — оружие, которое стало массированно поступать в республику с Украины, переправляют сначала через украинско-российскую границу, а потом из России — в Белоруссию. Естественно, для минского Майдана.

Ангажированные СМИ опять повторяют ещё один «неопровержимый» довод: отношения с Белоруссией осложнились потому, что она не признала Южную Осетию и Абхазию, «замутила» с Крымом. Хотя события эти, требующие более углублённого анализа, произошли уже после того, как Кремль подорвал интеграцию и разрушил Союзный договор. Считать происшедшее позже причиной ранее происходивших событий — элементарный подлог.

Паутина лжи, которую российские верхи плетут против тех, кого называют братьями, поражает цинизмом и изощрённостью. Упоминавшийся уже М. Бабич посоветовал «белорусским партнёрам двигаться в сторону принятия решений по выравниванию условий хозяйствования». Мол, и они нарушают равенство цен: акцизы на табак в Белоруссии искусственно сдерживаются, величина их в четыре раза ниже, чем в РФ, и весь избыточный объём производства сигарет идёт оттуда в Россию, из-за чего её бюджет недополучает миллионы долларов. При этом не уточнил: миллионы долларов для такой большой страны, как Россия, что укус слона комаром. А миллиарды от одностороннего увеличения ею цен на газ и нефть для меньшей по населению в пятнадцать, а по территории в 82 раза Белоруссии — тяжёлый экономический удар. Не говоря уж о дальнейшем подрыве интеграции.

Но, пожалуй, всех превзошёл Путин. Почти сразу после подписания Союзного договора он стал повторять, что помощь Белоруссии наносит ущерб российской экономике. А на стыке 2006—2007 годов в двух телевизионных шоу, оправдывая односторонний подъём цен на газ и нефть, пытался убедить телезрителей, что уравнивание цен наносит ущерб российским пенсионерам и бюджетникам. И хотя расчёты экспертов показывали, что от несколько сниженных цен за счёт «скидок» и «льгот» на газ и нефть для своего союзника россияне только выигрывают, получая из Белоруссии дешёвую продукцию и полнее загружая кооперированные с ней предприятия, почти полтора десятка лет своей позиции Владимир Владимирович не менял. И вдруг в феврале 2017 года заявил, что от «помощи» белорусской экономике — ценовых «скидок» и «льгот» для неё на газ и нефть — российская экономика «получает и получит выгоду». Совместная работа «в долгую», пояснил он, «усиливает наш синергетический эффект (возрастание эффективности деятельности в результате интеграции. — О.С.) и повышает нашу общую конкурентоспособность».
Выходит, полтора десятилетия Путин со всей своей командой обманывал россиян. И в действительности Россия от снижения цен на энергоносители для Белоруссии не только не терпит ущерба, но и, наоборот, получает выгоду. А сейчас открыто пошёл против того, что вынужден был признать, и совершил очередное сальто-мортале: санкционировал налоговый манёвр, увеличивающий для союзника разницу в цене на нефть.


Отрыжка неоимпериализма

Как же случилось, что нарушение приоритетных, подлежащих неукоснительному исполнению договоров стало для российского руководства нормой? Чем бы ни прикрывало, чем бы ни оправдывало оно свою политику с её кульбитами, истина в общем-то очевидна. Россия уже не та, что была при Советской власти: у неё другой уклад, другие принципы. Чтобы понять их, достаточно проследить за цепочкой действий кремлёвского руководства.

В 1993 году оно вывело Россию из единой рублёвой зоны — без предупреждения объявило о замене денег на новые. В то время Белоруссия поставляла на российский рынок массу товаров: от тракторов, автомобилей до трикотажных изделий и продуктов питания. Россия оплачивала всё это рублями. В итоге продукция белорусских предприятий оказалась в России, а Белоруссия осталась с горой пустых бумажек. Это было вопиющее мошенничество, грабёж средь бела дня. Государственный бандитизм только что вылупившегося капиталистического правительства.
Уже при первом президентстве Путина, через полгода после того, как он отрёкся от Союзного договора, стал ясен подлинный смысл политики Кремля. Угрожая сокращением подачи газа, российское руководство выдвинуло тогда своё главное, как подтвердили дальнейшие события, требование. «Прямо было заявлено, — сообщил на экстренном совещании в Минске Александр Лукашенко: — не отдашь собственность, разговор будет другой».

Захват белорусской собственности в форме скупки её по дешёвке стал основой экономической политики «новой России» по отношению к союзнику. Этого, собственно, и не скрывали руководители ведомств. Елена Скрынник, бывшая министром сельского хозяйства РФ, во время очередного облыжного обвинения белорусов в поставке низкокачественной мясо-молочной продукции поручила собирать данные не по качеству мясных и молочных изделий, а по техвооружённости и технологическому уровню предприятий, чтобы заполучить самые выгодные. А министр энергетики Александр Новак назвал целью экономических атак на Белоруссию захват по дешёвке её нефтеперерабатывающих заводов, технологически намного опередивших российские. Для этого необходимо, лишив их сырья либо односторонне подняв на него цену, обанкротить. И бери тогда голыми руками.

В том, что это официальная политика российского руководства, сомневаться не приходится. В документе об интеграционной стратегии России в СНГ, принятом во время президентства Медведева, Белоруссия упомянута одной фразой: «Скупать белорусские предприятия».

«Беда в том, — констатировал директор Центра системного анализа НИИ теории и практики государственного управления Валерий Суряев, — что управленческие рычаги находятся по сути в руках мощных финансово-промышленных группировок, которые заинтересованы только в одном — получении прибыли. Вот их стратегическая цель… Речь идёт о собственных эгоистических интересах этих корпораций. Ни о каких интересах России они не думают. Им это глубоко чуждо». Администрация Кремля, как и положено при капитализме, стала лишь комитетом по управлению делами буржуазии, обслуживающим олигархов, которым нужно не Союзное государство с братской республикой, а лишь лакомые куски её экономики.

Эта цель преследуется и сейчас. «Москва не прочь сделать белорусские нефтеперерабатывающие заводы «своими»… «Россия готова купить НПЗ в Мозыре и Новополоцке», — подобные сообщения запестрели в интернете и на страницах газет. Не надо быть семи пядей во лбу, чтобы понять: всё делается по знакомой схеме — сначала обанкротить (на сей раз своим налоговым манёвром), а потом скупить.

Оправдался вывод группы белорусских экспертов, сделанный около десяти лет назад: «Политика кремлёвского руководства, использующего нехватку в Белоруссии энергоносителей как рычаг давления на неё, заражена неоимпериализмом… Вот и последнего российского союзника на постсоветском пространстве — Белоруссию пытаются перемолоть в олигархических жерновах. Сырьевые магнаты с молчаливого одобрения властей предержащих гнут свою линию, не думая о последствиях, стране и людях, живущих в Союзном государстве». Не думая даже о том, что удар приходился и по российским предприятиям, завязанным производственной цепочкой с белорусскими. А на таких предприятиях работало около десяти миллионов человек. Отрыжка неоимпериализма, не знающего моральных, нравственных норм, проявляется, как мы уже убедились, не только в нефтегазовых и мясо-молочных войнах, которые развязывает российское руководство, но и в изощрённом издевательстве его над союзником.

В последнее время СМИ стали сообщать о более широких замыслах Кремля. «Как Россия присоединит Беларусь»… «На очереди — инкорпорация соседа»… «Бабич как предтеча аншлюса» — лишь несколько заголовков из интернета и российских газет. Читаешь — и не покидает ощущение дежавю: всё это уже было. Более пятнадцати лет назад, заявив о неприемлемости Союзного договора, подобную, нереальную и явно провокационную идею — о вхождении Белоруссии в Россию — выдвинул Путин. И, как констатировали аналитики, одним выстрелом убил четырёх зайцев.

Во-первых, не нарушил своего обещания западным друзьям, прежде всего президенту США Бушу, которому клялся в «общих ценностях» и иначе как «другом Джорджем» не называл, не делать реальных шагов для возрождения «империи».

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

В-третьих, создал у обывателя, не вникающего в суть происходящего, а порой и неспособного её постичь, впечатление, что это не он, а Лукашенко встал на пути к единству разделённых народов.

И, в-четвёртых, вошёл в обывательское сознание новым собирателем земель разрубленной на куски Державы. (Подробнее об этом кульбите Владимира Владимировича в статье «Гильотина для интеграции» — «Правда» за 10—13 февраля 2017 года.)

И сейчас вместе со СМИ эту провокационную идею вытянули на свет божий российские политики, выступающие против Союзного государства. Вроде засланного казачка Кремля Владимира Жириновского. Но что характерно, своей «неопровержимой» логикой все они начисто опровергают свою позицию. Тот же Жириновский написал в Telegram: «Я уверен, если сейчас провести в Белоруссии референдум о возвращении в состав России — абсолютное большинство поддержит это. В 1990 году за сохранение СССР проголосовали 82 процента белорусов — больше, чем в среднем по Союзу». Заметьте: за сохранение СССР, где Белоруссия была равноправной республикой, а не входила в Россию. Единственно приемлемый вариант, который пытаются, но не могут, при всём своём политическом словоблудии, отклонить даже самые завзятые противники Союзного государства.


Что день грядущий…

Год нынешний — юбилейный: в декабре исполняется двадцать лет Союзному договору. Но до сих пор не выполнены главные его пункты и требования. И, что ещё опаснее, продолжаются попытки вбить клин между его участниками. «Москва утратила доверие к Беларуси», — громогласно заявил первый заместитель премьера РФ Антон Силуанов. И перечислил набившие оскомину причины такого недоверия — те же подакцизные сигареты, ту же санкционку. А затем в духе ультиматума Медведева, своего шефа, потребовал «глубокой интеграции» и обвинил белорусов в том, что интеграционные договорённости между двумя странами, достигнутые в 1999 году, не выполняются, а посему — никаких компенсаций и налоговый манёвр остаётся суверенным внутренним делом России.

При этом ни словом не обмолвился, что субсидии проблемной для Белоруссии сферы энергоносителей — единственная экономическая возможность создать Союзное государство. И что Москва ещё раньше потеряла доверие Белоруссии — за реальные удары по интеграции. Зато объявил, что отношения двух стран, которые «не настолько братья, чтобы субсидии отдавать», должны быть равновыгодными, вызвав законный вопрос: так всё же россияне и белорусы — братья, как говорит не только путинская пресс-служба, но и постоянно повторяет сам Путин, или, как считает первый заместитель правительства, сформированного им, «не настолько братья»? При видимой противоположности высказываний их объединяет одно — лицемерие, выпирающее и в призыве к союзникам обеспечить равновыгодность, которую нарушила российская сторона.

Самым расхожим обвинением Белоруссии стало обвинение в том, что она «уходит под Запад», отворачиваясь от России. «Если некоторые россияне нас всё время упрекают, что мы с Западом разговариваем, так, я думаю, надо на себя посмотреть. Наверное, больше, чем Россия, никто не стремится на Запад или наладить отношения с Западом и с Америкой. Так в чём вы нас упрекаете?» Ответ на этот резонный вопрос Лукашенко дал на встрече с журналистами после завершения своей миссии посла в Минске Александр Суриков: «А какую занимает позицию политика России? На сближение с Западом, в том числе с США. Мы тоже занимаем эту позицию».

Надо учитывать, что при сближении с Западом обе страны ведут себя по-разному.

Белоруссия никогда не выступала объединённым фронтом с Евросоюзом и США против России, Россия же вместе с ними против Белоруссии выступала. Вспомним хотя бы их десятилетние совместные нападки на Белоруссию за то, что она не распродаёт народную собственность, не проводит обвальной шоковой терапии, не выдворяет по рецептам, которые навязал России Вашингтон, государство из экономики (чего, заметим, на Западе нет). Или можно вспомнить явное предательство, совершённое Кремлём против своего союзника в декабре 2010 года. После многолетних нефтегазовых, молочных, мясных и прочих торговых войн с Белоруссией российское руководство поддержало США и ЕС, угрожавших ей за то, что она дала отпор прозападным «майданникам», пытавшимся совершить в Минске государственный переворот, открыто выступило против своего союзника вместе с теми, кто пытался с ним расправиться.

Причина кремлёвско-западного симбиоза — в их классовом родстве. Именно этим родством были продиктованы действия Путина в первые же годы его президентства. Обитатели Капитолийского холма восприняли тогда как сигнал тревоги подписание Союзного договора Белоруссии и России. «С Союзного государства, — предупреждали аналитики ЦРУ, — начнётся восстановление империи». И конгресс США, как уже знают читатели «Правды», принял специальную резолюцию, в которой, назвав договор нелегитимным, потребовал от президента США «поднять на самом высоком уровне (то бишь путинском. — О.С.) вопрос о непредоставлении российским правительством финансовой помощи режиму Лукашенко». Под финансовой помощью имелись в виду «нерыночные» дотации на газ и нефть, предусмотренные Союзным договором для обеспечения равных условий хозяйствования.

Путин равенство цен, как мы знаем, нарушил. Всё было сделано в соответствии с планом Вашингтона.

Для объективности не следует забывать ещё одну точку зрения. Доходчивее всего, по-моему, её изложил в интернете комментатор под псевдонимом КЭП: «Не менее значим вопрос о том, чтобы объединялись страны на базе единой модели. Разумеется, изначально Лукашенко готов был на любые условия соединения с нашей страной. Но когда это было? В 1990-е годы, когда многим казалось, что криминально-компрадорский режим в России долго не продержится, что в ближайшем будущем его сменят левопатриотические силы. К сожалению, власть олигархии упрочняется. И что в этих условиях объединять? Социалистическую экономику (здесь автор ошибается: в Белоруссии не социалистическая экономика, а экономика с элементами социализма. — О.С.) с экономической системой периферийного капитализма? Вот если бы Россия отказалась от неолиберального курса, тогда шанс был бы, несомненно. Реинтеграция стала бы реальностью. Но пока в нашей стране рулит капитал, то о воссоздании Союза речи быть не может. Во-первых, правящему классу невыгодно отказываться от системы, при которой страна работает на его обогащение. Во-вторых, олигархическая система в России отпугивает режим в Белоруссии».

Противоречие бесспорное. О нём сказал и Лукашенко, правда, под другим ракурсом: «Кому-то не нравится курс, который Беларусь проводит (кому, пояснять не стал — известно и без пояснений). Даже не внешнеполитический. А та экономика, которую мы строим, тот социальный уклад, который мы создаём на принципах прежде всего справедливости… Вот и начинаются нападки».

Но несмотря на это, как и на длительное блокирование интеграции Кремлём, и разнузданную пропаганду против Белоруссии, руководство её готово к углублённому союзному строительству.

Условия его назвал на встрече с дипломатами Александр Лукашенко:

«Союз — пожалуйста. Объединение — пожалуйста, но только это люди (имеется в виду народ. — О.С.) должны решить, а не мы (руководители. — О.С.). Мы не отказываемся ни от одного тезиса. Если кто-то мне начинает говорить про объединение, то опять же с крыши: давай валюту общую. Мы не против общей валюты, но это должна быть общая валюта, а не валюта Центробанка России. Должен быть эмиссионный центр, созданный на равных условиях. Если вы приводите пример ЕС, хорошо — на принципах Евросоюза. Но чтобы условия были равные и подход. Вы хотите налоговую, таможенную политику унифицировать? Согласен. Но на лучших традициях и условиях, возьмём всё лучшее у белорусов и россиян. Но не так: мы — большие, вы — малые, давайте делайте так, как у нас».

Блокировав создание Союзного государства, Путин со своей командой совершили величайшее, после разрушения СССР, геополитическое предательство. Но Путины приходят и уходят, а народ остаётся. Как остаётся и надежда на то, что будет расчищена дорога к восстановлению единства Белоруссии и России.

Олег СТЕПАНЕНКО, соб. корр. «Правды». г. Минск.
ПРАВДА, №17 (30804) 15-18 февраля 2019 года

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.