PageSourceSearch

https://itport.ugrasu.ru/login

html ugrasu.ru collected 2026-10-02 03:42:03 UTC 34,614 bytes, 654 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ru">
3
4<head>
5    <meta charset="utf-8"/>
6    <title>Elios 2.0 - Авторизация</title>
7    <meta name="description" content="ItPort.Ugrasu - Авторизация">
8    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
9    <meta name="csrf-token" content="Ca8itqEir1wYROlfeDzDAlVsBAeU8tsEVkuXJMbA">
10    <link rel="stylesheet" href="https://itport.ugrasu.ru/css/vendors/bootstrap/bootstrap-4.0.0.min.css">
11    <link href="https://itport.ugrasu.ru/css/login.css" rel="stylesheet" type="text/css"/>
12    <link rel="shortcut icon" href="https://itport.ugrasu.ru/favicon.ico">
13    <link href="https://itport.ugrasu.ru/css/vendors/font-awesome/all.min.css" rel="stylesheet">
14</head>
15
16<body class="header-fixed header-mobile-fixed header-bottom-enabled subheader-enabled page-loading">
17<div class="d-flex flex-column flex-root">
18    <div class="login login-4 login-signin-on d-flex flex-row-fluid" id="kt_login">
19        <div class="d-flex flex-center flex-row-fluid bgi-size-cover bgi-position-top bgi-no-repeat"
20             style="background-image: url('/img/system/auth/bg.jpg');">
21            <div class="login-form text-center p-7 position-relative overflow-hidden">
22                <div class="d-flex flex-center mb-3">
23                    <a href="#">
24                        <img src="/img/logo.svg" class="max-h-75px" alt=""/>
25                    </a>
26                </div>
27                <div id="App">
28                    <template v-if="haha">
29    <div class="alert alert-danger text-left">
30        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
31            <span aria-hidden="true">&times;</span>
32        </button>
33        <h5 class="alert-heading">Ошибка авторизации</h5>
34        <p>
35            Это сообщение отображается заранее, поскольку для авторизации на нашем сервисе не используются сторонние почтовые сервисы.
36        </p>
37        <p>
38            Предлагаем ввести выданный Вам логин или адрес корпоративной почты университета.
39        </p>
40    </div>
41</template>
42<template v-else>
43    <template v-if="messages.length > 0">
44        <template v-for="(message) in messages">
45            <template v-if="message.type === 'game_over'">
46                <div class="alert alert-danger text-left">
47                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
48                        <span aria-hidden="true">&times;</span>
49                    </button>
50                    <h5 class="alert-heading">Ошибка авторизации</h5>
51                    <p>
52                        Пользователь учетной записи не является работником или студентом
53                        университета.
54                    </p>
55                    <p class="mb-0">
56                        Возможно пользователь учетной записи был уволен или отчислен.
57                    </p>
58                </div>
59            </template>
60            <template v-else-if="message.type === 'game_pause'">
61                <div class="alert alert-danger text-left">
62                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
63                        <span aria-hidden="true">&times;</span>
64                    </button>
65                    <h5 class="alert-heading">Ошибка авторизации</h5>
66                    <p>
67                        Пользователь учетной записи не является работником или студентом
68                        университета.
69                    </p>
70                    <p class="mb-0">
71                        Возможно пользователь учетной записи был уволен или отчислен.
72                    </p>
73                </div>
74            </template>
75            <template v-else>
76                <div :class="'alert alert-' + message.color + ' text-left'">
77                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
78                        <span aria-hidden="true">&times;</span>
79                    </button>
80                    <h5 class="alert-heading">Ошибка авторизации</h5>
81                    <p>{{ message.message }}</p>
82                </div>
83            </template>
84        </template>
85    </template>
86</template>
87
88<div class="login-signin">
89    <div class="mb-3">
90        <h1><b class="text-primary">Elios</b><b class="text-muted">2.0</b></h1>
91        <!-- <div class="alert alert-warning text-left mb-1">
92            <p class="mb-0">В настоящий момент, наблюдаются проблемы авторизации у студентов, закончивших обучение.</p>
93        </div> -->
94        <div v-if="!this.success_status" class="text-muted font-weight-bold">Пожалуйста введите ваши данные, для
95            авторизации:
96        </div>
97    </div>
98
99    <template v-if="this.success_status">
100        <div class="alert alert-light text-center">
101            <div class="spinner-grow text-primary" role="status">
102                <span class="sr-only">Loading...</span>
103            </div>
104            <p class="mb-0">Авторизация успешно пройдена.</p>
105            <p class="mb-0">Пожалуйста подождите</p>
106        </div>
107    </template>
108    <template v-else>
109        <template v-if="form === 0">
110            <div class="form" id="kt_login_signin_form">
111                <div class="form-group mb-5">
112                    <input class="form-control h-auto form-control-solid py-4 px-8" type="text" placeholder="Login"
113                           v-model:trim="email" name="email" autocomplete="off"/>
114                </div>
115                <template v-if="!haha">
116                    <div class="form-group mb-5" style="position: relative;">
117                        <input class="form-control h-auto form-control-solid py-4 px-8" :type="showPassword ? 'text' : 'password'"
118                               placeholder="Password" name="password" v-model="password" v-on:keyup.enter="login()"/>
119
120                        <button class="btn btn-icon btn-sm" icon @click="showPassword = !showPassword"
121                                style="position: absolute; right: 10px; top: 50%; transform: translateY(-50%);">
122                                <i :class="showPassword ? 'fad fa-eye-slash' : 'fad fa-eye'"></i>
123                        </button>
124                    </div>
125                    <div class="form-group">
126                        <div class="col-12">
127                            <div class="row">
128                                <template v-if="login_status">
129                                    <button class="btn btn-primary col-12" type="button" disabled>
130                                    <span class="spinner-border spinner-border-sm" role="status"
131                                          aria-hidden="true"></span>
132                                        Аутентификация, пожалуйста подождите...
133                                    </button>
134                                </template>
135                                <template v-else>
136                                    <div class="ml-4 mb-2" style="display: flex; align-items: flex-start;">
137                                        <input class="mt-1" type="checkbox" id="acceptedCookies" @click="changeCookies" v-model="acceptedCookies">
138                                        <label class="ml-2 mb-0 text-left" for="acceptedCookies">
139                                            Я соглашаюсь на использование cookie согласно <a :href="cookieUrl" target="_blank">политике</a>
140                                        </label>
141                                    </div>
142                                    <div class="col-12" v-if="!haha">
143                                        <button id="kt_login_signin_submit" @click="login()"
144                                                class="btn btn-primary font-weight-bold col-12"
145                                                :disabled="!acceptedCookies">{{acceptedCookies ? 'Войти' : 'Для входа подтвердите использование cookie'}}
146                                        </button>
147                                    </div>
148<!--                                    <div class="col-8">-->
149<!--                                        <a href="#" onclick="window.open('/recoverypassword', '_blank');"-->
150<!--                                           class=" btn btn-light font-weight-bold col-12"-->
151<!--                                           style="cursor: pointer;">Восстановление пароля студента</a>-->
152<!--                                    </div>-->
153                                    <div class="col-12 mt-2">
154                                        <a href="#" @click="form = 1"
155                                           class="btn btn-outline-primary font-weight-bold col-12"
156                                           style="cursor: pointer;">Вход для студентов по личным данным</a>
157                                    </div>
158                                </template>
159                            </div>
160                        </div>
161                    </div>
162                </template>
163                <div class="form-group d-flex flex-wrap justify-content-between align-items-center">
164                    <div class="checkbox-inline">
165                    </div>
166                    <button class="btn btn-outline-light btn-sm" data-toggle="modal" data-target="#noLog">Не удается
167                        войти?
168                    </button>
169                </div>
170                </form>
171            </div>
172        </template>
173        <template v-else>
174            <div class="form" id="kt_login_signin_form">
175                <!-- <div class="form-group mb-3">
176                    <input
177                        :class="'form-control h-auto form-control-solid py-4 px-8 ' + ((email.length >= 4) ? 'is-valid' : ((email.length > 0) ? 'is-invalid':''))"
178                        type="text" placeholder="Корпоративные Login или Email." v-model:trim="email" autocomplete="off"
179                        @input="checkStudEmail()" @focus="checkStudEmail()" />
180                </div> -->
181                <div class="form-group mb-3">
182                    <input
183                        :class="'form-control h-auto form-control-solid py-4 px-8 ' + ((group.length >= 4 && group.length <= 10) ? 'is-valid' : ((group.length > 0) ? 'is-invalid':''))"
184                        type="text" name="group" placeholder="Ваша учебная группа" v-model:trim="group"
185                        autocomplete="off"/>
186                </div>
187                <div class="form-group mb-3">
188                    <input
189                        :class="'form-control h-auto form-control-solid py-4 px-8 ' + ((ffullname.length >= 4) ? 'is-valid' : ((ffullname.length > 0) ? 'is-invalid':''))"
190                        type="text" name="ffullname" placeholder="Фамилия Имя Отчество" v-model="ffullname"/>
191                </div>
192                <div class="form-group mb-5 text-left">
193                    <input
194                        :class="'form-control h-auto form-control-solid py-4 px-8 ' + ((bithday.length == 10) ? 'is-valid' : ((bithday.length > 0) ? 'is-invalid':''))"
195                        v-model="bithday" name="bithday" type="date" placeholder="Дата рождения - 01.01.2020">
196                    <small>Дата рождения</small>
197                </div>
198                <!-- <div class="form-group mb-5">
199                    <input class="form-control h-auto form-control-solid py-4 px-8 mb-0" v-model="passport" type="text"
200                        placeholder="Серия и номер паспорта - 1234 567890" minlength="11" maxlength="11">
201                </div> -->
202                <div class="form-group mb-3">
203                    <input
204                        :class="'form-control h-auto form-control-solid py-4 px-8 ' + ((snils.length == 14) ? 'is-valid' : ((snils.length > 0) ? 'is-invalid':''))"
205                        v-model="snils" type="text" name="snils" placeholder="СНИЛС - 123-567-901 34" minlength="14"
206                        maxlength="14">
207                </div>
208                <div class="form-group mb-3">
209                    <input
210                        :class="'form-control h-auto form-control-solid py-4 px-8 ' + ((inn.length == 12) ? 'is-valid' : ((inn.length > 0) ? 'is-invalid':''))"
211                        v-model="inn" type="text" name="inn" placeholder="ИНН - 123456789012" minlength="12"
212                        maxlength="12">
213                </div>
214                <small class="text-danger">Все поля обязательны для заполнения.</small>
215                <div class="form-group">
216                    <div class="col-12">
217                        <div class="row">
218                            <template v-if="login_status">
219                                <button class="btn btn-primary col-12" type="button" disabled>
220                                    <span class="spinner-border spinner-border-sm" role="status"
221                                          aria-hidden="true"></span>
222                                    Аутентификация, пожалуйста подождите...
223                                </button>
224                            </template>
225                            <template v-else>
226                                <div class="ml-4 mb-2">
227                                    <input type="checkbox" id="acceptedCookies" @click="changeCookies" v-model="acceptedCookies">
228                                    <label class="ml-1" for="acceptedCookies">
229                                        Я соглашаюсь на использование cookie согласно <a :href="cookieUrl" target="_blank">политике</a>
230                                    </label>
231                                </div>
232                                <div class="col-12">
233                                    <button id="kt_login_signin_submit" @click="login()"
234                                            class="btn btn-primary font-weight-bold col-12"
235                                            :disabled="!acceptedCookies">Войти
236                                    </button>
237                                </div>
238                                <div class="col-12 mt-2">
239                                    <a href="#" @click="form = 0" class="btn btn-light font-weight-bold col-12"
240                                       style="cursor: pointer;">Войти по логину и паролю</a>
241                                </div>
242                            </template>
243                        </div>
244                    </div>
245                </div>
246                <div class="form-group d-flex flex-wrap justify-content-between align-items-center">
247                    <div class="checkbox-inline">
248                    </div>
249                    <button class="btn btn-outline-light btn-sm" data-toggle="modal" data-target="#noLog">Не удается
250                        войти?
251                    </button>
252                </div>
253                </form>
254            </div>
255        </template>
256    </template>
257</div>
258
259<!-- Модальное окно -->
260<div class="modal fade" id="noLog" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
261    <div class="modal-dialog modal-dialog-centered" role="document">
262        <div class="modal-content">
263            <div class="modal-header">
264                <h5 class="modal-title" id="exampleModalLabel">Что делать если не удается авторизоваться?</h5>
265                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
266                    <span aria-hidden="true">&times;</span>
267                </button>
268            </div>
269            <div class="modal-body p-0">
270                <div id="accordion">
271                    <div class="card">
272                        <div class="card-header p-1" id="headingTwo">
273                            <h5 class="mb-0">
274                                <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo"
275                                        aria-expanded="false" aria-controls="collapseTwo">
276                                    Обучающемуся
277                                </button>
278                            </h5>
279                        </div>
280                        <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
281                            <div class="card-body p2">
282                                <p class="mb-0">Логин и пароль заводятся на студентов очной и заочной формы обучения при
283                                    их зачислении. Для того, чтобы узнать свой логин и пароль необходимо обратиться в
284                                    учебную часть своего института.</p>
285                                <div class="">
286                                    <p class="mb-0">Гуманитарный институт: <b>2-й корпус, кабинеты 301,361.</b></p>
287                                    <p class="mb-0">Юридический институт: <b>4-й корпус, кабинеты 208,223.</b></p>
288                                    <p class="mb-0">Институт нефти и газа: <b>3-й корпус, кабинеты 328,425.</b></p>
289                                    <p class="mb-0">Институт цифровой экономики: <b>4-й корпус, кабинеты 323,325.</b>
290                                    </p>
291                                </div>
292                                <hr class="mb-0"/>
293                                <p class="mt-2">В случае утраты пароля, вы можете восстановить его воспользовавшись
294                                    формой
295                                    <button class="btn btn-outline-primary btn-sm"
296                                            onClick='location.href="/recoverypassword"'>
297                                        Восстановление пароля студента
298                                    </button>
299                                </p>
300                            </div>
301                        </div>
302                    </div>
303                    <div class="card">
304                        <div class="card-header p-1" id="headingOne">
305                            <h5 class="mb-0">
306                                <button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne"
307                                        aria-expanded="true" aria-controls="collapseOne">
308                                    Работнику
309                                </button>
310                            </h5>
311                        </div>
312                        <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordion">
313                            <div class="card-body p-2">
314                                <p class="mt-2 mb-0">Если у вас уже имеются верные логин и пароль, но вам не удается
315                                    авторизоваться на Elios 2.0, необходимо обратиться в отдел разработки ИС
316                                </p>
317                            </div>
318                        </div>
319                    </div>
320                    <div class="alert alert-light text-dark mt-2 mb-0">
321                        <p class="mb-0">Вход в систему электронной информационно-образовательной среды <b
322                            class="text-primary">Elios</b> <b class="text-muted">2.0</b>
323                            доступен только <b style="text-decoration: dotted; cursor: pointer;"
324                                               title="Работник считаются действующими, если на текущую дату с ним имеется действующий заключенный трудовой договор, который подразумевает необходимость использования работником корпоративных информационных систем университета">действующим</b>
325                            работникам и <b style="text-decoration: dotted; cursor: pointer;"
326                                            title="Студент считаются обучающимся, если на текущую дату он не отчилен из числа обучающихся студентов, и не находится в академическом отпуске">обучающимся</b>
327                            студентам ЮГУ.
328                        </p>
329                    </div>
330                </div>
331            </div>
332        </div>
333    </div>
334</div>
335
336<template v-if="!acceptedCookies">
337    <div class="cookie-banner">
338        <p class="m-0">
339            Для улучшения работы сайта и его взаимодействия с пользователями мы используем файлы cookie.
340            Чтобы продолжить работу с сайтом, подтвердите использование cookie-файлов вашего браузера. <br/>
341            Для получения дополнительной информации смотрите <a :href="cookieUrl" target="_blank">политику cookie</a>
342        </p>
343        <div class="cookie-actions">
344            <button class="cookie-btn btn btn-primary font-weight-bold" style="font-size: 15px;" @click="changeCookies">Согласен</button>
345        </div>
346    </div>
347</template>                    <div class="alert alert-outline-danger text-center p-1" id="veryOldVersionMessage" hidden>
348                        <p class="mb-0">К сожалению браузер, не поддерживает функционал системы.</p>
349                        <p class="mb-0">Мы рекомендуем использовать Яндекс Браузер. <img
350                                src="/img/system/auth/Yandex-Logo.png" width="32" height="32"/></p>
351                        <p class="mb-0"><b>Скачать</b> и <b>установить</b> новую версию можно по <a
352                                href="https://browser.yandex.ru"><b>ссылке</b></a>.</p>
353                    </div>
354                </div>
355
356                
357
358                <div class="alert alert-light text-center mt-23">
359                    © ФГБОУ ВО Югорский государственный университет.
360                </div>
361
362                <footer>
363                    <div class="text-center" style="color: #48465b">
364                        2026 &nbsp;&copy;&nbsp;<a href=""
365                                                             class="text-muted">Elios 2.0</a>
366                    </div>
367                </footer>
368            </div>
369        </div>
370    </div>
371</div>
372</div>
373</body>
374<script src="https://itport.ugrasu.ru/js/vendors/jquery/jquery-3.2.1.slim.min.js" type="text/javascript">
375</script>
vendor: 1 bytes, line 375
375
376<script src="https://itport.ugrasu.ru/js/vendors/popper/popper-1.12.9.min.js" type="text/javascript">
377</script>
vendor: 1 bytes, line 377
377
378<script src="https://itport.ugrasu.ru/js/vendors/bootstrap/bootstrap-4.0.0.min.js" type="text/javascript">
379</script>
vendor: 1 bytes, line 379
379
380<script src="https://itport.ugrasu.ru/js/vendors/axios/axios.min.js" type="text/javascript"></script>
vendor: 1 bytes, line 380
380
381<script src="js/vendors/vuejs/vue.min.js"></script>
vendor: 1 bytes, line 381
381
382<script>
383    var veryOldVersionMessage = document.querySelector('#veryOldVersionMessage');
384    setTimeout(veryOldVersionMessage.removeAttribute('hidden'), 100);
385</script>
vendor: 1 bytes, line 385
385
386<script>
387    new Vue({
388        el: "#App",
389        data: {
390            email: "",
391            password: "",
392            messages: [],
393            login_status: false,
394            success_status: false,
395            form: 0,
396            ffullname: "",
397            group: "",
398            bithday: "",
399            passport: "",
400            snils: "",
401            inn: "",
402            haha: false,
403            acceptedCookies: false,
404            showPassword: false,
405            cookieUrl: "https://www.ugrasu.ru/upload/iblock/5f3/5qyulgqu74jwwcacw4dx0rgllop23376.pdf"
406        },
407        methods: {
408            getCookieValue() {
409                return localStorage.getItem('itportAcceptedCookies') === 'true';
410            },
411            changeCookies() {
412                this.acceptedCookies = !this.acceptedCookies;
413                localStorage.setItem('itportAcceptedCookies', this.acceptedCookies.toString());
414            },
415            login() {
416                this.haha = false;
417                let status = true;
418                if (this.form === 0) {
419                    let status = true;
420                    if (this.email) {
421                        if ((/^(.[@.a-zA-Z0-9_-]*)$/).test(this.email)) {
422                            status = false;
423                            if (this.email.includes("@")) {
424                                status = true;
425                                if ((/^[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/).test(this.email)) {
426                                    const domain = this.email.match(/.+@(.+)/).pop();
427                                    if (["ugrasu.ru", "edu.ugrasu.ru"].includes(domain)) {
428                                        status = false;
429                                    }
430                                }
431                            }
432                        }
433                    }
434                    if (status) {
435                        this.haha = true;
436                        return;
437                    }
438                }
439                if (this.login_status || !this.getCookieValue()) return;
440                this.login_status = true;
441                this.messages = [];
442                axios({
443                    method: "post",
444                    url: "/login",
445                    data: {
446                        email: this.email,
447                        password: this.password,
448                        form: this.form,
449                        group: this.group,
450                        ffullname: this.ffullname,
451                        bithday: this.bithday,
452                        passport: this.passport,
453                        snils: this.snils,
454                        inn: this.inn
455                    }
456                }).then((response) => {
457                    if (response.status === 200) {
458                        if (response.data.redirect !== undefined) {
459
460                            this.success_status = true;
461
462                            const params = new URLSearchParams(
463                                window.location.search);
464
465                            const url = params.has('redirect') ?
466                                params.get('redirect') : response.data.redirect;
467
468                            window.location.replace(url);
469
470                        } else {
471                            this.messages = [];
472                            this.messages.push({
473                                type: response.data.type,
474                                color: response.data.color,
475                                message: response.data.message
476                            });
477                        }
478                    } else if (response.status === 401) {
479                        this.addMessage('danger', 'danger',
480                            "Пользователь с введенными логином и паролем не найден.");
481                    } else {
482                        this.addMessage('danger', 'danger',
483                            "При авторизации произошла ошибка.");
484                    }
485                }).then(() => {
486                    this.login_status = false;
487                });
488            },
489            addMessage(type, color, message) {
490                this.messages = [];
491                this.messages.push({
492                    type: type,
493                    color: color,
494                    message: message
495                });
496            },
497
498            //Для окончивших обучение
499            passportFormat() {
500                this.passport = this.passport.trim();
501                let length = this.passport.length;
502                for (let i = 0; i < length; i++) {
503                    if (!this.isNumeric(this.passport[i]) || i > 10) {
504                        this.passport = this.passport.replace(this.passport[i], "");
505                    }
506                }
507                if (this.passport.length > 4) {
508                    let length = this.passport.length;
509                    let new_passport = "";
510                    for (let i = 0; i < length; i++) {
511                        if (i < 4) {
512                            new_passport = new_passport + this.passport[i];
513                        } else if (i === 4) {
514                            new_passport = new_passport + ' ' + this.passport[i];
515                        } else {
516                            new_passport = new_passport + this.passport[i];
517                        }
518                    }
519                    this.passport = new_passport;
520                }
521            },
522
523            snilsFormat() {
524                this.snils = this.snils.trim();
525                let length = this.snils.length;
526                for (let i = 0; i < length; i++) {
527                    if (!this.isNumeric(this.snils[i]) || i > 14) {
528                        this.snils = this.snils.replace(this.snils[i], "");
529                    }
530                }
531                if (this.snils.length > 4) {
532                    let length = this.snils.length;
533                    let new_snils = "";
534                    for (let i = 0; i < length; i++) {
535                        if (i < 3) {
536                            new_snils = new_snils + this.snils[i];
537                        } else if (i === 3) {
538                            new_snils = new_snils + '-' + this.snils[i];
539                        } else if (i < 6) {
540                            new_snils = new_snils + this.snils[i];
541                        } else if (i === 6) {
542                            new_snils = new_snils + '-' + this.snils[i];
543                        } else if (i < 9) {
544                            new_snils = new_snils + this.snils[i];
545                        } else if (i === 9) {
546                            new_snils = new_snils + ' ' + this.snils[i];
547                        } else {
548                            new_snils = new_snils + this.snils[i];
549                        }
550                    }
551                    this.snils = new_snils;
552                }
553            },
554
555            checkStudEmail() {
556                if (this.email.length > 0) {
557                    if (this.email.indexOf("@edu.ugrasu.ru") === -1) {
558                        this.email = this.email + "@edu.ugrasu.ru";
559                    }
560                }
561            },
562
563            innFormat() {
564                this.inn = this.inn.trim();
565                let length = this.inn.length;
566                for (let i = 0; i < length; i++) {
567                    if (!this.isNumeric(this.inn[i]) || i > 11) {
568                        this.inn = this.inn.replace(this.inn[i], "");
569                    }
570                }
571            },
572
573            isNumeric(n) {
574                return !isNaN(parseFloat(n)) && isFinite(n);
575            },
576        },
577        watch: {
578            passport: function (val) {
579                this.passportFormat();
580                return this.passport;
581            },
582            snils: function (val) {
583                this.snilsFormat();
584                return this.snils;
585            },
586            inn: function (val) {
587                this.innFormat();
588                return this.inn;
589            },
590            email: function (val) {
591                this.haha = false;
592                return this.email;
593            }
594        },
595        created() {
596            veryOldVersionMessage = document.querySelector('#veryOldVersionMessage');
597            if (!veryOldVersionMessage.hasAttribute('hidden')) {
598                document.querySelector('#veryOldVersionMessage').setAttribute('hidden', true);
599            }
600        },
601        mounted() {
602            this.acceptedCookies = this.getCookieValue()
603        }
604    })
605</script>
vendor: 1 bytes, line 605
605
606<script src="js/vendors/browserVersionControl/browserVersionControl.min.js" charset="utf-8"></script>
606
607
608<style>
609    .cookie-banner {
610        position: fixed;
611        bottom: 0;
612        left: 0;
613        width: 100%;
614        background-color: #f1f1f1;
615        color: #333;
616        padding: 20px;
617        box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2);
618        display: flex;
619        justify-content: space-between;
620        align-items: center;
621        z-index: 1000;
622        font-size: 15px;
623        text-align: left;
624        flex: 1;
625    }
626    .cookie-actions {
627        padding: 0 20px;
628    }
629    .cookie-btn {
630        padding: 0.65rem 2.5rem;
631    }
632
633    @media  screen and (max-width: 450px) {
634        .cookie-banner {
635            flex-direction: column;
636        }
637        .cookie-actions {
638            width: 100%;
639            margin-top: 10px;
640            padding: 0;
641        }
642        .cookie-btn {
643            width: 100%;
644        }
645    }
646
647      .alert-outline-danger {
648        color: #842029;
649        border: 2px solid #f5c2c7;
650        background-color: transparent;
651    }
652</style>
653
654</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.