text:
// -*- mode: java; c-basic-offset: 2; -*-
// Copyright 2015 Massachusetts Institute of Technology. All rights reserved.

/**
 * @fileoverview Russian strings.
 * @author Russian Pootle Contributors
 */
'use strict';

goog.provide('AI.Blockly.Msg.ru');

goog.require('Blockly.Msg.ru');

/**
 * Due to the frequency of long strings, the 80-column wrap rule need not apply
 * to message files.
 */

Blockly.Msg.ru.switch_language_to_russian = {
  // Switch language to Russian.
  category: '',
  helpUrl: '',
  init: function() {

    Blockly.ERROR_BLOCK_CANNOT_BE_IN_DEFINTION = 'Этот блок не может использоваться в определении';
    Blockly.ERROR_DUPLICATE_EVENT_HANDLER = 'Это дубликат обработчика события для этого элемента.';
    Blockly.ERROR_SELECT_VALID_ITEM_FROM_DROPDOWN = 'Выберите подходящий пункт из выпадающего меню.';
    Blockly.MSG_CHANGE_VALUE_TITLE = 'Изменить значение:';
    Blockly.MSG_NEW_VARIABLE = 'Новая переменная...';
    Blockly.MSG_NEW_VARIABLE_TITLE = 'Новое имя переменной:';
    Blockly.MSG_PROCEDURE_CATEGORY = 'Процедуры';
    Blockly.MSG_RENAME_VARIABLE = 'Переименовать переменную...';
    Blockly.MSG_RENAME_VARIABLE_TITLE = 'Переименовать все переменные "%1" в:';
    Blockly.MSG_VARIABLE_CATEGORY = 'Переменные';
    Blockly.Msg.ADD_COMMENT = 'Добавить комментарий';
    Blockly.Msg.ARRANGE_H = 'Упорядочить блоки по горизонтали';
    Blockly.Msg.ARRANGE_S = 'Упорядочить блоки по диагонали';
    Blockly.Msg.ARRANGE_V = 'Упорядочить блоки по вертикали';
    Blockly.Msg.CAN_NOT_DO_IT = 'Невозможно выполнить';
    Blockly.Msg.CLEAR_DO_IT_ERROR = 'Очистить ошибку';
    Blockly.Msg.COLLAPSE_ALL = 'Свернуть блоки';
    Blockly.Msg.COLLAPSE_BLOCK = 'Свернуть блок';
    Blockly.Msg.CONNECT_TO_DO_IT = 'Чтобы использовать команду Выполнить, вы должны быть подключены к Companion или к эмулятору.';
    Blockly.Msg.DELETE_BLOCK = 'Удалить блок';
    Blockly.Msg.DELETE_X_BLOCKS = 'Удалить %1 блоков';
    Blockly.Msg.DISABLE_BLOCK = 'Отключить блок';
    Blockly.Msg.DO_IT = 'Выполнить';
    Blockly.Msg.DUPLICATE_BLOCK = 'Создать копию';
    Blockly.Msg.ENABLE_BLOCK = 'Включить блок';
    Blockly.Msg.EXPAND_ALL = 'Развернуть блоки';
    Blockly.Msg.EXPAND_BLOCK = 'Развернуть блок';
    Blockly.Msg.EXTERNAL_INPUTS = 'Дополнительные входы';
    Blockly.Msg.GENERATE_YAIL = 'Генерировать Yail';
    Blockly.Msg.HELP = 'Справка';
    Blockly.Msg.HIDE_WARNINGS = 'Скрыть Предупреждения';
    Blockly.Msg.HORIZONTAL_PARAMETERS = 'Расположить параметры горизонтально';
    Blockly.Msg.INLINE_INPUTS = 'Внутренний параметр';
    Blockly.Msg.LANG_CATEGORY_CONTROLS = 'Управление';
    Blockly.Msg.LANG_CATEGORY_LISTS = 'Списки';
    Blockly.Msg.LANG_CATEGORY_LOGIC = 'Логика';
    Blockly.Msg.LANG_CATEGORY_MATH = 'Математика';
    Blockly.Msg.LANG_CATEGORY_TEXT = 'Текст';
    Blockly.Msg.LANG_COLOUR_BLACK = 'чёрный';
    Blockly.Msg.LANG_COLOUR_BLUE = 'синий';
    Blockly.Msg.LANG_COLOUR_CYAN = 'голубой';
    Blockly.Msg.LANG_COLOUR_DARK_GRAY = 'тёмно-серый';
    Blockly.Msg.LANG_COLOUR_GRAY = 'серый';
    Blockly.Msg.LANG_COLOUR_GREEN = 'зеленый';
    Blockly.Msg.LANG_COLOUR_LIGHT_GRAY = 'светло-серый';
    Blockly.Msg.LANG_COLOUR_MAGENTA = 'пурпурный';
    Blockly.Msg.LANG_COLOUR_MAKE_COLOUR = 'создать цвет';
    Blockly.Msg.LANG_COLOUR_MAKE_COLOUR_TOOLTIP = '"Цвет с заданными красной, зелёной, голубой и (необязательной) альфа составляющими"';
    Blockly.Msg.LANG_COLOUR_ORANGE = 'оранжевый';
    Blockly.Msg.LANG_COLOUR_PICKER_TOOLTIP = 'чёрный';
    Blockly.Msg.LANG_COLOUR_PINK = 'розовый';
    Blockly.Msg.LANG_COLOUR_RED = 'красный';
    Blockly.Msg.LANG_COLOUR_SPLIT_COLOUR = 'расщепить цвет';
    Blockly.Msg.LANG_COLOUR_SPLIT_COLOUR_TOOLTIP = '"Список четырёх элементов, каждый в интервале от 0 до 255, представляющих красную, зелёную, синюю и альфа составляющие."';
    Blockly.Msg.LANG_COLOUR_WHITE = 'белый';
    Blockly.Msg.LANG_COLOUR_YELLOW = 'жёлтый';

    Blockly.Msg.LANG_COMPONENT_BLOCK_GENERIC_GETTER_TITLE_OF_COMPONENT = 'компонента';
    Blockly.Msg.LANG_COMPONENT_BLOCK_GENERIC_METHOD_TITLE_CALL = 'вызвать ';
    Blockly.Msg.LANG_COMPONENT_BLOCK_GENERIC_METHOD_TITLE_FOR_COMPONENT = 'для компонента';
    Blockly.Msg.LANG_COMPONENT_BLOCK_GENERIC_SETTER_TITLE_OF_COMPONENT = 'компонента';
    Blockly.Msg.LANG_COMPONENT_BLOCK_GENERIC_SETTER_TITLE_SET = 'присвоить ';
    Blockly.Msg.LANG_COMPONENT_BLOCK_GENERIC_SETTER_TITLE_TO = 'в';
    Blockly.Msg.LANG_COMPONENT_BLOCK_METHOD_TITLE_CALL = 'вызов';
    Blockly.Msg.LANG_COMPONENT_BLOCK_SETTER_TITLE_SET = 'присвоить ';
    Blockly.Msg.LANG_COMPONENT_BLOCK_SETTER_TITLE_TO = 'в';
    Blockly.Msg.LANG_COMPONENT_BLOCK_TITLE_DO = 'делать';
    Blockly.Msg.LANG_COMPONENT_BLOCK_TITLE_WHEN = 'когда';
    Blockly.Msg.LANG_CONTROLS_CHOOSE_COLLAPSED_TEXT = 'если';
    Blockly.Msg.LANG_CONTROLS_CHOOSE_INPUT_ELSE_RETURN = 'иначе';
    Blockly.Msg.LANG_CONTROLS_CHOOSE_INPUT_TEST = '';
    Blockly.Msg.LANG_CONTROLS_CHOOSE_INPUT_THEN_RETURN = 'то';
    Blockly.Msg.LANG_CONTROLS_CHOOSE_TITLE = 'если';
    Blockly.Msg.LANG_CONTROLS_CHOOSE_TOOLTIP = 'Если проверяемое условие истинно';
    Blockly.Msg.LANG_CONTROLS_CLOSE_APPLICATION_COLLAPSED_TEXT = 'закрыть приложение';
    Blockly.Msg.LANG_CONTROLS_CLOSE_APPLICATION_TITLE = 'закрыть приложение';
    Blockly.Msg.LANG_CONTROLS_CLOSE_APPLICATION_TOOLTIP = 'Закрывает все экраны в приложение и завершает приложение.';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_COLLAPSED_TEXT = 'закрыть экран';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_TITLE = 'закрыть экран';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_TOOLTIP = 'Закрывает текущий экран';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_COLLAPSED_TEXT = 'закрыть текстовый экран';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_INPUT_TEXT = 'текст';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_TITLE = 'закрыть текстовый экран';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_TOOLTIP = 'Закрывает текущий экран и возвращает текст приложению, которое';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_COLLAPSED_TEXT = 'закрыть окно и возвратить значение';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_INPUT_RESULT = 'результат';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_TITLE = 'закрыть экран и возвратить значение';
    Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_TOOLTIP = 'Закрывает текущий экран и возвращает результат';
    Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_COLLAPSED_TEXT = 'выполнить/результат';
    Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_INPUT_DO = 'выполнить';
    Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_INPUT_RETURN = 'результат';
    Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_TITLE = 'выполнить результат';
    Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_TOOLTIP = 'Выполняет блоки в \'выполнить\' и возвращает значение. Полезно, если нужно выполнить процедуру до присваивания значения переменной.';
    Blockly.Msg.LANG_CONTROLS_EVAL_BUT_COLLAPSED_TEXT = 'выполнить, но проигнорировать';
    Blockly.Msg.LANG_CONTROLS_EVAL_BUT_IGNORE_TITLE = 'выполнить, но игнорировать результат';
    Blockly.Msg.LANG_CONTROLS_EVAL_BUT_IGNORE_TOOLTIP = 'Выполняет включённый блок кода и игнорирует возвращаемое значение (если оно есть). Полезно, если нужно вызвать процедуру, возвращающую значение, когда значение не нужно.';
    Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP = 'из цикла';
    Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK = 'выйти из цикла';
    Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE = 'перейти к следующему шагу цикла';
    Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK = 'Выходит из текущего цикла.';
    Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE = 'Пропускает остаток текущего шага цикла и';
    Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING = 'Предупреждение:';
    Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_COLLAPSED_PREFIX = 'для';
    Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_COLLAPSED_SUFFIX = ' в списке';
    Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_COLLAPSED_TEXT = 'для элемента в списке';
    Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_DO = 'выполнить';
    Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_INLIST = 'в списке';
    Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_ITEM = 'для каждого';
    Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_VAR = 'элемент';
    Blockly.Msg.LANG_CONTROLS_FOREACH_TOOLTIP = 'Выполняет блоки в секции \'выполнить\'  для каждого элемента в';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_COLLAPSED_PREFIX = 'для';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_COLLAPSED_SUFFIX = ' в интервале';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_COLLAPSED_TEXT = 'для числа в интервале';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_DO = 'выполнить';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_END = 'до';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_ITEM = 'для каждого';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_START = 'с';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_STEP = 'с шагом';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_VAR = 'число';
    Blockly.Msg.LANG_CONTROLS_FORRANGE_TOOLTIP = 'Выполняет блоки в секции \'выполнить\' для каждого численного';
    Blockly.Msg.LANG_CONTROLS_FOR_INPUT_DO = 'выполнить';
    Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM = 'с';
    Blockly.Msg.LANG_CONTROLS_FOR_INPUT_TO = 'до';
    Blockly.Msg.LANG_CONTROLS_FOR_INPUT_VAR = 'x';
    Blockly.Msg.LANG_CONTROLS_FOR_INPUT_WITH = 'с шагом';
    Blockly.Msg.LANG_CONTROLS_FOR_TOOLTIP = 'Присваивает значения от стартового числа до конечного числа.';
    Blockly.Msg.LANG_CONTROLS_GET_PLAIN_START_TEXT_COLLAPSED_TEXT = 'получить начальный текст';
    Blockly.Msg.LANG_CONTROLS_GET_PLAIN_START_TEXT_TITLE = 'получить начальный текст';
    Blockly.Msg.LANG_CONTROLS_GET_PLAIN_START_TEXT_TOOLTIP = 'Возвращает текст, который был передан экрану при';
    Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_COLLAPSED_TEXT = 'получить начальное значение';
    Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_INPUT_SCREENNAME = 'названиеЭкрана';
    Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_INPUT_STARTVALUE = 'начальноеЗначение';
    Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_TITLE = 'получить начальное значение';
    Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_TOOLTIP = 'Возвращает значение, которое было передано экрану при его';
    Blockly.Msg.LANG_CONTROLS_IF_ELSEIF_TITLE_ELSEIF = 'иначе если';
    Blockly.Msg.LANG_CONTROLS_IF_ELSEIF_TOOLTIP = 'Добавьте условие к блоку если';
    Blockly.Msg.LANG_CONTROLS_IF_ELSE_TITLE_ELSE = 'иначе';
    Blockly.Msg.LANG_CONTROLS_IF_ELSE_TOOLTIP = 'Добавляет заключительную секцию к блоку если, когда все условия ложны';
    Blockly.Msg.LANG_CONTROLS_IF_IF_TITLE_IF = 'если';
    Blockly.Msg.LANG_CONTROLS_IF_IF_TOOLTIP = 'Добавляет, удаляет, меняет порядок секций';
    Blockly.Msg.LANG_CONTROLS_IF_MSG_ELSE = 'иначе';
    Blockly.Msg.LANG_CONTROLS_IF_MSG_ELSEIF = 'иначе если';
    Blockly.Msg.LANG_CONTROLS_IF_MSG_IF = 'если';
    Blockly.Msg.LANG_CONTROLS_IF_MSG_THEN = 'то';
    Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_1 = 'Если условие истинно, то выполняет набор команд.';
    Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_2 = 'Если условие истинно, то выполняет первую группу команд.';
    Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_3 = 'Если первое условие истинно, то выполняет первую группу команд.';
    Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_4 = 'Если первое условие истинно, то выполняет первую группу  команд.';
    Blockly.Msg.LANG_CONTROLS_NOTHING_TITLE = 'ничего';
    Blockly.Msg.LANG_CONTROLS_NOTHING_TOOLTIP = '"Ничего не возвращает. Используется для инициализации переменных или может быть включено в ячейку возвращенного значения. Это является эквивалентом null или Ничего."';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_COLLAPSED_TEXT = 'открыть экран';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_INPUT_SCREENNAME = 'названиеЭкрана';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_TITLE = 'открыть другой экран';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_TOOLTIP = 'Открывает экран в многоэкранном. приложении';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_COLLAPSED_TEXT = 'открывает экран с начальным значением';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_INPUT_SCREENNAME = 'названиеЭкрана';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_INPUT_STARTVALUE = 'начальноеЗначение';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_TITLE = 'открыть ещё один экран с начальным значением';
    Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_TOOLTIP = 'Открывает новый экран в многоэкранном приложении и передаёт';
    Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_INPUT_DO = 'выполнить';
    Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL = 'до тех пор, пока';
    Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE = 'пока';
    Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT = 'повторять';
    Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TOOLTIP_1 = 'Запускает блок в секции "делать", пока тест ...';
    Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL = 'Пока значение ложно, выполнять набор команд.';
    Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TOOLTIP_WHILE = 'Пока значение истинно, выполнять набор команд.';
    Blockly.Msg.LANG_CONTROLS_WHILE_COLLAPSED_TEXT = 'пока';
    Blockly.Msg.LANG_CONTROLS_WHILE_INPUT_DO = 'выполнить';
    Blockly.Msg.LANG_CONTROLS_WHILE_INPUT_TEST = 'проверить';
    Blockly.Msg.LANG_CONTROLS_WHILE_TITLE = 'пока';
    Blockly.Msg.LANG_CONTROLS_WHILE_TOOLTIP = 'Выполняет блоки в секции \'выполнить\', пока условие ';
    Blockly.Msg.LANG_LISTS_ADD_ITEMS_CONTAINER_TITLE_ADD = 'список';
    Blockly.Msg.LANG_LISTS_ADD_ITEMS_CONTAINER_TOOLTIP = 'Добавить, удалить или изменить порядок секций для изменения конфигурации этого блока списка.';
    Blockly.Msg.LANG_LISTS_ADD_ITEMS_INPUT = 'добавить элементы к списку список %1 список %2';
    Blockly.Msg.LANG_LISTS_ADD_ITEMS_INPUT_ITEM = 'элемент';
    Blockly.Msg.LANG_LISTS_ADD_ITEMS_INPUT_LIST = ' список';
    Blockly.Msg.LANG_LISTS_ADD_ITEMS_TITLE_ADD = 'добавить элементы в список';
    Blockly.Msg.LANG_LISTS_ADD_ITEMS_TOOLTIP = 'Добавляет элементы в конец списка.';
    Blockly.Msg.LANG_LISTS_ADD_ITEM_TITLE = 'элемент';
    Blockly.Msg.LANG_LISTS_ADD_ITEM_TOOLTIP = 'Добавляет элемент в список.';
    Blockly.Msg.LANG_LISTS_APPEND_LIST_INPUT = 'добавить к списку  список1 %1 список2 %2';
    Blockly.Msg.LANG_LISTS_APPEND_LIST_INPUT_LIST1 = 'список1';
    Blockly.Msg.LANG_LISTS_APPEND_LIST_INPUT_LIST2 = 'список2';
    Blockly.Msg.LANG_LISTS_APPEND_LIST_TITLE_APPEND = 'добавить в список';
    Blockly.Msg.LANG_LISTS_APPEND_LIST_TOOLTIP = 'Добавляет все элементы в список2 в конец список1. После добавления список1 будет включать эти дополнительные элементы, тогда как список2 не изменится.';
    Blockly.Msg.LANG_LISTS_COPY_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_COPY_TITLE_COPY = 'скопировать список';
    Blockly.Msg.LANG_LISTS_COPY_TOOLTIP = 'Создаёт копию списка, включая все подсписки';
    Blockly.Msg.LANG_LISTS_CREATE_EMPTY_TITLE = 'создать пустой лист';
    Blockly.Msg.LANG_LISTS_CREATE_WITH_CONTAINER_TITLE_ADD = 'список';
    Blockly.Msg.LANG_LISTS_CREATE_WITH_CONTAINER_TOOLTIP = 'Добавить, удалить или изменить порядок фрагментов для реконфигурации этого блока списка.';
    Blockly.Msg.LANG_LISTS_CREATE_WITH_ITEM_TITLE = 'элемент';
    Blockly.Msg.LANG_LISTS_CREATE_WITH_ITEM_TOOLTIP = 'Добавляет элемент в список.';
    Blockly.Msg.LANG_LISTS_CREATE_WITH_TITLE_MAKE_LIST = 'создать список';
    Blockly.Msg.LANG_LISTS_CREATE_WITH_TOOLTIP = 'Создаёт список с произвольным числом элементов.';
    Blockly.Msg.LANG_LISTS_FROM_CSV_ROW_INPUT_TEXT = 'текст';
    Blockly.Msg.LANG_LISTS_FROM_CSV_ROW_TITLE_FROM_CSV = 'лист из строки csv';
    Blockly.Msg.LANG_LISTS_FROM_CSV_ROW_TOOLTIP = 'Интерпретирует текст как CSV, чтобы произвести список полей. Наличие пустых строк в тексте ведет к ошибке. Текст может заканчиваться пустой строкой или CRLF.';
    Blockly.Msg.LANG_LISTS_FROM_CSV_TABLE_INPUT_TEXT = 'текст';
    Blockly.Msg.LANG_LISTS_FROM_CSV_TABLE_TITLE_FROM_CSV = 'список из таблицы csv';
    Blockly.Msg.LANG_LISTS_FROM_CSV_TABLE_TOOLTIP = 'Интерпретирует текст как таблицу, форматированную в CSV , чтобы произвести список строк, каждая из которых является списком полей. Строки могут быть разделены новыми строками (\n)  или CRLF (\r\n).';
    Blockly.Msg.LANG_LISTS_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_INSERT_INPUT = 'вставляет элемент списка список %1 номер %2 номер %3';
    Blockly.Msg.LANG_LISTS_INSERT_INPUT_INDEX = 'указатель';
    Blockly.Msg.LANG_LISTS_INSERT_INPUT_ITEM = 'элемент';
    Blockly.Msg.LANG_LISTS_INSERT_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_INSERT_TITLE_INSERT_LIST = 'вставить элемент списка';
    Blockly.Msg.LANG_LISTS_INSERT_TOOLTIP = 'Вставляет элемент в указанную позицию в списке.';
    Blockly.Msg.LANG_LISTS_IS_EMPTY_TOOLTIP = 'Возвращает значение истина, если список пуст.';
    Blockly.Msg.LANG_LISTS_IS_IN_INPUT = 'в списке? элемент %1 список %2';
    Blockly.Msg.LANG_LISTS_IS_IN_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_IS_IN_INPUT_THING = 'элемент';
    Blockly.Msg.LANG_LISTS_IS_IN_TITLE_IS_IN = 'есть в списке?';
    Blockly.Msg.LANG_LISTS_IS_IN_TOOLTIP = 'Возвращает верно, если элемент есть в списке и неверно - если нет.';
    Blockly.Msg.LANG_LISTS_IS_LIST_INPUT_THING = 'список';
    Blockly.Msg.LANG_LISTS_IS_LIST_TITLE_IS_LIST = 'список?';
    Blockly.Msg.LANG_LISTS_IS_LIST_TOOLTIP = 'Проверяет, является ли аргумент списком.';
    Blockly.Msg.LANG_LISTS_LENGTH_INPUT = 'длина списка список %1';
    Blockly.Msg.LANG_LISTS_LENGTH_INPUT_LENGTH = 'длина списка';
    Blockly.Msg.LANG_LISTS_LENGTH_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_LENGTH_TOOLTIP = 'Возвращает число элементов в списке.';
    Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT = 'проверить в парах   ключ %1 пара %2 неНайден %3';
    Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT_KEY = 'ключ';
    Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT_NOT_FOUND = 'неНайден';
    Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT_PAIRS = 'пары';
    Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_TITLE_LOOKUP_IN_PAIRS = 'искать в парах';
    Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_TOOLTIP = 'Возвращает значение, связанное с ключом в заданном списке пар.';
    Blockly.Msg.LANG_LISTS_PICK_RANDOM_ITEM_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_PICK_RANDOM_TITLE_PICK_RANDOM = 'выбрать случайный элемент';
    Blockly.Msg.LANG_LISTS_PICK_RANDOM_TOOLTIP = 'Выбирает случайный элемент из списка.';
    Blockly.Msg.LANG_LISTS_POSITION_IN_INPUT = 'номер в списке   элемент %1 список %2';
    Blockly.Msg.LANG_LISTS_POSITION_IN_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_POSITION_IN_INPUT_THING = 'элемент';
    Blockly.Msg.LANG_LISTS_POSITION_IN_TITLE_POSITION = 'номер в списке';
    Blockly.Msg.LANG_LISTS_POSITION_IN_TOOLTIP = 'Найти позицию элемента в списке. Если элемент не в списке, вернуть 0.';
    Blockly.Msg.LANG_LISTS_REMOVE_ITEM_INPUT = 'заменить элемент списка список %1 индекс %2';
    Blockly.Msg.LANG_LISTS_REMOVE_ITEM_INPUT_INDEX = 'указатель';
    Blockly.Msg.LANG_LISTS_REMOVE_ITEM_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_REMOVE_ITEM_TITLE_REMOVE = 'удалить элемент списка';
    Blockly.Msg.LANG_LISTS_REMOVE_ITEM_TOOLTIP = 'Удаляет элемент в указанной позиции из списка.';
    Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT = 'заменить элемент списка %1 индекс %2 замена %3';
    Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT_INDEX = 'индекс';
    Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT_REPLACEMENT = 'замена';
    Blockly.Msg.LANG_LISTS_REPLACE_ITEM_TITLE_REPLACE = 'заменить элемент в списке';
    Blockly.Msg.LANG_LISTS_REPLACE_ITEM_TOOLTIP = 'Заменяет n-ый элемент в списке.';
    Blockly.Msg.LANG_LISTS_SELECT_ITEM_INPUT = 'выбрать это элемент списка %1 индекса %2';
    Blockly.Msg.LANG_LISTS_SELECT_ITEM_INPUT_INDEX = 'указатель';
    Blockly.Msg.LANG_LISTS_SELECT_ITEM_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_SELECT_ITEM_TITLE_SELECT = 'выбрать элемент списка';
    Blockly.Msg.LANG_LISTS_SELECT_ITEM_TOOLTIP = 'Возвращает элемент списка по его номеру.';
    Blockly.Msg.LANG_LISTS_TITLE_IS_EMPTY = 'список пуст?';
    Blockly.Msg.LANG_LISTS_TO_CSV_ROW_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_TO_CSV_ROW_TITLE_TO_CSV = 'список - в строку csv';
    Blockly.Msg.LANG_LISTS_TO_CSV_ROW_TOOLTIP = 'Интерпретирует список как строку таблицы и возвращает текст в CSV. Каждый элемент строки интерпретируется как поле, и заключается в кавычки. Элементы разделяются запятыми. Итоговый текст не разделяется строками.';
    Blockly.Msg.LANG_LISTS_TO_CSV_TABLE_INPUT_LIST = 'список';
    Blockly.Msg.LANG_LISTS_TO_CSV_TABLE_TITLE_TO_CSV = 'список - в таблицу csv';
    Blockly.Msg.LANG_LISTS_TO_CSV_TABLE_TOOLTIP = 'Интерпретирует список в качестве таблицы и возвращает текст в CSV. Каждый элемент представляется строкой CSV таблицы. Каждый элемент таблицы считается полем, заключенным в двойные кавычки. В итоговом тексте элементы разделяются запятыми, а ряды - CRLF (\r\n).';
    Blockly.Msg.LANG_LOGIC_BOOLEAN_FALSE = 'ложь';
    Blockly.Msg.LANG_LOGIC_BOOLEAN_TOOLTIP_FALSE = 'Возвращает логическое значение ложь';
    Blockly.Msg.LANG_LOGIC_BOOLEAN_TOOLTIP_TRUE = 'Возвращает логическое значение истина';
    Blockly.Msg.LANG_LOGIC_BOOLEAN_TRUE = 'истина';
    Blockly.Msg.LANG_LOGIC_COMPARE_EQ = '=';
    Blockly.Msg.LANG_LOGIC_COMPARE_NEQ = '≠';
    Blockly.Msg.LANG_LOGIC_COMPARE_TOOLTIP_EQ = 'Проверяет равенство двух объектов.';
    Blockly.Msg.LANG_LOGIC_COMPARE_TOOLTIP_NEQ = 'Возвращает значение истина, если аргументы не равны';
    Blockly.Msg.LANG_LOGIC_COMPARE_TRANSLATED_NAME = 'логическое равенство';
    Blockly.Msg.LANG_LOGIC_NEGATE_INPUT_NOT = 'не';
    Blockly.Msg.LANG_LOGIC_NEGATE_TOOLTIP = 'Возвращает значение истина, если аргумент ложен.';
    Blockly.Msg.LANG_LOGIC_OPERATION_AND = 'и';
    Blockly.Msg.LANG_LOGIC_OPERATION_OR = 'или';
    Blockly.Msg.LANG_LOGIC_OPERATION_TOOLTIP_AND = 'Возвращает значение истина, если все аргументы истинны';
    Blockly.Msg.LANG_LOGIC_OPERATION_TOOLTIP_OR = 'Возвращает значение истина, если среди аргументов есть истинный';
    Blockly.Msg.LANG_MATH_ARITHMETIC_ADD = '+';
    Blockly.Msg.LANG_MATH_ARITHMETIC_DIVIDE = '/';
    Blockly.Msg.LANG_MATH_ARITHMETIC_MINUS = '-';
    Blockly.Msg.LANG_MATH_ARITHMETIC_MULTIPLY = '*';
    Blockly.Msg.LANG_MATH_ARITHMETIC_POWER = '^';
    Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_ADD = 'Возвращает сумму двух чисел.';
    Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_DIVIDE = 'возвращает частное от деления.';
    Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_MINUS = 'Возвращает разность двух чисел.';
    Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_MULTIPLY = 'Возвращает произведение двух чисел.';
    Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_POWER = 'Возвращает первое число возведённое в';
    Blockly.Msg.LANG_MATH_COMPARE_EQ = '=';
    Blockly.Msg.LANG_MATH_COMPARE_GT = '>';
    Blockly.Msg.LANG_MATH_COMPARE_GTE = '≥';
    Blockly.Msg.LANG_MATH_COMPARE_LT = '<';
    Blockly.Msg.LANG_MATH_COMPARE_LTE = '≤';
    Blockly.Msg.LANG_MATH_COMPARE_NEQ = '≠';
    Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_EQ = 'Возвращает значение истина, если числа равны';
    Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_GT = 'Возвращает значение истина, если первое число больше';
    Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_GTE = 'Возвращает значение истина, если первое число больше';
    Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_LT = 'Возвращает значение истина, если первое число меньше';
    Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_LTE = 'Возвращает значение истина, если первое число меньше';
    Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_NEQ = 'Возвращает значение истина, если числа не равны';
    Blockly.Msg.LANG_MATH_CONVERT_ANGLES_OP_DEG_TO_RAD = 'углы в радианы';
    Blockly.Msg.LANG_MATH_CONVERT_ANGLES_OP_RAD_TO_DEG = 'радианы в углы';
    Blockly.Msg.LANG_MATH_CONVERT_ANGLES_TITLE_CONVERT = 'преобразовать';
    Blockly.Msg.LANG_MATH_CONVERT_ANGLES_TOOLTIP_DEG_TO_RAD = 'Возвращает величину угла в радианах в диапазоне [-u03C0, +u03C0) по заданному углу в градусах.';
    Blockly.Msg.LANG_MATH_CONVERT_ANGLES_TOOLTIP_RAD_TO_DEG = 'Возвращает величину угла в градусах [0, 360) по заданному углу в радианах.';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_BIN_TO_DEC = 'двоичное в десятичное';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_DEC_TO_BIN = 'десятичное в двоичное';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_DEC_TO_HEX = 'десятичное в шестнадцатеричное';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_HEX_TO_DEC = 'шестнадцатеричное в десятичное';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TITLE_CONVERT = 'преобразовать число';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_BIN_TO_DEC = 'Возвращает строку с десятичным представлением заданного двоичного числа';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_DEC_TO_BIN = 'Возвращает строку с двоичным представлением числа заданного десятичного числа';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_DEC_TO_HEX = 'Возвращает шестнадцатеричное представление заданного десятичного числа.';
    Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_HEX_TO_DEC = 'Возвращает десятичное представление заданного шестнадцатеричного числа';
    Blockly.Msg.LANG_MATH_DIVIDE = 'u00F7';
    Blockly.Msg.LANG_MATH_DIVIDE_OPERATOR_MODULO = 'модуль';
    Blockly.Msg.LANG_MATH_DIVIDE_OPERATOR_QUOTIENT = 'частное от';
    Blockly.Msg.LANG_MATH_DIVIDE_OPERATOR_REMAINDER = 'остаток от';
    Blockly.Msg.LANG_MATH_DIVIDE_TOOLTIP_MODULO = 'Возвращает остаток от деления.';
    Blockly.Msg.LANG_MATH_DIVIDE_TOOLTIP_QUOTIENT = 'Возвращает частное.';
    Blockly.Msg.LANG_MATH_DIVIDE_TOOLTIP_REMAINDER = 'Возвращает остаток.';
    Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_INPUT = 'отформатировать как десятичное число %1 цифр%2';
    Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_INPUT_NUM = 'число';
    Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_INPUT_PLACES = 'места';
    Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_TITLE = 'форматировать как десятичное';
    Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_TOOLTIP = 'Возвращает число в десятичной форме с указанным числом цифр.';
    Blockly.Msg.LANG_MATH_IS_A_BINARY_INPUT_NUM = 'двоичное?';
    Blockly.Msg.LANG_MATH_IS_A_BINARY_TOOLTIP = 'Проверяет, представляет ли строка двоичное число.';
    Blockly.Msg.LANG_MATH_IS_A_DECIMAL_INPUT_NUM = 'основание 10?';
    Blockly.Msg.LANG_MATH_IS_A_DECIMAL_TOOLTIP = 'Проверяет, представляет ли строка десятичное число.';
    Blockly.Msg.LANG_MATH_IS_A_HEXADECIMAL_INPUT_NUM = 'шестнадцатиричное?';
    Blockly.Msg.LANG_MATH_IS_A_HEXADECIMAL_TOOLTIP = 'Проверяет, представляет ли строка шестнадцатеричное число.';
    Blockly.Msg.LANG_MATH_IS_A_NUMBER_INPUT_NUM = 'является числом?';
    Blockly.Msg.LANG_MATH_IS_A_NUMBER_TOOLTIP = 'Проверяет, является ли аргумент числом.';
    Blockly.Msg.LANG_MATH_MUTATOR_ITEM_INPUT_NUMBER = 'число';
    Blockly.Msg.LANG_MATH_NUMBER_TOOLTIP = 'Задаёт число';
    Blockly.Msg.LANG_MATH_ONLIST_OPERATOR_MAX = 'max';
    Blockly.Msg.LANG_MATH_ONLIST_OPERATOR_MIN = 'мин.';
    Blockly.Msg.LANG_MATH_ONLIST_TOOLTIP_MAX = 'Возвращает наибольшее число списка..';
    Blockly.Msg.LANG_MATH_ONLIST_TOOLTIP_MIN = 'Возвращает минимальный элемент..';
    Blockly.Msg.LANG_MATH_RANDOM_FLOAT_TITLE_RANDOM = 'случайная дробь';
    Blockly.Msg.LANG_MATH_RANDOM_FLOAT_TOOLTIP = 'Возвращает случайное число между 0 и 1.';
    Blockly.Msg.LANG_MATH_RANDOM_INT_INPUT = 'случайное целое в диапазоне от %1 до %2';
    Blockly.Msg.LANG_MATH_RANDOM_INT_INPUT_FROM = 'от';
    Blockly.Msg.LANG_MATH_RANDOM_INT_INPUT_TO = 'до';
    Blockly.Msg.LANG_MATH_RANDOM_INT_TITLE_RANDOM = 'случайное целое';
    Blockly.Msg.LANG_MATH_RANDOM_INT_TOOLTIP = 'Возвращает случайное целое число в диапазоне между верхним и нижним. Диапазон будет ограничен между 2**30.';
    Blockly.Msg.LANG_MATH_RANDOM_SEED_INPUT_TO = 'в';
    Blockly.Msg.LANG_MATH_RANDOM_SEED_TITLE_RANDOM = 'случайный набор значений';
    Blockly.Msg.LANG_MATH_RANDOM_SEED_TOOLTIP = 'устанавливает случайное число для генератора случайных чисел';
    Blockly.Msg.LANG_MATH_ROUND_OPERATOR_CEILING = 'округление в меньшую сторону';
    Blockly.Msg.LANG_MATH_ROUND_OPERATOR_FLOOR = 'округление в большую сторону';
    Blockly.Msg.LANG_MATH_ROUND_OPERATOR_ROUND = 'округлить';
    Blockly.Msg.LANG_MATH_ROUND_TOOLTIP_CEILING = 'Округляет вводимую величину до наименьшего значения не меньшего этой величины.';
    Blockly.Msg.LANG_MATH_ROUND_TOOLTIP_FLOOR = 'Округляет вводимую величину до наибольшего значения не большего этой величины.';
    Blockly.Msg.LANG_MATH_ROUND_TOOLTIP_ROUND = 'Округляет число до большего или меньшего.';
    Blockly.Msg.LANG_MATH_SINGLE_OP_ABSOLUTE = 'абсолютный';
    Blockly.Msg.LANG_MATH_SINGLE_OP_EXP = 'e^';
    Blockly.Msg.LANG_MATH_SINGLE_OP_LN = 'log';
    Blockly.Msg.LANG_MATH_SINGLE_OP_NEG = 'нег';
    Blockly.Msg.LANG_MATH_SINGLE_OP_ROOT = 'квадратный корень';
    Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_ABS = 'Возвращает абсолютное значение числа.';
    Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_EXP = 'Возвращает e (2,71828...) в заданной степени.';
    Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_LN = 'Возвращает натуральный логарифм числа (логарифм по основанию e = 2,71828...)';
    Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_NEG = 'Возвращает противоположное число.';
    Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_ROOT = 'Возвращает квадратный корень числа';
    Blockly.Msg.LANG_MATH_TRIG_ACOS = 'arccos';
    Blockly.Msg.LANG_MATH_TRIG_ASIN = 'arcsin';
    Blockly.Msg.LANG_MATH_TRIG_ATAN = 'arctg';
    Blockly.Msg.LANG_MATH_TRIG_ATAN2 = 'arctg2';
    Blockly.Msg.LANG_MATH_TRIG_ATAN2_X = 'x';
    Blockly.Msg.LANG_MATH_TRIG_ATAN2_Y = 'y';
    Blockly.Msg.LANG_MATH_TRIG_COS = 'cos';
    Blockly.Msg.LANG_MATH_TRIG_SIN = 'sin';
    Blockly.Msg.LANG_MATH_TRIG_TAN = 'tg';
    Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ACOS = 'Возвращает угол в диапазоне [0, 180) градусов с заданным косинусом.';
    Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ASIN = 'Возвращает угол в диапазоне (-90, +90] градусов с заданным синусом.';
    Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ATAN = 'Возвращает угол в диапазоне (-90, +90) градусов с заданным тангенсом.';
    Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ATAN2 = 'Возвращает угол в диапазоне (-180, +180] градусов на точку с заданными координатими в прямоугольной системе координат.';
    Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_COS = 'Возвращает косинус угла (в градусах). ';
    Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_SIN = 'Возвращает синус заданного угла в градусах.';
    Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_TAN = 'Возвращает тангенс угла (в градусах)';
    Blockly.Msg.LANG_PROCEDURES_CALLNORETURN_CALL = 'вызвать ';
    Blockly.Msg.LANG_PROCEDURES_CALLNORETURN_COLLAPSED_PREFIX = 'вызвать ';
    Blockly.Msg.LANG_PROCEDURES_CALLNORETURN_PROCEDURE = 'процедура';
    Blockly.Msg.LANG_PROCEDURES_CALLNORETURN_TOOLTIP = 'Вызывает процедуру, не возвращающую значение.';
    Blockly.Msg.LANG_PROCEDURES_CALLNORETURN_TRANSLATED_NAME = 'вызвать "не возвращать"';
    Blockly.Msg.LANG_PROCEDURES_CALLRETURN_COLLAPSED_PREFIX = 'вызвать ';
    Blockly.Msg.LANG_PROCEDURES_CALLRETURN_TOOLTIP = 'Вызывает проуедуру, возвращающую значение.';
    Blockly.Msg.LANG_PROCEDURES_CALLRETURN_TRANSLATED_NAME = 'вызвать "вернуть"';
    Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_COLLAPSED_PREFIX = 'в';
    Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_DEFINE = 'в';
    Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_DO = 'выполнить';
    Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_PROCEDURE = 'процедура';
    Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_TOOLTIP = 'Процедура, не возвращающая значение.';
    Blockly.Msg.LANG_PROCEDURES_DEFRETURN_COLLAPSED_PREFIX = 'в';
    Blockly.Msg.LANG_PROCEDURES_DEFRETURN_DEFINE = 'в';
    Blockly.Msg.LANG_PROCEDURES_DEFRETURN_RETURN = 'результат';
    Blockly.Msg.LANG_PROCEDURES_DEFRETURN_TOOLTIP = 'Процедура возвращающая значение.';
    Blockly.Msg.LANG_PROCEDURES_DEF_DUPLICATE_WARNING = 'Предупреждение:n У этой процедуры есть n повторяющихся элементов ввода.';
    Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_COLLAPSED_TEXT = 'выполнить/результат';
    Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_DO = 'делать';
    Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_RETURN = 'результат';
    Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_THEN_RETURN = 'результат';
    Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_TOOLTIP = 'Запускает блоки в "выполнить" и возвращает значение. Это полезно, если вы хотите выполнить процедуру, перед тем, как возвращать значение переменной.';
    Blockly.Msg.LANG_PROCEDURES_HIGHLIGHT_DEF = 'Выделить Процедуру';
    Blockly.Msg.LANG_PROCEDURES_MUTATORARG_TITLE = 'ввод:';
    Blockly.Msg.LANG_PROCEDURES_MUTATORARG_TOOLTIP = ' ';
    Blockly.Msg.LANG_PROCEDURES_MUTATORCONTAINER_TITLE = 'параметры';
    Blockly.Msg.LANG_PROCEDURES_MUTATORCONTAINER_TOOLTIP = ' ';
    Blockly.Msg.LANG_TEXT_APPEND_APPENDTEXT = 'добавить текст';
    Blockly.Msg.LANG_TEXT_APPEND_TO = 'к';
    Blockly.Msg.LANG_TEXT_APPEND_TOOLTIP = 'Добавляет текст к переменной "%1".';
    Blockly.Msg.LANG_TEXT_APPEND_VARIABLE = 'элемент';
    Blockly.Msg.LANG_TEXT_CHANGECASE_OPERATOR_DOWNCASE = 'строчные буквы';
    Blockly.Msg.LANG_TEXT_CHANGECASE_OPERATOR_UPPERCASE = 'заглавные буквы';
    Blockly.Msg.LANG_TEXT_CHANGECASE_TOOLTIP_DOWNCASE = 'Возвращает копию текста со строчными буквами.';
    Blockly.Msg.LANG_TEXT_CHANGECASE_TOOLTIP_UPPERCASE = 'Возвращает копию текста с заглавными буквами. ';
    Blockly.Msg.LANG_TEXT_COMPARE_EQUAL = '=';
    Blockly.Msg.LANG_TEXT_COMPARE_GT = ' >';
    Blockly.Msg.LANG_TEXT_COMPARE_INPUT_COMPARE = 'сравнить тексты';
    Blockly.Msg.LANG_TEXT_COMPARE_LT = ' <';
    Blockly.Msg.LANG_TEXT_COMPARE_TOOLTIP_EQUAL = 'Проверяет, являются ли текстовые цепочки идентичными, т.е. содержит ли одинаковые символы в нужном порядке. Это отличается от обычного =n в случае, если текстовые цепочки являются номерами: 123 и 0123 =n, но не text =.';
    Blockly.Msg.LANG_TEXT_COMPARE_TOOLTIP_GT = 'Сообщает, является ли text1 большей цепочкой, чем text2. Более короткая цепочка считается меньшей. Символы в верхнем регистре размещаются раньше символов в нижнем регистре.';
    Blockly.Msg.LANG_TEXT_COMPARE_TOOLTIP_LT = 'Проверяет, меньше ли текст1, чем текст2. Если один текст является началом другого, то более короткий текст считается меньшим. Заглавные буквы предшествуют строчным.';
    Blockly.Msg.LANG_TEXT_CONTAINS_INPUT = 'содержит текстовый %1 фрагмент %2';
    Blockly.Msg.LANG_TEXT_CONTAINS_INPUT_CONTAINS = 'содержит';
    Blockly.Msg.LANG_TEXT_CONTAINS_INPUT_PIECE = 'фрагмент';
    Blockly.Msg.LANG_TEXT_CONTAINS_INPUT_TEXT = 'text';
    Blockly.Msg.LANG_TEXT_CONTAINS_TOOLTIP = 'Проверяет, содержится ли подстрока в тексте.';
    Blockly.Msg.LANG_TEXT_ISEMPTY_INPUT_ISEMPTY = 'является пустым';
    Blockly.Msg.LANG_TEXT_ISEMPTY_TOOLTIP = 'возвращает истина, если длина текста равна 0, и ложь в противном случае. ';
    Blockly.Msg.LANG_TEXT_JOIN_ITEM_TITLE_ITEM = 'строка';
    Blockly.Msg.LANG_TEXT_JOIN_ITEM_TOOLTIP = ' ';
    Blockly.Msg.LANG_TEXT_JOIN_TITLE_CREATEWITH = 'создать текст из';
    Blockly.Msg.LANG_TEXT_JOIN_TITLE_JOIN = 'соединить';
    Blockly.Msg.LANG_TEXT_JOIN_TOOLTIP = 'Создаёт текст из произвольного числа элементов. Если входных параметров нет - создаётся пустой текст.';
    Blockly.Msg.LANG_TEXT_LENGTH_INPUT_LENGTH = 'длина';
    Blockly.Msg.LANG_TEXT_LENGTH_TOOLTIP = 'Возвращает число символов (включая пробелы) в тексте.';
    Blockly.Msg.LANG_TEXT_PRINT_TITLE_PRINT = 'напечатать';
    Blockly.Msg.LANG_TEXT_PRINT_TOOLTIP = 'Печатает текст, число или другой объект.';
    Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT = 'заменить все  текстовые %1 сегменты %2 замена %3';
    Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT_REPLACEMENT = 'замена';
    Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT_SEGMENT = 'отрезок';
    Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT_TEXT = 'текст';
    Blockly.Msg.LANG_TEXT_REPLACE_ALL_TITLE_REPLACE_ALL = 'заменить все';
    Blockly.Msg.LANG_TEXT_REPLACE_ALL_TOOLTIP = 'Возвращает новый текст, полученный в результате замены заданного сегмента определенным текстом.';
    Blockly.Msg.LANG_TEXT_SEGMENT_AT_TOOLTIP = 'Извлекает сегмент заданной длины из данного текста, начиная с заданной позиции. Позиция1 означает начало текста.';
    Blockly.Msg.LANG_TEXT_SEGMENT_INPUT = 'сегмент текста %1 начало %2 длина %3';
    Blockly.Msg.LANG_TEXT_SEGMENT_INPUT_LENGTH = 'длина';
    Blockly.Msg.LANG_TEXT_SEGMENT_INPUT_START = 'начало';
    Blockly.Msg.LANG_TEXT_SEGMENT_INPUT_TEXT = 'текст';
    Blockly.Msg.LANG_TEXT_SEGMENT_TITLE_SEGMENT = 'отрезок';
    Blockly.Msg.LANG_TEXT_SPLIT_AT_SPACES_TITLE = 'разбить по пробелам';
    Blockly.Msg.LANG_TEXT_SPLIT_AT_TOOLTIP = 'Разделить текст на фрагменты, разделенные пробелами.';
    Blockly.Msg.LANG_TEXT_SPLIT_INPUT_AT = 'с';
    Blockly.Msg.LANG_TEXT_SPLIT_INPUT_AT_LIST = 'в (список)';
    Blockly.Msg.LANG_TEXT_SPLIT_INPUT_TEXT = 'текст';
    Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT = 'разделить';
    Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT_AT_ANY = 'разделить в любом';
    Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT_AT_FIRST = 'разбить по первому';
    Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT_AT_FIRST_OF_ANY = 'разбить по первому из набора';
    Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT = 'Разделяет текст на фрагменты, используя разделитель и производит список результатов. Разделение "один,два,три, четыре" с помощью "," (запятая) возвращает список (один два три четыре). Разделение "один-картошка,два-картошка,три-картошка, четыре" с помощью "-картошка" возвращает список (один два три четыре).';
    Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT_AT_ANY = 'Разделяет данный текст на список, используя любые элементы списка в качестве разделителей и возвращает список результатов. Разделение "яблокоягода,банан,вишня,собачьяеда" с помощью запятой и "да" возвращает спискок (яблокояго банан вишня собачьяе).';
    Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT_AT_FIRST = 'Делит заданный текст на два фрагмента на основе того, где встречается "в" как разделитель и возвращает список из двух пунктов, состоящих из фрагмента перед разделителем и фрагмента после разделителя. Разбиение "яблоко,банан,вишня,собачьяеда" запятой возвращает список из двух элементов: тексты - "яблоко" и "банан,вишня,собачьяеда". Обратите внимание, что запятая после слова "яблоко" не появляется в результирующем тексте, поскольку это разделитель.';
    Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT_AT_FIRST_OF_ANY = 'Разделяет заданный текст на список из двух элементов, используя первое местоположение любого элемента списка как разделитель. Разделение текста "я люблю яблоки бананы яблоки виноград" с помощью (ба, яб) возвращает два элемента - "я люблю" и "яблоки бананы яблоки виноград".';
    Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT = 'начинается с текстового %1 фрагмента %2';
    Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT_PIECE = 'фрагмент';
    Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT_STARTS_AT = 'начинается с';
    Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT_TEXT = 'текст';
    Blockly.Msg.LANG_TEXT_STARTS_AT_TOOLTIP = 'Возвращает начальную позицию в тексте. Позиция 1 означает начало текста. Если элемент не встречается в тексте, возвращает 0.';
    Blockly.Msg.LANG_TEXT_TEXT_LEFT_QUOTE = '\u201C';
    Blockly.Msg.LANG_TEXT_TEXT_OBFUSCATE = 'Обрезанный текст';
    Blockly.Msg.LANG_TEXT_TEXT_OBFUSCATE_TOOLTIP = 'Производит текст, как и текстовый блок. Разница состоит в том, что ntext не так легко найти, как APK. Используйте его при создании приложений для того, чтобы передать конфиденциальную информацию, например ключи API. Предупреждение: уровень безопасности этого решения остается невысоким.';
    Blockly.Msg.LANG_TEXT_TEXT_RIGHT_QUOTE = '\u201D';
    Blockly.Msg.LANG_TEXT_TEXT_TOOLTIP = 'Текстовая строка.';
    Blockly.Msg.LANG_TEXT_TRIM_TITLE_TRIM = 'обрезать';
    Blockly.Msg.LANG_TEXT_TRIM_TOOLTIP = 'Возвращает копию его аргументов текстовой цепочки, удаляя все знаки пробелов.';
    Blockly.Msg.LANG_VARIABLES_GET_COLLAPSED_TEXT = 'получить';
    Blockly.Msg.LANG_VARIABLES_GET_TITLE_GET = 'получить';
    Blockly.Msg.LANG_VARIABLES_GET_TOOLTIP = 'Возвращает значение переменной.';
    Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_COLLAPSED_TEXT = 'глобальная';
    Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_NAME = 'имя';
    Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_TITLE_INIT = 'инициализировать глобальную';
    Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_TO = 'в';
    Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_TOOLTIP = 'Создаёт глобальную переменную и присваивает её значение прикреплённых блоков.';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_COLLAPSED_TEXT = 'локальная';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_DEFAULT_NAME = 'имя';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_COLLAPSED_TEXT = 'локальная';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_INPUT_NAME = 'имя';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_INPUT_TO = 'в';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_IN_RETURN = 'в';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_TITLE_INIT = 'инициализировать локальную ';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_TOOLTIP = 'Позволяет создавать переменные, доступные в части блока "Вернуть".';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_TRANSLATED_NAME = 'инициализировать локальную в "Вернуть"';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_INPUT_TO = 'в';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_IN_DO = 'в';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_TITLE_INIT = 'инициализировать локальную';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_TOOLTIP = 'Позволяет создавать переменные, доступные только в части блока "выполнить".';
    Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_TRANSLATED_NAME = 'инициализировать локальную переменную в';
    Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_ARG_DEFAULT_VARIABLE = 'x';
    Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_ARG_TITLE_NAME = 'имя';
    Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_CONTAINER_TITLE_LOCAL_NAMES = 'локальные имена';
    Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_CONTAINER_TOOLTIP = ' ';
    Blockly.Msg.LANG_VARIABLES_SET_COLLAPSED_TEXT = 'установить';
    Blockly.Msg.LANG_VARIABLES_SET_TITLE_SET = 'присвоить';
    Blockly.Msg.LANG_VARIABLES_SET_TITLE_TO = 'в';
    Blockly.Msg.LANG_VARIABLES_SET_TOOLTIP = 'Присваивает переменной значение вставки.';
    Blockly.Msg.LANG_VARIABLES_VARIABLE = ' переменная';
    Blockly.Msg.MISSING_SOCKETS_WARNINGS = 'Вы должны заполнить блоками все гнезда';
    Blockly.Msg.REMOVE_COMMENT = 'Удалить комментарий';
    Blockly.Msg.REPL_AI_NO_SEE_DEVICE = 'AI2 не распознает ваше устройство. Убедитесь, что кабель подключен и драйвера установлены.';
    Blockly.Msg.REPL_APPROVE_UPDATE = 'поскольку вам будет предложено подтвердить обновление.';
    Blockly.Msg.REPL_CANCEL = 'Отменить';
    Blockly.Msg.REPL_COMPANION_OUT_OF_DATE = 'Ваш Companion устарел. Нажмите ОК для того, чтобы скачать обновление. Наблюдайте за';
    Blockly.Msg.REPL_COMPANION_OUT_OF_DATE1 = 'Версия Companion, которую вы используете, устарела.<br/><br/>Эта версия App Inventor должна использоваться с версией Companion.';
    Blockly.Msg.REPL_COMPANION_OUT_OF_DATE_IMMEDIATE = 'Вы используете устаревшую версию Companion. Вам нужно будет - сейчас или впоследствии обновить ваш Companion.';
    Blockly.Msg.REPL_COMPANION_STARTED_WAITING = 'Companion запускается, ожидаем...';
    Blockly.Msg.REPL_COMPANION_VERSION_CHECK = 'Проверка версии Companion';
    Blockly.Msg.REPL_CONNECTING = 'Подключение...';
    Blockly.Msg.REPL_CONNECTING_USB_CABLE = 'Подключение через кабель USB';
    Blockly.Msg.REPL_CONNECTION_FAILURE1 = 'Ошибка соединения';
    Blockly.Msg.REPL_CONNECT_TO_COMPANION = 'Подключиться к Companion';
    Blockly.Msg.REPL_DEVICES = 'эмулятора устройства';
    Blockly.Msg.REPL_DISMISS = 'Отменить';
    Blockly.Msg.REPL_DO_YOU_REALLY_Q = 'Вы уверены?';
    Blockly.Msg.REPL_EMULATORS = 'экраном';
    Blockly.Msg.REPL_EMULATOR_STARTED = 'Эмулятор запущен, ожидайте';
    Blockly.Msg.REPL_ERROR_FROM_COMPANION = 'Ошибка в Companion';
    Blockly.Msg.REPL_FACTORY_RESET = 'Мы попробуем вернуть эмулятор к фабричным настройкам. Если вы недавно обновляли Companion, вам, скорее всего придется сделать это снова.';
    Blockly.Msg.REPL_GIVE_UP = 'Отказаться';
    Blockly.Msg.REPL_GOT_IT = 'Согласен.';
    Blockly.Msg.REPL_HELPER_NOT_RUNNING = 'Запуск AI не работает <br /><a href="http://appinventor.mit.edu" target="_blank">Нужна помощь?</a>';
    Blockly.Msg.REPL_HELPER_Q = 'Нужна справка?';
    Blockly.Msg.REPL_KEEP_TRYING = 'Продолжить ожидание';
    Blockly.Msg.REPL_NETWORK_CONNECTION_ERROR = 'Ошибка сетевого соединения';
    Blockly.Msg.REPL_NETWORK_ERROR = 'Ошибка сети';
    Blockly.Msg.REPL_NETWORK_ERROR_RESTART = 'Сетевая ошибка связи с Companion. <br /> Попробуйте перезапустить Companion и повторить попытку соединения.';
    Blockly.Msg.REPL_NOT_NOW = 'Не сейчас';
    Blockly.Msg.REPL_NOW_DOWNLOADING = 'Загружается обновление с сервера App Inventor, пожалуйста, подождите';
    Blockly.Msg.REPL_NO_ERROR_FIVE_SECONDS = '<br/><i>Внимание:</i> Отчет о другой ошибке появится не ранее, чем через 5 секунд.';
    Blockly.Msg.REPL_NO_START_EMULATOR = 'Невозможно запустить MIT AI Companion с эмулятором';
    Blockly.Msg.REPL_OK = 'OK';
    Blockly.Msg.REPL_OK_LOWER = 'Ок';
    Blockly.Msg.REPL_PLUGGED_IN_Q = 'Вы подключены?';
    Blockly.Msg.REPL_RUNTIME_ERROR = 'Ошибка времени исполнения';
    Blockly.Msg.REPL_SECONDS_ENSURE_RUNNING = ' секунд, чтобы убедиться, что всё работает.';
    Blockly.Msg.REPL_SOFTWARE_UPDATE = 'Обновление программы';
    Blockly.Msg.REPL_STARTING_COMPANION_IN_EMULATOR = 'Запускаем приложение Companion на эмуляторе.';
    Blockly.Msg.REPL_STARTING_COMPANION_ON_PHONE = 'Запускаем приложение Companion на подключенном телефоне.';
    Blockly.Msg.REPL_STARTING_EMULATOR = ' Android эмулятор запускается<br/>Подождите: Это может занять одну - две минуты.';
    Blockly.Msg.REPL_TRY_AGAIN1 = 'Подключиться к MIT AI2 Companion не удалось. Попробуйте снова.';
    Blockly.Msg.REPL_UNABLE_TO_LOAD = 'Не могу загрузить обновление с сервера App Inventor.';
    Blockly.Msg.REPL_UNABLE_TO_LOAD_NO_RESPOND = 'Невозможно загрузать обновление с сервера App Inventor (сервер не отвечает)';
    Blockly.Msg.REPL_UNABLE_TO_UPDATE = 'Не могу отправить обновление на устройство/эмулятор';
    Blockly.Msg.REPL_UPDATE_INFO = 'На ваше устройство установлено дополнение. Посмотрите на экран вашего устройство и подтвердите установку программы. <br /><br />Важно: когда установка закончится, нажмите "ЗАВЕРШИТЬ"(а не открыть). Затем перейдите в App Inventor в вашем браузере, нажмите на "Подключить" и выберите "Переподключиться". Затем переподключите ваше устройство.';
    Blockly.Msg.REPL_USB_CONNECTED_WAIT = 'Подключение по USB. Подождите';
    Blockly.Msg.REPL_VERIFYING_COMPANION = 'Проверяем, запущен ли Companion...';
    Blockly.Msg.REPL_YOUR_CODE_IS = 'Ваш код';
    Blockly.Msg.SHOW_WARNINGS = 'Показывать предупреждения';
    Blockly.Msg.SORT_C = 'Отсортировать блоки по категории';
    Blockly.Msg.SORT_H = 'Отсортировать блоки по высоте';
    Blockly.Msg.SORT_W = 'Отсортировать блоки по ширине';
    Blockly.Msg.VERTICAL_PARAMETERS = 'Расположить параметры вертикально';
    Blockly.Msg.WARNING_DELETE_X_BLOCKS = 'Вы уверены, что хотите удалить все эти %1 блоков?';
    Blockly.Msg.WRONG_TYPE_BLOCK_WARINGS = 'Этот блок должен быть присоединён к блоку обработки события или определению процедуры';
//Blockly.Msg.LANG_LISTS_CREATE_EMPTY_HELPURL = 'http://en.wikipedia.org/wiki/Linked_list#Empty_lists';
//Blockly.Msg.LANG_LISTS_CREATE_EMPTY_TOOLTIP = 'Возвращает список длины 0, не содержаший записей.';
  }
};

