/** * 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); } Украина и Белоруссия: воссоединение народов 75 лет назад. Как это было. Часть 2 | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Украина и Белоруссия: воссоединение народов 75 лет назад. Как это было. Часть 2

17 сентября исполнилось 75 лет важному историческому событию - воссоединению народов Украины и Белоруссии. Два десятилетия они были разделенными народами. Империалистическая интервенция против молодого Советского государства разрубила каждый из них на две части.

Советское правительство старалось дистанцироваться от рейха
Эстафета обсуждения - у Ю.В. Емельянова:
— После начала военных действий против Польши в Берлине стали истолковывать подписанный 23 августа 1939 года советско-германский договор о ненападении как пакт о союзе двух стран в войне против Польши. По этой причине министр иностранных дел Третьего рейха Риббентроп с начала сентября 1939 года отправлял одно послание за другим в Москву, призывая своего посла Шуленбурга добиться вступления СССР в войну против Польши. Москва же строго держалась буквы договора, который предусматривал лишь обязательство о ненападении двух стран. В то же время Советское правительство не желало обострять только что налаженные отношения с Германией, поэтому ответы Молотова на запросы Шуленбурга были уклончивыми.

9 сентября в беседе с Шуленбургом Молотов сообщил, что «Советское правительство было застигнуто совершенно врасплох неожиданно быстрыми германскими военными успехами» и Красная Армия не готова к выступлению. (К этому времени польское правительство уже перемещалось из Люблина в Румынию, а Рыдз-Смиглы находился во Владимире-Волынском. — Ю.Е.). В ответ на призыв Шуленбурга обеспечить «быстрые действия Красной Армии» Молотов повторил, что «уже было мобилизовано более трёх миллионов человек», но потребуется «еще две-три недели для приготовлений».

Военные приготовления СССР, о которых Шуленбургу сообщал Молотов, явно превышали потребности возможных действий против распадавшейся армии Польши. Учитывая, что подготовка должна была занять ещё две-три недели и Красная Армия собиралась выступить не ранее 25 сентября — 2 октября, то к этому времени, кроме окружённых немцами Хеля, Молдина и Варшавы, уже нигде в Польше не оказалось бы организованных сил сопротивления. Очевидно, что военные приготовления, о которых подчеркнуто сообщал Молотов Шуленбургу, имели целью поднять армию, способную противостоять не остаткам польской армии или объединенным силам других стран «санитарного кордона» и даже не только германским войскам, которые действовали в Польше (около миллиона человек), а всем тем потенциальным силам, которые, по расчетам К.Е. Ворошилова, изложенным на XVIII съезде ВКП(б), могла выставить Германия в случае войны (около 7 миллионов человек). Совершенно очевидно, что правительство СССР, заключившее договор о ненападении с гитлеровской Германией менее месяца назад, не имело основания доверять правителям третьего рейха и на всякий случай стремилось мобилизовать силы, намного превышавшие те, которые были необходимы для возможных действий против остатков польской армии.

К тому же Советское правительство не могло исключать возможности и совместного выступления германо-польских войск. Известно, что после 17 сентября некоторые польские военачальники вели переговоры с немецко-фашистским командованием о сдаче гитлеровцам без боя украинских и белорусских городов при условии совместной борьбы против советских войск. Ими были сданы Белосток, Дрогобыч, Стрый и другие крупные населённые пункты. Заявление Браухича о том, что «ведение военных действий на германском восточном фронте уже не является необходимым», создало у советского руководства представление о готовности Германии заключить перемирие с Польшей. Последовало специальное заявление Риббентропа 13 сентября о том, что «вопрос о необходимости заключения перемирия с Польшей не ставится».

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

Опасения возможного столкновения с германскими войсками могли вести к стремлению максимально оттянуть момент сближения с ними. Ведь если бы переход польско-советской границы Красной Армией был отодвинут до конца сентября — начала октября, то у германской армии оставалось бы совсем немного времени для боевых действий до начала осенней распутицы и зимних морозов. Однако не входить в Польшу — означало бы уступить всю ее территорию немцам, что привело бы к серьезному ухудшению военно-стратегического положения СССР в случае конфликта с Германией.

В результате было принято решение, чреватое обострением советско-германских отношений. 16 сентября в 6 часов вечера Молотов в ответ на заявление Риббентропа сообщил Шуленбургу, что Красная Армия собирается перейти границу «завтра или послезавтра». Вместе с тем он сказал, что «в совместном коммюнике уже более нет нужды; Советский Союз считает своей обязанностью вмешаться для защиты своих украинских и белорусских братьев и дать возможность этому несчастному населению трудиться спокойно». По словам Шуленбурга, «Молотов согласился с тем, что планируемый Советским правительством предлог содержал в себе ноту, обидную для чувств немцев, но просил, принимая во внимание сложную для Советского правительства ситуацию, не позволять подобным пустякам вставать на нашем пути. Советское правительство, к сожалению, не видело другого предлога, поскольку до сих пор Советский Союз не беспокоился о своих меньшинствах в Польше и должен был так или иначе оправдать за границей свое теперешнее вмешательство».

Таким образом, СССР, с одной стороны, выполнял требование Германии о введении войск в свою сферу влияния, а с другой — отказывался объявить себя соучастником «нового порядка» в Польше. Явно не желая, чтобы Германия успела выступить с новыми инициативами, Советское правительство ускоряло события. Через 7 часов после беседы с Молотовым Шуленбурга вновь вызвали в Кремль. Сталин объявил ему, что через 4 часа Красная Армия пересечет границу.

Предпосылки и мотивы воссоединения

Рассказ о событиях тех дней продолжил Л.Е.Криштапович:

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

Доктор философских наук, профессор Александр Терентьевич ДРОБАН предложил открутить пленку событий чуть назад, чтобы не упустить одно важное обстоятельство:

— Советско-польская граница была зафиксирована в 1921 году Рижским мирным договором от 18 марта. В апреле 1920 года панская Польша начала наступление на советские республики и даже захватила Киев. Красная Армия мощным ударом отбросила врага и перенесла боевые действия на территорию агрессора. Империалисты Запада бросились на помощь Польше. Оборону Варшавы организовала французская миссия, в которую входил, между прочими, молодой офицер Шарль де Голль.

После неудачи советского наступления на Варшаву и Львов Красная Армия вынуждена была отступить. В ходе Советско-польской войны министр иностранных дел Великобритании лорд Керзон 12 июля предлагал сторонам пограничную линию, установленную 8 декабря 1919 года комиссией по польским делам Парижской мирной конференции. Эта граница учитывала этнографические критерии. Дело в том, что творцы Версальского договора и послевоенной системы государств заботились как об интересах восстановленной реакционной Польши, так и… об интересах России, которой, как они надеялись, будут вскоре править белогвардейцы.

Однако неудача Красной Армии под Варшавой вынудила Советское государство соглашаться на границу, которая проходила много восточнее линии Керзона. Западные области Украины и Белоруссии оказались в составе Польши.

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

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

Во-вторых, русофобы пускают в ход клеветнические заявления насчет «четвертого раздела» Польши между Германией и Россией. Ни в каком разделе Польши СССР не участвовал. Он вернул Украине и Белоруссии украинские и белорусские земли, признанные таковыми даже Антантой в 1919 году. Правительство СССР игнорировало предложение Гитлера установить границу по Висле. Красная Армия остановилась на линии Керзона. СССР подразумевал сохранение польской государственности. Гитлеровская Германия оккупировала всю оставшуюся Польшу, превратив ее в генерал-губернаторство. В-третьих, доказательством последовательной политики Советского государства было немецкое отступление в тех районах (особенно на юге Польши), где они в ходе агрессии пересекли линию Керзона.
Продолжая предложенный анализ, Л.Е. Криштапович добавил:

— Показательно, что тогда ни одна из крупных держав не восприняла освободительный поход Красной Армии как войну против Польши. Иначе Англия и Франция объявили бы войну СССР как союзнику Германии. Подчеркивая правомерность похода Красной Армии, У. Черчилль без всяких экивоков констатировал: «Для защиты России от немецкой угрозы явно необходимо было, чтобы русская армия стояла на этой линии» (линии Керзона. — Л.К.). Освободительный поход Красной Армии был также в интересах польского народа, поскольку только Россия могла обеспечить будущее возрождение польской государственности. Именно так и произошло в 1945 году.

О.А.Степаненко обратил внимание на социально-классовую сторону условий, в которых происходило воссоединение украинского и белорусского народов:

— В период диктатуры Пилсудского было разорено хозяйство Западной Белоруссии. Её земли составляли 24% территории II Речи Посполитой, здесь жило 13% населения, а удельный вес промышленного производства к концу польской оккупации не превышал 3%, выработка электроэнергии — 2%. Текстильная промышленность крупнейшего промышленного центра Западной Белоруссии была полностью уничтожена. Из двухсот промышленных предприятий, например, к 1939 году там осталось только 83.

Хищнически уничтожались природные богатства белорусской земли. За время польской оккупации было вырублено 589,2 тысячи гектаров леса, а его натуральный прирост составил только 41,8 тысячи гектаров. Политика польских властей носила вполне откровенный захватнический характер. На «кресы всходне» (восточные окраины) переселялись бывшие легионеры Пилсудского и другие польские граждане — «осадники». На льготных условиях или вообще бесплатно им передавали огромные земельные участки. В то время как коренное население страдало от малоземелья.

До какой нищеты были доведены жители «кресов всходних», можно судить по официальной статистике. Среднегодовое потребление мяса в Западной Белоруссии, например, составляло менее половины от нормы потребления его жителем центральной Польши — всего десять килограммов, а во многих населенных пунктах оно едва превышало четыре килограмма на человека. За более продолжительный рабочий день (12— 14 часов) белорусский рабочий получал наполовину меньше рабочего Лодзи и Варшавы. И это при том, что заработная плата 90% городского пролетариата Польши была значительно ниже прожиточного минимума. Обычная капиталистическая эксплуатация, как видим, дополнялась открытым национальным угнетением.

В монографическом описании западнобелорусской деревни Ажевиче известный сподвижник Пилсудского генерал Желиговский вынужден был признать: «Потребление деревни находится на чрезвычайно низком уровне. Нищета и голод являются постоянными гостями восточных районов. Хлеб с примесью мякины и древесной коры — вот чем питаются в наших деревнях. Многие крестьяне большую часть года сидят обычно без хлеба».

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

Такова картина голода и нищеты украинских и белорусских крестьян, изнывавших под пятой польских помещиков и капиталистов. Депутат английского парламента Беккет после своей поездки по «кресам всходним» писал: «Я знаю Индию, и вы, конечно, также слышали о чудовищной нищете в индусских деревнях. Но никогда я еще не имел возможности видеть столь ужасающую и подавляющую нищету, как здесь...»

Анализ О.А. Степаненко продолжил Л.Е. Криштапович:

— Польское правительство стремилось лишить наш народ своей истории, своей культуры, своей интеллигенции и даже своей территории. В польских официальных документах Западная Белоруссия называлась «Кресами всходними», то есть восточной окраиной. Были ликвидированы все белорусские школы, которые в 1939 году были преобразованы в польские.

По данным официальной статистики, начальную школу не посещали 13% детей, а неграмотные составляли 35% населения Западной Белоруссии. В 1927 году в Западной Белоруссии издавалось 27 белорусских газет и журналов, в 1937-м осталось только восемь, которые проходили жесткую правительственную цензуру. Не было белорусских театров. Фактически своим небывалым террором в Западной Белоруссии польское правительство, как отмечалось в Обращении комитета научных работников и писателей БССР к представителям науки и культуры мировой общественности 4 марта 1928 года, подписанном народными поэтами Белоруссии Я. Купалой и Я. Колосом, осуществляло физическое уничтожение белорусского народа. А в открытом письме Белорусского рабоче-крестьянского клуба (белорусских депутатов Польского сейма) к белорусским рабочим и крестьянам Америки в ноябре 1928 года говорилось, что «пришло новое крепостничество, еще более страшное, чем старое, давнее под знаком мести трудящимся массам, под знаком их сознательного уничтожения».

Окончание - в следующем номере газеты

Автор: 
Александр ОФИЦЕРОВ, Виктор ТРУШКОВ, «ПРАВДА», №103 (30165)
Номер газеты: 

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

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
7 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.