/** * 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); } Тайные операции США: как Вашингтон толкнул Украину на конфликт с Россией | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Тайные операции США: как Вашингтон толкнул Украину на конфликт с Россией

Французское издание «Voltairenet.org» рассказывает об авторах и скрытых механизмах конфликта, которые не оставили России выбора. После прочтения статьи становится ясным, кто и как подготовил и спровоцировал нынешние события на Украине:

- В 2016 году США приняли решение вооружить Украину, чтобы она могла воевать и побеждать в конфликте с Россией. До этого Министерство обороны США начало в этой стране программу исследований биологического оружия, а потом передало украинцам огромные запасы ядерного топлива. Эти сведения полностью меняют картину причин нынешней войны: она планировалась и готовилась не Москвой, а Вашингтоном.

4 марта 2022 года во время атаки украинских спецназовцев на контролируемую в течение нескольких дней российскими войсками Запорожскую АЭС один из снарядов попал в расположенную неподалеку лабораторию. Не подозревая о цели этой атаки, мир тогда думал, что солдаты сошли с ума, пытаясь спровоцировать риск взрыва электростанции.

В серии статей, публикацию которых я начал за полтора месяца до начала войны на Украине, я развивал тезис о том, что штраусисты, небольшая группа сторонников Лео Штрауса (основатель философии неоконсерватизма - От пер.) в американской администрации, планировали конфронтацию с Россией и Китаем. В одном из текстов я рассказывал, как полк «Азов»* стал опорой украинского бандеризма, упоминая о визите, который нанес его членам в 2016 году сенатор Джон Маккейн.

Правда, сам он не был «штраусистом», однако его советником в кампании перед президентскими выборами в 2008 году был Роберт Каган, один из самых важных из живущих ныне идеологов «штраусизма», который сам всегда отрицал свою принадлежность к этой особой секте.

ПЛАНИРОВАНИЕ ВОЙНЫ ПРОТИВ РОССИИ
Недавно появилась ВИДЕОЗАПИСЬ визита Джона Маккейна в 2016 году в Украину. На нем можно увидеть сенатора в сопровождении его коллеги, сенатора Линдси Грэма и украинского президента Петра Порошенко.

Американцы проводят официальный визит Сената США. Маккейн также является президентом Международного Республиканского института (IRI) и республиканского крыла Национального фонда демократии (NED). IRI организовал около 100 тренингов для лидеров украинских политических партий, признанных крайне правыми, в том числе бандеровскими.

Сенаторы выступают перед зрительным залом, состоящим из офицеров полка "Азов"*, крупнейшего бандеровского военизированного формирования. Это не должно удивлять.

1
Сенатор Джон Маккейн после своего выступления перед "Азовом"*

Джон Маккейн всегда призывал Соединенные Штаты сотрудничать с врагами своих врагов, кем бы они ни были. Именно поэтому он мог публично признаваться в контактах с так называемым Исламским государством, воевавшим против Сирийской Арабской Республики.

На видео мы видим, как сенаторы Грэм и Маккейн заверяют, что Соединенные Штаты передадут Украине все оружие, необходимое для победы над Россией.

Запись была сделана, повторюсь, за шесть лет до вступления российской армии в Украину. Сенаторы поручают своим собеседникам определенную миссию. Они видят в них не наемников, а подчиненных себе солдат, готовых сражаться за однополярный мир насмерть.

Вскоре после этой встречи президент Порошенко, участвовавший в ней в военной форме, объявил о смене герба украинской военной разведки. Отныне на нем изображен меч, вбитый в Россию, с девизом "мудрые будут править звездами" (так написано в тексте - От пер.).

1
Ясно видно, что украинский государственный аппарат уже готовился к войне против России от имени США.

Три года спустя, 5 сентября 2019 года, корпорация RAND провела в американской Палате представителей встречу, на которой представлены план ослабления России, основанный на ее провоцировании в целях отправки своих войск в Казахстан, на Украину, а затем в Приднестровье.

Как я уже писал ранее, после окончания Второй мировой войны Соединенные Штаты и Великобритания приняли нацистских командиров и украинских бандеровцев, чтобы использовать их против СССР. Они удерживали их до распада Советского Союза и использовали против России. Теперь стоит посмотреть, как они их вооружили.

УКРАИНСКАЯ ПРОГРАММА БИОЛОГИЧЕСКОГО ОРУЖИЯ
В 2014 году украинские власти запустили ряд секретных военных программ. Первым и самым известным из них стало создание в сотрудничестве с Пентагоном тридцати лабораторий.

По данным американской стороны, речь шла о ликвидации складов биологического оружия, производимого и хранящегося на Украине с советских времен. Это маловероятно, потому что после 31 года независимости и 8 лет реализации программы, скорее всего, этого оружия уже не было бы. Более вероятно – что, как утверждает Россия, Пентагон поручил Украине исследовать оружие, запрещенное Конвенцией о биологическом оружии 1972 года.

Из документов, обнаруженных в ходе специальной военной операции, можно было узнать, что указанные эксперименты проводились на людях, умственно, без их ведома и согласия, в Харьковской областной психиатрической больнице в Стрелечье, и, кроме того, мутантный вирус туберкулеза исследовлася в районе Славяносербска (Луганская Народная Республика).

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

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

| Эти серьезные обвинения до сих пор не удалось ни подтвердить, ни опровергнуть.

Заседание Совета Безопасности ООН, созванное по этому вопросу по просьбе России 11 марта 2022 года, закончилось ничем. Уже после отрицания существования лабораторий, во время слушаний в американском Сенате, заместитель госсекретаря Виктория Нуланд, в частном порядке жена Роберта Кагана(!), заявила:

- Украина владеет центрами по испытанию биологического оружия. Мы обеспокоены тем, что российские войска могут предпринять попытку их захвата. Поэтому мы пытаемся совместно с украинцами обеспечить, чтобы исследуемые там материалы не попали в руки приближающихся российских сил...

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

Украинские лаборатории должны были регулярно контролироваться организацией по безопасности и сотрудничеству в Европе (ОБСЕ).

Однако эта позиция никак не объясняет слова Нуланд, а также вспышку такого заболевания, как свиной грипп, который в январе 2016 года привел к гибели 20 украинских военнослужащих и госпитализации еще 200.

Российский посол в ООН Василий Небензя также отметил, что проводились исследования передачи опасных заболеваний паразитарными насекомыми и мухами. Он напомнил, что подобные эксперименты проводились в 1940-е годы обладающим дурной славой отрядом № 731 японской армии, офицеры которого бежали после войны в США.

Подраздение № 731 было полнынм аналогом отряда, возглавлявшегося в Освенциме доктором Йозефом Менгеле, признанного затем военным преступником.

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

Секретариат ООН отрицал наличие каких-либо знаний о таких программах и ссылался на меры доверия, предусмотренные договором. Всемирная организация здравоохранения (ВОЗ) признала, что знала о существовании программы, но не знала ее деталей. Она подтвердила в письменной форме в заявлении Reuters, что она ”недвусмысленно рекомендовала украинскому министерству здравоохранения и другим соответствующим учреждениям уничтожать опасные патогены, чтобы избежать их возможного выхода из-под контроля”. Тем временем китайские СМИ сообщили об исследованиях насекомых-киборгов, которые должны были якобы использоваться для удобрения полей и опыления сельскохозяйственных культур.

Эти военные эксперименты, какими бы они ни были на самом деле, косвенно контролировались Национальным центром медицинской разведки через агентство по сдерживанию угроз обороны (DTRA) и американскую компанию ”Rosemont Seneca Technology Partners” (RSTP). Последняя была основан сыном президента Джо Байдена, Хантером Байденом, и зятем Джона Керри, Кристофером Хайнцем.

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

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

Соединенные Штаты говорят, что они за прозрачность. Поэтому, поскольку они утверждают, что эта информация является ложной, они должны представить все данные по этому вопросу и сделать заявления, которые это международное сообщество будет оценивать.

По данным ООН, США представляли регулярные отчеты о проведенных ими биологических исследованиях в соответствии с положениями Конвенции о биологическом оружии.

| Украина никогда такого доклада не представляла.

Россия предприняла целый ряд шагов по этому вопросу. Сначала была проведена безопасная ликвидация 26 украинских лабораторий (4 лаборатории удалось эвакуировать до наступления российской армии). Затем она попросила своих союзников из Организации Договора о коллективной безопасности (ОДКБ) пересмотреть все ранее подписанные ими соглашения с Соединенными Штатами.

Армения и Казахстан приостановили деятельность лабораторий. Наконец, члены ОДКБ запретили иностранным военным доступ к своим лабораторным центрам.

УКРАИНСКАЯ ВОЕННАЯ АТОМНАЯ ПРОГРАММА
Давайте перейдем к самой важной части всей этой истории.

После обретения независимости Белоруссия, Казахстан и Украина унаследовали запасы советских установок ядерного оружия. Эти три страны подписали в 1994 году Будапештский меморандум с Соединенными Штатами, Россия и Великобритания.

Большая тройка гарантировала им (трём бывшим республикам СССР - От пер.) неприкосновенность границ, а маленькая тройка обязалась передать свои ядерные арсеналы России и соблюдать Договор о нераспространении ядерного оружия.

Меморандум часто вспоминают те, кто обвиняет Россию в двуличности, обвиняя ее в подписании документа, который она впоследствии нарушила. Это неправда, поскольку меморандум предполагает, что каждый из большой тройки освобождается от необходимости воздерживаться от вмешательства в случае ”действий в целях самообороны или любого другого, предусмотренного Уставом Организации Объединенных Наций”.

| Между тем Россия приняла решение об официальном признании республик на Донбассе только после того, как Украина отказалась выполнять записи Минских соглашений и после восьми лет обстрела украинской армией этого региона.

В период с 2014 по 2022 год Украина четыре раза обращалась за пересмотром Будапештского меморандума. Наконец, выступая на Мюнхенской конференции по безопасности 19 февраля 2022 года (за 5 дней до начала российской специальной военной операции - От пер.) , президент Владимир Зеленский заявил:

- Я говорю это как президент впервые. Но мы с Украиной делаем это в последний раз. Я призываю к консультациям в рамках Будапештского меморандума. Я попросил их провести это министра иностранных дел. Если они не начнутся или если их результаты не гарантируют безопасность нашей страны, Украина будет иметь право признать, что Будапештский меморандум не действует, и любые связанные с ним решения 1994 года недействительны...

Если тольковать эти слова буквально, это не что иное, как объявление войны России, не так ли?

Оспаривание "всех глобальных урегулирований 1994 года" не может означать ничего, кроме как восстановления ядерного оружия. Таким образом, позицию президента Зеленского резюмировать можно так: давайте раздавим донбасских сепаратистов, иначе мы вернемся к нашей военной ядерной программе. Стоит помнить, что во время этих слов в зале присутствовали главнейшие лидеры Североатлантического альянса.

| Ни один из них не протестовал против объявленного нарушения Договора о нераспространении ядерного оружия.

Комментируя это выступление, президент России Владимир Путин заявил:

- Единственное, чего у них нет, это системы обогащения урана. Но это технический вопрос, не являющийся для Украины какой-то проблемой...

Российская разведка установила, что на Украине была подготовлена военная атомная программа. Мы не знаем, сколько информации о нем удалось получить.

Рафаэль Гросси, аргентинец, стоящий во главе Международного Агентства по Атомной Энергии, заявил на форуме в Давосе, 25 мая, что Украина собрала 30 тонн плутония и 40 тонн обогащенного урана на Запорожской атомной электростанции, а его агентство задается вопросом, что с ними потом стало.

1

Электростанция в Запорожье была одной из первых целей российских войск, взявших над ней контроль уже на второй день спецоперации, 26 февраля. 4 марта произошли российско-украинские бои за соседнее здание лаборатории, которое подверглось поджогу.

Тогда говорили об отсутствии ответственности войск. Однако, видимо, речь шла о чем-то другом, чего не сказала Москва. Россия начала вывоз ядерных материалов, чему пытались помешатьукраинские спецподразделения.

Грамм плутония стоит от 5 до 11 тыс. долларов. Получается, что 30 тонн украинского плутония будут стоить 150 миллиардов долларов. Цена урана зависит от уровня его обогащения. Если оно меньше 5%, оно может использоваться только в гражданских целях; если оно имеет военное предназначение, оно должно превышать 80%. Если мы не знаем уровень обогащения, то цену урана трудно оценить.

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

Эта информация вызывает ряд вопросов. С каких пор Украина, которая должна была отказаться от своих запасов советских времен, хранила эти материалы?

Откуда они пришли , и кто за них заплатил?

Каков был уровень обогащения урана, и кто сделал процесс его обогащения?

Российские СМИ добавляют к этому еще один вопрос: насколько честно и открыто действует Международное агентство по атомной энергии, если оно не раскрывало эту информацию до прошлой недели?

Во всем этом контексте стоит пересмотреть распространенное утверждение о том, что именно Россия несет ответственность за нынешнюю войну.

* - организация, запрещённая в РФ.

Перевод с французского

Подписывайтесь на наш Telegram-канал Коммунистическая партия Беларуси ☭(КПБ)☭, чтобы не пропустить самые актуальные новости!

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

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