// Initalize language definition to Russian
Blockly.Msg.ru.switch_blockly_language_to_ru.init();
Blockly.Msg.ru.switch_language_to_russian.init();


text:
 {{stc.individualSubtopic.list[0].title}}

 {{stc.individualSubtopic.list[0].description}}

  Have an Idea?

            <form class="ctaForm" align="center" action="index.html" method="post">
              <select ng-model="stc.idea.subtopicId">

                <option ng-repeat="subtopic in stc.subTopic.list" value="{{subtopic.id}}"> {{subtopic.title}} </option>
              </select>
              <input ng-model="stc.idea.title" type="text" name="" value="" placeholder="Title">
              <textarea ng-model="stc.idea.description" name="comment" placeholder="Description..."form="usrform"></textarea>

              <button ng-click="stc.addNewIdea(stc.idea)" class = "btn-cta" type="button" name="button"> Add Your Idea! </button>
            </form>

 {{stc.individualSubtopic.list[0].title}}

 {{stc.individualSubtopic.list[0].description}}

  <form class="filterIdeas" align="left" action="index.html" method="post">
    <select name="Subtopics" class="filterIdeas">
      <option  value="placeholder">Filter Ideas By:</option>
      <option  value="mostRecent">Most Recent</option>
      <option  value="mostLiked">Most Liked</option>
      <option value="mostLoved">Most Loved</option>
      <option value="mostComments">Most Comments</option>
    </select>

  </form>

  <md-card md-theme="{{ showDarkTheme ? 'dark-orange' : 'default' }}" md-theme-watch="">
    <md-card-title>
      <md-card-title-text style="height: 55px;">
        {{subtopicIdeas.title}}
      </md-card-title-text>
      <md-button ng-click="stc.moreComments(subtopicIdeas)" class="md-icon-button" aria-label="Comment">

      </md-button>
      <md-button ng-click="stc.flagIdeaClick(subtopicIdeas)" class="md-icon-button" aria-label="Flag">

      </md-button>
    </md-card-title>
    <md-card-content layout="row" layout-align="space-between" style="height:200px;">

      <md-content style="padding: 20px; height:200px;">
        {{subtopicIdeas.description}}
      </md-content>
    </md-card-content>
    <md-card-title>

        {{subtopicIdeas.name}}
        Ward {{subtopicIdeas.ward}}

  </md-card-title>

            {{subtopicIdeas.ideas_likes_count}}
            LIKE
            = 2">LIKES

            {{subtopicIdeas.ideas_loves_count}}
            LOVE
            = 2">LOVES

  </md-card>

 HAVE AN IDEA?

    <button ng-click="stc.createIdea()" type="button" class="btn-100" name="button"> START A CONVERSATION </button>

      Create an Idea

