diff options
| author | Andrew <saintruler@gmail.com> | 2020-04-15 15:02:38 +0400 |
|---|---|---|
| committer | Andrew <saintruler@gmail.com> | 2020-04-15 15:02:38 +0400 |
| commit | 693d8b180c690601ce44d640352b0d44151edb76 (patch) | |
| tree | 65c8f3836e6fe7fa23b8a85770fc43cd2cd16288 /asvt | |
| parent | 25f4267e827b0e61c36e43d5c064f6cf381f6134 (diff) | |
* Добавил исходники из лабораторных работ по асвт
* Переместил документы по асвт в отдельную директорию
Diffstat (limited to 'asvt')
63 files changed, 5327 insertions, 0 deletions
diff --git a/asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex b/asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex new file mode 100644 index 0000000..278d636 --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/23_structure_of_cpu.tex @@ -0,0 +1,499 @@ +\documentclass[bachelor, och, referat]{SCWorks} +% параметр - тип обучения - одно из значений: +% spec - специальность +% bachelor - бакалавриат (по умолчанию) +% master - магистратура +% параметр - форма обучения - одно из значений: +% och - очное (по умолчанию) +% zaoch - заочное +% параметр - тип работы - одно из значений: +% referat - реферат +% coursework - курсовая работа (по умолчанию) +% diploma - дипломная работа +% pract - отчет по практике +% параметр - включение шрифта +% times - включение шрифта Times New Roman (если установлен) +% по умолчанию выключен + +\usepackage{subfigure} +\usepackage{tikz,pgfplots} +\pgfplotsset{compat=1.5} +\usepackage{float} + +%\usepackage{titlesec} +\setcounter{secnumdepth}{4} +%\titleformat{\paragraph} +%{\normalfont\normalsize}{\theparagraph}{1em}{} +%\titlespacing*{\paragraph} +%{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\paragraph}[block] +{\hspace{1.25cm}\normalfont} +{\theparagraph}{1ex}{} +\titlespacing{\paragraph} +{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} + +% --------------------------------------------------------------------------% + + +\usepackage[T2A]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{tempora} + +\usepackage[sort,compress]{cite} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsthm} +\usepackage{fancyvrb} +\usepackage{listings} +\usepackage{listingsutf8} +\usepackage{longtable} +\usepackage{array} +\usepackage[english,russian]{babel} + +\usepackage[colorlinks=true]{hyperref} +\usepackage{url} + + +\newcommand{\eqdef}{\stackrel {\rm def}{=}} + +\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}} + +\newtheorem{lem}{Лемма} + +\begin{document} + +% Кафедра (в родительном падеже) +\chair{} + +% Тема работы +\title{Общая структура центрального процессора} + +% Курс +\course{1} + +% Группа +\group{131} + +% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ") +\department{факультета КНиИТ} + +% Специальность/направление код - наименование +%\napravlenie{09.03.04 "--- Программная инженерия} +%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем} +%\napravlenie{230100 "--- Информатика и вычислительная техника} +%\napravlenie{231000 "--- Программная инженерия} +\napravlenie{090301 "--- Компьютерная безопасность} + +% Для студентки. Для работы студента следующая команда не нужна. +% \studenttitle{Студентки} + +% Фамилия, имя, отчество в родительном падеже +\author{Гущина Андрея Юрьевича} + +% Заведующий кафедрой +% \chtitle{} % степень, звание +% \chname{} + +%Научный руководитель (для реферата преподаватель проверяющий работу) +\satitle{доцент} %должность, степень, звание +\saname{О.В. Мещерякова} + +% Руководитель практики от организации (только для практики, +% для остальных типов работ не используется) +% \patitle{к.ф.-м.н.} +% \paname{С.~В.~Миронов} + +% Семестр (только для практики, для остальных +% типов работ не используется) +%\term{8} + +% Наименование практики (только для практики, для остальных +% типов работ не используется) +%\practtype{преддипломная} + +% Продолжительность практики (количество недель) (только для практики, +% для остальных типов работ не используется) +%\duration{4} + +% Даты начала и окончания практики (только для практики, для остальных +% типов работ не используется) +%\practStart{30.04.2019} +%\practFinish{27.05.2019} + +% Год выполнения отчета +\date{2020} + +\maketitle + +% Включение нумерации рисунков, формул и таблиц по разделам +% (по умолчанию - нумерация сквозная) +% (допускается оба вида нумерации) +\secNumbering + + +\tableofcontents + +% Раздел "Обозначения и сокращения". Может отсутствовать в работе + + +% Раздел "Определения". Может отсутствовать в работе +%\definitions + +% Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе. +% Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения" +% \defabbr + +% Раздел "Введение" +% \intro +\section{Общая структура центрального процессора} +\subsection{Процессор} +Центральный процессор -- это мозг компьтера. Его задача -- выполнять программы, +находящиеся в основной памяти. Для этого он вызывает команды из памяти, определяет +их тип, а затем выполняет одну за другой. Компоненты соединены \textbf{шиной}, +представляющей собой набор параллельно связанных проводов для передачи адресов, +данных и управляющих сигналов. Шины могут быть внешними (связывающими процессор с +памятью и устройствами ввода-вывода) и внутренними. Современный компьютер использует +несколько шин. На рисунке \ref{fig:onecpu_comp} изображёна схема компьютера с одним +процессором и двумя устройствами ввода-вывода. + +\begin{figure}[H] + \centering + \includegraphics{image008.jpg} + \caption{Схема однопроцессорной системы} + \label{fig:onecpu_comp} +\end{figure} + +Процессор состоит из нескольких частей. Блок управления отвечает за вызов команд +из памяти и определение их типа. Арифметико-логическое устройство выполняет +арифметические операции (например, сложение) и логические операции (например, +логическое И). + +\subsection{Устройство центрального процессора} +Внутреннее устройство тракта данных типичного фон неймановского процессора +иллюстрирует рисунок \ref{fig:data-tract}. Тракт данных состоит из регистров +(обычно от 1 до 32), арифметико-логического устройства (АЛУ) и нескольких +соединительных шин. Содержимое регистров поступает во входные регистры АЛУ, +которые на рисунке \ref{fig:data-tract} обозначены буквами А и В. В них +находятся входные данные АЛУ, пока АЛУ производит вычисления. + +АЛУ выполняет сложение, вычитание и другие простые операции над входными данными +и помещает результат в выходной регистр. Содержимое этого выходного регистра +может записываться обратно в один из регистров или сохранятся в памяти, если +это необходимо. Рисунок \ref{fig:data-tract} иллюстрирует операцию сложения. +Отметим, что входные и выходные регистры есть не у всех компьютеров. + +Большинство команд можно разделить на две группы: типа регистр-память и типа +регистр-регистр. Команды первого типа вызывают слова из памяти, помещают их +в регистры, где они используются в качестве входных данных АЛУ +(слова -- это такие элементы данных, которые перемещаются между памятью и +регистрами). Словом может быть целое число. Другие команды этого типа +помещают регистры обратно в память. + +Команды второго типа вызывают два операнда из регистров, помещают их во +входные регистры АЛУ, выполняют над ними какую-нибудь арифметическую или +логическую операцию и переносят результат обратно в один из регистров. + +Этот процесс называется циклом тракта данных. В какой-то степени он +определяет, что может делать машина. Чем быстрее происходит цикл тракта +данных, тем быстрее компьютер работает. + +\begin{figure}[H] + \centering + \includegraphics{tract_data.png} + \caption{Тракт данных обычной фон-неймановской машины} + \label{fig:data-tract} +\end{figure} + +\subsection{Устройство управления} +\textbf{Устройство управления} процессором -- блок, устройство, компонент +аппаратного обеспечения компьютеров. Представляет собой конечный дискретный автомат. +Структурно устройство управления состоит из: +\begin{itemize} + \item + Блок генерации адресов инструкций. Он содержит в себе регистр + программного счётчика (program counter или instruction pointer), + хранящий адрес считываемой из памяти инструкции, и модифицирующийся + после выборки каждой инструкции. + \item + Блок выборки инструкции, обеспечивающий считывание программ из памяти + через устройство ввода-вывода. Он получает на вход адрес с блока генерации + адреса инструкции, передаёт его на УВВ, получает с него данные по + переданному адресу, и выдаёт на блок декодирования интсрукций. + \item + Блок декодирования инструкций, производящий преобразование кодов инструкций в + последовательность кодов функций, передаваемые на исполнительные устройства. + \item + Блок переходов. Получает функциональные коды переходов и ветвлений, признаки + результатов операций с функциональных устройств, проверяет истинность условия + перехода, и передаёт сигнал на изменение программного счётчика. + \item + Блок обработки исключений. Принимает извне сигналы исключительных ситуаций + (прерывания, ошибки узлов микропроцессора, нарушение привилегий, + команды-ловушки и пр.) и передаёт сигнал на переход по вектору исключения + в случае обнаружения. +\end{itemize} + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{control_unit_block.png} + \caption{Обобщенная блок-схема устройства управления} + \label{} +\end{figure} + +\subsection{Арифметико-логическое устройство} +\textbf{Арифметико-логическое устройство} -- блок процессора, который под +управлением устройства управления (УУ) служит для выполнения арифметических +и логических преобразований (начиная от элементарных) над данными, называемыми +в этом случае операндами. Разрядность операндов обычно называют размером +или длиной машинного слова. + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{alu_block.png} + \caption{Обобщенная блок-схема арифметико-логического устройства} + \label{} +\end{figure} + +Одноразрядное двоичное бинарное (двухоперандное) АЛУ с бинарным +(двухразрядным) выходом может выполнять до +${\displaystyle 2^{(2^{2})*2}=2^{8}=256}$ двоичных бинарных +(двухоперандных) функций (операций) с бинарным (двухразрядным) выходом. + +По способу действия над операндами АЛУ делят на: +\begin{enumerate} + \item + Параллельные -- операнды представляются параллельным кодом и + операции совершаются одновременно над всеми разрядами операндов. + \item + Последовательные -- операции над операндами производятся последовательно + во времени над их отдельными разрядами. +\end{enumerate} + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{alu.png} + \caption{Схема арифметико-логического устройства (АЛУ) К155ИП3} + \label{} +\end{figure} + +\subsection{Регистры процессора} +Внутри центрального процессора находится быстрая память небольшого объёма для +хранения промежуточных результатов и некоторых команд управления. Эта память +состоит из нескольких регистров, каждый из которых выполняет определённую +функцию. Обычно размер всех регистров одинаков. Каждый регистр содержит +одно число в диапазоне, верхняя граница которого зависит от размера регистра. +Операции чтения и записи с регистрами выполняются очень быстро, поскольку они +находятся внутри центрального процессора. + +Самый важный регистр -- \textbf{счётчик команд}, который указывает, какую +команду нужно выполнить следующей. Название ``счётчик команд'' выбрано неудачно, +посколько он ничего не \textit{считает}, но этот термин употребляется повсеместно. +Также есть \textbf{регистр команд}, в котором находится выполняемая в данный момент +команда. У большинства компьютеров имеются и другие регистры, одни из них +многофункциональны, другие служат каким-либо определённым целям. Третьи регистры +используются операционной системой для управления компьютером. + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{registers_x86.png} + \caption{Регистры x86-совместимого процессора} + \label{} +\end{figure} + +\subsection{Выполнение команд} +Центарльный процессор выполняет каждую команду за несколько шагов. +Он делает следующее: + +\begin{enumerate} + \item Вызывает следующую команду из памяти и переносит её в регистр команд. + \item + Меняет положение счётчика команд, который после этого/ + указывает на следующую команду. + \item Определяет тип вызванной команды. + \item Если команда использует слово из памяти, определяет, где находится это слово. + \item Переносит слово, если это необходимо, в регистр центрального процессора. + \item Выполняет команду. + \item Переходит к шагу 1, чтобы начать выполнение следующей команды. +\end{enumerate} + +Такая последовательность шагов +(\textbf{выборка} -- \textbf{декодирование} -- \textbf{исполнение}) +является основой работы всех компьютеров. + +\subsection{Интерпретаторы} +Написание программ-интерпретаторов, которые имитируют работу процессора, +широко используется при разработке компьютерных систем. После того как +разработчики выбрали машинный язык (Я) для нового компьютера, они должны +решить, строить ли им процессор, который будет выполнять программы на +языке Я, или написать специальную программу для интерпретации программ +на языке Я. Если они решают написать интерпретатор, они должны создать +аппаратное обеспечение для выполнения этого интерпретатора. Возможны +также гибридные конструкции, когда часть команд выполняется аппаратным +обеспечением, а часть интерпретируется. + +Интерпретатор разбивает команды на маленькие шаги. Таким образом, машина +с интерпретатором может быть гораздо проще по строению и дешевле, чем +процессор, выполняющий программы без интерпретации. Такая экономия +особенно важна, если компьютер содержит большое количество сложных команд +с различными опциями. В сущности, экономия проистекает из самой замены +аппаратного обеспечения программным обеспечением (интерпретатором). + +Первые компьютеры содержали небольшое количество команд, и эти команды +были простыми. Но поиски более мощных компьютеров привели, кроме всего +прочего, к появлению более сложных команд. Вскоре разработчики поняли, +что при наличии сложных команд программы выполняются быстрее, хотя +выполнение отдельных команд занимает больше времени. +(В качестве примеров сложных команд можно назвать выполнение операций +с плавающей точкой, обеспечение прямого доступа к элементам массива и т.п.) +Если обнаруживалось, что две определенные команды часто выполнялись +последовательно одна за другой, то вводилась новая команда, заменяющая +работу этих двух. + +\begin{figure}[H] + \centering + \includegraphics{ibm_701.jpg} + \caption{IBM-710 -- Один из первых компьютеров} + \label{} +\end{figure} + +Сложные команды были лучше, потому что некоторые операции иногда +перекрывались. Какие-то операции могли выполняться параллельно, +для этого использовались разные части аппаратного обеспечения. +Для дорогих компьютеров с высокой производительностью стоимость этого +дополнительного аппаратного обеспечения была вполне оправданна. +Таким образом, у дорогих компьютеров было гораздо больше команд, +чем у дешевых. Однако развитие программного обеспечения и требования +совместимости команд привели к тому, что сложные команды стали использоваться +и в дешевых компьютерах, хотя там во главу угла ставилась стоимость, а не +скорость работы. + +К концу 50-х годов компания IBM, которая лидировала тогда на компьютерном +рынке, решила, что производство семейства компьютеров, каждый из которых +выполняет одни и те же команды, имеет много преимуществ и для самой компании, +и для покупателей. Чтобы описать этот уровень совместимости, компания IBM +ввела термин \textbf{архитектура}. Новое семейство компьютеров должно +было иметь одну общую архитектуру и много разных разработок, различающихся по +цене и скорости, которые могли выполнять одну и ту же программу. Но как +построить дешевый компьютер, который будет выполнять все сложные команды, +предназначенные для высокоэффективных дорогостоящих машин? + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{IBM_S360.jpg} + \caption{IBM System/360} + \label{} +\end{figure} + +Решением этой проблемы стала интерпретация. Эта технология, впервые предложенная +Уилксом в 1951 году, позволяла разрабатывать простые дешевые компьютеры, которые, +тем не менее, могли выполнять большое количество команд. В результате IBM создала +архитектуру System/360, семейство совместимых компьютеров, различных по цене и +производительности. Аппаратное обеспечение без интерпретации использовалось только +в самых дорогих моделях. + +\subsection{RISC и CISC} +В конце 70-х годов проводилось много экспериментов с очень сложными командами, +появление которых стало возможным благодаря интерпретации. Разработчики +пытались уменьшить пропасть между тем, что компьютеры способны делать, и тем, +что требуют языки высокого уровня. Едва ли кто-нибудь тогда думал о разработке +более простых машин, так же как сейчас мало кто занимается разработкой менее +мощных операционных систем, сетей, редакторов и т. д. (к несчастью). + +В компании IBM группа разработчиков во главе с Джоном Коком противостояла +этой тенденции; они попытались воплотить идеи Сеймура Крея, создав экспериментальный +высокоэффективный мини-компьютер 801. Хотя IBM не занималась сбытом этой машины, +а результаты эксперимента были опубликованы только через несколько лет, весть быстро +разнеслась по свету, и другие производители тоже занялись разработкой подобных +архитектур. + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{ibm801.jpg} + \caption{IBM-801} + \label{} +\end{figure} + +В 1980 году группа разработчиков в университете Беркли во главе с +Дэвидом Паттерсоном и Карло Секвином начала разработку процессоров VLSI без +использования интерпретации. Для обозначения этого понятия они придумали термин +RISC и назвали новый процессор RISC I, вслед за которым вскоре был выпущен RISC II. +Немного позже, в 1981 году, Джон Хеннеси в Стенфорде разработал и выпустил другую +микросхему, которую он назвал MIPS. Эти две микросхемы развились в коммерчески +важные продукты SPARC и MIPS соответственно. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\textwidth]{risc_2.jpg} + \caption{Чип RISC II} + \label{} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{mips.jpg} + \caption{Чип MIPS} + \label{} +\end{figure} + + + +В то время как разрабатывались эти простые процессоры, всеобщее внимание привлекало +относительно небольшое количество команд (обычно их было около 50). +Для сравнения: число команд в DEC VAX и больших IBM в то время составляло от 200 +до 300. RISC -- это сокращение от Reduced Instruction Set Computer -- компьютер +с сокращенным набором команд. RISC противопоставлялся CISC +(Complex Instruction Set Computer -- компьютер с полным набором команд). +В качестве примера CISC можно привести VAX, который доминировал в то время в +научных компьютерных центрах. На сегодняшний день мало кто считает, что главное +различие RISC и CISC состоит в количестве команд, но название сохраняется до сих пор. + +С этого момента началась грандиозная идеологическая война между сторонниками +RISC и разработчиками VAX, Intel и больших IBM. По их мнению, наилучший +способ разработки компьютеров -- включение туда небольшого количества +простых команд, каждая из которых выполняется за один цикл тракта данных, +то есть берет два регистра, производит над ними какую-либо арифметическую или +логическую операцию и помещает результат обратно в регистр. В качестве аргумента +они утверждали, что даже если RISC должна выполнять 4 или 5 команд вместо одной, +которую выполняет CISC, притом что команды RISC выполняются в 10 раз быстрее +(поскольку они не интерпретируются), он выигрывает в скорости. Следует +также отметить, что к этому времени скорость работы основной памяти приблизилась +к скорости специальных управляющих постоянных запоминающих устройств, потому +недостатки интерпретации были налицо, что повышало популярность компьютеров RISC. + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{dec_vax.jpg} + \caption{Компьютер из серии DEC VAX} + \label{} +\end{figure} + + +% Раздел "Заключение" +% \conclusion + + +%Библиографический список, составленный вручную, без использования BibTeX +% +\begin{thebibliography}{99} + \bibitem{8086} \url{https://ru.bmstu.wiki/Intel_8086} + \bibitem{Tannenbaum} Э.Танненбаум "Архитектура компьютера" (6-e издание) + \bibitem{RISC} \url{http://users.ics.forth.gr/~kateveni/risc/index.html} + \bibitem{ALU} \url{https://digteh.ru/proc/ALU/} + \bibitem{IBM} \url{https://ru.wikipedia.org/wiki/IBM} +\end{thebibliography} + +%Библиографический список, составленный с помощью BibTeX +%\bibliographystyle{mdpi} +\bibliographystyle{gost780uv} +\bibliography{thesis} + +% Окончание основного документа и начало приложений +% Каждая последующая секция документа будет являться приложением + +\appendix + + +\end{document}
\ No newline at end of file diff --git a/asvt/abstracts/23_structure_of_cpu/SCWorks.cls b/asvt/abstracts/23_structure_of_cpu/SCWorks.cls new file mode 100644 index 0000000..7eddd54 --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/SCWorks.cls @@ -0,0 +1,908 @@ +\LoadClass[14pt]{extarticle}
+%\RequirePackage[14pt]{extsizes}
+\RequirePackage[
+ a4paper, mag=1000,
+ left=2.5cm, right=1.5cm, top=2cm, bottom=2cm, bindingoffset=0cm,
+ headheight=0cm, footskip=1cm, headsep=0cm
+ ]{geometry}
+\RequirePackage{setspace}
+\RequirePackage{calc}
+\RequirePackage{titlesec}
+\RequirePackage{titletoc}
+\RequirePackage{caption}
+\RequirePackage{graphicx}
+\RequirePackage[inline]{enumitem}
+
+
+
+
+% --------------------------------------------------------------------------%
+% Input data
+% --------------------------------------------------------------------------%
+\def\chair#1{\gdef\@chair{#1}}\chair{\hbox to 3cm{\hrulefill}}
+\def\worktype#1{\gdef\@worktype{#1}}
+\def\worktitle{\@title}
+\def\typework#1{\gdef\@typework{#1}}
+\def\disserform#1{\gdef\@disserform{#1}}
+\def\disserformP#1{\gdef\@disserformP{#1}}
+\def\disserformR#1{\gdef\@disserformR{#1}}
+\def\disserformV#1{\gdef\@disserformV{#1}}
+\def\course#1{\gdef\@course{#1}}\course{2}
+\def\group#1{\gdef\@group{#1}}\group{211}
+\def\department#1{\gdef\@department{#1}}\department{\cyr\cyrf\cyra\cyrk%
+\cyru\cyrl\cyrsftsn\cyrt\cyre\cyrt\cyra\ \CYRK\CYRN\cyri\CYRI\CYRT}
+\def\otdelenie#1{\gdef\@otdelenie{#1}}
+\def\studentName{\@author}
+%\def\studentName#1{\gdef\@studentName{#1}}
+\def\satitle#1{\gdef\@satitle{#1}}\satitle{\hbox to 3cm{\hrulefill}}
+\def\saname#1{\gdef\@saname{#1}}\saname{\hbox to 3cm{\hrulefill}}
+\def\critictitle#1{\gdef\@critictitle{#1}}\critictitle{\hbox to 3cm{\hrulefill}}
+\def\criticname#1{\gdef\@criticname{#1}}\criticname{\hbox to 3cm{\hrulefill}}
+\def\secrname#1{\gdef\@secrname{#1}}\secrname{\hbox to 3cm{\hrulefill}}
+\def\chtitle#1{\gdef\@chtitle{#1}}\chtitle{\hbox to 3cm{\hrulefill}}
+\def\chname#1{\gdef\@chname{#1}}\chname{\hbox to 3cm{\hrulefill}}
+%\def\year#1{\gdef\@year{#1}}
+\def\spectype#1{\gdef\@spectype{#1}}
+\def\spectyperod#1{\gdef\@spectyperod{#1}}
+\def\workform#1{\gdef\@workform{#1}}
+\def\practtype#1{\gdef\@practtype{#1}}\practtype{\cyr\cyru\cyrch\cyre\cyrb%
+\cyrn\cyra\cyrya}
+\def\term#1{\gdef\@term{#1}}\term{2}
+\def\duration#1{\gdef\@duration{#1}}\duration{2}
+\def\protnum#1{\gdef\@protnum{#1}}\protnum{\hbox to 1cm{\hrulefill}}
+\def\protdate#1{\gdef\@protdate{#1}}\protdate{\hbox to 3cm{\hrulefill}}
+\def\practStart#1{\gdef\@practStart{#1}}\practStart{\hbox to 3cm{\hrulefill}}
+\def\practFinish#1{\gdef\@practFinish{#1}}\practFinish{\hbox to 3cm{\hrulefill}}
+\def\reviewtype#1{\gdef\@reviewtype{#1}}\reviewtype{\CYRO\CYRT%
+\CYRZ\CYRERY\CYRV}
+
+\def\patitle#1{\gdef\@patitle{#1}}\patitle{\@satitle}
+\def\paname#1{\gdef\@paname{#1}}\paname{\@saname}
+
+\def\napravlenie#1{\gdef\@napravlenie{#1}}\napravlenie{\hbox to 3cm{\hrulefill}}
+\def\Napravlenie{\@napravlenie}
+
+
+\def\studenttitle#1{\gdef\@studenttitle{#1}}\studenttitle{\cyr\cyrs\cyrt%
+\cyru\cyrd\cyre\cyrn\cyrt\cyra}
+\def\studentdone#1{\gdef\@studentdone{#1}}\studentdone{\cyrp\cyrr\cyro%
+\cyrsh\cyre\cyrd\cyrsh\cyre\cyrg\cyro}
+\def\studentfemale{\studenttitle{\cyrs\cyrt\cyru\cyrd\cyre\cyrn\cyrt%
+\cyrk\cyri}\studentdone{\cyrp\cyrr\cyro\cyrsh\cyre\cyrd\cyrsh%
+\cyre\cyrishrt}}
+
+%\newcommand{\MakeTitle}{}
+
+\def\workname#1{\gdef\@workname{#1}}
+
+%\hbox to 3cm{\hrulefill}
+
+% --------------------------------------------------------------------------%
+
+
+\newcommand{\signature}[2]{
+\hbox to 7cm{#1\hfill} \hbox to 3cm{\hrulefill} \hbox to 6cm{\hfill #2}}
+
+\newcommand{\inlinesignature}[2]{%
+#1\qquad \hbox to 3cm{\hrulefill}\quad #2}
+
+
+\newcommand{\signatureline}{}
+
+% --------------------------------------------------------------------------%
+\newcommand{\scaleUnivName}{0.97}
+
+\DeclareOption{times}{%
+ \renewcommand{\rmdefault}{ftm}
+ \renewcommand{\scaleUnivName}{1.0}
+}
+
+\DeclareOption{spec}{%
+ \spectype{\cyr\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \spectyperod{\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \workform{\cyr\CYRS\CYRP\CYRE\CYRC\CYRI\CYRA\CYRL\CYRI\CYRS\CYRT\CYRA}
+ \disserform{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRA\CYRYA\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRU\CYRYU\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{bachelor}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRA}
+ \disserform{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{master}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRR\CYRA}
+ \disserform{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{coursework}{%
+ \worktype{\cyr\CYRK\cyru\cyrr\cyrs\cyro\cyrv\cyra\cyrya\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@worktype}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{diploma}{%
+ \worktype{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyra\cyrya\ \cyrk\cyrv%
+ \cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyra%
+ \cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{autoref}{%
+ \workname{\cyr\CYRA\CYRV\CYRT\CYRO\CYRR\CYRE\CYRF\CYRE\CYRR\CYRA\CYRT\ %
+ \MakeUppercase{\@disserformR}}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{nir}{%
+ \workname{\cyr\CYRO\CYRT\CYRCH\CYRE\CYRT\ \CYRO\ \CYRN\CYRA\CYRU\CYRCH%
+ \CYRN\CYRO-\CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+ \CYRSFTSN\CYRS\CYRK\CYRO\CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{pract}{%
+ \worktype{\cyr\CYRO\cyrt\cyrch\cyre\cyrt\ \cyro\ \cyrp\cyrr\cyra\cyrk\cyrt%
+ \cyri\cyrk\cyre}
+ \renewcommand{\maketitle}{\MakeTitlePr}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{review}{%
+ \reviewtype{\CYRO\CYRT\CYRZ\CYRERY\CYRV}
+ \worktype{\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \cyrv\cyrery%
+ \cyrp\cyru\cyrs\cyrk\cyrn\cyro\cyrishrt\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf%
+ \cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyro\cyrishrt\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyre}
+ \workname{\cyr\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \MakeLowercase{\@disserformP}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+ \cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\%
+ \signature{\@satitle}{\@saname}\\%
+ }
+}
+
+\DeclareOption{assignment}{%
+ \reviewtype{\CYRZ\CYRA\CYRD\CYRA\CYRN\CYRI\CYRE}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleAssign}
+ \renewcommand{\signatureline}{%
+
+ \vfill%
+ \noindent%
+ \textbf{\CYRS\cyrr\cyro\cyrk\ \cyrp\cyrr\cyre\cyrd\cyro\cyrs\cyrt\cyra%
+ \cyrv\cyrl\cyre\cyrn\cyri\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:}\ \@practFinish
+
+ \vspace{2em}\raggedright
+ \noindent \CYRR\cyra\cyrs\cyrs\cyrm\cyro\cyrt\cyrr\cyre\cyrn\cyro\ %
+ \cyrn\cyra\ \cyrz\cyra\cyrs\cyre\cyrd\cyra\cyrn\cyri\cyri\ \cyrk\cyra%
+ \cyrf\cyre\cyrd\cyrr\cyrery\ \@chair
+
+ \vspace{1em}
+ \CYRP\cyrr\cyro\cyrt\cyro\cyrk\cyro\cyrl\ \textnumero\ \@protnum\ \cyro%
+ \cyrt\ \@protdate
+
+ \vspace{1em}
+ \raggedright
+ \noindent
+ \inlinesignature{\CYRS\cyre\cyrk\cyrr\cyre\cyrt\cyra\cyrr\cyrsftsn}{\@secrname}
+
+ \vspace{2em}
+ \noindent\raggedright
+ \CYRD\cyra\cyrt\cyra\ \cyrv\cyrery\cyrd\cyra\cyrch\cyri\ \cyrz\cyra%
+ \cyrd\cyra\cyrn\cyri\cyrya\ \@practStart
+
+ \vspace{1em}
+ \noindent\raggedright
+ \inlinesignature{\CYRZ\cyra\cyrd\cyra\cyrn\cyri\cyre\ \cyrp\cyro\cyrl%
+ \cyru\cyrch\cyri\cyrl}{\hbox to 3cm{\hrulefill}}
+
+ \vspace{1cm}
+ }
+}
+
+\DeclareOption{critique}{%
+ \reviewtype{\CYRR\CYRE\CYRC\CYRE\CYRN\CYRZ\CYRI\CYRYA}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRR\cyre\cyrc\cyre\cyrn\cyrz\cyre\cyrn\cyrt\\%
+ \signature{\@critictitle}{\@criticname}\\%
+ }
+}
+
+
+\DeclareOption{referat}{%
+ \worktype{\cyr\CYRR\cyre\cyrf\cyre\cyrr\cyra\cyrt}
+ \workname{\MakeUppercase{\@worktype}}
+ \renewcommand{\maketitle}{\RefMakeTitle}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{och}{%
+ \otdelenie{\cyr\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr\cyrm%
+ \cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\DeclareOption{zaoch}{%
+ \otdelenie{\cyr\cyrz\cyra\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr%
+ \cyrm\cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\ExecuteOptions{coursework,och,bachelor}
+\ProcessOptions
+
+% --------------------------------------------------------------------------%
+\newcommand*{\hm}[1]{#1\nobreak\discretionary{}%
+{\hbox{$\mathsurround=0pt #1$}}{}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+\onehalfspacing
+\parindent=1.25cm
+\pagestyle{headings}
+\renewcommand{\@oddhead}{}
+\renewcommand{\@oddfoot}{\hfil \thepage}
+
+% --------------------------------------------------------------------------%
+% Table and figure numbering by sections
+% --------------------------------------------------------------------------%
+\newif\if@secNumbering\@secNumberingfalse
+\newcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\arabic{section}.\arabic{table}}
+ \renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+ \@secNumberingtrue
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Table and figure captions
+% --------------------------------------------------------------------------%
+\def\CaptionName#1{\gdef\@captionname{#1}}
+\newlength\tmp %10cm
+\setlength{\tmp}{1ex}
+\setlength{\belowcaptionskip}{1ex}
+\setlength{\abovecaptionskip}{1ex}
+
+\captionsetup[figure]{name=\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk, labelsep=endash,
+ justification=centering, font={small}, skip=\abovecaptionskip, position=below}
+\captionsetup[table]{name=\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra, labelsep=endash, format=plain,
+ justification=RaggedRight, singlelinecheck=false, font={small}, position=top}
+
+% --------------------------------------------------------------------------%
+% Table of contents
+% --------------------------------------------------------------------------%
+\renewcommand{\tableofcontents}%
+{\structformat\section*{\uppercase{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA%
+\CYRN\CYRI\CYRE}}\secformat\@starttoc{toc}
+\thispagestyle{empty}}
+
+\renewcommand{\@dotsep}{1.5}
+\renewcommand{\@pnumwidth}{1.0em}
+
+\newcommand{\l@abcd}[2]{{\@dottedtocline{0}{0pt}{0pt}{#1}{#2}}}
+
+\renewcommand{\l@section}{\@dottedtocline{1}{0em}{1.5em}}
+\renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Sections, subsections
+% --------------------------------------------------------------------------%
+% Numbering
+\renewcommand{\thesection}{\arabic{section}}
+\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
+\renewcommand{\thesubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}
+
+\newcommand{\sectionbreak}{\clearpage}
+
+% Contents, intro, conclusion
+\newcommand{\structformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{1.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\centering\bfseries}
+ {\thesection}{0ex}{}
+}
+
+% Sections, subsections
+\newcommand{\secformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\hspace{1.25cm}\raggedright\bfseries}
+ {\thesection}{1ex}{}
+}
+
+\newif\if@hyperrefloaded\@hyperrefloadedfalse
+\AtBeginDocument{\@ifpackageloaded{hyperref}%
+ {\@hyperrefloadedtrue}{\@hyperrefloadedfalse}%
+}
+
+%\RequirePackage{ifthen}
+\newcommand{\starsection}[1]{
+ \structformat
+ \section*{#1}%
+ \if@hyperrefloaded
+ \phantomsection
+ \fi
+ \addcontentsline{toc}{section}{#1}
+ \setcounter{section}{0}
+ \secformat
+}
+
+
+\setcounter{section}{0}
+\secformat
+
+
+\newcommand{\intro}{\starsection{\cyr\CYRV\CYRV\CYRE\CYRD\CYRE%
+\CYRN\CYRI\CYRE}}
+\newcommand{\abbreviations}{\starsection{\CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA%
+\CYRCH\CYRE\CYRN\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH%
+\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\definitions}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE%
+\CYRL\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\defabbr}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE\CYRL%
+\CYRE\CYRN\CYRI\CYRYA, \CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA\CYRCH\CYRE\CYRN%
+\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\conclusion}{\starsection{\cyr\CYRZ\CYRA\CYRK\CYRL\CYRYU%
+\CYRCH\CYRE\CYRN\CYRI\CYRE}}
+
+% Section and subsection parameters
+\titlespacing{\section}
+{0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+
+\titleformat{\subsection}[block]
+{\hspace{1.25cm}\normalfont\bfseries}
+{\thesubsection}{1ex}{}
+\titlespacing{\subsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+\titleformat{\subsubsection}[block]
+{\hspace{1.25cm}\normalfont}
+{\thesubsubsection}{1ex}{}
+\titlespacing{\subsubsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+
+%\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+%\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+\makeatletter
+\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
+\renewcommand{\appendix}{\par%
+
+ \renewcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\Asbuk{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\Asbuk{section}.\arabic{table}}
+ \renewcommand{\theequation}{\Asbuk{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+
+ }
+ \if@secNumbering
+ \secNumbering
+ \fi
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \renewcommand{\appendixname}{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE%
+ \CYRN\CYRI\CYRE}%
+ \def\sectionname{\appendixname}%
+ \addtocontents{toc}{\protect\redeflsection}%
+ \gdef\thesection{\Asbuk{section}}%
+ \titlespacing{\section}
+ %{0cm}{1ex plus 0.1ex minus .2ex}{1.1ex plus.1ex}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[display]
+ {\centering\normalfont\bfseries}
+ {\appendixname\hspace{1ex}\thesection}{0ex}{}
+
+
+ \titlecontents{section}
+ [3ex]
+ {\hspace{-3ex}}
+ {\appendixname~\thecontentslabel\hspace{2ex}}
+ {\hspace{2.3em}}
+ {\titlerule*[0.98ex]{.}\contentspage}
+
+}
+
+
+
+% --------------------------------------------------------------------------%
+% Title pages
+% --------------------------------------------------------------------------%
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ %
+%\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}\\}}
+
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ \hspace{-1em}%
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\\hspace{-2em}
+%{
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT}} \\%
+%{\textbf{\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT}} \\%
+%{\textbf{\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}\\}}
+
+\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+\cyro\cyrv\cyra\cyrn\cyri\cyrya\\[0.2em]
+
+\centerline{\scalebox{\scaleUnivName}[1.0]{\parbox[t]{1.1\textwidth}
+{\centering
+\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ \\%
+\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ \\%
+\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}}}}}
+
+\newcommand{\CDMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+%\vspace{0.5cm}
+\begin{center}
+%\parbox{8cm}{
+%\raggedright
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+%}
+\end{center}
+
+\vspace{14pt}
+\vspace{1cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of internship
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitlePr}
+{
+\thispagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+\vspace{0.5cm}
+
+
+\begin{flushright}
+ \parbox{7cm}{
+ \begin{flushleft}
+ \CYRU\CYRT\CYRV\CYRE\CYRR\CYRZH\CYRD\CYRA\CYRYU\\
+ \CYRZ\cyra\cyrv.\cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt,\\
+ \@chtitle\\
+ \hbox to 7cm{\hrulefill\ \@chname}
+ \end{flushleft}
+ }
+\end{flushright}
+
+\vspace{1cm}
+\begin{center}\textbf{\MakeUppercase{\@worktype}}\end{center}
+\begin{flushleft}
+ \vspace{12pt}
+ \@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+ \cyrr\cyru\cyrp\cyrp\cyrery\ \@department\\
+ \@author
+ \vspace{0.5cm}
+
+
+ \cyrv\cyri\cyrd\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri: \@practtype\\
+ \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyra: \@chair\\
+ \cyrk\cyru\cyrr\cyrs: \@course\\
+ \cyrs\cyre\cyrm\cyre\cyrs\cyrt\cyrr: \@term\\
+ \cyrp\cyrr\cyro\cyrd\cyro\cyrl\cyrzh\cyri\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+ \cyro\cyrs\cyrt\cyrsftsn: \@duration\ \cyrn\cyre\cyrd., \cyrs\ \@practStart\ \cyrg. \cyrp\cyro\ \@practFinish\ \cyrg.
+\end{flushleft}
+%\parindent=-0.2cm
+\vspace{1cm}
+
+\noindent
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyru\cyrn\cyri\cyrv%
+\cyre\cyrr\cyrs\cyri\cyrt\cyre\cyrt\cyra,\\[12pt]%
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyro\cyrr\cyrg\cyra%
+\cyrn\cyri\cyrz\cyra\cyrc\cyri\cyri\ (\cyru\cyrch\cyrr\cyre\cyrzh\cyrd%
+\cyre\cyrn\cyri\cyrya, \cyrp\cyrr\cyre\cyrd\cyrp\cyrr\cyri\cyrya\cyrt%
+\cyri\cyrya),\\[12pt]%
+\signature{\@patitle}{\@paname}
+
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\CYRT\cyre\cyrm\cyra\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri:<<\@title>>
+\parindent=1.25cm
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of review
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleReview}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+
+{
+\centering
+\textbf{\MakeUppercase{\@reviewtype}}\\[-0.3em]
+\textbf{\@workname}\\[0.3em]
+<<{\MakeUppercase{\@title}}>>
+
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+
+\centering
+{\@author}\\
+
+\centering
+\@studentdone\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyre\ \cyrp%
+\cyro\ \@spectyperod\ \@napravlenie
+
+}
+\vspace{2em}
+}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% Title page of assignment
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleAssign}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+{
+\centering
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+
+
+\vspace{6em}
+\centering
+\textbf{\MakeUppercase{\@reviewtype}\\%[-0.3em]
+\@workname}
+
+\vspace{0.3em}
+\raggedright
+\cyrp\cyro\ \@spectyperod\ \@napravlenie\\
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+\MakeUppercase{\@author}\\
+\textbf{\CYRT\cyre\cyrm\cyra\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:} <<{\MakeUppercase{\@title}}>>
+
+}
+
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+\begin{center}\bf
+C\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre\ \cyrr\cyra\cyrb%
+\cyro\cyrt\cyrery
+\end{center}
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Referat title page
+% --------------------------------------------------------------------------%
+\newcommand{\RefMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+
+\vspace{3cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRP\cyrr\cyro\cyrv\cyre\cyrr\cyre\cyrn\cyro:\\
+\signature{\@satitle}{\@saname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Last page
+% --------------------------------------------------------------------------%
+\newcommand{\lastpage}
+{
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\@worktype\ <<\@title>>\ \@typework\ \cyrm\cyrn\cyro\cyrishrt\ %
+\cyrs\cyra\cyrm\cyro\cyrs\cyrt\cyro\cyrya\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+\cyro, \cyri\ \cyrn\cyra\ \cyrv\cyrs\cyre\ \cyri\cyrs\cyrt\cyro\cyrch%
+\cyrn\cyri\cyrk\cyri, \cyri\cyrm\cyre\cyryu\cyrshch\cyri\cyre\cyrs%
+\cyrya\ \cyrv\ \cyrr\cyra\cyrb\cyro\cyrt\cyre, \cyrd\cyra\cyrn\cyrery\ %
+\cyrs\cyro\cyro\cyrt\cyrv\cyre\cyrs\cyrt\cyrv\cyru\cyryu\cyrshch\cyri%
+\cyre\ \cyrs\cyrs\cyrery\cyrl\cyrk\cyri.\par
+\parindent=9cm
+\parbox{8cm}{
+\begin{flushleft}
+\hbox to 6cm{\hbox to 3.5cm{\hrulefill}/\hbox to 3.5cm{\hrulefill}/}
+\end{flushleft}
+}
+}
+
+\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+% --------------------------------------------------------------------------%
+% enumerations
+% --------------------------------------------------------------------------%
+\setlist{noitemsep}
+%\setlist[1]{labelindent=\parindent} % < Usually a good idea
+\setlist[itemize]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=7pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0 pt%\parsep
+}
+\setlist[enumerate]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=5pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0pt%\parsep
+}
+\setlist[itemize,1]{label={\normalfont\bfseries\textemdash}}
+%\setlist[enumerate]{labelsep=*, leftmargin=1.5pc}
+\setlist[enumerate,1]{label=\arabic*., ref=\arabic*}
+\setlist[enumerate,2]{label=\emph{\asbuk*}), ref=\theenumi.\emph{\asbuk*}}
+\setlist[enumerate,3]{label=\roman*., ref=\theenumii.\roman*}
+\setlist[enumerate,4]{label=\Asbuk*., ref=\theenumiii.\Asbuk*}
+%\setlist[description]{font=\sffamily\bfseries}
+
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+
+%%%\renewcommand\theenumi {\@arabic\c@enumi}
+%%%\renewcommand\theenumii {\asbuk{enumii}}
+%%%\renewcommand\theenumiii{\@roman\c@enumiii}
+%%%\renewcommand\theenumiv {\Asbuk{enumiv}}
+%%%\newcommand\atheenumi{\asbuk{enumi}}
+%%%\newcommand\atheenumii{\asbuk{enumii}}
+%%%\renewcommand\labelenumi {\theenumi.}
+%%%\renewcommand\labelenumii {\theenumii.}
+%%%\renewcommand\labelenumiii{\theenumiii.}
+%%%\renewcommand\labelenumiv {\theenumiv.}
+%%%\renewcommand\p@enumii {\theenumi}
+%%%\renewcommand\p@enumiii {\theenumi.\theenumii}
+%%%\renewcommand\p@enumiv {\p@enumiii.\theenumiii}
+%%%\renewcommand\labelitemi {\normalfont\bfseries\textemdash}
+%%%\renewcommand\labelitemii {\normalfont\bfseries\textendash}
+%%%\renewcommand\labelitemiii{\textperiodcentered}
+%%%\renewcommand\labelitemiv {\textasteriskcentered}
+%%%
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% References
+% --------------------------------------------------------------------------%
+\makeatletter
+\def\@biblabel#1{#1 }
+
+\renewenvironment{thebibliography}[1]
+{
+ \starsection{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ \CYRI\CYRS\CYRP\CYRO\CYRL%
+ \CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ \CYRI\CYRS\CYRT%
+ \CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV}
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \setlength{\itemsep}{0pt}
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+{\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+\makeatother
+% --------------------------------------------------------------------------%
diff --git a/asvt/abstracts/23_structure_of_cpu/images/IBM_S360.jpg b/asvt/abstracts/23_structure_of_cpu/images/IBM_S360.jpg Binary files differnew file mode 100644 index 0000000..3e86eef --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/IBM_S360.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/alu.png b/asvt/abstracts/23_structure_of_cpu/images/alu.png Binary files differnew file mode 100644 index 0000000..3eb4b4f --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/alu.png diff --git a/asvt/abstracts/23_structure_of_cpu/images/alu_block.png b/asvt/abstracts/23_structure_of_cpu/images/alu_block.png Binary files differnew file mode 100644 index 0000000..a9f75d3 --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/alu_block.png diff --git a/asvt/abstracts/23_structure_of_cpu/images/control_unit_block.png b/asvt/abstracts/23_structure_of_cpu/images/control_unit_block.png Binary files differnew file mode 100644 index 0000000..4cc378c --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/control_unit_block.png diff --git a/asvt/abstracts/23_structure_of_cpu/images/dec_vax.jpg b/asvt/abstracts/23_structure_of_cpu/images/dec_vax.jpg Binary files differnew file mode 100644 index 0000000..c23e2ac --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/dec_vax.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/ibm801.jpg b/asvt/abstracts/23_structure_of_cpu/images/ibm801.jpg Binary files differnew file mode 100644 index 0000000..b194dab --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/ibm801.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/ibm_701.jpg b/asvt/abstracts/23_structure_of_cpu/images/ibm_701.jpg Binary files differnew file mode 100644 index 0000000..92efef4 --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/ibm_701.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/image008.jpg b/asvt/abstracts/23_structure_of_cpu/images/image008.jpg Binary files differnew file mode 100644 index 0000000..9edfd7e --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/image008.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/mips.jpg b/asvt/abstracts/23_structure_of_cpu/images/mips.jpg Binary files differnew file mode 100644 index 0000000..8640e86 --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/mips.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/registers_x86.png b/asvt/abstracts/23_structure_of_cpu/images/registers_x86.png Binary files differnew file mode 100644 index 0000000..ad95e7c --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/registers_x86.png diff --git a/asvt/abstracts/23_structure_of_cpu/images/risc_1.jpg b/asvt/abstracts/23_structure_of_cpu/images/risc_1.jpg Binary files differnew file mode 100644 index 0000000..855af76 --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/risc_1.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/risc_2.jpg b/asvt/abstracts/23_structure_of_cpu/images/risc_2.jpg Binary files differnew file mode 100644 index 0000000..e0661bb --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/risc_2.jpg diff --git a/asvt/abstracts/23_structure_of_cpu/images/tract_data.png b/asvt/abstracts/23_structure_of_cpu/images/tract_data.png Binary files differnew file mode 100644 index 0000000..d24c7ec --- /dev/null +++ b/asvt/abstracts/23_structure_of_cpu/images/tract_data.png diff --git a/asvt/labs/lab1/SCWorks.cls b/asvt/labs/lab1/SCWorks.cls new file mode 100644 index 0000000..3cf6698 --- /dev/null +++ b/asvt/labs/lab1/SCWorks.cls @@ -0,0 +1,915 @@ +\LoadClass[14pt]{extarticle}
+%\RequirePackage[14pt]{extsizes}
+\RequirePackage[
+ a4paper, mag=1000,
+ left=2.5cm, right=1.5cm, top=2cm, bottom=2cm, bindingoffset=0cm,
+ headheight=0cm, footskip=1cm, headsep=0cm
+ ]{geometry}
+\RequirePackage{setspace}
+\RequirePackage{calc}
+\RequirePackage{titlesec}
+\RequirePackage{titletoc}
+\RequirePackage{caption}
+\RequirePackage{graphicx}
+\RequirePackage[inline]{enumitem}
+
+
+
+
+% --------------------------------------------------------------------------%
+% Input data
+% --------------------------------------------------------------------------%
+\def\chair#1{\gdef\@chair{#1}}\chair{\hbox to 3cm{\hrulefill}}
+\def\worktype#1{\gdef\@worktype{#1}}
+\def\worktitle{\@title}
+\def\typework#1{\gdef\@typework{#1}}
+\def\disserform#1{\gdef\@disserform{#1}}
+\def\disserformP#1{\gdef\@disserformP{#1}}
+\def\disserformR#1{\gdef\@disserformR{#1}}
+\def\disserformV#1{\gdef\@disserformV{#1}}
+\def\course#1{\gdef\@course{#1}}\course{2}
+\def\group#1{\gdef\@group{#1}}\group{211}
+\def\department#1{\gdef\@department{#1}}\department{\cyr\cyrf\cyra\cyrk%
+\cyru\cyrl\cyrsftsn\cyrt\cyre\cyrt\cyra\ \CYRK\CYRN\cyri\CYRI\CYRT}
+\def\otdelenie#1{\gdef\@otdelenie{#1}}
+\def\studentName{\@author}
+%\def\studentName#1{\gdef\@studentName{#1}}
+\def\satitle#1{\gdef\@satitle{#1}}\satitle{\hbox to 3cm{\hrulefill}}
+\def\saname#1{\gdef\@saname{#1}}\saname{\hbox to 3cm{\hrulefill}}
+\def\critictitle#1{\gdef\@critictitle{#1}}\critictitle{\hbox to 3cm{\hrulefill}}
+\def\criticname#1{\gdef\@criticname{#1}}\criticname{\hbox to 3cm{\hrulefill}}
+\def\secrname#1{\gdef\@secrname{#1}}\secrname{\hbox to 3cm{\hrulefill}}
+\def\chtitle#1{\gdef\@chtitle{#1}}\chtitle{\hbox to 3cm{\hrulefill}}
+\def\chname#1{\gdef\@chname{#1}}\chname{\hbox to 3cm{\hrulefill}}
+%\def\year#1{\gdef\@year{#1}}
+\def\spectype#1{\gdef\@spectype{#1}}
+\def\spectyperod#1{\gdef\@spectyperod{#1}}
+\def\workform#1{\gdef\@workform{#1}}
+\def\practtype#1{\gdef\@practtype{#1}}\practtype{\cyr\cyru\cyrch\cyre\cyrb%
+\cyrn\cyra\cyrya}
+\def\term#1{\gdef\@term{#1}}\term{2}
+\def\duration#1{\gdef\@duration{#1}}\duration{2}
+\def\protnum#1{\gdef\@protnum{#1}}\protnum{\hbox to 1cm{\hrulefill}}
+\def\protdate#1{\gdef\@protdate{#1}}\protdate{\hbox to 3cm{\hrulefill}}
+\def\practStart#1{\gdef\@practStart{#1}}\practStart{\hbox to 3cm{\hrulefill}}
+\def\practFinish#1{\gdef\@practFinish{#1}}\practFinish{\hbox to 3cm{\hrulefill}}
+\def\reviewtype#1{\gdef\@reviewtype{#1}}\reviewtype{\CYRO\CYRT%
+\CYRZ\CYRERY\CYRV}
+
+\def\patitle#1{\gdef\@patitle{#1}}\patitle{\@satitle}
+\def\paname#1{\gdef\@paname{#1}}\paname{\@saname}
+
+\def\napravlenie#1{\gdef\@napravlenie{#1}}\napravlenie{\hbox to 3cm{\hrulefill}}
+\def\Napravlenie{\@napravlenie}
+
+
+\def\studenttitle#1{\gdef\@studenttitle{#1}}\studenttitle{\cyr\cyrs\cyrt%
+\cyru\cyrd\cyre\cyrn\cyrt\cyra}
+\def\studentdone#1{\gdef\@studentdone{#1}}\studentdone{\cyrp\cyrr\cyro%
+\cyrsh\cyre\cyrd\cyrsh\cyre\cyrg\cyro}
+\def\studentfemale{\studenttitle{\cyrs\cyrt\cyru\cyrd\cyre\cyrn\cyrt%
+\cyrk\cyri}\studentdone{\cyrp\cyrr\cyro\cyrsh\cyre\cyrd\cyrsh%
+\cyre\cyrishrt}}
+
+%\newcommand{\MakeTitle}{}
+
+\def\workname#1{\gdef\@workname{#1}}
+
+%\hbox to 3cm{\hrulefill}
+
+% --------------------------------------------------------------------------%
+
+
+\newcommand{\signature}[2]{
+\hbox to 7cm{#1\hfill} \hbox to 3cm{\hrulefill} \hbox to 6cm{\hfill #2}}
+
+\newcommand{\inlinesignature}[2]{%
+#1\qquad \hbox to 3cm{\hrulefill}\quad #2}
+
+
+\newcommand{\signatureline}{}
+
+% --------------------------------------------------------------------------%
+\newcommand{\scaleUnivName}{0.97}
+
+\DeclareOption{times}{%
+ \renewcommand{\rmdefault}{ftm}
+ \renewcommand{\scaleUnivName}{1.0}
+}
+
+\DeclareOption{spec}{%
+ \spectype{\cyr\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \spectyperod{\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \workform{\cyr\CYRS\CYRP\CYRE\CYRC\CYRI\CYRA\CYRL\CYRI\CYRS\CYRT\CYRA}
+ \disserform{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRA\CYRYA\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRU\CYRYU\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{bachelor}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRA}
+ \disserform{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{master}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRR\CYRA}
+ \disserform{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{coursework}{%
+ \worktype{\cyr\CYRK\cyru\cyrr\cyrs\cyro\cyrv\cyra\cyrya\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@worktype}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{diploma}{%
+ \worktype{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyra\cyrya\ \cyrk\cyrv%
+ \cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyra%
+ \cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{autoref}{%
+ \workname{\cyr\CYRA\CYRV\CYRT\CYRO\CYRR\CYRE\CYRF\CYRE\CYRR\CYRA\CYRT\ %
+ \MakeUppercase{\@disserformR}}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{nir}{%
+ \workname{\cyr\CYRO\CYRT\CYRCH\CYRE\CYRT\ \CYRO\ \CYRN\CYRA\CYRU\CYRCH%
+ \CYRN\CYRO-\CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+ \CYRSFTSN\CYRS\CYRK\CYRO\CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{pract}{%
+ \worktype{\cyr\CYRO\cyrt\cyrch\cyre\cyrt\ \cyro\ \cyrp\cyrr\cyra\cyrk\cyrt%
+ \cyri\cyrk\cyre}
+ \renewcommand{\maketitle}{\MakeTitlePr}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{review}{%
+ \reviewtype{\CYRO\CYRT\CYRZ\CYRERY\CYRV}
+ \worktype{\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \cyrv\cyrery%
+ \cyrp\cyru\cyrs\cyrk\cyrn\cyro\cyrishrt\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf%
+ \cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyro\cyrishrt\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyre}
+ \workname{\cyr\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \MakeLowercase{\@disserformP}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+ \cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\%
+ \signature{\@satitle}{\@saname}\\%
+ }
+}
+
+\DeclareOption{assignment}{%
+ \reviewtype{\CYRZ\CYRA\CYRD\CYRA\CYRN\CYRI\CYRE}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleAssign}
+ \renewcommand{\signatureline}{%
+
+ \vfill%
+ \noindent%
+ \textbf{\CYRS\cyrr\cyro\cyrk\ \cyrp\cyrr\cyre\cyrd\cyro\cyrs\cyrt\cyra%
+ \cyrv\cyrl\cyre\cyrn\cyri\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:}\ \@practFinish
+
+ \vspace{2em}\raggedright
+ \noindent \CYRR\cyra\cyrs\cyrs\cyrm\cyro\cyrt\cyrr\cyre\cyrn\cyro\ %
+ \cyrn\cyra\ \cyrz\cyra\cyrs\cyre\cyrd\cyra\cyrn\cyri\cyri\ \cyrk\cyra%
+ \cyrf\cyre\cyrd\cyrr\cyrery\ \@chair
+
+ \vspace{1em}
+ \CYRP\cyrr\cyro\cyrt\cyro\cyrk\cyro\cyrl\ \textnumero\ \@protnum\ \cyro%
+ \cyrt\ \@protdate
+
+ \vspace{1em}
+ \raggedright
+ \noindent
+ \inlinesignature{\CYRS\cyre\cyrk\cyrr\cyre\cyrt\cyra\cyrr\cyrsftsn}{\@secrname}
+
+ \vspace{2em}
+ \noindent\raggedright
+ \CYRD\cyra\cyrt\cyra\ \cyrv\cyrery\cyrd\cyra\cyrch\cyri\ \cyrz\cyra%
+ \cyrd\cyra\cyrn\cyri\cyrya\ \@practStart
+
+ \vspace{1em}
+ \noindent\raggedright
+ \inlinesignature{\CYRZ\cyra\cyrd\cyra\cyrn\cyri\cyre\ \cyrp\cyro\cyrl%
+ \cyru\cyrch\cyri\cyrl}{\hbox to 3cm{\hrulefill}}
+
+ \vspace{1cm}
+ }
+}
+
+\DeclareOption{critique}{%
+ \reviewtype{\CYRR\CYRE\CYRC\CYRE\CYRN\CYRZ\CYRI\CYRYA}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRR\cyre\cyrc\cyre\cyrn\cyrz\cyre\cyrn\cyrt\\%
+ \signature{\@critictitle}{\@criticname}\\%
+ }
+}
+
+
+\DeclareOption{referat}{%
+ \worktype{\cyr\CYRR\cyre\cyrf\cyre\cyrr\cyra\cyrt}
+ \workname{\MakeUppercase{\@worktype}}
+ \renewcommand{\maketitle}{\RefMakeTitle}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{labwork}{%
+ \worktype{\cyr\CYRL\cyra\cyrb\cyro\cyrr\cyra\cyrt\cyro\cyrn\cyra\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \workname{\MakeUppercase{\@worktype}}
+ \renewcommand{\maketitle}{\RefMakeTitle}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{och}{%
+ \otdelenie{\cyr\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr\cyrm%
+ \cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\DeclareOption{zaoch}{%
+ \otdelenie{\cyr\cyrz\cyra\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr%
+ \cyrm\cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\ExecuteOptions{coursework,och,bachelor}
+\ProcessOptions
+
+% --------------------------------------------------------------------------%
+\newcommand*{\hm}[1]{#1\nobreak\discretionary{}%
+{\hbox{$\mathsurround=0pt #1$}}{}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+\onehalfspacing
+\parindent=1.25cm
+\pagestyle{headings}
+\renewcommand{\@oddhead}{}
+\renewcommand{\@oddfoot}{\hfil \thepage}
+
+% --------------------------------------------------------------------------%
+% Table and figure numbering by sections
+% --------------------------------------------------------------------------%
+\newif\if@secNumbering\@secNumberingfalse
+\newcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\arabic{section}.\arabic{table}}
+ \renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+ \@secNumberingtrue
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Table and figure captions
+% --------------------------------------------------------------------------%
+\def\CaptionName#1{\gdef\@captionname{#1}}
+\newlength\tmp %10cm
+\setlength{\tmp}{1ex}
+\setlength{\belowcaptionskip}{1ex}
+\setlength{\abovecaptionskip}{1ex}
+
+\captionsetup[figure]{name=\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk, labelsep=endash,
+ justification=centering, font={small}, skip=\abovecaptionskip, position=below}
+\captionsetup[table]{name=\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra, labelsep=endash, format=plain,
+ justification=RaggedRight, singlelinecheck=false, font={small}, position=top}
+
+% --------------------------------------------------------------------------%
+% Table of contents
+% --------------------------------------------------------------------------%
+\renewcommand{\tableofcontents}%
+{\structformat\section*{\uppercase{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA%
+\CYRN\CYRI\CYRE}}\secformat\@starttoc{toc}
+\thispagestyle{empty}}
+
+\renewcommand{\@dotsep}{1.5}
+\renewcommand{\@pnumwidth}{1.0em}
+
+\newcommand{\l@abcd}[2]{{\@dottedtocline{0}{0pt}{0pt}{#1}{#2}}}
+
+\renewcommand{\l@section}{\@dottedtocline{1}{0em}{1.5em}}
+\renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Sections, subsections
+% --------------------------------------------------------------------------%
+% Numbering
+\renewcommand{\thesection}{\arabic{section}}
+\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
+\renewcommand{\thesubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}
+
+\newcommand{\sectionbreak}{\clearpage}
+
+% Contents, intro, conclusion
+\newcommand{\structformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{1.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\centering\bfseries}
+ {\thesection}{0ex}{}
+}
+
+% Sections, subsections
+\newcommand{\secformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\hspace{1.25cm}\raggedright\bfseries}
+ {\thesection}{1ex}{}
+}
+
+\newif\if@hyperrefloaded\@hyperrefloadedfalse
+\AtBeginDocument{\@ifpackageloaded{hyperref}%
+ {\@hyperrefloadedtrue}{\@hyperrefloadedfalse}%
+}
+
+%\RequirePackage{ifthen}
+\newcommand{\starsection}[1]{
+ \structformat
+ \section*{#1}%
+ \if@hyperrefloaded
+ \phantomsection
+ \fi
+ \addcontentsline{toc}{section}{#1}
+ \setcounter{section}{0}
+ \secformat
+}
+
+
+\setcounter{section}{0}
+\secformat
+
+
+\newcommand{\intro}{\starsection{\cyr\CYRV\CYRV\CYRE\CYRD\CYRE%
+\CYRN\CYRI\CYRE}}
+\newcommand{\abbreviations}{\starsection{\CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA%
+\CYRCH\CYRE\CYRN\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH%
+\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\definitions}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE%
+\CYRL\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\defabbr}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE\CYRL%
+\CYRE\CYRN\CYRI\CYRYA, \CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA\CYRCH\CYRE\CYRN%
+\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\conclusion}{\starsection{\cyr\CYRZ\CYRA\CYRK\CYRL\CYRYU%
+\CYRCH\CYRE\CYRN\CYRI\CYRE}}
+
+% Section and subsection parameters
+\titlespacing{\section}
+{0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+
+\titleformat{\subsection}[block]
+{\hspace{1.25cm}\normalfont\bfseries}
+{\thesubsection}{1ex}{}
+\titlespacing{\subsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+\titleformat{\subsubsection}[block]
+{\hspace{1.25cm}\normalfont}
+{\thesubsubsection}{1ex}{}
+\titlespacing{\subsubsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+
+%\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+%\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+\makeatletter
+\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
+\renewcommand{\appendix}{\par%
+
+ \renewcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\Asbuk{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\Asbuk{section}.\arabic{table}}
+ \renewcommand{\theequation}{\Asbuk{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+
+ }
+ \if@secNumbering
+ \secNumbering
+ \fi
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \renewcommand{\appendixname}{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE%
+ \CYRN\CYRI\CYRE}%
+ \def\sectionname{\appendixname}%
+ \addtocontents{toc}{\protect\redeflsection}%
+ \gdef\thesection{\Asbuk{section}}%
+ \titlespacing{\section}
+ %{0cm}{1ex plus 0.1ex minus .2ex}{1.1ex plus.1ex}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[display]
+ {\centering\normalfont\bfseries}
+ {\appendixname\hspace{1ex}\thesection}{0ex}{}
+
+
+ \titlecontents{section}
+ [3ex]
+ {\hspace{-3ex}}
+ {\appendixname~\thecontentslabel\hspace{2ex}}
+ {\hspace{2.3em}}
+ {\titlerule*[0.98ex]{.}\contentspage}
+
+}
+
+
+
+% --------------------------------------------------------------------------%
+% Title pages
+% --------------------------------------------------------------------------%
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ %
+%\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}\\}}
+
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ \hspace{-1em}%
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\\hspace{-2em}
+%{
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT}} \\%
+%{\textbf{\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT}} \\%
+%{\textbf{\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}\\}}
+
+\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+\cyro\cyrv\cyra\cyrn\cyri\cyrya\\[0.2em]
+
+\centerline{\scalebox{\scaleUnivName}[1.0]{\parbox[t]{1.1\textwidth}
+{\centering
+\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ \\%
+\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ \\%
+\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}}}}}
+
+\newcommand{\CDMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+%\vspace{0.5cm}
+\begin{center}
+%\parbox{8cm}{
+%\raggedright
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+%}
+\end{center}
+
+\vspace{14pt}
+\vspace{1cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of internship
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitlePr}
+{
+\thispagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+\vspace{0.5cm}
+
+
+\begin{flushright}
+ \parbox{7cm}{
+ \begin{flushleft}
+ \CYRU\CYRT\CYRV\CYRE\CYRR\CYRZH\CYRD\CYRA\CYRYU\\
+ \CYRZ\cyra\cyrv.\cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt,\\
+ \@chtitle\\
+ \hbox to 7cm{\hrulefill\ \@chname}
+ \end{flushleft}
+ }
+\end{flushright}
+
+\vspace{1cm}
+\begin{center}\textbf{\MakeUppercase{\@worktype}}\end{center}
+\begin{flushleft}
+ \vspace{12pt}
+ \@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+ \cyrr\cyru\cyrp\cyrp\cyrery\ \@department\\
+ \@author
+ \vspace{0.5cm}
+
+
+ \cyrv\cyri\cyrd\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri: \@practtype\\
+ \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyra: \@chair\\
+ \cyrk\cyru\cyrr\cyrs: \@course\\
+ \cyrs\cyre\cyrm\cyre\cyrs\cyrt\cyrr: \@term\\
+ \cyrp\cyrr\cyro\cyrd\cyro\cyrl\cyrzh\cyri\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+ \cyro\cyrs\cyrt\cyrsftsn: \@duration\ \cyrn\cyre\cyrd., \cyrs\ \@practStart\ \cyrg. \cyrp\cyro\ \@practFinish\ \cyrg.
+\end{flushleft}
+%\parindent=-0.2cm
+\vspace{1cm}
+
+\noindent
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyru\cyrn\cyri\cyrv%
+\cyre\cyrr\cyrs\cyri\cyrt\cyre\cyrt\cyra,\\[12pt]%
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyro\cyrr\cyrg\cyra%
+\cyrn\cyri\cyrz\cyra\cyrc\cyri\cyri\ (\cyru\cyrch\cyrr\cyre\cyrzh\cyrd%
+\cyre\cyrn\cyri\cyrya, \cyrp\cyrr\cyre\cyrd\cyrp\cyrr\cyri\cyrya\cyrt%
+\cyri\cyrya),\\[12pt]%
+\signature{\@patitle}{\@paname}
+
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\CYRT\cyre\cyrm\cyra\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri:<<\@title>>
+\parindent=1.25cm
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of review
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleReview}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+
+{
+\centering
+\textbf{\MakeUppercase{\@reviewtype}}\\[-0.3em]
+\textbf{\@workname}\\[0.3em]
+<<{\MakeUppercase{\@title}}>>
+
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+
+\centering
+{\@author}\\
+
+\centering
+\@studentdone\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyre\ \cyrp%
+\cyro\ \@spectyperod\ \@napravlenie
+
+}
+\vspace{2em}
+}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% Title page of assignment
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleAssign}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+{
+\centering
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+
+
+\vspace{6em}
+\centering
+\textbf{\MakeUppercase{\@reviewtype}\\%[-0.3em]
+\@workname}
+
+\vspace{0.3em}
+\raggedright
+\cyrp\cyro\ \@spectyperod\ \@napravlenie\\
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+\MakeUppercase{\@author}\\
+\textbf{\CYRT\cyre\cyrm\cyra\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:} <<{\MakeUppercase{\@title}}>>
+
+}
+
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+\begin{center}\bf
+C\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre\ \cyrr\cyra\cyrb%
+\cyro\cyrt\cyrery
+\end{center}
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Referat title page
+% --------------------------------------------------------------------------%
+\newcommand{\RefMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+
+\vspace{3cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRP\cyrr\cyro\cyrv\cyre\cyrr\cyre\cyrn\cyro:\\
+\signature{\@satitle}{\@saname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Last page
+% --------------------------------------------------------------------------%
+\newcommand{\lastpage}
+{
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\@worktype\ <<\@title>>\ \@typework\ \cyrm\cyrn\cyro\cyrishrt\ %
+\cyrs\cyra\cyrm\cyro\cyrs\cyrt\cyro\cyrya\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+\cyro, \cyri\ \cyrn\cyra\ \cyrv\cyrs\cyre\ \cyri\cyrs\cyrt\cyro\cyrch%
+\cyrn\cyri\cyrk\cyri, \cyri\cyrm\cyre\cyryu\cyrshch\cyri\cyre\cyrs%
+\cyrya\ \cyrv\ \cyrr\cyra\cyrb\cyro\cyrt\cyre, \cyrd\cyra\cyrn\cyrery\ %
+\cyrs\cyro\cyro\cyrt\cyrv\cyre\cyrs\cyrt\cyrv\cyru\cyryu\cyrshch\cyri%
+\cyre\ \cyrs\cyrs\cyrery\cyrl\cyrk\cyri.\par
+\parindent=9cm
+\parbox{8cm}{
+\begin{flushleft}
+\hbox to 6cm{\hbox to 3.5cm{\hrulefill}/\hbox to 3.5cm{\hrulefill}/}
+\end{flushleft}
+}
+}
+
+\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+% --------------------------------------------------------------------------%
+% enumerations
+% --------------------------------------------------------------------------%
+\setlist{noitemsep}
+%\setlist[1]{labelindent=\parindent} % < Usually a good idea
+\setlist[itemize]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=7pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0 pt%\parsep
+}
+\setlist[enumerate]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=5pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0pt%\parsep
+}
+\setlist[itemize,1]{label={\normalfont\bfseries\textemdash}}
+%\setlist[enumerate]{labelsep=*, leftmargin=1.5pc}
+\setlist[enumerate,1]{label=\arabic*., ref=\arabic*}
+\setlist[enumerate,2]{label=\emph{\asbuk*}), ref=\theenumi.\emph{\asbuk*}}
+\setlist[enumerate,3]{label=\roman*., ref=\theenumii.\roman*}
+\setlist[enumerate,4]{label=\Asbuk*., ref=\theenumiii.\Asbuk*}
+%\setlist[description]{font=\sffamily\bfseries}
+
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+
+%%%\renewcommand\theenumi {\@arabic\c@enumi}
+%%%\renewcommand\theenumii {\asbuk{enumii}}
+%%%\renewcommand\theenumiii{\@roman\c@enumiii}
+%%%\renewcommand\theenumiv {\Asbuk{enumiv}}
+%%%\newcommand\atheenumi{\asbuk{enumi}}
+%%%\newcommand\atheenumii{\asbuk{enumii}}
+%%%\renewcommand\labelenumi {\theenumi.}
+%%%\renewcommand\labelenumii {\theenumii.}
+%%%\renewcommand\labelenumiii{\theenumiii.}
+%%%\renewcommand\labelenumiv {\theenumiv.}
+%%%\renewcommand\p@enumii {\theenumi}
+%%%\renewcommand\p@enumiii {\theenumi.\theenumii}
+%%%\renewcommand\p@enumiv {\p@enumiii.\theenumiii}
+%%%\renewcommand\labelitemi {\normalfont\bfseries\textemdash}
+%%%\renewcommand\labelitemii {\normalfont\bfseries\textendash}
+%%%\renewcommand\labelitemiii{\textperiodcentered}
+%%%\renewcommand\labelitemiv {\textasteriskcentered}
+%%%
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% References
+% --------------------------------------------------------------------------%
+\makeatletter
+\def\@biblabel#1{#1 }
+
+\renewenvironment{thebibliography}[1]
+{
+ \starsection{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ \CYRI\CYRS\CYRP\CYRO\CYRL%
+ \CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ \CYRI\CYRS\CYRT%
+ \CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV}
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \setlength{\itemsep}{0pt}
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+{\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+\makeatother
+% --------------------------------------------------------------------------%
diff --git a/asvt/labs/lab1/files/hel.bat b/asvt/labs/lab1/files/hel.bat new file mode 100644 index 0000000..946ebf1 --- /dev/null +++ b/asvt/labs/lab1/files/hel.bat @@ -0,0 +1,3 @@ +TASM /L HELLO11 +TLINK HELLO11 +HELLO11.EXE diff --git a/asvt/labs/lab1/files/hel1.bat b/asvt/labs/lab1/files/hel1.bat new file mode 100644 index 0000000..00ca460 --- /dev/null +++ b/asvt/labs/lab1/files/hel1.bat @@ -0,0 +1,3 @@ +TASM /L %1 +TLINK %1 +%1.EXE diff --git a/asvt/labs/lab1/files/hello1.asm b/asvt/labs/lab1/files/hello1.asm new file mode 100644 index 0000000..795d939 --- /dev/null +++ b/asvt/labs/lab1/files/hello1.asm @@ -0,0 +1,17 @@ +; Program Hello1 +.MODEL small +.STACK 100h +.DATA +Hello DB 'Hello!$' + +.CODE +start: + MOV ax,@DATA + MOV ds,ax + LEA dx,Hello + MOV ah,09h + INT 21h + MOV ax,4c00h + INT 21h +END start + diff --git a/asvt/labs/lab1/files/hello11.asm b/asvt/labs/lab1/files/hello11.asm new file mode 100644 index 0000000..f039220 --- /dev/null +++ b/asvt/labs/lab1/files/hello11.asm @@ -0,0 +1,17 @@ +; Program Hello1 +.MODEL small +.STACK 100h +.DATA +Hello DB 'Hello, World!$' + +.CODE +start: + MOV ax,@DATA + MOV ds,ax + LEA dx,Hello + MOV ah,09h + INT 21h + MOV ax,4c00h + INT 21h +END start + diff --git a/asvt/labs/lab1/files/hello2.asm b/asvt/labs/lab1/files/hello2.asm new file mode 100644 index 0000000..df7596d --- /dev/null +++ b/asvt/labs/lab1/files/hello2.asm @@ -0,0 +1,22 @@ +; Program Hello2 +OurStack SEGMENT PARA STACK 'STACK' +DB 64 DUP (?) +OurStack ENDS + +OurData SEGMENT PARA PUBLIC 'DATA' +Hello DB 'Hello!$' +OurData ENDS + +OurCode SEGMENT PARA PUBLIC 'CODE' +ASSUME CS:OurCode, DS:OurData, SS:OurStack +Start: + MOV ax,OurData + MOV ds,ax + LEA dx,Hello + MOV ah,09h + INT 21h + MOV ah,4Ch + MOV al,00h + INT 21h +OurCode ENDS +END Start diff --git a/asvt/labs/lab1/files/hello3.asm b/asvt/labs/lab1/files/hello3.asm new file mode 100644 index 0000000..6149972 --- /dev/null +++ b/asvt/labs/lab1/files/hello3.asm @@ -0,0 +1,15 @@ +; Program Hello3 +.MODEL small +.CODE +ORG 100h +begin: + JMP start + Hello DB 'Hello!$' +start: + LEA dx,Hello + MOV ah,09h + INT 21h + MOV ah,4Ch + MOV al,00h + INT 21h +END begin diff --git a/asvt/labs/lab1/images/task1/assembly.png b/asvt/labs/lab1/images/task1/assembly.png Binary files differnew file mode 100644 index 0000000..ce05d67 --- /dev/null +++ b/asvt/labs/lab1/images/task1/assembly.png diff --git a/asvt/labs/lab1/images/task1/link.png b/asvt/labs/lab1/images/task1/link.png Binary files differnew file mode 100644 index 0000000..440bc73 --- /dev/null +++ b/asvt/labs/lab1/images/task1/link.png diff --git a/asvt/labs/lab1/images/task1/run.png b/asvt/labs/lab1/images/task1/run.png Binary files differnew file mode 100644 index 0000000..9bbf85b --- /dev/null +++ b/asvt/labs/lab1/images/task1/run.png diff --git a/asvt/labs/lab1/images/task1/run_hel1bat.png b/asvt/labs/lab1/images/task1/run_hel1bat.png Binary files differnew file mode 100644 index 0000000..ee95e64 --- /dev/null +++ b/asvt/labs/lab1/images/task1/run_hel1bat.png diff --git a/asvt/labs/lab1/images/task1/run_helbat.png b/asvt/labs/lab1/images/task1/run_helbat.png Binary files differnew file mode 100644 index 0000000..007b319 --- /dev/null +++ b/asvt/labs/lab1/images/task1/run_helbat.png diff --git a/asvt/labs/lab1/images/task1/run_hello11.png b/asvt/labs/lab1/images/task1/run_hello11.png Binary files differnew file mode 100644 index 0000000..a2aa49c --- /dev/null +++ b/asvt/labs/lab1/images/task1/run_hello11.png diff --git a/asvt/labs/lab1/images/task1/source.png b/asvt/labs/lab1/images/task1/source.png Binary files differnew file mode 100644 index 0000000..3f665d4 --- /dev/null +++ b/asvt/labs/lab1/images/task1/source.png diff --git a/asvt/labs/lab1/images/task2/run_hello2.png b/asvt/labs/lab1/images/task2/run_hello2.png Binary files differnew file mode 100644 index 0000000..0e2cde5 --- /dev/null +++ b/asvt/labs/lab1/images/task2/run_hello2.png diff --git a/asvt/labs/lab1/images/task2/source_hello2.png b/asvt/labs/lab1/images/task2/source_hello2.png Binary files differnew file mode 100644 index 0000000..4542e14 --- /dev/null +++ b/asvt/labs/lab1/images/task2/source_hello2.png diff --git a/asvt/labs/lab1/images/task3/assebly_hello3.png b/asvt/labs/lab1/images/task3/assebly_hello3.png Binary files differnew file mode 100644 index 0000000..9675bfe --- /dev/null +++ b/asvt/labs/lab1/images/task3/assebly_hello3.png diff --git a/asvt/labs/lab1/images/task3/assemble_hello_lst.png b/asvt/labs/lab1/images/task3/assemble_hello_lst.png Binary files differnew file mode 100644 index 0000000..4f129bb --- /dev/null +++ b/asvt/labs/lab1/images/task3/assemble_hello_lst.png diff --git a/asvt/labs/lab1/images/task3/hello1_lst.png b/asvt/labs/lab1/images/task3/hello1_lst.png Binary files differnew file mode 100644 index 0000000..e6331b4 --- /dev/null +++ b/asvt/labs/lab1/images/task3/hello1_lst.png diff --git a/asvt/labs/lab1/images/task3/link_hello3.png b/asvt/labs/lab1/images/task3/link_hello3.png Binary files differnew file mode 100644 index 0000000..0a99312 --- /dev/null +++ b/asvt/labs/lab1/images/task3/link_hello3.png diff --git a/asvt/labs/lab1/images/task3/run_hello3.png b/asvt/labs/lab1/images/task3/run_hello3.png Binary files differnew file mode 100644 index 0000000..48854a9 --- /dev/null +++ b/asvt/labs/lab1/images/task3/run_hello3.png diff --git a/asvt/labs/lab1/images/task3/source_hello3.png b/asvt/labs/lab1/images/task3/source_hello3.png Binary files differnew file mode 100644 index 0000000..c104b51 --- /dev/null +++ b/asvt/labs/lab1/images/task3/source_hello3.png diff --git a/asvt/labs/lab1/lab1.tex b/asvt/labs/lab1/lab1.tex new file mode 100644 index 0000000..c48038e --- /dev/null +++ b/asvt/labs/lab1/lab1.tex @@ -0,0 +1,277 @@ +\documentclass[bachelor, och, labwork]{SCWorks} +% параметр - тип обучения - одно из значений: +% spec - специальность +% bachelor - бакалавриат (по умолчанию) +% master - магистратура +% параметр - форма обучения - одно из значений: +% och - очное (по умолчанию) +% zaoch - заочное +% параметр - тип работы - одно из значений: +% referat - реферат +% coursework - курсовая работа (по умолчанию) +% diploma - дипломная работа +% pract - отчет по практике +% параметр - включение шрифта +% times - включение шрифта Times New Roman (если установлен) +% по умолчанию выключен + +\usepackage{subfigure} +\usepackage{tikz,pgfplots} +\pgfplotsset{compat=1.5} +\usepackage{float} + +%\usepackage{titlesec} +\setcounter{secnumdepth}{4} +%\titleformat{\paragraph} +%{\normalfont\normalsize}{\theparagraph}{1em}{} +%\titlespacing*{\paragraph} +%{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\paragraph}[block] +{\hspace{1.25cm}\normalfont} +{\theparagraph}{1ex}{} +\titlespacing{\paragraph} +{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} + +% --------------------------------------------------------------------------% + + +\usepackage[T2A]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{tempora} + +\usepackage[sort,compress]{cite} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsthm} +\usepackage{fancyvrb} +\usepackage{listings} +\usepackage{listingsutf8} +\usepackage{longtable} +\usepackage{array} +\usepackage[english,russian]{babel} + +\usepackage[colorlinks=true]{hyperref} +\usepackage{url} + + +\newcommand{\eqdef}{\stackrel {\rm def}{=}} + +\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}} + +\newtheorem{lem}{Лемма} + +\begin{document} + +% Кафедра (в родительном падеже) +\chair{} + +% Тема работы +\title{Отчет по дисциплине ``Аппаратные средства вычислительной техники'' по лабораторной работе \#1} + +% Курс +\course{1} + +% Группа +\group{131} + +% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ") +\department{факультета КНиИТ} + +% Специальность/направление код - наименование +%\napravlenie{09.03.04 "--- Программная инженерия} +%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем} +%\napravlenie{230100 "--- Информатика и вычислительная техника} +%\napravlenie{231000 "--- Программная инженерия} +\napravlenie{090301 "--- Компьютерная безопасность} + +% Для студентки. Для работы студента следующая команда не нужна. +% \studenttitle{Студентки} + +% Фамилия, имя, отчество в родительном падеже +\author{Гущина Андрея Юрьевича} + +% Заведующий кафедрой +% \chtitle{} % степень, звание +% \chname{} + +%Научный руководитель (для реферата преподаватель проверяющий работу) +\satitle{доцент} %должность, степень, звание +\saname{О.В. Мещерякова} + +% Руководитель практики от организации (только для практики, +% для остальных типов работ не используется) +% \patitle{к.ф.-м.н.} +% \paname{С.~В.~Миронов} + +% Семестр (только для практики, для остальных +% типов работ не используется) +%\term{8} + +% Наименование практики (только для практики, для остальных +% типов работ не используется) +%\practtype{преддипломная} + +% Продолжительность практики (количество недель) (только для практики, +% для остальных типов работ не используется) +%\duration{4} + +% Даты начала и окончания практики (только для практики, для остальных +% типов работ не используется) +%\practStart{30.04.2019} +%\practFinish{27.05.2019} + +% Год выполнения отчета +\date{2020} + +\maketitle + +% Включение нумерации рисунков, формул и таблиц по разделам +% (по умолчанию - нумерация сквозная) +% (допускается оба вида нумерации) +% \secNumbering + + +\tableofcontents + +% Раздел "Обозначения и сокращения". Может отсутствовать в работе + + +% Раздел "Определения". Может отсутствовать в работе +%\definitions + +% Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе. +% Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения" +% \defabbr + +% \section{Лабораторная работа \#1} + +\section{Задание 1} + +Создал файл с программой HELLO1.ASM + +\begin{figure}[H] + \centering + \includegraphics[width=0.4\textwidth]{task1/source.png} + \caption{HELLO1.ASM} +\end{figure} + +Создал исполняемый файл HELLO1.EXE, выполнив ассемблирование +командой TASM и линковку командой TLINK. + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{task1/assembly.png} + \caption{Ассемблирование HELLO1.ASM} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{task1/link.png} + \caption{Линковка HELLO1.OBJ} +\end{figure} + +Полученный файл запустил набрав в консоли HELLO1.EXE + +\begin{figure}[H] + \centering + \includegraphics{task1/run.png} + \caption{Результат запуска HELLO1.EXE} +\end{figure} + +Создал файл HELLO11.ASM, заменив в файле HELLO1.ASM строку +"Hello!" на "Hello, World!". Полученный файл скомпилировал и запустил. + +\begin{figure}[H] + \centering + \includegraphics{task1/run_hello11.png} + \caption{Результат запуска HELLO11.EXE} +\end{figure} + +Создал командный файл HEL.BAT и запустил его. + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{task1/run_helbat.png} + \caption{Результат запуска HEL.BAT} +\end{figure} + +Создал второй командный файл HEL1.BAT и запустил его. + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{task1/run_hel1bat.png} + \caption{Результат запуска HEL1.BAT} +\end{figure} + +\section{Задание 2} + +Создал файл с программой HELLO2.ASM. Скомпилировал его и запустил +с помощью пакетного файла HEL1.BAT + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\textwidth]{task2/source_hello2.png} + \caption{HELLO2.ASM} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.9\textwidth]{task2/run_hello2.png} + \caption{Компиляция и запуск HELLO2.ASM} +\end{figure} + +\section{Задание 3} + +Создал файл с программой HELLO3.ASM + +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{task3/source_hello3.png} + \caption{HELLO3.ASM} +\end{figure} + +Проассемблировал программу HELLO3.ASM с помощью команды TASM. + +\begin{figure}[H] + \centering + \includegraphics[width=0.9\textwidth]{task3/assebly_hello3.png} + \caption{Ассемблирование HELLO3.ASM} +\end{figure} + +Слинковал HELLO3.OBJ в HELLO3.COM с помощью команды TLINK /t + +\begin{figure}[H] + \centering + \includegraphics[width=0.9\textwidth]{task3/link_hello3.png} + \caption{Линкование HELLO3.OBJ} +\end{figure} + +Запустил файл HELLO3.COM + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\textwidth]{task3/run_hello3.png} + \caption{Результат запуска HELLO3.COM} +\end{figure} + +\section{Задание 4} + +Создал файл HELLO1.OBJ, используя файл HELLO1.ASM. +Получил файл листинга HELLO1.LST + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{task3/link_hello3.png} + \caption{Создание файла с листингом} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{task3/hello1_lst.png} + \caption{Листинг файла HELLO1.OBJ} +\end{figure} + +\end{document} diff --git a/asvt/labs/lab2/SCWorks.cls b/asvt/labs/lab2/SCWorks.cls new file mode 100644 index 0000000..3cf6698 --- /dev/null +++ b/asvt/labs/lab2/SCWorks.cls @@ -0,0 +1,915 @@ +\LoadClass[14pt]{extarticle}
+%\RequirePackage[14pt]{extsizes}
+\RequirePackage[
+ a4paper, mag=1000,
+ left=2.5cm, right=1.5cm, top=2cm, bottom=2cm, bindingoffset=0cm,
+ headheight=0cm, footskip=1cm, headsep=0cm
+ ]{geometry}
+\RequirePackage{setspace}
+\RequirePackage{calc}
+\RequirePackage{titlesec}
+\RequirePackage{titletoc}
+\RequirePackage{caption}
+\RequirePackage{graphicx}
+\RequirePackage[inline]{enumitem}
+
+
+
+
+% --------------------------------------------------------------------------%
+% Input data
+% --------------------------------------------------------------------------%
+\def\chair#1{\gdef\@chair{#1}}\chair{\hbox to 3cm{\hrulefill}}
+\def\worktype#1{\gdef\@worktype{#1}}
+\def\worktitle{\@title}
+\def\typework#1{\gdef\@typework{#1}}
+\def\disserform#1{\gdef\@disserform{#1}}
+\def\disserformP#1{\gdef\@disserformP{#1}}
+\def\disserformR#1{\gdef\@disserformR{#1}}
+\def\disserformV#1{\gdef\@disserformV{#1}}
+\def\course#1{\gdef\@course{#1}}\course{2}
+\def\group#1{\gdef\@group{#1}}\group{211}
+\def\department#1{\gdef\@department{#1}}\department{\cyr\cyrf\cyra\cyrk%
+\cyru\cyrl\cyrsftsn\cyrt\cyre\cyrt\cyra\ \CYRK\CYRN\cyri\CYRI\CYRT}
+\def\otdelenie#1{\gdef\@otdelenie{#1}}
+\def\studentName{\@author}
+%\def\studentName#1{\gdef\@studentName{#1}}
+\def\satitle#1{\gdef\@satitle{#1}}\satitle{\hbox to 3cm{\hrulefill}}
+\def\saname#1{\gdef\@saname{#1}}\saname{\hbox to 3cm{\hrulefill}}
+\def\critictitle#1{\gdef\@critictitle{#1}}\critictitle{\hbox to 3cm{\hrulefill}}
+\def\criticname#1{\gdef\@criticname{#1}}\criticname{\hbox to 3cm{\hrulefill}}
+\def\secrname#1{\gdef\@secrname{#1}}\secrname{\hbox to 3cm{\hrulefill}}
+\def\chtitle#1{\gdef\@chtitle{#1}}\chtitle{\hbox to 3cm{\hrulefill}}
+\def\chname#1{\gdef\@chname{#1}}\chname{\hbox to 3cm{\hrulefill}}
+%\def\year#1{\gdef\@year{#1}}
+\def\spectype#1{\gdef\@spectype{#1}}
+\def\spectyperod#1{\gdef\@spectyperod{#1}}
+\def\workform#1{\gdef\@workform{#1}}
+\def\practtype#1{\gdef\@practtype{#1}}\practtype{\cyr\cyru\cyrch\cyre\cyrb%
+\cyrn\cyra\cyrya}
+\def\term#1{\gdef\@term{#1}}\term{2}
+\def\duration#1{\gdef\@duration{#1}}\duration{2}
+\def\protnum#1{\gdef\@protnum{#1}}\protnum{\hbox to 1cm{\hrulefill}}
+\def\protdate#1{\gdef\@protdate{#1}}\protdate{\hbox to 3cm{\hrulefill}}
+\def\practStart#1{\gdef\@practStart{#1}}\practStart{\hbox to 3cm{\hrulefill}}
+\def\practFinish#1{\gdef\@practFinish{#1}}\practFinish{\hbox to 3cm{\hrulefill}}
+\def\reviewtype#1{\gdef\@reviewtype{#1}}\reviewtype{\CYRO\CYRT%
+\CYRZ\CYRERY\CYRV}
+
+\def\patitle#1{\gdef\@patitle{#1}}\patitle{\@satitle}
+\def\paname#1{\gdef\@paname{#1}}\paname{\@saname}
+
+\def\napravlenie#1{\gdef\@napravlenie{#1}}\napravlenie{\hbox to 3cm{\hrulefill}}
+\def\Napravlenie{\@napravlenie}
+
+
+\def\studenttitle#1{\gdef\@studenttitle{#1}}\studenttitle{\cyr\cyrs\cyrt%
+\cyru\cyrd\cyre\cyrn\cyrt\cyra}
+\def\studentdone#1{\gdef\@studentdone{#1}}\studentdone{\cyrp\cyrr\cyro%
+\cyrsh\cyre\cyrd\cyrsh\cyre\cyrg\cyro}
+\def\studentfemale{\studenttitle{\cyrs\cyrt\cyru\cyrd\cyre\cyrn\cyrt%
+\cyrk\cyri}\studentdone{\cyrp\cyrr\cyro\cyrsh\cyre\cyrd\cyrsh%
+\cyre\cyrishrt}}
+
+%\newcommand{\MakeTitle}{}
+
+\def\workname#1{\gdef\@workname{#1}}
+
+%\hbox to 3cm{\hrulefill}
+
+% --------------------------------------------------------------------------%
+
+
+\newcommand{\signature}[2]{
+\hbox to 7cm{#1\hfill} \hbox to 3cm{\hrulefill} \hbox to 6cm{\hfill #2}}
+
+\newcommand{\inlinesignature}[2]{%
+#1\qquad \hbox to 3cm{\hrulefill}\quad #2}
+
+
+\newcommand{\signatureline}{}
+
+% --------------------------------------------------------------------------%
+\newcommand{\scaleUnivName}{0.97}
+
+\DeclareOption{times}{%
+ \renewcommand{\rmdefault}{ftm}
+ \renewcommand{\scaleUnivName}{1.0}
+}
+
+\DeclareOption{spec}{%
+ \spectype{\cyr\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \spectyperod{\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \workform{\cyr\CYRS\CYRP\CYRE\CYRC\CYRI\CYRA\CYRL\CYRI\CYRS\CYRT\CYRA}
+ \disserform{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRA\CYRYA\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRU\CYRYU\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{bachelor}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRA}
+ \disserform{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{master}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRR\CYRA}
+ \disserform{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{coursework}{%
+ \worktype{\cyr\CYRK\cyru\cyrr\cyrs\cyro\cyrv\cyra\cyrya\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@worktype}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{diploma}{%
+ \worktype{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyra\cyrya\ \cyrk\cyrv%
+ \cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyra%
+ \cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{autoref}{%
+ \workname{\cyr\CYRA\CYRV\CYRT\CYRO\CYRR\CYRE\CYRF\CYRE\CYRR\CYRA\CYRT\ %
+ \MakeUppercase{\@disserformR}}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{nir}{%
+ \workname{\cyr\CYRO\CYRT\CYRCH\CYRE\CYRT\ \CYRO\ \CYRN\CYRA\CYRU\CYRCH%
+ \CYRN\CYRO-\CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+ \CYRSFTSN\CYRS\CYRK\CYRO\CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{pract}{%
+ \worktype{\cyr\CYRO\cyrt\cyrch\cyre\cyrt\ \cyro\ \cyrp\cyrr\cyra\cyrk\cyrt%
+ \cyri\cyrk\cyre}
+ \renewcommand{\maketitle}{\MakeTitlePr}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{review}{%
+ \reviewtype{\CYRO\CYRT\CYRZ\CYRERY\CYRV}
+ \worktype{\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \cyrv\cyrery%
+ \cyrp\cyru\cyrs\cyrk\cyrn\cyro\cyrishrt\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf%
+ \cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyro\cyrishrt\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyre}
+ \workname{\cyr\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \MakeLowercase{\@disserformP}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+ \cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\%
+ \signature{\@satitle}{\@saname}\\%
+ }
+}
+
+\DeclareOption{assignment}{%
+ \reviewtype{\CYRZ\CYRA\CYRD\CYRA\CYRN\CYRI\CYRE}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleAssign}
+ \renewcommand{\signatureline}{%
+
+ \vfill%
+ \noindent%
+ \textbf{\CYRS\cyrr\cyro\cyrk\ \cyrp\cyrr\cyre\cyrd\cyro\cyrs\cyrt\cyra%
+ \cyrv\cyrl\cyre\cyrn\cyri\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:}\ \@practFinish
+
+ \vspace{2em}\raggedright
+ \noindent \CYRR\cyra\cyrs\cyrs\cyrm\cyro\cyrt\cyrr\cyre\cyrn\cyro\ %
+ \cyrn\cyra\ \cyrz\cyra\cyrs\cyre\cyrd\cyra\cyrn\cyri\cyri\ \cyrk\cyra%
+ \cyrf\cyre\cyrd\cyrr\cyrery\ \@chair
+
+ \vspace{1em}
+ \CYRP\cyrr\cyro\cyrt\cyro\cyrk\cyro\cyrl\ \textnumero\ \@protnum\ \cyro%
+ \cyrt\ \@protdate
+
+ \vspace{1em}
+ \raggedright
+ \noindent
+ \inlinesignature{\CYRS\cyre\cyrk\cyrr\cyre\cyrt\cyra\cyrr\cyrsftsn}{\@secrname}
+
+ \vspace{2em}
+ \noindent\raggedright
+ \CYRD\cyra\cyrt\cyra\ \cyrv\cyrery\cyrd\cyra\cyrch\cyri\ \cyrz\cyra%
+ \cyrd\cyra\cyrn\cyri\cyrya\ \@practStart
+
+ \vspace{1em}
+ \noindent\raggedright
+ \inlinesignature{\CYRZ\cyra\cyrd\cyra\cyrn\cyri\cyre\ \cyrp\cyro\cyrl%
+ \cyru\cyrch\cyri\cyrl}{\hbox to 3cm{\hrulefill}}
+
+ \vspace{1cm}
+ }
+}
+
+\DeclareOption{critique}{%
+ \reviewtype{\CYRR\CYRE\CYRC\CYRE\CYRN\CYRZ\CYRI\CYRYA}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRR\cyre\cyrc\cyre\cyrn\cyrz\cyre\cyrn\cyrt\\%
+ \signature{\@critictitle}{\@criticname}\\%
+ }
+}
+
+
+\DeclareOption{referat}{%
+ \worktype{\cyr\CYRR\cyre\cyrf\cyre\cyrr\cyra\cyrt}
+ \workname{\MakeUppercase{\@worktype}}
+ \renewcommand{\maketitle}{\RefMakeTitle}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{labwork}{%
+ \worktype{\cyr\CYRL\cyra\cyrb\cyro\cyrr\cyra\cyrt\cyro\cyrn\cyra\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \workname{\MakeUppercase{\@worktype}}
+ \renewcommand{\maketitle}{\RefMakeTitle}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{och}{%
+ \otdelenie{\cyr\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr\cyrm%
+ \cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\DeclareOption{zaoch}{%
+ \otdelenie{\cyr\cyrz\cyra\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr%
+ \cyrm\cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\ExecuteOptions{coursework,och,bachelor}
+\ProcessOptions
+
+% --------------------------------------------------------------------------%
+\newcommand*{\hm}[1]{#1\nobreak\discretionary{}%
+{\hbox{$\mathsurround=0pt #1$}}{}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+\onehalfspacing
+\parindent=1.25cm
+\pagestyle{headings}
+\renewcommand{\@oddhead}{}
+\renewcommand{\@oddfoot}{\hfil \thepage}
+
+% --------------------------------------------------------------------------%
+% Table and figure numbering by sections
+% --------------------------------------------------------------------------%
+\newif\if@secNumbering\@secNumberingfalse
+\newcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\arabic{section}.\arabic{table}}
+ \renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+ \@secNumberingtrue
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Table and figure captions
+% --------------------------------------------------------------------------%
+\def\CaptionName#1{\gdef\@captionname{#1}}
+\newlength\tmp %10cm
+\setlength{\tmp}{1ex}
+\setlength{\belowcaptionskip}{1ex}
+\setlength{\abovecaptionskip}{1ex}
+
+\captionsetup[figure]{name=\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk, labelsep=endash,
+ justification=centering, font={small}, skip=\abovecaptionskip, position=below}
+\captionsetup[table]{name=\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra, labelsep=endash, format=plain,
+ justification=RaggedRight, singlelinecheck=false, font={small}, position=top}
+
+% --------------------------------------------------------------------------%
+% Table of contents
+% --------------------------------------------------------------------------%
+\renewcommand{\tableofcontents}%
+{\structformat\section*{\uppercase{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA%
+\CYRN\CYRI\CYRE}}\secformat\@starttoc{toc}
+\thispagestyle{empty}}
+
+\renewcommand{\@dotsep}{1.5}
+\renewcommand{\@pnumwidth}{1.0em}
+
+\newcommand{\l@abcd}[2]{{\@dottedtocline{0}{0pt}{0pt}{#1}{#2}}}
+
+\renewcommand{\l@section}{\@dottedtocline{1}{0em}{1.5em}}
+\renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Sections, subsections
+% --------------------------------------------------------------------------%
+% Numbering
+\renewcommand{\thesection}{\arabic{section}}
+\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
+\renewcommand{\thesubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}
+
+\newcommand{\sectionbreak}{\clearpage}
+
+% Contents, intro, conclusion
+\newcommand{\structformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{1.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\centering\bfseries}
+ {\thesection}{0ex}{}
+}
+
+% Sections, subsections
+\newcommand{\secformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\hspace{1.25cm}\raggedright\bfseries}
+ {\thesection}{1ex}{}
+}
+
+\newif\if@hyperrefloaded\@hyperrefloadedfalse
+\AtBeginDocument{\@ifpackageloaded{hyperref}%
+ {\@hyperrefloadedtrue}{\@hyperrefloadedfalse}%
+}
+
+%\RequirePackage{ifthen}
+\newcommand{\starsection}[1]{
+ \structformat
+ \section*{#1}%
+ \if@hyperrefloaded
+ \phantomsection
+ \fi
+ \addcontentsline{toc}{section}{#1}
+ \setcounter{section}{0}
+ \secformat
+}
+
+
+\setcounter{section}{0}
+\secformat
+
+
+\newcommand{\intro}{\starsection{\cyr\CYRV\CYRV\CYRE\CYRD\CYRE%
+\CYRN\CYRI\CYRE}}
+\newcommand{\abbreviations}{\starsection{\CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA%
+\CYRCH\CYRE\CYRN\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH%
+\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\definitions}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE%
+\CYRL\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\defabbr}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE\CYRL%
+\CYRE\CYRN\CYRI\CYRYA, \CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA\CYRCH\CYRE\CYRN%
+\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\conclusion}{\starsection{\cyr\CYRZ\CYRA\CYRK\CYRL\CYRYU%
+\CYRCH\CYRE\CYRN\CYRI\CYRE}}
+
+% Section and subsection parameters
+\titlespacing{\section}
+{0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+
+\titleformat{\subsection}[block]
+{\hspace{1.25cm}\normalfont\bfseries}
+{\thesubsection}{1ex}{}
+\titlespacing{\subsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+\titleformat{\subsubsection}[block]
+{\hspace{1.25cm}\normalfont}
+{\thesubsubsection}{1ex}{}
+\titlespacing{\subsubsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+
+%\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+%\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+\makeatletter
+\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
+\renewcommand{\appendix}{\par%
+
+ \renewcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\Asbuk{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\Asbuk{section}.\arabic{table}}
+ \renewcommand{\theequation}{\Asbuk{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+
+ }
+ \if@secNumbering
+ \secNumbering
+ \fi
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \renewcommand{\appendixname}{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE%
+ \CYRN\CYRI\CYRE}%
+ \def\sectionname{\appendixname}%
+ \addtocontents{toc}{\protect\redeflsection}%
+ \gdef\thesection{\Asbuk{section}}%
+ \titlespacing{\section}
+ %{0cm}{1ex plus 0.1ex minus .2ex}{1.1ex plus.1ex}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[display]
+ {\centering\normalfont\bfseries}
+ {\appendixname\hspace{1ex}\thesection}{0ex}{}
+
+
+ \titlecontents{section}
+ [3ex]
+ {\hspace{-3ex}}
+ {\appendixname~\thecontentslabel\hspace{2ex}}
+ {\hspace{2.3em}}
+ {\titlerule*[0.98ex]{.}\contentspage}
+
+}
+
+
+
+% --------------------------------------------------------------------------%
+% Title pages
+% --------------------------------------------------------------------------%
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ %
+%\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}\\}}
+
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ \hspace{-1em}%
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\\hspace{-2em}
+%{
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT}} \\%
+%{\textbf{\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT}} \\%
+%{\textbf{\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}\\}}
+
+\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+\cyro\cyrv\cyra\cyrn\cyri\cyrya\\[0.2em]
+
+\centerline{\scalebox{\scaleUnivName}[1.0]{\parbox[t]{1.1\textwidth}
+{\centering
+\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ \\%
+\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ \\%
+\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}}}}}
+
+\newcommand{\CDMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+%\vspace{0.5cm}
+\begin{center}
+%\parbox{8cm}{
+%\raggedright
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+%}
+\end{center}
+
+\vspace{14pt}
+\vspace{1cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of internship
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitlePr}
+{
+\thispagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+\vspace{0.5cm}
+
+
+\begin{flushright}
+ \parbox{7cm}{
+ \begin{flushleft}
+ \CYRU\CYRT\CYRV\CYRE\CYRR\CYRZH\CYRD\CYRA\CYRYU\\
+ \CYRZ\cyra\cyrv.\cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt,\\
+ \@chtitle\\
+ \hbox to 7cm{\hrulefill\ \@chname}
+ \end{flushleft}
+ }
+\end{flushright}
+
+\vspace{1cm}
+\begin{center}\textbf{\MakeUppercase{\@worktype}}\end{center}
+\begin{flushleft}
+ \vspace{12pt}
+ \@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+ \cyrr\cyru\cyrp\cyrp\cyrery\ \@department\\
+ \@author
+ \vspace{0.5cm}
+
+
+ \cyrv\cyri\cyrd\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri: \@practtype\\
+ \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyra: \@chair\\
+ \cyrk\cyru\cyrr\cyrs: \@course\\
+ \cyrs\cyre\cyrm\cyre\cyrs\cyrt\cyrr: \@term\\
+ \cyrp\cyrr\cyro\cyrd\cyro\cyrl\cyrzh\cyri\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+ \cyro\cyrs\cyrt\cyrsftsn: \@duration\ \cyrn\cyre\cyrd., \cyrs\ \@practStart\ \cyrg. \cyrp\cyro\ \@practFinish\ \cyrg.
+\end{flushleft}
+%\parindent=-0.2cm
+\vspace{1cm}
+
+\noindent
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyru\cyrn\cyri\cyrv%
+\cyre\cyrr\cyrs\cyri\cyrt\cyre\cyrt\cyra,\\[12pt]%
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyro\cyrr\cyrg\cyra%
+\cyrn\cyri\cyrz\cyra\cyrc\cyri\cyri\ (\cyru\cyrch\cyrr\cyre\cyrzh\cyrd%
+\cyre\cyrn\cyri\cyrya, \cyrp\cyrr\cyre\cyrd\cyrp\cyrr\cyri\cyrya\cyrt%
+\cyri\cyrya),\\[12pt]%
+\signature{\@patitle}{\@paname}
+
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\CYRT\cyre\cyrm\cyra\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri:<<\@title>>
+\parindent=1.25cm
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of review
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleReview}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+
+{
+\centering
+\textbf{\MakeUppercase{\@reviewtype}}\\[-0.3em]
+\textbf{\@workname}\\[0.3em]
+<<{\MakeUppercase{\@title}}>>
+
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+
+\centering
+{\@author}\\
+
+\centering
+\@studentdone\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyre\ \cyrp%
+\cyro\ \@spectyperod\ \@napravlenie
+
+}
+\vspace{2em}
+}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% Title page of assignment
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleAssign}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+{
+\centering
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+
+
+\vspace{6em}
+\centering
+\textbf{\MakeUppercase{\@reviewtype}\\%[-0.3em]
+\@workname}
+
+\vspace{0.3em}
+\raggedright
+\cyrp\cyro\ \@spectyperod\ \@napravlenie\\
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+\MakeUppercase{\@author}\\
+\textbf{\CYRT\cyre\cyrm\cyra\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:} <<{\MakeUppercase{\@title}}>>
+
+}
+
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+\begin{center}\bf
+C\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre\ \cyrr\cyra\cyrb%
+\cyro\cyrt\cyrery
+\end{center}
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Referat title page
+% --------------------------------------------------------------------------%
+\newcommand{\RefMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+
+\vspace{3cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRP\cyrr\cyro\cyrv\cyre\cyrr\cyre\cyrn\cyro:\\
+\signature{\@satitle}{\@saname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Last page
+% --------------------------------------------------------------------------%
+\newcommand{\lastpage}
+{
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\@worktype\ <<\@title>>\ \@typework\ \cyrm\cyrn\cyro\cyrishrt\ %
+\cyrs\cyra\cyrm\cyro\cyrs\cyrt\cyro\cyrya\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+\cyro, \cyri\ \cyrn\cyra\ \cyrv\cyrs\cyre\ \cyri\cyrs\cyrt\cyro\cyrch%
+\cyrn\cyri\cyrk\cyri, \cyri\cyrm\cyre\cyryu\cyrshch\cyri\cyre\cyrs%
+\cyrya\ \cyrv\ \cyrr\cyra\cyrb\cyro\cyrt\cyre, \cyrd\cyra\cyrn\cyrery\ %
+\cyrs\cyro\cyro\cyrt\cyrv\cyre\cyrs\cyrt\cyrv\cyru\cyryu\cyrshch\cyri%
+\cyre\ \cyrs\cyrs\cyrery\cyrl\cyrk\cyri.\par
+\parindent=9cm
+\parbox{8cm}{
+\begin{flushleft}
+\hbox to 6cm{\hbox to 3.5cm{\hrulefill}/\hbox to 3.5cm{\hrulefill}/}
+\end{flushleft}
+}
+}
+
+\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+% --------------------------------------------------------------------------%
+% enumerations
+% --------------------------------------------------------------------------%
+\setlist{noitemsep}
+%\setlist[1]{labelindent=\parindent} % < Usually a good idea
+\setlist[itemize]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=7pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0 pt%\parsep
+}
+\setlist[enumerate]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=5pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0pt%\parsep
+}
+\setlist[itemize,1]{label={\normalfont\bfseries\textemdash}}
+%\setlist[enumerate]{labelsep=*, leftmargin=1.5pc}
+\setlist[enumerate,1]{label=\arabic*., ref=\arabic*}
+\setlist[enumerate,2]{label=\emph{\asbuk*}), ref=\theenumi.\emph{\asbuk*}}
+\setlist[enumerate,3]{label=\roman*., ref=\theenumii.\roman*}
+\setlist[enumerate,4]{label=\Asbuk*., ref=\theenumiii.\Asbuk*}
+%\setlist[description]{font=\sffamily\bfseries}
+
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+
+%%%\renewcommand\theenumi {\@arabic\c@enumi}
+%%%\renewcommand\theenumii {\asbuk{enumii}}
+%%%\renewcommand\theenumiii{\@roman\c@enumiii}
+%%%\renewcommand\theenumiv {\Asbuk{enumiv}}
+%%%\newcommand\atheenumi{\asbuk{enumi}}
+%%%\newcommand\atheenumii{\asbuk{enumii}}
+%%%\renewcommand\labelenumi {\theenumi.}
+%%%\renewcommand\labelenumii {\theenumii.}
+%%%\renewcommand\labelenumiii{\theenumiii.}
+%%%\renewcommand\labelenumiv {\theenumiv.}
+%%%\renewcommand\p@enumii {\theenumi}
+%%%\renewcommand\p@enumiii {\theenumi.\theenumii}
+%%%\renewcommand\p@enumiv {\p@enumiii.\theenumiii}
+%%%\renewcommand\labelitemi {\normalfont\bfseries\textemdash}
+%%%\renewcommand\labelitemii {\normalfont\bfseries\textendash}
+%%%\renewcommand\labelitemiii{\textperiodcentered}
+%%%\renewcommand\labelitemiv {\textasteriskcentered}
+%%%
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% References
+% --------------------------------------------------------------------------%
+\makeatletter
+\def\@biblabel#1{#1 }
+
+\renewenvironment{thebibliography}[1]
+{
+ \starsection{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ \CYRI\CYRS\CYRP\CYRO\CYRL%
+ \CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ \CYRI\CYRS\CYRT%
+ \CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV}
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \setlength{\itemsep}{0pt}
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+{\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+\makeatother
+% --------------------------------------------------------------------------%
diff --git a/asvt/labs/lab2/files/task2/TASK2.EXE b/asvt/labs/lab2/files/task2/TASK2.EXE Binary files differnew file mode 100644 index 0000000..732c18d --- /dev/null +++ b/asvt/labs/lab2/files/task2/TASK2.EXE diff --git a/asvt/labs/lab2/files/task2/TASK2.LST b/asvt/labs/lab2/files/task2/TASK2.LST new file mode 100644 index 0000000..a0271f0 --- /dev/null +++ b/asvt/labs/lab2/files/task2/TASK2.LST @@ -0,0 +1,95 @@ +Turbo Assembler Version 3.1 04/05/20 23:25:42 Page 1
+TASK2.ASM
+
+
+
+ 1 .286 ; Директива, позволяющая использовать +
+ 2 непривилегированные инструкции процессора 80286 и +
+ 3 инструкции арифметического сопроцессора 80287
+ 4 0000 .model small ; Определение памяти ближнего типа
+ 5 0000 .code ; Начало сегмента с кодом
+ 6 org 100h ; Смещение адресации на 100h байт
+ 7 0100 begin:
+ 8 0100 EB 1D 90 JMP start ; Безусловный переход к метке start
+ 9 0103 trans:
+ 10 0103 60 PUSHA ; Сохранение содержимого регистров в стек
+ 11 0104 33 C9 XOR cx,cx ; Обнуление регистра cx
+ 12 0106 isDiv:
+ 13 0106 33 D2 XOR dx,dx ; Обнуление регистра dx
+ 14 0108 F7 F3 DIV bx ; Деление значений регистров ax на bx
+ 15 010A 52 PUSH dx ; Помещение значение регистра dx в стек
+ 16 010B 41 INC cx ; Увеличение значения регистра cx на +
+ 17 единицу
+ 18 010C 0B C0 OR ax,ax ; Попарное сложение всех битов операндов
+ 19 010E 75 F6 JNZ isDiv ; Осуществление перехода, если значение +
+ 20 регистра ax не равно 0
+ 21 0110 isOut:
+ 22 0110 58 POP ax ; Помещение значения вершины стека в +
+ 23 регистр ax (при этом указатель стека уменьшается на +
+ 24 единицу)
+ 25 0111 3C 09 CMP al,9 ; Сравнение значения регистра al с числом 9
+ 26 0113 7E 02 JLE noHex ; Переход к метке noHex, если al <= 9
+ 27 0115 04 07 ADD al,7 ; Прибавление числа 7 к регистру al
+ 28 0117 noHex:
+ 29 0117 04 30 ADD al,30h ; Прибавление числа 30h к регистру al
+ 30 0119 CD 29 INT 29h ; Прерывание для вывода символа (Обычно, +
+ 31 вызов функции 0Eh прерывания 10h)
+ 32 011B E2 F3 LOOP isOut ; Вычитание из регистра cx единицы. Если +
+ 33 значение регистра cx не равно 0, то выполнить переход +
+ 34 на метку isOut
+ 35 011D 61 POPA ; Загрузка из стека значение всех +
+ 36 регистров
+ 37 011E C3 ret ; Возврат к точке вызова
+ 38 011F start:
+ 39 011F CD 11 INT 11h ; Запрос списка подключенного +
+ 40 оборудования. Результат помещается в регистр ax
+ 41 0121 BB 0002 MOV bx,2 ; Помещение в регистр bx числа 2
+ 42 0124 E8 FFDC CALL trans ; Вызов метки trans
+ 43 0127 B8 000A MOV ax,10 ; Помещение в регистр ax числа 10
+ 44 012A 8B D0 MOV dx,ax ; Помещение в регистр dx значение числа ax
+ 45 012C B8 0200 MOV ax,200h ; Помещение в регистр ax значения 200h
+ 46 012F CD 21 INT 21h ; Вызов функции DOS
+ 47 0131 CD 12 INT 12h ; Запрос размера физической памяти. +
+ 48 Результат помещается в регистр ax
+ 49 0133 E8 FFCD CALL trans ; Вызов метки trans
+ 50 0136 B8 4C00 MOV ax,4C00h; Помещение в регистр ax значения 4C00h +
+ 51 (функция DOS для завершения программы)
+ 52 0139 CD 21 INT 21h ; Вызов функции DOS
+ 53 END begin ; Окончание программы
+Turbo Assembler Version 3.1 04/05/20 23:25:42 Page 2
+Symbol Table
+
+
+
+
+Symbol Name Type Value
+
+??DATE Text "04/05/20"
+??FILENAME Text "TASK2 "
+??TIME Text "23:25:42"
+??VERSION Number 030A
+@32BIT Text 0
+@CODE Text _TEXT
+@CODESIZE Text 0
+@CPU Text 0707H
+@CURSEG Text _TEXT
+@DATA Text DGROUP
+@DATASIZE Text 0
+@FILENAME Text TASK2
+@INTERFACE Text 00H
+@MODEL Text 2
+@STACK Text DGROUP
+@WORDSIZE Text 2
+BEGIN Near _TEXT:0100
+ISDIV Near _TEXT:0106
+ISOUT Near _TEXT:0110
+NOHEX Near _TEXT:0117
+START Near _TEXT:011F
+TRANS Near _TEXT:0103
+
+Groups & Segments Bit Size Align Combine Class
+
+DGROUP Group
+ _DATA 16 0000 Word Public DATA
+_TEXT 16 013B Word Public CODE
+
\ No newline at end of file diff --git a/asvt/labs/lab2/files/task2/TASK2.MAP b/asvt/labs/lab2/files/task2/TASK2.MAP new file mode 100644 index 0000000..e69d1f0 --- /dev/null +++ b/asvt/labs/lab2/files/task2/TASK2.MAP @@ -0,0 +1,9 @@ +
+ Start Stop Length Name Class
+
+ 00000H 0013AH 0013BH _TEXT CODE
+ 0013CH 0013CH 00000H _DATA DATA
+
+Program entry point at 0000:0100
+Warning: No stack
+
diff --git a/asvt/labs/lab2/files/task2/TASK2.OBJ b/asvt/labs/lab2/files/task2/TASK2.OBJ Binary files differnew file mode 100644 index 0000000..cc943e5 --- /dev/null +++ b/asvt/labs/lab2/files/task2/TASK2.OBJ diff --git a/asvt/labs/lab2/files/task2/task2.asm b/asvt/labs/lab2/files/task2/task2.asm new file mode 100644 index 0000000..521a215 --- /dev/null +++ b/asvt/labs/lab2/files/task2/task2.asm @@ -0,0 +1,40 @@ +.286 ; Директива, позволяющая использовать непривилегированные инструкции процессора 80286 и инструкции арифметического сопроцессора 80287 +.model small ; Определение памяти ближнего типа +.code ; Начало сегмента с кодом +org 100h ; Смещение адресации на 100h байт +begin: + JMP start ; Безусловный переход к метке start + trans: + PUSHA ; Сохранение содержимого регистров в стек + XOR cx,cx ; Обнуление регистра cx + isDiv: + XOR dx,dx ; Обнуление регистра dx + DIV bx ; Деление значений регистров ax на bx + PUSH dx ; Помещение значение регистра dx в стек + INC cx ; Увеличение значения регистра cx на единицу + OR ax,ax ; Попарное сложение всех битов операндов + JNZ isDiv ; Осуществление перехода, если значение регистра ax не равно 0 + isOut: + POP ax ; Помещение значения вершины стека в регистр ax (при этом указатель стека уменьшается на единицу) + CMP al,9 ; Сравнение значения регистра al с числом 9 + JLE noHex ; Переход к метке noHex, если al <= 9 + ADD al,7 ; Прибавление числа 7 к регистру al + noHex: + ADD al,30h ; Прибавление числа 30h к регистру al + INT 29h ; Прерывание для вывода символа (Обычно, вызов функции 0Eh прерывания 10h) + LOOP isOut ; Вычитание из регистра cx единицы. Если значение регистра cx не равно 0, то выполнить переход на метку isOut + POPA ; Загрузка из стека значение всех регистров + ret ; Возврат к точке вызова + start: + INT 11h ; Запрос списка подключенного оборудования. Результат помещается в регистр ax + MOV bx,2 ; Помещение в регистр bx числа 2 + CALL trans ; Вызов метки trans + MOV ax,10 ; Помещение в регистр ax числа 10 + MOV dx,ax ; Помещение в регистр dx значение числа ax + MOV ax,200h ; Помещение в регистр ax значения 200h + INT 21h ; Вызов функции DOS + INT 12h ; Запрос размера физической памяти. Результат помещается в регистр ax + CALL trans ; Вызов метки trans + MOV ax,4C00h; Помещение в регистр ax значения 4C00h (функция DOS для завершения программы) + INT 21h ; Вызов функции DOS +END begin ; Окончание программы diff --git a/asvt/labs/lab2/files/task3/TASK3.COM b/asvt/labs/lab2/files/task3/TASK3.COM Binary files differnew file mode 100644 index 0000000..90f8936 --- /dev/null +++ b/asvt/labs/lab2/files/task3/TASK3.COM diff --git a/asvt/labs/lab2/files/task3/TASK3.LST b/asvt/labs/lab2/files/task3/TASK3.LST new file mode 100644 index 0000000..e1b9ee3 --- /dev/null +++ b/asvt/labs/lab2/files/task3/TASK3.LST @@ -0,0 +1,76 @@ +Turbo Assembler Version 3.1 04/05/20 :01:30 Page 1
+TASK3.ASM
+
+
+
+ 1 .286
+ 2 0000 .model tiny
+ 3 0000 .data
+ 4 0000 ?? ?? 20 ?? ?? 20 ??+ string db ?,?,' ',?,?,' ',?,?,0Ah,0Dh,'$'
+ 5 ?? 0A 0D 24
+ 6
+ 7 000B .code
+ 8 org 100h
+ 9 0100 start:
+ 10 0100 B4 01 MOV ah,1
+ 11 0102 CD 1A INT 1Ah
+ 12 0104 3B DA CMP bx,dx
+ 13 0106 B4 02 MOV ah,2
+ 14 0108 CD 1A INT 1Ah
+ 15 010A B4 00 MOV ah,0
+ 16 010C 8A C5 MOV al,ch
+ 17 010E C1 C8 04 ROR ax,4
+ 18 0111 C0 EC 04 SHR ah,4
+ 19 0114 0D 3030 OR ax,'00'
+ 20 0117 A3 0000r MOV word ptr string,ax
+ 21 011A B4 00 MOV ah,0
+ 22 011C 8A C1 MOV al,cl
+ 23 011E C1 C8 04 ROR ax,4
+ 24 0121 C0 EC 04 SHR ah,4
+ 25 0124 0D 3030 OR ax,'00'
+ 26 0127 A3 0003r MOV word ptr string+3,ax
+ 27 012A B4 00 MOV ah,0
+ 28 012C 8A C6 MOV al,dh
+ 29 012E C1 C8 04 ROR ax,4
+ 30 0131 C0 EC 04 SHR ah,4
+ 31 0134 0D 3030 OR ax,'00'
+ 32 0137 A3 0006r MOV word ptr string+6,ax
+ 33 013A B4 09 MOV ah,9
+ 34 013C BA 0000r MOV dx,offset string
+ 35 013F CD 21 INT 21h
+ 36 0141 B8 4C00 MOV ax,4C00h
+ 37 0144 CD 21 INT 21h
+ 38 end start
+Turbo Assembler Version 3.1 04/05/20 :01:30 Page 2
+Symbol Table
+
+
+
+
+Symbol Name Type Value
+
+??DATE Text "04/05/20"
+??FILENAME Text "TASK3 "
+??TIME Text "I5:01:29"
+??VERSION Number 030A
+@32BIT Text 0
+@CODE Text DGROUP
+@CODESIZE Text 0
+@CPU Text 0707H
+@CURSEG Text _TEXT
+@DATA Text DGROUP
+@DATASIZE Text 0
+@FILENAME Text TASK3
+@INTERFACE Text 00H
+@MODEL Text 1
+@STACK Text DGROUP
+@WORDSIZE Text 2
+START Near DGROUP:0100
+STRING Byte DGROUP:0000
+
+Groups & Segments Bit Size Align Combine Class
+
+DGROUP Group
+ _DATA 16 000B Word Public DATA
+ _TEXT 16 0146 Word Public CODE
+
\ No newline at end of file diff --git a/asvt/labs/lab2/files/task3/TASK3.MAP b/asvt/labs/lab2/files/task3/TASK3.MAP new file mode 100644 index 0000000..c8cf72e --- /dev/null +++ b/asvt/labs/lab2/files/task3/TASK3.MAP @@ -0,0 +1,7 @@ +
+ Start Stop Length Name Class
+
+ 00000H 00145H 00146H _TEXT CODE
+ 00146H 00150H 0000BH _DATA DATA
+
+
diff --git a/asvt/labs/lab2/files/task3/TASK3.OBJ b/asvt/labs/lab2/files/task3/TASK3.OBJ Binary files differnew file mode 100644 index 0000000..ac57693 --- /dev/null +++ b/asvt/labs/lab2/files/task3/TASK3.OBJ diff --git a/asvt/labs/lab2/files/task3/task3.asm b/asvt/labs/lab2/files/task3/task3.asm new file mode 100644 index 0000000..0ef9e70 --- /dev/null +++ b/asvt/labs/lab2/files/task3/task3.asm @@ -0,0 +1,37 @@ +.286 +.model tiny +.data +string db ?,?,' ',?,?,' ',?,?,0Ah,0Dh,'$' + +.code +org 100h +start: + MOV ah,1 + INT 1Ah + CMP bx,dx + MOV ah,2 + INT 1Ah + MOV ah,0 + MOV al,ch + ROR ax,4 + SHR ah,4 + OR ax,'00' + MOV word ptr string,ax + MOV ah,0 + MOV al,cl + ROR ax,4 + SHR ah,4 + OR ax,'00' + MOV word ptr string+3,ax + MOV ah,0 + MOV al,dh + ROR ax,4 + SHR ah,4 + OR ax,'00' + MOV word ptr string+6,ax + MOV ah,9 + MOV dx,offset string + INT 21h + MOV ax,4C00h + INT 21h +end start diff --git a/asvt/labs/lab2/images/comp_task2.png b/asvt/labs/lab2/images/comp_task2.png Binary files differnew file mode 100644 index 0000000..2a568c2 --- /dev/null +++ b/asvt/labs/lab2/images/comp_task2.png diff --git a/asvt/labs/lab2/images/comp_task3.png b/asvt/labs/lab2/images/comp_task3.png Binary files differnew file mode 100644 index 0000000..0f5eb0d --- /dev/null +++ b/asvt/labs/lab2/images/comp_task3.png diff --git a/asvt/labs/lab2/lab2.tex b/asvt/labs/lab2/lab2.tex new file mode 100644 index 0000000..d2a84db --- /dev/null +++ b/asvt/labs/lab2/lab2.tex @@ -0,0 +1,187 @@ +\documentclass[bachelor, och, labwork]{SCWorks} +% параметр - тип обучения - одно из значений: +% spec - специальность +% bachelor - бакалавриат (по умолчанию) +% master - магистратура +% параметр - форма обучения - одно из значений: +% och - очное (по умолчанию) +% zaoch - заочное +% параметр - тип работы - одно из значений: +% referat - реферат +% coursework - курсовая работа (по умолчанию) +% diploma - дипломная работа +% pract - отчет по практике +% параметр - включение шрифта +% times - включение шрифта Times New Roman (если установлен) +% по умолчанию выключен + +\usepackage{subfigure} +\usepackage{tikz,pgfplots} +\pgfplotsset{compat=1.5} +\usepackage{float} + +%\usepackage{titlesec} +\setcounter{secnumdepth}{4} +%\titleformat{\paragraph} +%{\normalfont\normalsize}{\theparagraph}{1em}{} +%\titlespacing*{\paragraph} +%{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\paragraph}[block] +{\hspace{1.25cm}\normalfont} +{\theparagraph}{1ex}{} +\titlespacing{\paragraph} +{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} + +% --------------------------------------------------------------------------% + + +\usepackage[T2A]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{tempora} + +\usepackage[sort,compress]{cite} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsthm} +\usepackage{fancyvrb} +\usepackage{listings} +\usepackage{listingsutf8} +\usepackage{longtable} +\usepackage{array} +\usepackage[english,russian]{babel} + +\usepackage[colorlinks=true]{hyperref} +\usepackage{url} + + +\newcommand{\eqdef}{\stackrel {\rm def}{=}} + +\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}} + +\newtheorem{lem}{Лемма} + +\begin{document} + +% Кафедра (в родительном падеже) +\chair{} + +% Тема работы +\title{Отчет по дисциплине ``Аппаратные средства вычислительной техники'' по лабораторной работе \#2} + +% Курс +\course{1} + +% Группа +\group{131} + +% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ") +\department{факультета КНиИТ} + +% Специальность/направление код - наименование +%\napravlenie{09.03.04 "--- Программная инженерия} +%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем} +%\napravlenie{230100 "--- Информатика и вычислительная техника} +%\napravlenie{231000 "--- Программная инженерия} +\napravlenie{090301 "--- Компьютерная безопасность} + +% Для студентки. Для работы студента следующая команда не нужна. +% \studenttitle{Студентки} + +% Фамилия, имя, отчество в родительном падеже +\author{Гущина Андрея Юрьевича} + +% Заведующий кафедрой +% \chtitle{} % степень, звание +% \chname{} + +%Научный руководитель (для реферата преподаватель проверяющий работу) +\satitle{доцент} %должность, степень, звание +\saname{О.В. Мещерякова} + +% Руководитель практики от организации (только для практики, +% для остальных типов работ не используется) +% \patitle{к.ф.-м.н.} +% \paname{С.~В.~Миронов} + +% Семестр (только для практики, для остальных +% типов работ не используется) +%\term{8} + +% Наименование практики (только для практики, для остальных +% типов работ не используется) +%\practtype{преддипломная} + +% Продолжительность практики (количество недель) (только для практики, +% для остальных типов работ не используется) +%\duration{4} + +% Даты начала и окончания практики (только для практики, для остальных +% типов работ не используется) +%\practStart{30.04.2019} +%\practFinish{27.05.2019} + +% Год выполнения отчета +\date{2020} + +\maketitle + +% Включение нумерации рисунков, формул и таблиц по разделам +% (по умолчанию - нумерация сквозная) +% (допускается оба вида нумерации) +% \secNumbering + + +% \tableofcontents + +% Раздел "Обозначения и сокращения". Может отсутствовать в работе + + +% Раздел "Определения". Может отсутствовать в работе +%\definitions + +% Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе. +% Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения" +% \defabbr + +\section{Лабораторная работа \#2} + +\subsection{Задание 1} +Изучил основные прерывания BIOS из 23 главы книги Питера Абеля +``Язык ассемблера для IBM PC и программирования''. Очень полезная +книга! + +\subsection{Задание 2} + +Проассемблировал и скомпоновал программу. + +\begin{figure}[H] + \centering + \includegraphics[width=0.75\textwidth]{comp_task2.png} + \caption{task2.asm} + \label{} +\end{figure} + +В первой строке указано подключенное оборудование: +математический сопроцессор, порт PS/2 мыши, +начальный видеорежим 80х25, один адаптер RS-232, +GamePort, 2 LPT порта. (Информация из книги Питера Абеля и сети Internet). + +Во второй строке указан размер подключенной физической памяти. +В данном случае это 640 килобайт. + +\subsection{Задание 3} + +Проассемблировал и собрал программу (в .COM файл), которая показывает текущее время. + +\begin{figure}[H] + \centering + \includegraphics[width=0.9\textwidth]{comp_task3.png} + \caption{task3.asm} + \label{} +\end{figure} + + +\end{document} diff --git a/asvt/labs/lab3/SCWorks.cls b/asvt/labs/lab3/SCWorks.cls new file mode 100644 index 0000000..3cf6698 --- /dev/null +++ b/asvt/labs/lab3/SCWorks.cls @@ -0,0 +1,915 @@ +\LoadClass[14pt]{extarticle}
+%\RequirePackage[14pt]{extsizes}
+\RequirePackage[
+ a4paper, mag=1000,
+ left=2.5cm, right=1.5cm, top=2cm, bottom=2cm, bindingoffset=0cm,
+ headheight=0cm, footskip=1cm, headsep=0cm
+ ]{geometry}
+\RequirePackage{setspace}
+\RequirePackage{calc}
+\RequirePackage{titlesec}
+\RequirePackage{titletoc}
+\RequirePackage{caption}
+\RequirePackage{graphicx}
+\RequirePackage[inline]{enumitem}
+
+
+
+
+% --------------------------------------------------------------------------%
+% Input data
+% --------------------------------------------------------------------------%
+\def\chair#1{\gdef\@chair{#1}}\chair{\hbox to 3cm{\hrulefill}}
+\def\worktype#1{\gdef\@worktype{#1}}
+\def\worktitle{\@title}
+\def\typework#1{\gdef\@typework{#1}}
+\def\disserform#1{\gdef\@disserform{#1}}
+\def\disserformP#1{\gdef\@disserformP{#1}}
+\def\disserformR#1{\gdef\@disserformR{#1}}
+\def\disserformV#1{\gdef\@disserformV{#1}}
+\def\course#1{\gdef\@course{#1}}\course{2}
+\def\group#1{\gdef\@group{#1}}\group{211}
+\def\department#1{\gdef\@department{#1}}\department{\cyr\cyrf\cyra\cyrk%
+\cyru\cyrl\cyrsftsn\cyrt\cyre\cyrt\cyra\ \CYRK\CYRN\cyri\CYRI\CYRT}
+\def\otdelenie#1{\gdef\@otdelenie{#1}}
+\def\studentName{\@author}
+%\def\studentName#1{\gdef\@studentName{#1}}
+\def\satitle#1{\gdef\@satitle{#1}}\satitle{\hbox to 3cm{\hrulefill}}
+\def\saname#1{\gdef\@saname{#1}}\saname{\hbox to 3cm{\hrulefill}}
+\def\critictitle#1{\gdef\@critictitle{#1}}\critictitle{\hbox to 3cm{\hrulefill}}
+\def\criticname#1{\gdef\@criticname{#1}}\criticname{\hbox to 3cm{\hrulefill}}
+\def\secrname#1{\gdef\@secrname{#1}}\secrname{\hbox to 3cm{\hrulefill}}
+\def\chtitle#1{\gdef\@chtitle{#1}}\chtitle{\hbox to 3cm{\hrulefill}}
+\def\chname#1{\gdef\@chname{#1}}\chname{\hbox to 3cm{\hrulefill}}
+%\def\year#1{\gdef\@year{#1}}
+\def\spectype#1{\gdef\@spectype{#1}}
+\def\spectyperod#1{\gdef\@spectyperod{#1}}
+\def\workform#1{\gdef\@workform{#1}}
+\def\practtype#1{\gdef\@practtype{#1}}\practtype{\cyr\cyru\cyrch\cyre\cyrb%
+\cyrn\cyra\cyrya}
+\def\term#1{\gdef\@term{#1}}\term{2}
+\def\duration#1{\gdef\@duration{#1}}\duration{2}
+\def\protnum#1{\gdef\@protnum{#1}}\protnum{\hbox to 1cm{\hrulefill}}
+\def\protdate#1{\gdef\@protdate{#1}}\protdate{\hbox to 3cm{\hrulefill}}
+\def\practStart#1{\gdef\@practStart{#1}}\practStart{\hbox to 3cm{\hrulefill}}
+\def\practFinish#1{\gdef\@practFinish{#1}}\practFinish{\hbox to 3cm{\hrulefill}}
+\def\reviewtype#1{\gdef\@reviewtype{#1}}\reviewtype{\CYRO\CYRT%
+\CYRZ\CYRERY\CYRV}
+
+\def\patitle#1{\gdef\@patitle{#1}}\patitle{\@satitle}
+\def\paname#1{\gdef\@paname{#1}}\paname{\@saname}
+
+\def\napravlenie#1{\gdef\@napravlenie{#1}}\napravlenie{\hbox to 3cm{\hrulefill}}
+\def\Napravlenie{\@napravlenie}
+
+
+\def\studenttitle#1{\gdef\@studenttitle{#1}}\studenttitle{\cyr\cyrs\cyrt%
+\cyru\cyrd\cyre\cyrn\cyrt\cyra}
+\def\studentdone#1{\gdef\@studentdone{#1}}\studentdone{\cyrp\cyrr\cyro%
+\cyrsh\cyre\cyrd\cyrsh\cyre\cyrg\cyro}
+\def\studentfemale{\studenttitle{\cyrs\cyrt\cyru\cyrd\cyre\cyrn\cyrt%
+\cyrk\cyri}\studentdone{\cyrp\cyrr\cyro\cyrsh\cyre\cyrd\cyrsh%
+\cyre\cyrishrt}}
+
+%\newcommand{\MakeTitle}{}
+
+\def\workname#1{\gdef\@workname{#1}}
+
+%\hbox to 3cm{\hrulefill}
+
+% --------------------------------------------------------------------------%
+
+
+\newcommand{\signature}[2]{
+\hbox to 7cm{#1\hfill} \hbox to 3cm{\hrulefill} \hbox to 6cm{\hfill #2}}
+
+\newcommand{\inlinesignature}[2]{%
+#1\qquad \hbox to 3cm{\hrulefill}\quad #2}
+
+
+\newcommand{\signatureline}{}
+
+% --------------------------------------------------------------------------%
+\newcommand{\scaleUnivName}{0.97}
+
+\DeclareOption{times}{%
+ \renewcommand{\rmdefault}{ftm}
+ \renewcommand{\scaleUnivName}{1.0}
+}
+
+\DeclareOption{spec}{%
+ \spectype{\cyr\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \spectyperod{\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro%
+ \cyrs\cyrt\cyri}
+ \workform{\cyr\CYRS\CYRP\CYRE\CYRC\CYRI\CYRA\CYRL\CYRI\CYRS\CYRT\CYRA}
+ \disserform{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRA\CYRYA\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR%
+ \CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRU\CYRYU\ \CYRR\CYRA%
+ \CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{bachelor}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRA}
+ \disserform{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{master}{%
+ \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya}
+ \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu}
+ \workform{\cyr\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRR\CYRA}
+ \disserform{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRA%
+ \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA}
+ \disserformP{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \disserformR{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO%
+ \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY}
+ \disserformV{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRU%
+ \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU}
+}
+
+\DeclareOption{coursework}{%
+ \worktype{\cyr\CYRK\cyru\cyrr\cyrs\cyro\cyrv\cyra\cyrya\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@worktype}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{diploma}{%
+ \worktype{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyra\cyrya\ \cyrk\cyrv%
+ \cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyra%
+ \cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ \workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{autoref}{%
+ \workname{\cyr\CYRA\CYRV\CYRT\CYRO\CYRR\CYRE\CYRF\CYRE\CYRR\CYRA\CYRT\ %
+ \MakeUppercase{\@disserformR}}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{nir}{%
+ \workname{\cyr\CYRO\CYRT\CYRCH\CYRE\CYRT\ \CYRO\ \CYRN\CYRA\CYRU\CYRCH%
+ \CYRN\CYRO-\CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+ \CYRSFTSN\CYRS\CYRK\CYRO\CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE}
+ \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \renewcommand{\maketitle}{\CDMakeTitle}
+ %\workname{\MakeUppercase{\@disserform}}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra}
+}
+
+\DeclareOption{pract}{%
+ \worktype{\cyr\CYRO\cyrt\cyrch\cyre\cyrt\ \cyro\ \cyrp\cyrr\cyra\cyrk\cyrt%
+ \cyri\cyrk\cyre}
+ \renewcommand{\maketitle}{\MakeTitlePr}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{review}{%
+ \reviewtype{\CYRO\CYRT\CYRZ\CYRERY\CYRV}
+ \worktype{\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \cyrv\cyrery%
+ \cyrp\cyru\cyrs\cyrk\cyrn\cyro\cyrishrt\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf%
+ \cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyro\cyrishrt\ \cyrr\cyra\cyrb%
+ \cyro\cyrt\cyre}
+ \workname{\cyr\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk%
+ \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \MakeLowercase{\@disserformP}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+ \cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\%
+ \signature{\@satitle}{\@saname}\\%
+ }
+}
+
+\DeclareOption{assignment}{%
+ \reviewtype{\CYRZ\CYRA\CYRD\CYRA\CYRN\CYRI\CYRE}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleAssign}
+ \renewcommand{\signatureline}{%
+
+ \vfill%
+ \noindent%
+ \textbf{\CYRS\cyrr\cyro\cyrk\ \cyrp\cyrr\cyre\cyrd\cyro\cyrs\cyrt\cyra%
+ \cyrv\cyrl\cyre\cyrn\cyri\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:}\ \@practFinish
+
+ \vspace{2em}\raggedright
+ \noindent \CYRR\cyra\cyrs\cyrs\cyrm\cyro\cyrt\cyrr\cyre\cyrn\cyro\ %
+ \cyrn\cyra\ \cyrz\cyra\cyrs\cyre\cyrd\cyra\cyrn\cyri\cyri\ \cyrk\cyra%
+ \cyrf\cyre\cyrd\cyrr\cyrery\ \@chair
+
+ \vspace{1em}
+ \CYRP\cyrr\cyro\cyrt\cyro\cyrk\cyro\cyrl\ \textnumero\ \@protnum\ \cyro%
+ \cyrt\ \@protdate
+
+ \vspace{1em}
+ \raggedright
+ \noindent
+ \inlinesignature{\CYRS\cyre\cyrk\cyrr\cyre\cyrt\cyra\cyrr\cyrsftsn}{\@secrname}
+
+ \vspace{2em}
+ \noindent\raggedright
+ \CYRD\cyra\cyrt\cyra\ \cyrv\cyrery\cyrd\cyra\cyrch\cyri\ \cyrz\cyra%
+ \cyrd\cyra\cyrn\cyri\cyrya\ \@practStart
+
+ \vspace{1em}
+ \noindent\raggedright
+ \inlinesignature{\CYRZ\cyra\cyrd\cyra\cyrn\cyri\cyre\ \cyrp\cyro\cyrl%
+ \cyru\cyrch\cyri\cyrl}{\hbox to 3cm{\hrulefill}}
+
+ \vspace{1cm}
+ }
+}
+
+\DeclareOption{critique}{%
+ \reviewtype{\CYRR\CYRE\CYRC\CYRE\CYRN\CYRZ\CYRI\CYRYA}
+ \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru%
+ \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro%
+ \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru}
+ \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}}
+ %\workname{\@worktype\ \MakeLowercase{\@workform}}
+ \renewcommand{\maketitle}{\MakeTitleReview}
+ \renewcommand{\signatureline}{%
+ \par\noindent%
+ \CYRR\cyre\cyrc\cyre\cyrn\cyrz\cyre\cyrn\cyrt\\%
+ \signature{\@critictitle}{\@criticname}\\%
+ }
+}
+
+
+\DeclareOption{referat}{%
+ \worktype{\cyr\CYRR\cyre\cyrf\cyre\cyrr\cyra\cyrt}
+ \workname{\MakeUppercase{\@worktype}}
+ \renewcommand{\maketitle}{\RefMakeTitle}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{labwork}{%
+ \worktype{\cyr\CYRL\cyra\cyrb\cyro\cyrr\cyra\cyrt\cyro\cyrn\cyra\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra}
+ \workname{\MakeUppercase{\@worktype}}
+ \renewcommand{\maketitle}{\RefMakeTitle}
+ \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn}
+}
+
+\DeclareOption{och}{%
+ \otdelenie{\cyr\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr\cyrm%
+ \cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\DeclareOption{zaoch}{%
+ \otdelenie{\cyr\cyrz\cyra\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr%
+ \cyrm\cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya}
+}
+
+\ExecuteOptions{coursework,och,bachelor}
+\ProcessOptions
+
+% --------------------------------------------------------------------------%
+\newcommand*{\hm}[1]{#1\nobreak\discretionary{}%
+{\hbox{$\mathsurround=0pt #1$}}{}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+\onehalfspacing
+\parindent=1.25cm
+\pagestyle{headings}
+\renewcommand{\@oddhead}{}
+\renewcommand{\@oddfoot}{\hfil \thepage}
+
+% --------------------------------------------------------------------------%
+% Table and figure numbering by sections
+% --------------------------------------------------------------------------%
+\newif\if@secNumbering\@secNumberingfalse
+\newcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\arabic{section}.\arabic{table}}
+ \renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+ \@secNumberingtrue
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Table and figure captions
+% --------------------------------------------------------------------------%
+\def\CaptionName#1{\gdef\@captionname{#1}}
+\newlength\tmp %10cm
+\setlength{\tmp}{1ex}
+\setlength{\belowcaptionskip}{1ex}
+\setlength{\abovecaptionskip}{1ex}
+
+\captionsetup[figure]{name=\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk, labelsep=endash,
+ justification=centering, font={small}, skip=\abovecaptionskip, position=below}
+\captionsetup[table]{name=\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra, labelsep=endash, format=plain,
+ justification=RaggedRight, singlelinecheck=false, font={small}, position=top}
+
+% --------------------------------------------------------------------------%
+% Table of contents
+% --------------------------------------------------------------------------%
+\renewcommand{\tableofcontents}%
+{\structformat\section*{\uppercase{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA%
+\CYRN\CYRI\CYRE}}\secformat\@starttoc{toc}
+\thispagestyle{empty}}
+
+\renewcommand{\@dotsep}{1.5}
+\renewcommand{\@pnumwidth}{1.0em}
+
+\newcommand{\l@abcd}[2]{{\@dottedtocline{0}{0pt}{0pt}{#1}{#2}}}
+
+\renewcommand{\l@section}{\@dottedtocline{1}{0em}{1.5em}}
+\renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Sections, subsections
+% --------------------------------------------------------------------------%
+% Numbering
+\renewcommand{\thesection}{\arabic{section}}
+\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
+\renewcommand{\thesubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}
+
+\newcommand{\sectionbreak}{\clearpage}
+
+% Contents, intro, conclusion
+\newcommand{\structformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{1.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\centering\bfseries}
+ {\thesection}{0ex}{}
+}
+
+% Sections, subsections
+\newcommand{\secformat}
+{
+ \titlespacing{\section}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[block]
+ {\hspace{1.25cm}\raggedright\bfseries}
+ {\thesection}{1ex}{}
+}
+
+\newif\if@hyperrefloaded\@hyperrefloadedfalse
+\AtBeginDocument{\@ifpackageloaded{hyperref}%
+ {\@hyperrefloadedtrue}{\@hyperrefloadedfalse}%
+}
+
+%\RequirePackage{ifthen}
+\newcommand{\starsection}[1]{
+ \structformat
+ \section*{#1}%
+ \if@hyperrefloaded
+ \phantomsection
+ \fi
+ \addcontentsline{toc}{section}{#1}
+ \setcounter{section}{0}
+ \secformat
+}
+
+
+\setcounter{section}{0}
+\secformat
+
+
+\newcommand{\intro}{\starsection{\cyr\CYRV\CYRV\CYRE\CYRD\CYRE%
+\CYRN\CYRI\CYRE}}
+\newcommand{\abbreviations}{\starsection{\CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA%
+\CYRCH\CYRE\CYRN\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH%
+\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\definitions}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE%
+\CYRL\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\defabbr}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE\CYRL%
+\CYRE\CYRN\CYRI\CYRYA, \CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA\CYRCH\CYRE\CYRN%
+\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH\CYRE\CYRN\CYRI\CYRYA}}
+\newcommand{\conclusion}{\starsection{\cyr\CYRZ\CYRA\CYRK\CYRL\CYRYU%
+\CYRCH\CYRE\CYRN\CYRI\CYRE}}
+
+% Section and subsection parameters
+\titlespacing{\section}
+{0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+
+\titleformat{\subsection}[block]
+{\hspace{1.25cm}\normalfont\bfseries}
+{\thesubsection}{1ex}{}
+\titlespacing{\subsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+\titleformat{\subsubsection}[block]
+{\hspace{1.25cm}\normalfont}
+{\thesubsubsection}{1ex}{}
+\titlespacing{\subsubsection}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+
+
+%\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+%\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+\makeatletter
+\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}}
+\renewcommand{\appendix}{\par%
+
+ \renewcommand{\secNumbering}{
+ \renewcommand{\thefigure}{\Asbuk{section}.\arabic{figure}}
+ \renewcommand{\thetable}{\Asbuk{section}.\arabic{table}}
+ \renewcommand{\theequation}{\Asbuk{section}.\arabic{equation}}
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \@addtoreset{equation}{section}
+
+ }
+ \if@secNumbering
+ \secNumbering
+ \fi
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \renewcommand{\appendixname}{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE%
+ \CYRN\CYRI\CYRE}%
+ \def\sectionname{\appendixname}%
+ \addtocontents{toc}{\protect\redeflsection}%
+ \gdef\thesection{\Asbuk{section}}%
+ \titlespacing{\section}
+ %{0cm}{1ex plus 0.1ex minus .2ex}{1.1ex plus.1ex}
+ {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex}
+ \titleformat{\section}[display]
+ {\centering\normalfont\bfseries}
+ {\appendixname\hspace{1ex}\thesection}{0ex}{}
+
+
+ \titlecontents{section}
+ [3ex]
+ {\hspace{-3ex}}
+ {\appendixname~\thecontentslabel\hspace{2ex}}
+ {\hspace{2.3em}}
+ {\titlerule*[0.98ex]{.}\contentspage}
+
+}
+
+
+
+% --------------------------------------------------------------------------%
+% Title pages
+% --------------------------------------------------------------------------%
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ %
+%\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}\\}}
+
+%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ \hspace{-1em}%
+%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\\hspace{-2em}
+%{
+%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT}} \\%
+%{\textbf{\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT}} \\%
+%{\textbf{\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}\\}}
+
+\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA%
+\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ %
+\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro%
+\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ %
+\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra%
+\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru%
+\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs%
+\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz%
+\cyro\cyrv\cyra\cyrn\cyri\cyrya\\[0.2em]
+
+\centerline{\scalebox{\scaleUnivName}[1.0]{\parbox[t]{1.1\textwidth}
+{\centering
+\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ %
+\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY%
+\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL%
+\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ \\%
+\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY%
+\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ \\%
+\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY%
+\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}}}}}
+
+\newcommand{\CDMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+%\vspace{0.5cm}
+\begin{center}
+%\parbox{8cm}{
+%\raggedright
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+%}
+\end{center}
+
+\vspace{14pt}
+\vspace{1cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of internship
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitlePr}
+{
+\thispagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+\vspace{0.5cm}
+
+
+\begin{flushright}
+ \parbox{7cm}{
+ \begin{flushleft}
+ \CYRU\CYRT\CYRV\CYRE\CYRR\CYRZH\CYRD\CYRA\CYRYU\\
+ \CYRZ\cyra\cyrv.\cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt,\\
+ \@chtitle\\
+ \hbox to 7cm{\hrulefill\ \@chname}
+ \end{flushleft}
+ }
+\end{flushright}
+
+\vspace{1cm}
+\begin{center}\textbf{\MakeUppercase{\@worktype}}\end{center}
+\begin{flushleft}
+ \vspace{12pt}
+ \@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+ \cyrr\cyru\cyrp\cyrp\cyrery\ \@department\\
+ \@author
+ \vspace{0.5cm}
+
+
+ \cyrv\cyri\cyrd\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri: \@practtype\\
+ \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyra: \@chair\\
+ \cyrk\cyru\cyrr\cyrs: \@course\\
+ \cyrs\cyre\cyrm\cyre\cyrs\cyrt\cyrr: \@term\\
+ \cyrp\cyrr\cyro\cyrd\cyro\cyrl\cyrzh\cyri\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+ \cyro\cyrs\cyrt\cyrsftsn: \@duration\ \cyrn\cyre\cyrd., \cyrs\ \@practStart\ \cyrg. \cyrp\cyro\ \@practFinish\ \cyrg.
+\end{flushleft}
+%\parindent=-0.2cm
+\vspace{1cm}
+
+\noindent
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyru\cyrn\cyri\cyrv%
+\cyre\cyrr\cyrs\cyri\cyrt\cyre\cyrt\cyra,\\[12pt]%
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp%
+\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyro\cyrr\cyrg\cyra%
+\cyrn\cyri\cyrz\cyra\cyrc\cyri\cyri\ (\cyru\cyrch\cyrr\cyre\cyrzh\cyrd%
+\cyre\cyrn\cyri\cyrya, \cyrp\cyrr\cyre\cyrd\cyrp\cyrr\cyri\cyrya\cyrt%
+\cyri\cyrya),\\[12pt]%
+\signature{\@patitle}{\@paname}
+
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\CYRT\cyre\cyrm\cyra\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri:<<\@title>>
+\parindent=1.25cm
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Title page of review
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleReview}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+
+{
+\centering
+\textbf{\MakeUppercase{\@reviewtype}}\\[-0.3em]
+\textbf{\@workname}\\[0.3em]
+<<{\MakeUppercase{\@title}}>>
+
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+
+\centering
+{\@author}\\
+
+\centering
+\@studentdone\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyre\ \cyrp%
+\cyro\ \@spectyperod\ \@napravlenie
+
+}
+\vspace{2em}
+}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% Title page of assignment
+% --------------------------------------------------------------------------%
+\newcommand{\MakeTitleAssign}
+{
+\pagestyle{empty}
+\begin{center}
+\shapka
+\end{center}
+
+{
+\centering
+\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair
+
+
+\vspace{6em}
+\centering
+\textbf{\MakeUppercase{\@reviewtype}\\%[-0.3em]
+\@workname}
+
+\vspace{0.3em}
+\raggedright
+\cyrp\cyro\ \@spectyperod\ \@napravlenie\\
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ %
+\@department\\
+\MakeUppercase{\@author}\\
+\textbf{\CYRT\cyre\cyrm\cyra\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:} <<{\MakeUppercase{\@title}}>>
+
+}
+
+\vfill
+
+\noindent
+\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv%
+\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\
+\signature{\@satitle}{\@saname}\\[14pt]
+\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra%
+\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\
+\signature{\@chtitle}{\@chname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+\begin{center}\bf
+C\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre\ \cyrr\cyra\cyrb%
+\cyro\cyrt\cyrery
+\end{center}
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Referat title page
+% --------------------------------------------------------------------------%
+\newcommand{\RefMakeTitle}
+{
+\thispagestyle{empty}
+\shapka
+
+\vspace{3cm}
+{\centering
+\textbf{\MakeUppercase{\@title}}
+\\[0.3cm]
+{\@workname}
+
+}
+
+\vspace{1.5cm}
+\begin{flushleft}
+\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg%
+\cyrr\cyru\cyrp\cyrp\cyrery\\
+\@spectype\ \@napravlenie\\
+\@department\\
+\@author
+\end{flushleft}
+\vfill
+
+\noindent
+\CYRP\cyrr\cyro\cyrv\cyre\cyrr\cyre\cyrn\cyro:\\
+\signature{\@satitle}{\@saname}
+
+\vfill
+{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date}
+
+}
+\newpage
+}
+% --------------------------------------------------------------------------%
+
+% --------------------------------------------------------------------------%
+% Last page
+% --------------------------------------------------------------------------%
+\newcommand{\lastpage}
+{
+\newpage
+\thispagestyle{empty}
+\vspace*{11cm}
+\@worktype\ <<\@title>>\ \@typework\ \cyrm\cyrn\cyro\cyrishrt\ %
+\cyrs\cyra\cyrm\cyro\cyrs\cyrt\cyro\cyrya\cyrt\cyre\cyrl\cyrsftsn\cyrn%
+\cyro, \cyri\ \cyrn\cyra\ \cyrv\cyrs\cyre\ \cyri\cyrs\cyrt\cyro\cyrch%
+\cyrn\cyri\cyrk\cyri, \cyri\cyrm\cyre\cyryu\cyrshch\cyri\cyre\cyrs%
+\cyrya\ \cyrv\ \cyrr\cyra\cyrb\cyro\cyrt\cyre, \cyrd\cyra\cyrn\cyrery\ %
+\cyrs\cyro\cyro\cyrt\cyrv\cyre\cyrs\cyrt\cyrv\cyru\cyryu\cyrshch\cyri%
+\cyre\ \cyrs\cyrs\cyrery\cyrl\cyrk\cyri.\par
+\parindent=9cm
+\parbox{8cm}{
+\begin{flushleft}
+\hbox to 6cm{\hbox to 3.5cm{\hrulefill}/\hbox to 3.5cm{\hrulefill}/}
+\end{flushleft}
+}
+}
+
+\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM}
+\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm}
+
+% --------------------------------------------------------------------------%
+% enumerations
+% --------------------------------------------------------------------------%
+\setlist{noitemsep}
+%\setlist[1]{labelindent=\parindent} % < Usually a good idea
+\setlist[itemize]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=7pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0 pt%\parsep
+}
+\setlist[enumerate]{
+%leftmargin=52pt,
+rightmargin=0pt,
+labelsep=5pt,
+labelwidth=20pt,
+itemindent=0pt,
+listparindent=0pt,
+topsep=0pt,%4pt plus 2pt minus 4pt,
+partopsep=0pt,% plus 1pt minus 1pt,
+parsep=0pt,% plus 1pt,
+itemsep=0pt%\parsep
+}
+\setlist[itemize,1]{label={\normalfont\bfseries\textemdash}}
+%\setlist[enumerate]{labelsep=*, leftmargin=1.5pc}
+\setlist[enumerate,1]{label=\arabic*., ref=\arabic*}
+\setlist[enumerate,2]{label=\emph{\asbuk*}), ref=\theenumi.\emph{\asbuk*}}
+\setlist[enumerate,3]{label=\roman*., ref=\theenumii.\roman*}
+\setlist[enumerate,4]{label=\Asbuk*., ref=\theenumiii.\Asbuk*}
+%\setlist[description]{font=\sffamily\bfseries}
+
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+
+%%%\renewcommand\theenumi {\@arabic\c@enumi}
+%%%\renewcommand\theenumii {\asbuk{enumii}}
+%%%\renewcommand\theenumiii{\@roman\c@enumiii}
+%%%\renewcommand\theenumiv {\Asbuk{enumiv}}
+%%%\newcommand\atheenumi{\asbuk{enumi}}
+%%%\newcommand\atheenumii{\asbuk{enumii}}
+%%%\renewcommand\labelenumi {\theenumi.}
+%%%\renewcommand\labelenumii {\theenumii.}
+%%%\renewcommand\labelenumiii{\theenumiii.}
+%%%\renewcommand\labelenumiv {\theenumiv.}
+%%%\renewcommand\p@enumii {\theenumi}
+%%%\renewcommand\p@enumiii {\theenumi.\theenumii}
+%%%\renewcommand\p@enumiv {\p@enumiii.\theenumiii}
+%%%\renewcommand\labelitemi {\normalfont\bfseries\textemdash}
+%%%\renewcommand\labelitemii {\normalfont\bfseries\textendash}
+%%%\renewcommand\labelitemiii{\textperiodcentered}
+%%%\renewcommand\labelitemiv {\textasteriskcentered}
+%%%
+%%%\renewcommand{\@listI}{%
+%%%\leftmargin=52pt
+%%%\rightmargin=0pt
+%%%\labelsep=7pt
+%%%\labelwidth=20pt
+%%%\itemindent=0pt
+%%%\listparindent=0pt
+%%%\topsep=4pt plus 2pt minus 4pt
+%%%\partopsep=0pt plus 1pt minus 1pt
+%%%\parsep=0pt plus 1pt
+%%%\itemsep=\parsep}
+% --------------------------------------------------------------------------%
+
+
+% --------------------------------------------------------------------------%
+% References
+% --------------------------------------------------------------------------%
+\makeatletter
+\def\@biblabel#1{#1 }
+
+\renewenvironment{thebibliography}[1]
+{
+ \starsection{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ \CYRI\CYRS\CYRP\CYRO\CYRL%
+ \CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ \CYRI\CYRS\CYRT%
+ \CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV}
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \setlength{\itemsep}{0pt}
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+{\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+\makeatother
+% --------------------------------------------------------------------------%
diff --git a/asvt/labs/lab3/files/vdump.asm b/asvt/labs/lab3/files/vdump.asm new file mode 100644 index 0000000..c2f6f54 --- /dev/null +++ b/asvt/labs/lab3/files/vdump.asm @@ -0,0 +1,128 @@ +.model small +.stack 100h +.data + +screenArr dw 1920 dup (0) + +.code +.286 + +printWord PROC NEAR + + PUSH cx + + MOV cx,2 + MOV bh,al + SHR al,04 + + ; Переводим байт в соответствующий символ по таблице ASCII + printByte: + CMP al,09h + JBE l1 + ADD al,37h + JMP l2 + l1: + ADD al,30h + l2: + MOV es:[si],ax + MOV al,bh + AND al,00001111b + ADD si,2 + LOOP printByte + + ADD di,01h + POP cx + + RET + +printWord ENDP + +clearScreen PROC NEAR + + PUSHA + + MOV cx,3840 + MOV bx, OFFSET screenArr + + saveScreen: + MOV dx, es:[si] + MOV word ptr [bx], dx + INC si + INC bx + LOOP saveScreen + + MOV cx, 3840 + MOV si, 0 + MOV ah, 07h + + fillScreen: + MOV al, 0 + MOV es:[si], ax + ADD si, 2 + LOOP fillScreen + + POPA + RET + +clearScreen ENDP + +restoreScreen PROC NEAR + + PUSHA + + MOV bx, offset screenArr + MOV si, 0 + MOV cx, 3840 + + restoreScreenLoop: + MOV dx, word ptr [bx] + MOV es:[si], dx + INC bx + INC si + LOOP restoreScreenLoop + + POPA + RET + +restoreScreen ENDP + +start: + MOV ax,@DATA + MOV ds,ax + + ; Записываем в регистр es адрес начала видеопамяти + MOV ax,0b800h + MOV es,ax + + ; Обнуляем счётчики + MOV si,0 + MOV di,0 + + ; Устанавливаем атрибут выводимых символов (белые символы, чёрный фон) + MOV ah,7h + + ; Вычисляем размер программы + MOV cx,offset exit + SUB cx,offset start + + ; Очистим экран + CALL clearScreen + +; Выводим значения дампа памяти +printDump: + MOV al,cs:[di] + CALL printWord +LOOP printDump + +; Приостанавливаем программу для того, чтобы прочитать дамп +input: + MOV ah,07h + INT 21h + +exit: + CALL restoreScreen + + MOV ax,4C00h + INT 21h + +END start diff --git a/asvt/labs/lab3/images/clear_screen.png b/asvt/labs/lab3/images/clear_screen.png Binary files differnew file mode 100644 index 0000000..ed60522 --- /dev/null +++ b/asvt/labs/lab3/images/clear_screen.png diff --git a/asvt/labs/lab3/images/compile.png b/asvt/labs/lab3/images/compile.png Binary files differnew file mode 100644 index 0000000..f6011c6 --- /dev/null +++ b/asvt/labs/lab3/images/compile.png diff --git a/asvt/labs/lab3/images/exited.png b/asvt/labs/lab3/images/exited.png Binary files differnew file mode 100644 index 0000000..34bb9b6 --- /dev/null +++ b/asvt/labs/lab3/images/exited.png diff --git a/asvt/labs/lab3/images/mydump.jpg b/asvt/labs/lab3/images/mydump.jpg Binary files differnew file mode 100644 index 0000000..8c972b9 --- /dev/null +++ b/asvt/labs/lab3/images/mydump.jpg diff --git a/asvt/labs/lab3/images/print_word.png b/asvt/labs/lab3/images/print_word.png Binary files differnew file mode 100644 index 0000000..ea1fee3 --- /dev/null +++ b/asvt/labs/lab3/images/print_word.png diff --git a/asvt/labs/lab3/images/restore_screen.png b/asvt/labs/lab3/images/restore_screen.png Binary files differnew file mode 100644 index 0000000..7a5a4e0 --- /dev/null +++ b/asvt/labs/lab3/images/restore_screen.png diff --git a/asvt/labs/lab3/images/run.png b/asvt/labs/lab3/images/run.png Binary files differnew file mode 100644 index 0000000..9ed69dc --- /dev/null +++ b/asvt/labs/lab3/images/run.png diff --git a/asvt/labs/lab3/images/start_label.png b/asvt/labs/lab3/images/start_label.png Binary files differnew file mode 100644 index 0000000..5deea69 --- /dev/null +++ b/asvt/labs/lab3/images/start_label.png diff --git a/asvt/labs/lab3/lab3.tex b/asvt/labs/lab3/lab3.tex new file mode 100644 index 0000000..92babc4 --- /dev/null +++ b/asvt/labs/lab3/lab3.tex @@ -0,0 +1,242 @@ +\documentclass[bachelor, och, labwork]{SCWorks} +% параметр - тип обучения - одно из значений: +% spec - специальность +% bachelor - бакалавриат (по умолчанию) +% master - магистратура +% параметр - форма обучения - одно из значений: +% och - очное (по умолчанию) +% zaoch - заочное +% параметр - тип работы - одно из значений: +% referat - реферат +% coursework - курсовая работа (по умолчанию) +% diploma - дипломная работа +% pract - отчет по практике +% параметр - включение шрифта +% times - включение шрифта Times New Roman (если установлен) +% по умолчанию выключен + +\usepackage{subfigure} +\usepackage{tikz,pgfplots} +\pgfplotsset{compat=1.5} +\usepackage{float} + +%\usepackage{titlesec} +\setcounter{secnumdepth}{4} +%\titleformat{\paragraph} +%{\normalfont\normalsize}{\theparagraph}{1em}{} +%\titlespacing*{\paragraph} +%{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\paragraph}[block] +{\hspace{1.25cm}\normalfont} +{\theparagraph}{1ex}{} +\titlespacing{\paragraph} +{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} + +% --------------------------------------------------------------------------% + + +\usepackage[T2A]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{tempora} + +\usepackage[sort,compress]{cite} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsthm} +\usepackage{fancyvrb} +\usepackage{listings} +\usepackage{listingsutf8} +\usepackage{longtable} +\usepackage{array} +\usepackage[english,russian]{babel} + +\usepackage[colorlinks=true]{hyperref} +\usepackage{url} + + +\newcommand{\eqdef}{\stackrel {\rm def}{=}} + +\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}} + +\newtheorem{lem}{Лемма} + +\begin{document} + +% Кафедра (в родительном падеже) +\chair{} + +% Тема работы +\title{Отчет по дисциплине ``Аппаратные средства вычислительной техники'' по лабораторной работе \#3} + +% Курс +\course{1} + +% Группа +\group{131} + +% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ") +\department{факультета КНиИТ} + +% Специальность/направление код - наименование +%\napravlenie{09.03.04 "--- Программная инженерия} +%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем} +%\napravlenie{230100 "--- Информатика и вычислительная техника} +%\napravlenie{231000 "--- Программная инженерия} +\napravlenie{090301 "--- Компьютерная безопасность} + +% Для студентки. Для работы студента следующая команда не нужна. +% \studenttitle{Студентки} + +% Фамилия, имя, отчество в родительном падеже +\author{Гущина Андрея Юрьевича} + +% Заведующий кафедрой +% \chtitle{} % степень, звание +% \chname{} + +%Научный руководитель (для реферата преподаватель проверяющий работу) +\satitle{доцент} %должность, степень, звание +\saname{О. В. Мещерякова} + +% Руководитель практики от организации (только для практики, +% для остальных типов работ не используется) +% \patitle{к.ф.-м.н.} +% \paname{С.~В.~Миронов} + +% Семестр (только для практики, для остальных +% типов работ не используется) +%\term{8} + +% Наименование практики (только для практики, для остальных +% типов работ не используется) +%\practtype{преддипломная} + +% Продолжительность практики (количество недель) (только для практики, +% для остальных типов работ не используется) +%\duration{4} + +% Даты начала и окончания практики (только для практики, для остальных +% типов работ не используется) +%\practStart{30.04.2019} +%\practFinish{27.05.2019} + +% Год выполнения отчета +\date{2020} + +\maketitle + +% Включение нумерации рисунков, формул и таблиц по разделам +% (по умолчанию - нумерация сквозная) +% (допускается оба вида нумерации) +% \secNumbering + +\section{Задание 1} + +\textit{ + Напишите программу в формате exe, выводящую в шестнадцатеричном виде дамп + самой (коды) себя напрямую в видеобуфер (адрес B8000h) в текстовом режиме. + Программа должна восстанавливать экран после закрытия. +} + +Для выполнения задания я разделил программу на три процедуры: + +\begin{itemize} + \item \textbf{printWord} -- для вывода символа дампа программы + \item \textbf{clearScreen} -- для очистки экрана и сохранения его массив + \item \textbf{restoreScreen} -- для восстановления экрана после окончания программы +\end{itemize} + +В основной части программы установил счётчики и вычислил размер дампа программы. + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{start_label.png} + \caption{Основная часть программы} + \label{} +\end{figure} + +В процедуре clearScreen я записываю текущее состояние видеопамяти в буфер screenArr. +Сразу после этого записываю в видеопамять нули, чтобы очистить экран. + +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{clear_screen.png} + \caption{clearScreen} + \label{} +\end{figure} + +Дамп программы находится в регистре cs (Code segment). Последовательно читаем то +количество байт, которое мы вычислили в начале программы и выводим их по одному +с помощью процедуры printWord. + +В ней мы переводим байты в соответствующие символы по таблице ASCII. +Цифры в таблице начинаются со значения 30h, а буквы со значения 41h. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\textwidth]{print_word.png} + \caption{printWord} + \label{} +\end{figure} + +После вывода дампа приостановим программу с помощью функции 07h прерывания 21h +(Ожидания нажатия на любую кнопку). + +После этого вызовем функцию restoreScreen, чтобы восстановить экран в прежнее состояние. +Для этого надо записать в видеопамять значения из буфера screenArr, в который мы записывали +видеопамять в процедуре clearScreen. + +\begin{figure}[H] + \centering + \includegraphics[width=0.6\textwidth]{restore_screen.png} + \caption{restoreScreen} + \label{} +\end{figure} + +Пора запустить программу! + +Проассемблируем и слинкуем программу, чтобы создать .exe файл. + +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{compile.png} + \caption{Компилируем...} + \label{} +\end{figure} + +Запустил программу с помощью команды VDUMP.EXE и получил дамп этой же программы. + +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{run.png} + \caption{Читаем дамп} + \label{} +\end{figure} + +Получил строку из символов, которая начинается с 51B902... +Интересно получилось. + +После того, как я нажал на кнопку Enter программа закрылась, а экран +вернулся в то состояние, в котором было до запуска. И тут даже появилась +введенная команда запуска этой программы! + +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{exited.png} + \caption{Вернулись домой!} + \label{} +\end{figure} + +Попробовал получить дамп программы, которая работает у меня в голове и получилось вот это: + +\begin{figure}[H] + \centering + \includegraphics[width=0.7\textwidth]{mydump.jpg} + \caption{} + \label{} +\end{figure} + +\end{document} |