/** * 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); } Добавить комментарий | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

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

100 дней вэрхала и трехпроцентная рука Москвы

Если вы являетесь руководителем религиозного кружка по интересам, созданным бравыми полицаями в славном 1942 году, то белорусская «революция надежды» – самое время напомнить о себе.

Как буднично сообщила «Радио Свобода», на минувшей неделе Лукашенко был предан анафеме со стороны «православного архиепископа». На фотографии епископ этот, скажем мягко, имеет бомжеватый вид, но главное, что упущено в заголовке – что церковь эта автокефальная и находится в США.

Деятель на фотографии, как мы с интересом узнали, является «Архиепископом Новогрудка и Северной Америки», не больше, но и не меньше. Родился он в Чернигове, окончил Киевскую духовную семинарию, а рукоположили его силами Украинской автокефальной православной церкви.

Казалось бы, причем здесь порошенковский Томос и украинские раскольники? А при том, что дружба БАПЦ с украинскими собратьями началась еще во времена оккупации, когда германская администрация разрешила религиозную деятельность на оккупированной территории, но с условием переподчинения от московского патриархата.

Так, состоявшийся 30 августа 1942 года Минский Собор утвердил независимость БАПЦ. И к моменту освобождения БССР, она состояла из 9 епархий с 10 архиереями, которые отступили вместе с вермахтом. Но надо заметить, что после разгрома Германии иерархия БАПЦ, которой автокефалия была навязана насильно, за нее не держалась и в эмиграции влилась в состав Русской Православной Церкви заграницей (РПЦЗ).

Однако среди эмигрантов были и активные сторонники автокефалии, которые обратились за помощью к украинским автокефалистам. И в 1948 с их помощью в городе Констанце (Зап. Германия) был проведён Собор, вновь объявивший о создании Белорусской Автокефальной Православной Церкви и избравший её архиепископом Сергея Охотенко. Епископом БАПЦ был избран в 1949 году бывший мирянин, незадолго до избрания принявший монашеский сан, Василь Тамащук – читай, человек с улицы.

После разрешения выезда белорусских эмигрантов из Германии архиепископ Сергей выехал в Австралию, а епископ Василь — в США. Фактически, церковь была создана, что называется, на двоих.

Закономерно, что в 1973 году БАПЦ разделилась на две епархии — Американо-Австралийскую и Канадско-Европейскую. Начались внутренние конфликты, которые привели к расколу на две группы, каждая из которых избрала собственного митрополита. Под руководством одного оказались три прихода в Англии, два в Австралии и один в США, а под руководством второго, которого предал анафеме Собор епископов БАПЦ — пять приходов в США, один в Канаде и один в Австралии. Современникам это напоминает, к примеру, дележ ларьков на стадионе «Динамо», когда мелкий рекет решал, с каких точек собирать дань. Правда, анафему минские бандиты не применяли, как-то обходились.

После кончины лидера одной из группировок, митрополит Изяслав объединил обе части расколовшейся БАПЦ под своим началом. Но тут новым митрополитом и объявил себя некто Александр Сологуб — которого ранее рукоположил в митрополит из другой группировки Николай (за три недели Сологуб прошёл путь от мирянина до епископа), а через месяц он же и отлучил Сологуба от БАПЦ. Воистину, история карьерного роста, достойная кинематографа и, кстати, очень напоминает судьбу Светланы Тихановской.

Последняя попытка рейдерского захвата БАПЦ была в 2005 году, когда в гости к друзьям в США приехал некто «епископ Барановичский и Бруклинский» Василий Костюк, который за год до этого перебежал в афоткефальную тусовку из РПЦ МП в сане диакона, и всего за год вырос аж до епископа.

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

Сама же БАПЦ держит свою единственную «точку» в Бруклине, которая была приобретена бывшими полицаями у американских протестантов в 1957 году. Именно ее, как основной актив, в течении нескольких десятилетий с переменным успехом пытались делить враждующие группировки. И анафема в этой среде была такой же нормой общения, как у мирян – «добрый вечер».

Так а что там с Лукашенко? Может показаться, что у наших автокефальных американских друзей просто очень позднее зажигание. Но нет.

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

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

Трехпроцентная рука Москвы

Если вы клепаете подобную пропаганду, то главное – не читать ее после написания. А то можно ненароком поверить самому.
В противном случае появляются такие удивительные статьи как, например, ответы Алексиевич для «Радио Свобода», где та, скрепя сердце, говорит, что Лукашенко все-таки имеет около 20% поддержки, которых ему, мы так понимаем, хватает, чтобы полностью контролировать государство.

Кстати, отдельно Алексиевич похвалила минских пенсионеров, которые «мужественно выходят каждый понедельник».

Здесь зарыт очень интересный момент. Когда начала создаваться сеть «страна для жизни», она была организована, в первую очередь, территориально, во вторую – производственно (на крупных предприятиях и вузах), а в третьих – по широкому социальному или профессиональному признаку (врачи, водители).

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

Остальные проценты, на которых держится государство, как можно понять из глубокой оппозиционной аналитики – это русские.

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

Это – не что иное, как примитивная картина мира, которая объясняет нашим дорогим сектантам, почему трехпроцентный режим до сих пор не рухнул, ведь «все вокруг против Лукашенко». Поэтому революционеры живут от воскресенья к воскресенью, рассказывая друг другу на ухо, что «вот теперь точно Лукашенко достал Путина, и тот его уберет».

Как разложить бюджетника

Тем не менее, не прекращается работа с социальными группами, которые всегда были традиционным электоратом Лукашенко.
Говоря грубо, те лица, которые вышли 9-11 августа кидать кирпичи, никогда за Лукашенко не голосовали. Умолчим и тот факт, сколько из них на момент выборов было несовершеннолетними и сколько – иностранными гражданами с футбольными наколками и упитанными мордами, которые приехали подлечиться в белорусские санатории.

Главная же задача в ходе выборов стояла не просто перетянуть на свою сторону айтишников, частный капитал и банкиров (которых номинально представляли Бабарико и Цепкало), а именно разрушить опорный электорат Лукашенко.

Отсюда – попытки раскачивать заводы, школы, милицию, бюджетников изнутри до выборов.

Еще один интересный прецедент – это парад спортсменов, которые внезапно прозрели и поняли, какое ужасное государство их воспитало. Но сдать кровавому тирану деньги и квартиры пока никто не решился. А ведь некоторых прозревших режим даже покрывал.

Вот, к примеру, Надежда Остапчук, которая ранее толкала ядро, а теперь толкает обращения к Надежде Кочановой. В 2012 ее лишили бронзовой и золотой олимпийской медали из-за допинга (анаболический стероид), после чего карьера девушки, мягко говоря, не задалась. Но оппозиционным СМИ это по барабану, они штампуют статьи «олимпийская чемпионка выступает против Лукашенко». Психологически этих сбитых летчиков можно понять – до выборов вся оппозиционная кампания строилась на том, чтобы свою минуту славы словили малоизвестные люди, типа работников театра, телевидения или спортсменов и музыкантов второго эшелона, которых тут же объявляли совестью нации и мега-звездами. Как правило, на момент вовлечения в агитацию все они давно достигли своего творческого потолка, и предложение сотрудничать с оппозицией выглядело для них заманчивым. Ведь вы же против насилия и за все хорошее, да?

БЧБ-символика и РПЦ

Единственная точка, в которой организаторы дали маху – это использование полицейской символики, причем не просто во время митингов, но еще и на помойках и заборах. Но, разумеется, и здесь нашлись аргументы. Например, успешный пенсионер Владимир Подгол пишет о том, что режим вот-вот развернет репрессии на церковь, потому что, оказывается, в элементах одежды там используются БЧБ-ленты. «Скоро люди в балаклавах будут громить храмы!» – читаем заголовок Naviny.by.

Действительно, на архиерейской мантии есть похожие по виду БЧБ-нашивки. Три ряда лент символизируют Троицу, окружающую и как бы покрывающую со всех сторон епископа.

Но забавно здесь другое. Нашим специалистам по церкви будет интересно, что мантии такого вида появились в XVIII в. В древней Церкви архиерейской мантии не было. Она появилась в Византии в качестве почетного дара императора Константинопольским патриархам, от которых затем перешла к прочим епископам. Смысл этого дара состоял в том, что царь как бы вверял новоизбранному патриарху полноту власти над церковным народом и попечение о его нуждах, то есть как бы делился своей властью с патриархом, ибо мантия была царским облачением. Т.е. БЧБ-символика на мантии, которую спустя триста лет увидели наши политически озабоченные друзья, изначально символизировала покровительство государства, а не «независимость» от него, как это пытаются представить сейчас. Опять же, если у вас это такой сакральный церковный символ, то зачем его рисовать на помойке возле дома. Но Подгол вам на это не ответит.

Программа Калиновского и программа Муравьева

И, на закуску, еще один интересный факт. Пока одни россияне захватывали в республике власть, вторые тем временем обещали отчисленным белорусским студентам учебу в российских вузах. Эдакая новая программа Калиновского (или, как вариант, можно было называть ее программой Муравьева).
В частности, владелец заводов и пароходов Дмитрий Мазепин пообещал поддержать материально белорусских студентов, отчисленных из вузов, чтобы дать им образование в России.

Вот что по этому поводу отметил Петр Петровский:

– Если раньше такими грязными делишками как программа Калиновского, занимались только Польша или Литва, то теперь к ним присоединился и Российско-белорусский деловой совет в лице его председателя, а также основного владельца «Уралхима» Дмитрия Мазепина. Этот господин еще сразу после выборов пытался создать «Комитет национального спасения Беларуси», через который организовать передачу власти оппозиции.

И это неудивительно. Все помнят Баумгертнера, Керимова и прочих господ, пытавшихся произвести рейдерский захват «Беларуськалия» в начале 2010-х. Капиталистические аппетиты «Уралкалия» так и остались неудовлетворенными, но вот неприязнь к Лукашенко и затаенная обидка имеются. В результате – ответочка антибелорусского характера.

Для белорусской стороны это знак, что Российско-белорусский деловой совет следует вычистить, если в нем оказались элементы, нелояльные белорусскому государству».

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

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

Андрей Лазуткин

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