redpajama_set_name: RedPajamaGithub


text:
<?php

namespace Acme\DemoBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Model as ORMBehaviors;

/**
 * @ORM\Entity
 */
class Country
{
    use ORMBehaviors\Translatable\Translatable;
    use Selectionable;

    public function __toString()
    {
        return (string) $this->translate()->getTitle();
    }

    public function __call($method, $arguments)
    {
        return $this->proxyCurrentLocaleTranslation($method, $arguments);
    }
}


text:
myscripts
=========

BASH, python, scripts


text:
echo "downloading dbpedia spotlight ..."
wget http://spotlight.sztaki.hu/downloads/dbpedia-spotlight-latest.jar
wget http://spotlight.sztaki.hu/downloads/latest_models/en.tar.gz

tar xzf en.tar.gz
rm en.tar.gz
mkdir dbpedia-spotlight
mv en dbpedia-spotlight
mv dbpedia-spotlight-latest.jar dbpedia-spotlight
cd dbpedia-spotlight
# screen -S dbpedia-spotlight -dm java -Xmx6g -jar dbpedia-spotlight-latest.jar en http://localhost:2222/rest  # uncomment for running dbpedia spotlight server
cd ..

echo "installing python client for dbpedia spotlight..."
pip install pyspotlight

# Downloading Wikidata
cd datasets
echo "downloading wikidata dumps..."
mkdir wikidata ; cd wikidata

echo "download wikdata labels dump: wikidata-terms.nt.gz"
wget http://tools.wmflabs.org/wikidata-exports/rdf/exports/20160801/wikidata-terms.nt.gz
echo "download wikdata simple statements dump:  wikidata-simple-statements.nt.gz "
wget http://tools.wmflabs.org/wikidata-exports/rdf/exports/20160801/wikidata-simple-statements.nt.gz

echo "make csv file out of nt"
zcat  wikidata-simple-statements.nt.gz | sed -E 's/[<>\"]//g'| sed -E 's/@.+//g' | cut -d" " -f1-3 | sed -E 's/\s/\t/g' > wikidata-triples.csv

echo "creating a csv dictionary out of english dbpedia uris to wikidata same as links"
bzcat wikidatawiki-20150330-sameas-all-wikis.ttl.bz2 | grep "http://dbpedia.org" | awk '{ print $3 " " $1}'  | sed -e 's/wikidata\.dbpedia\.org\/resource/www.wikidata\.org\/entity/'  | sed -e 's/ /\t/' | sed -E 's/[<>\"]//g' > dbpedia-wikidata-sameas-dict.csv

cd ../..


text:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/fl_container"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/toolbar"/>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recy"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>


text:
namespace Mite
{
    /// <summary>
    /// Base class of all entities
    /// </summary>
    public class DomainObject
    {
        /// <summary>
        /// Gets or sets the id.
        /// </summary>
        /// <value>The id.</value>
        public int Id { set; get; }
    }
}


text:
'use strict';

// Setting up route
angular.module('core').config(['$stateProvider', '$urlRouterProvider',
	function($stateProvider, $urlRouterProvider) {
		// Redirect to home view when route not found
		$urlRouterProvider.otherwise('/');

		// Home state routing
		$stateProvider.
		state('home', {
			url: '/',
			templateUrl: 'modules/core/views/home.client.view.html'
		}).
		state('mission', {
			url: '/mission',
			templateUrl: 'modules/core/views/mission.client.view.html'
		}).
		state('about', {
			url: '/meet_team',
			templateUrl: 'modules/core/views/about.client.view.html'
		}).
		state('andela_network', {
			url: '/andela_network',
			templateUrl: 'modules/core/views/andela.network.client.view.html'
		}).
		state('skill_focus', {
			url: '/skill_focus',
			templateUrl: 'modules/core/views/skill_focus.client.view.html'
		}).
		state('timeline', {
			url: '/timeline',
			templateUrl: 'modules/core/views/timeline.client.view.html'
		}).
		state('selection', {
			url: '/selection',
			templateUrl: 'modules/core/views/selection.client.view.html'
		}).
		state('assessment', {
			url: '/assessment',
			templateUrl: 'modules/core/views/take_assessment.client.view.html'
		});
	}
]);


text:
#ifndef THEMISPP_MESSAGE_TEST_HPP
#define THEMISPP_MESSAGE_TEST_HPP

#include <common/sput.h>
#include <iostream>
#include <themispp/secure_keygen.hpp>
#include <themispp/secure_message.hpp>

namespace themispp {
    namespace secure_message_test {
        static std::string message1 = "this is test message1 for Secure Message test";
        static std::string message2 = "this is test message2 for Secure Message test";

        template <asym_algs alg_t_p>
        int secure_message_test_() {
            try {
                themispp::secure_key_pair_generator_t<alg_t_p> g;
                std::vector<uint8_t> private_key(g.get_priv());
                std::vector<uint8_t> public_key(g.get_pub());
                g.gen();
                std::vector<uint8_t> peer_private_key(g.get_priv());
                std::vector<uint8_t> peer_public_key(g.get_pub());
                g.gen();
                std::vector<uint8_t> intruder_private_key(g.get_priv());
                std::vector<uint8_t> intruder_public_key(g.get_pub());
                themispp::secure_message_t a(private_key, peer_public_key);
                themispp::secure_message_t b(peer_private_key, public_key);
                themispp::secure_message_t c(intruder_private_key, public_key);

                sput_fail_unless(private_key != peer_private_key, "generate two identical key pairs", __LINE__);
                std::vector<uint8_t> encrypted_message = a.encrypt(
                        std::vector<uint8_t>(message1.c_str(), message1.c_str() + message1.length()));
                std::vector<uint8_t> decrypted_message = b.decrypt(encrypted_message);
                sput_fail_unless(!message1.compare(std::string(decrypted_message.begin(), decrypted_message.end())),
                                 "decryption fail", __LINE__);
                try {
                    decrypted_message = c.decrypt(encrypted_message);
                    sput_fail_unless(false, "decryption fail", __LINE__);
                } catch (themispp::exception_t &e) {
                    sput_fail_unless(true, "decryption by intruder", __LINE__);
                }
            } catch (themispp::exception_t &e) {
                sput_fail_unless(false, e.what(), __LINE__);
            }
            return 0;
        }
        int secure_message_test_rsa() {
            return secure_message_test_<themispp::RSA>();
        }
        int secure_message_test_ec() {
            return secure_message_test_<themispp::EC>();
        }

        template <asym_algs alg_t_p>
        int secure_message_sign_verify_test() {
            try {
                themispp::secure_key_pair_generator_t<alg_t_p> g;
                std::vector<uint8_t> private_key(g.get_priv());
                std::vector<uint8_t> public_key(g.get_pub());
                g.gen();
                std::vector<uint8_t> peer_private_key(g.get_priv());
                std::vector<uint8_t> peer_public_key(g.get_pub());
                g.gen();
                std::vector<uint8_t> intruder_private_key(g.get_priv());
                std::vector<uint8_t> intruder_public_key(g.get_pub());
                themispp::secure_message_t a(private_key, peer_public_key);
                themispp::secure_message_t b(peer_private_key, public_key);
                themispp::secure_message_t c(intruder_private_key, public_key);

                sput_fail_unless(private_key != peer_private_key, "generate two identical key pairs", __LINE__);
                std::vector<uint8_t> a_signed_message = a.sign(
                        std::vector<uint8_t>(message1.c_str(), message1.c_str() + message1.length()));
                std::vector<uint8_t> verified_message = b.verify(a_signed_message);
                sput_fail_unless(!message1.compare(std::string(verified_message.begin(), verified_message.end())),
                                 "verification fail", __LINE__);
                // corrupt one byte
                a_signed_message[2]++;
                try {
                    verified_message = c.verify(a_signed_message);
                    sput_fail_unless(false, "verification fail", __LINE__);
                } catch (themispp::exception_t &e) {
                    sput_fail_unless(true, "verification by intruder", __LINE__);
                }
            } catch (themispp::exception_t &e) {
                sput_fail_unless(false, e.what(), __LINE__);
            }
            return 0;
        }

        int secure_message_sign_verify_test_rsa(){
            return secure_message_sign_verify_test<themispp::RSA>();
        }

        int secure_message_sign_verify_test_ec(){
            return secure_message_sign_verify_test<themispp::EC>();
        }

        void run_secure_message_test() {
            sput_enter_suite("ThemisPP secure message test");
            sput_run_test(secure_message_test_rsa, "secure_message_test_rsa", __FILE__);
            sput_run_test(secure_message_test_ec, "secure_message_test_ec", __FILE__);
            sput_run_test(secure_message_sign_verify_test_rsa, "secure_message_sign_verify_test_rsa", __FILE__);
            sput_run_test(secure_message_sign_verify_test_ec, "secure_message_sign_verify_test_ec", __FILE__);
        }
    }
}
#endif


text:
#ifndef __SDS_PRIVATE_H__
#define __SDS_PRIVATE_H__

/* SDS Header defines */
#define SDS_HEADER_ID_SHIFT			0
#define SDS_HEADER_ID_WIDTH			16
#define SDS_HEADER_ID_MASK			((1 << SDS_HEADER_ID_WIDTH) - 1)

#define SDS_HEADER_MINOR_VERSION_WIDTH		8
#define SDS_HEADER_MINOR_VERSION_SHIFT		16
#define SDS_HEADER_MAJOR_VERSION_WIDTH		8

#define MAKE_SDS_HEADER_VERSION(major, minor)	\
	(((((major) & 0xff) << SDS_HEADER_MINOR_VERSION_WIDTH) | ((minor) & 0xff)))
#define SDS_HEADER_VERSION_MASK			\
	((1 << (SDS_HEADER_MINOR_VERSION_WIDTH + SDS_HEADER_MAJOR_VERSION_WIDTH)) - 1)

#define SDS_HEADER_VERSION			MAKE_SDS_HEADER_VERSION(1, 0)
#define SDS_HEADER_STRUCT_SIZE_WIDTH		23
#define SDS_HEADER_STRUCT_SIZE_SHIFT		1
#define SDS_HEADER_STRUCT_SIZE_MASK		((1 << SDS_HEADER_STRUCT_SIZE_WIDTH) - 1)
#define SDS_HEADER_VALID_MASK			0x1
#define SDS_HEADER_VALID_SHIFT			0
#define SDS_HEADER_SIZE				0x8

/* Arbitrary, 16 bit value that indicates a valid SDS Memory Region */
#define SDS_REGION_SIGNATURE			0xAA7A
#define SDS_REGION_SIGNATURE_WIDTH		16
#define SDS_REGION_SIGNATURE_SHIFT		0
#define SDS_REGION_SIGNATURE_MASK		((1 << SDS_REGION_SIGNATURE_WIDTH) - 1)

#define SDS_REGION_STRUCT_COUNT_SHIFT		16
#define SDS_REGION_STRUCT_COUNT_WIDTH		8
#define SDS_REGION_STRUCT_COUNT_MASK		((1 << SDS_REGION_STRUCT_COUNT_WIDTH) - 1)

#define SDS_REGION_SCH_MINOR_SHIFT		24
#define SDS_REGION_SCH_MINOR_WIDTH		4
#define SDS_REGION_SCH_MINOR_MASK		((1 << SDS_REGION_SCH_MINOR_WIDTH) - 1)

#define SDS_REGION_SCH_MAJOR_SHIFT		28
#define SDS_REGION_SCH_MAJOR_WIDTH		4
#define SDS_REGION_SCH_MAJOR_MASK		((1 << SDS_REGION_SCH_MAJOR_WIDTH) - 1)

#define SDS_REGION_SCH_VERSION_MASK		\
	((1 << (SDS_REGION_SCH_MINOR_WIDTH + SDS_REGION_SCH_MAJOR_WIDTH)) - 1)

#define MAKE_SDS_REGION_SCH_VERSION(maj, min)	\
	((((maj) & SDS_REGION_SCH_MAJOR_MASK) << SDS_REGION_SCH_MINOR_WIDTH) |	\
	((min) & SDS_REGION_SCH_MINOR_MASK))

#define SDS_REGION_SCH_VERSION			MAKE_SDS_REGION_SCH_VERSION(1, 0)
#define SDS_REGION_REGIONSIZE_OFFSET		0x4
#define SDS_REGION_DESC_SIZE			0x8

#ifndef __ASSEMBLY__
#include <stddef.h>
#include <stdint.h>

/* Header containing Shared Data Structure metadata */
typedef struct structure_header {
	uint32_t reg[2];
} struct_header_t;

#define GET_SDS_HEADER_ID(header)			\
	((((struct_header_t *)(header))->reg[0]) & SDS_HEADER_ID_MASK)
#define GET_SDS_HEADER_VERSION(header)			\
	(((((struct_header_t *)(header))->reg[0]) >> SDS_HEADER_MINOR_VERSION_SHIFT)\
	& SDS_HEADER_VERSION_MASK)
#define GET_SDS_HEADER_STRUCT_SIZE(header)		\
	(((((struct_header_t *)(header))->reg[1]) >> SDS_HEADER_STRUCT_SIZE_SHIFT)\
	& SDS_HEADER_STRUCT_SIZE_MASK)
#define IS_SDS_HEADER_VALID(header)			\
	((((struct_header_t *)(header))->reg[1]) & SDS_HEADER_VALID_MASK)
#define GET_SDS_STRUCT_FIELD(header, field_offset)	\
	((((uint8_t *)(header)) + sizeof(struct_header_t)) + (field_offset))

/* Region Descriptor describing the SDS Memory Region */
typedef struct region_descriptor {
	uint32_t reg[2];
} region_desc_t;

#define IS_SDS_REGION_VALID(region)			\
	(((((region_desc_t *)(region))->reg[0]) & SDS_REGION_SIGNATURE_MASK) == SDS_REGION_SIGNATURE)
#define GET_SDS_REGION_STRUCTURE_COUNT(region)		\
	(((((region_desc_t *)(region))->reg[0]) >> SDS_REGION_STRUCT_COUNT_SHIFT)\
	& SDS_REGION_STRUCT_COUNT_MASK)
#define GET_SDS_REGION_SCHEMA_VERSION(region)		\
	(((((region_desc_t *)(region))->reg[0]) >> SDS_REGION_SCH_MINOR_SHIFT)\
	& SDS_REGION_SCH_VERSION_MASK)
#define GET_SDS_REGION_SIZE(region)		((((region_desc_t *)(region))->reg[1]))

#endif /* __ASSEMBLY__ */
#endif /* __SDS_PRIVATE_H__ */


text:
#import nltk   # natural language processing toolkit
from sqp_project.hyphenator import Hyphenator  # myspell hyphenator [TODO: implement Hunspell?]
import re
from django.conf import settings

hyphenation_file = {
'Bulgarian (Bulgaria)':'hyph_bg_BG',
'Catalan (Spain)':'hyph_ca_ES',
'Czech (Czech Republic)':'hyph_cs_CZ',
'Danish (Denmark)':'hyph_da_DK',
'Dutch (Netherlands)':'hyph_nl_NL',
'English (United Kingdom)':'hyph_en_GB',
'English (United States)':'hyph_en_US',
'English (Canada)':'hyph_en_CA',
'Estonian (Estonia)':'hyph_et_EE',
'Finnish (Finland)':'hyph_fi_FI',
'French (Belgium)':'hyph_fr_BE',
'French (France)':'hyph_fr_FR',
'Galician (Spain)':'hyph_gl_ES',
'German (Germany)':'hyph_de_DE',
'German (Switzerland)':'hyph_de_CH',
'Greek (Greece)':'hyph_el_GR',
'Hungarian (Hungary)':'hyph_hu_HU',
'Icelandic (Iceland)':'hyph_is_IS',
'Irish (Ireland)':'hyph_ga_IE',
'Italian (Italy)':'hyph_it_IT',
'Lithuanian (Lithuania)':'hyph_lt_LT',
'Norwegian Nynorsk (Norway)':'hyph_nn_NO',
'Norwegian Bokmal (Norway)':'hyph_nb_NO',
'Polish (Poland)':'hyph_pl_PL',
'Portuguese (Brasil)':'hyph_pt_BR',
'Portuguese (Portugal)':'hyph_pt_PT',
'Romanian (Romania)':'hyph_ro_RO',
'Russian (Russia)':'hyph_ru_RU',
'Slovak (Slovakia)':'hyph_sk_SK',
'Slovenian (Slovenia)':'hyph_sl_SI',
'Spanish (Spain)':'hyph_es_ES',
'Swedish (Sweden)':'hyph_sv_SE',
'Ukrainian (Ukraine)':'hyph_uk_UA'}

path = settings.HYPHENATION_DIR
hyphenation_keys = hyphenation_file.keys()
hyphenation_keys.sort()

re_sent = re.compile(r'[\.\?!]+')
re_sent_greek = re.compile(r'[\.\?;!]+')
re_punct = re.compile(r'[¡¿"«»\?,‐"";:⁄/‒–—―…\(\)\[\]\{\}\<\>·&*•†‡°\#%‰‱¶§~¨\|\.-]+')
re_alt = re.compile(r'[''`]+')
re_broken = re.compile(r'-\n')
re_break = re.compile(r'[\r\n]')
re_word = re.compile(r'[ \t]', re.UNICODE)

def not_empty(s):
    return(s != u'')

def sent_tokenize(phrase, lan=""):
    #print lan
    phrase = phrase.strip()
    if (lan != "ell"):
        sp = re_sent.split(phrase)
    else:  #Greek uses ; as a question mark...
        sp = re_sent_greek.split(phrase)
    sp = filter(not_empty, sp)
    return(sp)

def word_tokenize(sent):
    """
    >>> word_tokenize("On an average weekday, how much time, in total, do you \
                      spend watching television? Please use this card to answer.")
    ['On',
     'an',
     'average',
     'weekday',
     'how',
     'much',
     'time',
     'in',
     'total',
     'do',
     'you',
     'spend',
     'watching',
     'television',
     'Please',
     'use',
     'this',
     'card',
     'to',
     'answer']

    """
    sent = re_alt.sub(u"'", sent)   # Replace fancy single quotes with '.
    sent = re_broken.sub(u'', sent) # Unless a word has been bro-\nken,
    sent = re_break.sub(u' ', sent) #    replace line breaks with spaces.
    sent = re_punct.sub(u'', sent)  # Remove all punctuation except for '.
    words = re_word.split(sent)
    words = filter(not_empty, words)
    return(words)

def find_key(language):
    if (language not in hyphenation_keys):
        lan = language.split(" ")[0]
        for key in hyphenation_keys:
            if (key.find(lan)!=-1):
                return key
    return language

def get_hyphenator(language, country):
    hyph = "hyph_%s_%s" % (language.lower(), country.upper())
    try:
        h = Hyphenator(path + hyph + ".dic")
    except IOError:
        # If not found for this combination, try to find a file for the
        #  same language but different country
        alt_langs = [v for v in hyphenation_file.values() \
                 if v.startswith('hyph_%s' % language)]
        try:
            h = Hyphenator(path + alt_langs[0] + ".dic")
        except Exception, err : # if that does not work either
            raise Exception('Hyphenator returned an error %s' %  str(err))

    return h

def count_syllables(s, language="en", country='GB'):
    """Counts syllables using the nltk regexp word tokenizer
      and a hyphenation dictionary from Myspell.
      Note that hyphenation is not exactly the same as number
      of syllables in all languages (but close).
      Still a problem with apostrophes (they are incorrectly tokenized
      as words)."""
    #language = find_key(language)

    h = get_hyphenator(language, country)

    words = word_tokenize(s)
    # words = nltk.tokenize.regexp.WordTokenizer().tokenize(s)
    wordsize = [len(h.positions(w))+1 for w in words]
    # num_complex = sum([w>=3 for w in wordsize])    # number of "complex words"

    res = [h.inserted(w) for w in words]
    explained = ' '.join(res)

    return(sum(wordsize)), explained

def count_words(s):
    """Counts words using nltk tokenizer."""
    words = word_tokenize(s)
    return(len(words))

def count_sentences(s, lan=''):
    """Counts sentences."""
    #tok = nltk.tokenize.punkt.PunktSentenceTokenizer()
    sents = sent_tokenize(s, lan)
    res = sum([len(el)>0 for el in sents]) # don't count empty sentences
    return(res)

def show_syllables(s, language="en", country='GB'):
    """Same as count_syllables but puts inserts an n-dash at
       each hyphenation point."""
    h = get_hyphenator(language, country)
    words = word_tokenize(s)
    res = [h.inserted(w) for w in words]
    res = ' '.join(res)
    return(res)

cre = re.compile(r'[\n\r]+')
def count_lines(text):
    """Count the number of lines using the regular expression above
        don't count whitespace-only lines"""
    return len([line for line in cre.split(text) if line.strip()])


text:
"use strict";
(function () {

	var app = angular.module("appModule", ["ngRoute"]);

	app.config(function ($routeProvider) {
		$routeProvider
			.when("/main", {
				templateUrl: function () {
					return "/Views/main.html"
				},
      			controller: "mainController"
			})

			//
			// categories
			//
			.when("/category", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryController"
			})
			.when("/category/id/:categoryId", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryController"
			})
			.when("/category/children", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryChildrenController"
			})
			.when("/category/children/id/:categoryId", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryChildrenController"
			})
			.when("/category/related", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryRelatedController"
			})
			.when("/category/related/id/:categoryId", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryRelatedController"
			})
			.when("/category/series", {
				templateUrl: "/Views/Common/template.html",
				controller: "categorySeriesController"
			})
			.when("/category/series/id/:categoryId", {
				templateUrl: "/Views/Common/template.html",
				controller: "categorySeriesController"
			})
			.when("/category/tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryTagsController"
			})
			.when("/category/tags/id/:categoryId", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryTagsController"
			})
			.when("/category/related_tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryRelatedTagsController"
			})
			.when("/category/related_tags/id/:categoryId/tag_names/:tag_names", {
				templateUrl: "/Views/Common/template.html",
				controller: "categoryRelatedTagsController"
			})

			//
			// releases
			//
			.when("/releases", {
				templateUrl: "/Views/Common/template.html",
				controller: "releasesController"
			})
			.when("/releases/dates", {
				templateUrl: "/Views/Common/template.html",
				controller: "releasesDatesController"
			})
			.when("/release", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseController"
			})
			.when("/release/id/:releaseId", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseController"
			})
			.when("/release/dates", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseDatesController"
			})
			.when("/release/dates/id/:releaseId", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseDatesController"
			})
			.when("/release/series", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseSeriesController"
			})
			.when("/release/series/id/:releaseId", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseSeriesController"
			})
			.when("/release/sources", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseSourcesController"
			})
			.when("/release/sources/id/:releaseId", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseSourcesController"
			})
			.when("/release/tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseTagsController"
			})
			.when("/release/tags/id/:releaseId", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseTagsController"
			})
			.when("/release/related_tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseRelatedTagsController"
			})
			.when("/release/related_tags/id/:releaseId/tag_names/:tag_names", {
				templateUrl: "/Views/Common/template.html",
				controller: "releaseRelatedTagsController"
			})

			//
			// series
			//
			.when("/series", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesController"
			})
			.when("/series/id/:seriesId", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesController"
			})
			.when("/series/categories", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesCategoriesController"
			})
			.when("/series/categories/id/:seriesId", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesCategoriesController"
			})
			.when("/series/observations", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesObservationsController"
			})
			.when("/series/observations/id/:seriesId", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesObservationsController"
			})
			.when("/series/release", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesReleaseController"
			})
			.when("/series/release/id/:seriesId", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesReleaseController"
			})
			.when("/series/search", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesSearchController"
			})
			.when("/series/search/search_text/:search_text", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesSearchController"
			})
			.when("/series/search/tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesSearchTagsController"
			})
			.when("/series/search/tags/series_search_text/:series_search_text", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesSearchTagsController"
			})
			.when("/series/search/related_tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesSearchRelatedTagsController"
			})
			.when("/series/search/related_tags/series_search_text/:series_search_text/tag_names/:tag_names", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesSearchRelatedTagsController"
			})
			.when("/series/tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesTagsController"
			})
			.when("/series/tags/id/:seriesId", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesTagsController"
			})
			.when("/series/updates", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesUpdatesController"
			})
			.when("/series/vintagedates", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesVintageDatesController"
			})
			.when("/series/vintagedates/id/:seriesId", {
				templateUrl: "/Views/Common/template.html",
				controller: "seriesVintageDatesController"
			})

			//
			// sources
			//
			.when("/sources", {
				templateUrl: "/Views/Common/template.html",
				controller: "sourcesController"
			})
			.when("/source", {
				templateUrl: "/Views/Common/template.html",
				controller: "sourceController"
			})
			.when("/source/id/:sourceId", {
				templateUrl: "/Views/Common/template.html",
				controller: "sourceController"
			})
			.when("/source/releases", {
				templateUrl: "/Views/Common/template.html",
				controller: "sourceReleasesController"
			})
			.when("/source/releases/id/:sourceId", {
				templateUrl: "/Views/Common/template.html",
				controller: "sourceReleasesController"
			})

			//
			// tags
			//
			.when("/tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "tagsController"
			})
			.when("/related_tags", {
				templateUrl: "/Views/Common/template.html",
				controller: "relatedTagsController"
			})
			.when("/related_tags/tag_names/:tag_names", {
				templateUrl: "/Views/Common/template.html",
				controller: "relatedTagsController"
			})
			.when("/tags/series", {
				templateUrl: "/Views/Common/template.html",
				controller: "tagsSeriesController"
			})
			.when("/tags/series/tag_names/:tag_names", {
				templateUrl: "/Views/Common/template.html",
				controller: "tagsSeriesController"
			})

			//
			// default
			//
			.otherwise({
				redirectTo: "/main"
			})
	});

}());


text: body { padding-top: 5em; }


text:
import Node from '../core/Node.js';
import ConstNode from '../core/ConstNode.js';
import UVNode from '../accessors/UVNode.js';
import MathNode from '../math/MathNode.js';
import OperatorNode from '../math/OperatorNode.js';
import SplitNode from '../utils/SplitNode.js';
import JoinNode from '../utils/JoinNode.js';

class SpriteSheetUVNode extends Node {

	constructor( countNode, uvNode = new UVNode(), frameNode = new ConstNode( 0 ) ) {

		super( 'vec2' );

		this.countNode = countNode;
		this.uvNode = uvNode;
		this.frameNode = frameNode;

	}

	generate( builder ) {

		const count = this.countNode;
		const uv = this.uvNode;
		const frame = this.frameNode;

		const one = new ConstNode( 1 );

		const width = new SplitNode( count, 'x' );
		const height = new SplitNode( count, 'y' );

		const total = new OperatorNode( '*', width, height );

		const roundFrame = new MathNode( MathNode.FLOOR, new MathNode( MathNode.MOD, frame, total ) );

		const frameNum = new OperatorNode( '+', roundFrame, one );

		const cell = new MathNode( MathNode.MOD, roundFrame, width );
		const row = new MathNode( MathNode.CEIL, new OperatorNode( '/', frameNum, width ) );
		const rowInv = new OperatorNode( '-', height, row );

		const scale = new OperatorNode( '/', one, count );

		const uvFrameOffset = new JoinNode( [
			new OperatorNode( '*', cell, new SplitNode( scale, 'x' ) ),
			new OperatorNode( '*', rowInv, new SplitNode( scale, 'y' ) )
		] );

		const uvScale = new OperatorNode( '*', uv, scale );
		const uvFrame = new OperatorNode( '+', uvScale, uvFrameOffset );

		return uvFrame.build( builder, this.getNodeType( builder ) );

	}

}

export default SpriteSheetUVNode;


text:
package io.gravitee.am.gateway.handler.oauth2.service.token;

import io.gravitee.common.service.Service;

/**
 * @author Titouan COMPIEGNE (titouan.compiegne at graviteesource.com)
 * @author GraviteeSource Team
 */
public interface TokenManager extends Service {

    void storeAccessToken(io.gravitee.am.repository.oauth2.model.AccessToken accessToken);

    void storeRefreshToken(io.gravitee.am.repository.oauth2.model.RefreshToken refreshToken);
}


text:
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var Point       = require('./Point');
var LineSegment = require('./LineSegment');

/**
 * Represents an ellipse
 * @constructor
 *
 */
function Ellipse(center, Rx, Ry) {
  this.O  = new Point(center.x, center.y);

  this.Rx = parseFloat(Rx);
  this.Ry = parseFloat(Ry) || parseFloat(Rx);

  this.RxEndPoint = new Point(this.O.x, this.O.x + this.Rx);
  this.RyEndPoint = new Point(this.O.y, this.O.y + this.Ry);

  this.isCircle     = this.Rx === this.Ry;
  this.area         = Math.PI * this.Rx * this.Ry;
  this.isHorizontal = this.Rx > this.Ry;

  /** Returns perimeter of an ellipse */
  this.perimeter = function() {
    var perimeter;
    var _2PI = Math.PI * 2;
    var r1 = this.Rx, r2 = this.Ry;

    if (this.isCircle) {
      perimeter = _2PI * r1;
    } else {
      perimeter = _2PI * Math.sqrt((r1*r1 + r2*r2) / 2);
    }

    return perimeter;
  }

  /** Returns Point object at a given angle */
  this.pointAtAngle = function(angle) {
    var x, y, point;

    if (this.isCircle) {
      x = this.O.x + this.Rx * Math.cos(angle);
      y = this.O.y + this.Ry * Math.sin(angle);
    }

    return new Point(x, y);
  }

  return {
    center:       this.O,
    Rx:           new LineSegment(this.O, RxEndPoint),
    Ry:           new LineSegment(this.O, RyEndPoint),
    area:         this.area,
    perimeter:    this.perimeter(),
    isCircle:     this.isCircle,
    isHorizontal: this.isHorizontal,
    point:        this.pointAtAngle.bind(this),

    type: 'ellipse'
  }
}

module.exports = Ellipse;

},{"./LineSegment":2,"./Point":3}],2:[function(require,module,exports){
var Point = require('./Point');

/**
 * Represents a line segment
 * @constructor
 *
 * @param {Object} start - start point of a segment
 * @param {Object} end   - end point of a segment
 *
 * @property {number}  length       - line segment's length
 * @property {number}  slope        - line segment's slope
 * @property {boolean} isHorisontal - true if slope is 0
 * @property {boolean} isVertical   - true if slope is undefined
 * @property {boolean} isDownwards  - true if slope is negative
 * @property {boolean} isUpwards    - true if slope is positive
 * @property {Point}  start         - segment's start point
 * @property {Point}  end           - segment's end point
 * @property {string}  type         - type of primitive

 * @returns {LineSegment} line segment's info
 */
function LineSegment(start, end) {
  this.start = start.x < end.x ? start : end;
  this.end   = start.x < end.x ? end : start;

  this.dx = parseFloat(end.x) - parseFloat(start.x);
  this.dy = parseFloat(end.y) - parseFloat(start.y);

  this.horizontal = this.dy === 0;
  this.vertical   = this.dx === 0;
  this.downwards  = start.y > end.y;

  /** Returns length of a segment */
  this.length = function(){
    if (this.vertical)   return Math.abs(this.dy);
    if (this.horizontal) return Math.abs(this.dx);

    let a = this.dx * this.dx;
    let b = this.dy * this.dy;

    return Math.sqrt(a + b);
  }

  /** Returns slope of a segment */
  this.slope = function(){
    if (this.vertical) {
      return undefined;
    } else if (this.horizontal) {
      return 0;
    } else {
      return this.dy/this.dx
    }
  }

  return {
    length:       this.length(),
    slope:        this.slope(),
    isHorizontal: this.horizontal,
    isVertical:   this.vertical,
    isDownwards:  this.downwards,
    isUpwards:    !this.downwards,
    start:        new Point(this.start.x, this.start.y),
    end:          new Point(this.end.x, this.end.y),

    type: 'lineSegment'
  }
}

module.exports = LineSegment;

},{"./Point":3}],3:[function(require,module,exports){
/**
 * Represents a Point
 * @constructor
 *
 * @param {int} x - x-coordinate
 * @param {int} y - y-coordinate
 *
 * @property {number}  x - x-coordinate
 * @property {number}  y - y-coordinate
 * @property {string}  type - type of primitive
 *
 * @example
 * // returns {x: 3, y: 10, type: 'point'}
 * let A = Thales.Point(5, 10);
 *
 * @returns {Point} Point info
 */
function Point(x, y) {
  return {
    x: parseFloat(x),
    y: parseFloat(y),

    type: 'point'
  }
}

module.exports = Point;

},{}],4:[function(require,module,exports){
var Point       = require('./Point');
var LineSegment = require('./LineSegment');
var Ellipse     = require('./Ellipse')

/**
 * Thales library
 * @constructor
 * @property {Point} Point - creates new Point
 * @property {LineSegment} LineSegment - creates new line segment
 * @property {Ellipse} Ellipse - creates new ellipse
 */
var Thales = function() {
  this.Point       = Point;
  this.LineSegment = LineSegment;
  this.Ellipse     = Ellipse;
}

module.exports = Thales;

},{"./Ellipse":1,"./LineSegment":2,"./Point":3}],5:[function(require,module,exports){
var Thales = require('./index');
window.Thales = new Thales();

},{"./index":4}]},{},[5]);


text:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>mne.decoding.EMS — MNE 0.21.2 documentation</title>
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
    <link rel="stylesheet" type="text/css" href="../_static/graphviz.css" />
    <link rel="stylesheet" type="text/css" href="../_static/bootstrap_divs.css" />
    <link rel="stylesheet" type="text/css" href="../_static/gallery.css" />
    <link rel="stylesheet" type="text/css" href="../_static/gallery-binder.css" />
    <link rel="stylesheet" type="text/css" href="../_static/gallery-dataframe.css" />
    <link rel="stylesheet" type="text/css" href="../_static/gallery-rendered-html.css" />

    <link rel="shortcut icon" href="../_static/favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />

    <link rel="canonical" href="https://mne.tools/stable/index.html" />

    <link rel="stylesheet" href="../_static/style.css " type="text/css" />
    <link rel="stylesheet" href="../_static/font-awesome.css" type="text/css" />
    <link rel="stylesheet" href="../_static/font-source-code-pro.css" type="text/css" />
    <link rel="stylesheet" href="../_static/font-source-sans-pro.css" type="text/css" />
    <link rel="stylesheet" href="../_static/flag-icon.css" type="text/css" />

<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">

        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">

        </button>

        0.21.2

Install

Overview

Tutorials

Examples

Glossary

API

              More

 GitHub

 Get help

 Contribute

 Cite MNE

              <button type="button" class="btn btn-primary btn-sm navbar-btn dropdown-toggle" id="dLabelMore" data-toggle="dropdown" style="margin-left: 10px">
              v0.21.2

            </button>

Development

v0.21 (stable)

v0.20

v0.19

v0.18

v0.17

v0.16

v0.15

v0.14

v0.13

v0.12

v0.11

<form class="navbar-form navbar-right" action="../search.html" method="get">

  <input type="text" name="q" class="form-control" placeholder="Search" />

  <input type="hidden" name="check_keywords" value="yes" />
  <input type="hidden" name="area" value="default" />
</form>

mne.decoding.EMS¶

class mne.decoding.EMS[source]¶

Transformer to compute event-matched spatial filters.

This version of EMS [1] operates on the entire time course. No time
window needs to be specified. The result is a spatial filter at each
time point and a corresponding time course. Intuitively, the result
gives the similarity between the filter at each time point and the
data vector (sensors) at that time point.

Note

EMS only works for binary classification.

References

1

Aaron Schurger, Sebastien Marti, and Stanislas Dehaene, "Reducing
multi-sensor data to a single time course that reveals experimental
effects", BMC Neuroscience 2013, 14:122

Attributes

filters_ndarray, shape (n_channels, n_times)

The set of spatial filters.

classes_ndarray, shape (n_classes,)

The target classes.

Methods

<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>

__hash__(/)

Return hash(self).

fit(X, y)

Fit the spatial filters.

fit_transform(X[, y])

Fit to data, then transform it.

get_params([deep])

Get the estimator params.

set_params(**params)

Set parameters (mimics sklearn API).

transform(X)

Transform the data by the spatial filters.

fit(X, y)[source]¶

Fit the spatial filters.

Parameters

Xarray, shape (n_epochs, n_channels, n_times)

The training data.

yarray of int, shape (n_epochs)

The target classes.

Returns

selfinstance of EMS

Returns self.

Examples using fit:

Compute effect-matched-spatial filtering (EMS)¶

fit_transform(X, y=None, **fit_params)[source]¶

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_params
and returns a transformed version of X.

Parameters

Xarray, shape (n_samples, n_features)

Training set.

yarray, shape (n_samples,)

Target values.

**fit_paramsdict

Additional fitting parameters passed to self.fit.

Returns

X_newarray, shape (n_samples, n_features_new)

Transformed array.

get_params(deep=True)[source]¶

Get the estimator params.

Parameters

deepbool

Deep.

set_params(**params)[source]¶

Set parameters (mimics sklearn API).

Parameters

**paramsdict

Extra parameters.

Returns

instobject

The instance.

transform(X)[source]¶

Transform the data by the spatial filters.

Parameters

Xarray, shape (n_epochs, n_channels, n_times)

The input data.

Returns

Xarray, shape (n_epochs, n_times)

The input data transformed by the spatial filters.

Examples using transform:

Compute effect-matched-spatial filtering (EMS)¶

Examples using mne.decoding.EMS¶

Compute effect-matched-spatial filtering (EMS)¶

Decoding (MVPA)¶

© Copyright 2012-2020, MNE Developers. Last updated on 2020-03-27.


text:
if (Convert.ToInt32(_TextValMin.Text) != Convert.ToInt32(_TextValPalite.Text) && Convert.ToInt32(_TextValMax.Text) != Convert.ToInt32(_TextValPalite.Text))

//https://pt.stackoverflow.com/q/129681/101


text:
namespace Kamishibai.Wpf.MaterialDesignThemes.Demo
{
    public class UserDialogViewModel : ViewModelBase
    {
        private string _message;

        public string Message
        {
            get => _message;
            set
            {
                _message = value;
                OnPropertyChanged();
            }
        }
    }
}


text:
1. Parses blockchain transactions for embedded data keys
1. Fetches the access-rights files (for non-public files) from a Tradle keeper
1. Fetches the public/shared object bodies from a Tradle keeper
1. Returns all collected data and metadata, both in its original (encrypted), and decrypted form.

## Usage

```js
var Loader = require('chainloader')
var loader = new Loader({
  prefix: 'tradle',
  networkName: 'testnet',
  keeper: keeper, // see tradle/bitkeeper-js
  lookup: identityLookupFn
})

// bitcoin.Transaction, or array of them (bitcoinjs-lib)
loader.load(tx)
  .then(function (chainedObj) {
  // chainedObj has
  // 1. metadata about the chained object,
  // 2. the associated permission file (if any)
  // 3. the chained object
  //
  // all together it looks like:
  //    {
  //      encryptedKey: Buffer, // encrypted DHT key of the file
  //      key: String,          // decrypted DHT key of the file
  //      data: Buffer,         // serialized object data
  //      from: Object,         // result from identityLookupFn
  //      to: Object,           // result from identityLookupFn
  //      tx: bitcoin.Transaction, // see bitcoinjs-lib
  //      txId: String,
  //      txType: TxData.types[type], // see tradle/tx-data
  //      txData: Buffer, // data embedded in the tx
  //      addressesFrom: Array,
  //      addressesTo: Array,
  //      // if it's a shared file:
  //      permission: Permission, // see tradle/permission
  //      encryptedPermission: Buffer,
  //      sharedKey: Buffer, // shared key (ECC) of bitcoin tx participants
  //      permissionKey: String, // the DHT key of the permission file
  //      encryptedData: Buffer, // encrypted object data
  //    }
  })

// to be implemented by you, see tests for an example
// or you can use tradle/tim which does the whole shebang
function identityLookupFn (fingerprint, cb) {
  // ...
  cb(null, {
    identity: identity,
    key: key
  })
}
```


text:
<?php
namespace DocMark\System;

use \Symfony\Component\HttpFoundation\Request;
use \Symfony\Component\Finder\Finder;

class DocMark
{
    /**
     * holds all the configuration settings
     *
     * @access public
     */
    public $config = array();

    /**
     * hold the request object
     *
     * @access public
     */
    public $request = null;

    /**
     * The url we are loading
     *
     * @access public
     */
    public $url = '/';

    /**
     * start up the system, load configs etc...
     *
     * @access public
     */
    public function __construct()
    {
        // load up the configuration
        $this->loadConfig();

        // load up the request
        $this->request = Request::createFromGlobals();
    }

    /**
     * load up the config and set to the config property
     *
     * @access protected
     */
    protected function loadConfig()
    {
        $path = ROOT . 'System' . DS . 'Config.php';

        if (file_exists($path) && is_readable($path)) {

            require_once($path);

            $this->config = $config;
        } else {

            die('Fatal Error: The config could not be loaded');
        }
    }

    /**
     * process the request so we can work out
     * what view we need to process and serve
     *
     * @access public
     * @return object   DocMark\System\View Object
     */
    public function process()
    {
        $query = $this->request->query->keys();

        // setup the root for all the doc files
        $docRoot = ROOT . $this->config['docs']['root'];

        if (isset($query['0']) && ! empty($query['0'])) {

            $this->url = $query['0'] = rtrim($query['0'], '/');
            $query['0'] = ltrim($query['0'], '/');
            $queryBits = explode('/', $query['0']);

        } else {

            // homepage
            $queryBits = array();
            $isHome = true;
        }

        $path = $this->findFile($queryBits, $docRoot);

        // set the template engine and set fallback theme
        $templates = new \League\Plates\Engine(ROOT . 'themes' . DS . 'fallback');

        // set the defined user theme
        if (
            file_exists(ROOT . 'themes' . DS . $this->config['themeName']) &&
            is_dir(ROOT . 'themes' . DS . $this->config['themeName'])
        ) {

            $templates->addFolder(
                $this->config['themeName'],
                ROOT . 'themes' . DS . $this->config['themeName'],
                true
            );
        }

        // set the path to the assets to run through plates
        $templates->loadExtension(
            new \Snscripts\AdvancedAssets\Assets(
                ROOT,
                new \Symfony\Component\Filesystem\Filesystem
            )
        );

        // load the converter
        $converter = new \Michelf\MarkdownExtra();

        if ($path !== false && isset($isHome) && $isHome) {

            return new \DocMark\System\View\Home($this, $converter, $templates, $path);

        } elseif ($path !== false && (! isset($isHome) || $isHome === false)) {

            return new \DocMark\System\View\Page($this, $converter, $templates, $path);

        } else {

            return new \DocMark\System\View\Error($this, $converter, $templates, $path);
        }
    }

    /**
     * loop the query bits to try and find the path
     *
     * @param  array     Current array of query bits
     * @param  string    File path
     * @return string    Path to the file to load
     */
    protected function findFile($queryBits, $path)
    {
        if (! empty($queryBits)) {

            // make sure the path has a trailing slash
            $path = (string) \Stringy\Stringy::create($path, 'UTF-8')->ensureRight('/');

            // get the next bit to find
            $bitName = array_shift($queryBits);

            // set the directory
            $finder = new Finder();
            $dirList = $finder->in($path)->depth('==0')->name('*' . $bitName . '*');

            if ($dirList->count() > 0) {

                foreach ($dirList as $item) {

                    $filename = $item->getFilename();
                    $path .= $filename;
                    break;
                }

                $path = $this->findFile($queryBits, $path);

                return $path;
            }

        } else {

            // we have no bits left.
            // check the path we have if it's valid
            $splFile = new \SplFileInfo($path);

            if ($splFile->isFile()) {

                return $path;

            } elseif ($splFile->isDir()) {

                // we're in a directory, check for an index.md file
                $finder = new Finder();
                $finder->in($path)->name('index.md')->depth('==0');

                if ($finder->count() == 1) {

                    // make sure the path has a trailing slash
                    $path = (string) \Stringy\Stringy::create($path, 'UTF-8')->ensureRight('/');
                    $path .= 'index.md';

                    return $path;
                }
            }
        }

        // if we're here, something went wrong
        // return false
        return false;
    }
}