[{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-41 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"Facta loquuntur.","signatureHTML":"Facta loquuntur.","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.979,"absoluteRating":109927,"dynamicRating":1675.965,"dynamicRatingStars":10,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-02T10:41:37.6427281+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":6559,"questions":12,"questionsPosts":18345,"questionsAnswers":6663,"questionsPostsEvaluations":2831,"forumPosts":5698},"isRfproUserClass":true,"id":17387,"name":"Гордиенко Андрей Владимирович","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-04-29T08:02:54","photo":"users/17387/f4979bc95a484b9f43f75cfe66538acd.jpg","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"users/17387/200_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview120":"users/17387/120_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview100":"users/17387/100_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview80":"users/17387/80_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview40":"users/17387/40_f4979bc95a484b9f43f75cfe66538acd.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-41 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\nЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","aboutHTML":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\u003Cbr\u003EЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.935,"absoluteRating":25753,"dynamicRating":460.579,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-02T10:41:37.6430414+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":5591,"questions":25,"questionsPosts":7459,"questionsAnswers":1225,"questionsPostsEvaluations":788,"forumPosts":399},"isRfproUserClass":true,"id":259041,"name":"Алексеев Владимир Николаевич","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-01-30T15:24:45","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-41 мин."},"isBanned":false,"roleString":"Старший Модератор","roleIcon":"fa-user-tie","socialMedia":[],"aboutText":"634034, г.Томск, ул.Красноармейская 122, кв.173","aboutHTML":"634034, г.Томск, ул.Красноармейская 122, кв.173","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.985,"absoluteRating":21746,"dynamicRating":412.172,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-02T10:41:37.643254+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":13,"counters":{"daysAtPortal":5276,"questions":1,"questionsPosts":1973,"questionsAnswers":1283,"questionsPostsEvaluations":588,"forumPosts":91},"isRfproUserClass":true,"id":312929,"name":"Коцюрбенко Алексей Владимирович","email":"","role":12,"registDate":"1000-01-01T00:00:00","lastDate":"2023-11-05T17:20:40","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-41 мин."},"isBanned":false,"roleString":"Советник","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":5,"absoluteRating":9460,"dynamicRating":386.278,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-02T10:41:37.6434758+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":10,"counters":{"daysAtPortal":2449,"questions":0,"questionsPosts":472,"questionsAnswers":398,"questionsPostsEvaluations":298,"forumPosts":1},"isRfproUserClass":true,"id":401284,"name":"Михаил Александров","email":"","role":9,"registDate":"1000-01-01T00:00:00","lastDate":"2024-04-21T19:50:04","photo":"users/401284/48171011af39b6bb3a74df8c0fcf97d0.jpg","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"users/401284/200_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview120":"users/401284/120_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview100":"users/401284/100_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview80":"users/401284/80_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview40":"users/401284/40_48171011af39b6bb3a74df8c0fcf97d0.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-41 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.987,"absoluteRating":6052,"dynamicRating":221.89,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-02T10:41:37.6436542+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":2727,"questions":0,"questionsPosts":527,"questionsAnswers":250,"questionsPostsEvaluations":155,"forumPosts":0},"isRfproUserClass":true,"id":400669,"name":"epimkin","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-02-19T23:46:05","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-41 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"[i]С уважением[/i]\n[i]shvetski[/i]","signatureHTML":"\u003Ci\u003EС уважением\u003C/i\u003E\u003Cbr\u003E\u003Ci\u003Eshvetski\u003C/i\u003E","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.963,"absoluteRating":11493,"dynamicRating":201.002,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-05-02T10:41:37.6438553+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":5717,"questions":35,"questionsPosts":1567,"questionsAnswers":588,"questionsPostsEvaluations":324,"forumPosts":44},"isRfproUserClass":true,"id":226425,"name":"Konstantin","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-05-02T06:49:11","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false}]
Добрый день уважаемые эксперты! Прошу помочь в написании программы : Дана целочисленная матрица в байтовом формате по строкам. Все операции обработки матрицы реализовать только циклами. При необходимости использовать макросы. Размерность 4х4. Транспонирование матрицы. Прошу как можно подробнее написать коментарии к программе. Модель памяти - .model small Заранее благодарен.
Смотрите приложение. Компилятор TASM 2.0. Обращаю Ваше внимание, что транспонирование указателя на матрицу неуниверсальное и подходит только под матрицы с размером равным степеням двойки, т.е. 2,4,8 и т.д.
вопросы задавайте в мини-форум. Удачи!
Приложение: model small .186 .code begin: ;Адресуем сегментные регистры mov ax,@data mov ds,ax mov es,ax ;Выводим исходную матрицу call OutMatrix ;Транспонируем матрицу call TranspMatrix ;Выводим полученный результат call OutMatrix ;Ожидаем любую клавишу и завершаем программу xor ax,ax int 16h mov ax,4c00h int 21h ; ;Вывод матрицы ;устанавливаем внешний индекс цикла OutMatrix: mov cx,4 ;сбрасываем указатель в матрице xor si,si ;запоминаем его в стеке OM1: push cx ;устанавливаем внутренний индекс цикла mov cx,4 ;считываем значение числа OM2: mov al,[Matrix+si] ;переходим к следующему числу inc si ;выводим число на экран call OutNumber ;проверяем внутренний цикл loop OM2 ;переходим на новую строку call NewLine ;востанавливаем внешний индекс цикла pop cx ;проверяем внешний индекс цикла loop OM1 ;переходим на новую строку NewLine: mov al,10 int 29h mov al,13 int 29h ;возвращаемся из под програмы ret ; ;Выводим одно число в АХ ;запоминаем счетчик цикла в стеке OutNumber: push cx ;система счисления, в данном случае 10-ая mov bx,10 ;сбрасываем старшую часть слова xor ah,ah ;сбрасываем счетчик цифр xor cx,cx ;сбрасываем остаток ON1: xor dx,dx ;длелим на систему счисления и получаем остаток от деления div bx ;запоминаем остаток в стеке push dx ;считаем запомненую цифру inc cx ;посторяем пока АХ больше нуля or ax,ax jnz ON1 ;форматируем вывод чисел ;значение, которое при +30Н даст код пробела mov ax,-10h ;увеличиваем счетчик цифр в стеке ON2: inc cx ;запоминаем в стеке условный код пробела push ax ;повторяем пока в стеке не будет 4-е цифры cmp cx,4 jnz ON2 ;выводим число на экран ;извлекаем из стека очередную цифру ON3: pop ax ;переводим в символьный код для вывода на экран add al,30h ;выводим на экран символ int 29h ;повторяем пока в стеке есть цифры loop ON3 ;востанавливаем счетчик цикла pop cx ret ; ;трнспонируем матрицу ;устанавливаем индекс внешнего цикла TranspMatrix: mov cx,4 ;сбрасываем указатель в матрице xor si,si ;сохраняем индекс внешнего цикла TM1: xchg dx,cx ;устанавливаем индекс внутреннего цикла mov cx,4 ;проверяем индексы циклов TM2: cmp cx,dx ;если внешний больше или равен внутреннему пропускаем jbe TM3 ;транспонируем указатель на элемент матрицы - строку mov di,si ;получаем младшие биты and di,03h ;умножаем их на 4-е shl di,2 ;транспонируем указатель на элемент матрицы - столбец mov ax,si ;делим на 4-е shr ax,2 ;суммируем новое транспонированное значение указателя add di,ax ;читаем число из матрицы mov al,[Matrix+si] ;обмениваем его с числом по транспонированному адресу указателя xchg [Matrix+di],al ;записываем транспонированное значение mov [Matrix+si],al ;следующий элемент матрицы TM3: inc si ;проверяем индекс внутреннего цикла loop TM2 ;востанавливаем значение индекса внешнего цикла xchg dx,cx ;проверяем индекс внешнего цикла loop TM1 ;выход из подпрограммы ret ;сегмент данных .data Matrix db 01,02,03,04 db 05,06,07,08 db 09,10,11,12 db 13,14,15,16 ;сегмент стека .stack 100h ;точка входа в программу end begin
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Здравствуйте, Посетитель - 388022! Альтернативная подпрограмма отработки транспонирования матрицы в ответе Константина Николаевича (можно просто заменить) Данная подпрограмма не зависит от размерности матрицы, т.е. N может быть любым
Работает следующим образом: "пробегаем" элементы верхнего треугольника, используя два регистра: bx для адресации строки и si для адресации элемента в строке. Значение регистра bx используется я проверки конца отработки, а значение регистра si - для проверки конца строки. Одновременно с изменением указанных выше регистров для адресации соответствующего транспонированного элемента соответственно меняется регистр di
Код:
N equ 4 ;размерность матрицы
TranspMatrix: xor bx,bx ;база строки xor si,si ;смещение элемента в строке xor di,di ;смещение транспонированного элемента TM1: ;цикл по строкам верхнего треугольника push si ;сохраним индекс в строке push di ;сохраним смещение транспонированного элемента TM2: ;цикл по элементам строки верхнего треугольника inc si ;диагональный элемент обходим add di,N ;аналогично для второго элемента cmp si,N ;дошли до края строки? je TM3 ;да - переходим на следующую
;обмениваем элементы mov al,[Matrix+bx+si] xchg [Matrix+di],al mov [Matrix+bx+si],al
jmp TM2 ;на слеующий элемент в строке TM3: ;переход на следующую строку pop di ;восстановим индексы pop si add bx, N ;переходим на слеующую строку inc si ;и смещаемся на одну позицию вправо ;(рассматриваем только верхний треугольник) add di, N+1 ;смещаемся на одну строку вниз и на одну позицию вправо ;(соответствующая позиция в нижнем треугольнике) cmp bx, (N-1)*N ;дошли до последней строки? jne TM1 ;нет - на отраотку строки ret
Об авторе:
"Если вы заметили, что вы на стороне большинства, — это верный признак того, что пора меняться." Марк Твен
Неизвестный
15.05.2012, 13:40
общий
Адресаты:
Снова здравствуйте! Вобщем попробовал совместить всё вместе, а так же кое что поменял местами (сделал как показывали в институте), прошу проверить привильно ли я всё сделал, и можно ли было менять местами, как я это сделал, вобщем вот что получилось : .model small .186 .stack 100h .data Matrix db 01,02,03,04 db 05,06,07,08 db 09,10,11,12 db 13,14,15,16 .code begin:
;Вывод матрицы OutMatrix: mov cx,4 ;устанавливаем внешний индекс цикла xor si,si ;сбрасываем указатель в матрице OM1: push cx ;запоминаем его в стеке mov cx,4 ;устанавливаем внутренний индекс цикла OM2: mov al, [Matrix+si] ;считываем значение числа inc si ;переходим к следующему числу call OutNumber ;выводим число на экран loop OM2 ;проверяем внутренний цикл call NewLine ;переходим на новую строку pop cx ;востанавливаем внешний индекс цикла loop OM1 ;проверяем внешний индекс цикла
;переходим на новую строку NewLine: mov al,10 int 29h mov al,13 int 29h ret ;возвращаемся из под програмы
;Выводим одно число в АХ OutNumber: push cx ;запоминаем счетчик цикла в стеке mov bx,10 ;система счисления, в данном случае 10-ая xor ah,ah ;сбрасываем старшую часть слова xor cx,cx ;сбрасываем счетчик цифр ON1: xor dx,dx ;сбрасываем остаток div bx ;длелим на систему счисления и получаем остаток от деления push dx ;запоминаем остаток в стеке inc cx ;считаем запомненую цифру or ax,ax ;посторяем пока АХ больше нуля jnz ON1
;форматируем вывод чисел mov ax,-10h ;значение, которое при +30Н даст код пробела
ON2: inc cx ;увеличиваем счетчик цифр в стеке push ax ;запоминаем в стеке условный код пробела cmp cx,4 ;повторяем пока в стеке не будет 4-е цифры jnz ON2
;выводим число на экран ON3: pop ax ;извлекаем из стека очередную цифру add al,30h ;переводим в символьный код для вывода на экран int 29h ;выводим на экран символ loop ON3 ;повторяем пока в стеке есть цифры pop cx ;востанавливаем счетчик цикла ret
;трнспонируем матрицу ;устанавливаем индекс внешнего цикла TranspMatrix: xor bx,bx ;база строки xor si,si ;смещение элемента в строке xor di,di ;смещение транспонированного элемента TM1: ;цикл по строкам верхнего треугольника push si ;сохраним индекс в строке push di ;сохраним смещение транспонированного элемента TM2: ;цикл по элементам строки верхнего треугольника inc si ;диагональный элемент обходим add di,N ;аналогично для второго элемента cmp si,N ;дошли до края строки? je TM3 ;да - переходим на следующую
;обмениваем элементы mov al,[Matrix+bx+si] xchg [Matrix+di],al mov [Matrix+bx+si],al jmp TM2 ;на слеующий элемент в строке TM3: ;переход на следующую строку pop di ;восстановим индексы pop si add bx, N ;переходим на слеующую строку inc si ;и смещаемся на одну позицию вправо ;(рассматриваем только верхний треугольник) add di, N+1 ;смещаемся на одну строку вниз и на одну позицию вправо ;(соответствующая позиция в нижнем треугольнике) cmp bx, (N-1)*N ;дошли до последней строки? jne TM1 ;нет - на отработку строки ret ;Ожидаем любую клавишу и завершаем программу xor ax,ax int 16h mov ax,4c00h int 21h end begin
[code h=200]model small N equ 4 .186 .code begin: ;Адресуем сегментные регистры mov ax,@data mov ds,ax mov es,ax ;Выводим исходную матрицу call OutMatrix ;Транспонируем матрицу call TranspMatrix ;Выводим полученный результат call OutMatrix ;Ожидаем любую клавишу и завершаем программу xor ax,ax int 16h mov ax,4c00h int 21h ; ;Вывод матрицы ;устанавливаем внешний индекс цикла OutMatrix: mov cx,N ;сбрасываем указатель в матрице xor si,si ;запоминаем его в стеке OM1: push cx ;устанавливаем внутренний индекс цикла mov cx,N ;считываем значение числа OM2: mov al,[Matrix+si] ;переходим к следующему числу inc si ;выводим число на экран call OutNumber ;проверяем внутренний цикл loop OM2 ;переходим на новую строку call NewLine ;востанавливаем внешний индекс цикла pop cx ;проверяем внешний индекс цикла loop OM1 ;переходим на новую строку NewLine: mov al,10 int 29h mov al,13 int 29h ;возвращаемся из под програмы ret ; ;Выводим одно число в АХ ;запоминаем счетчик цикла в стеке OutNumber: push cx ;система счисления, в данном случае 10-ая mov bx,10 ;сбрасываем старшую часть слова xor ah,ah ;сбрасываем счетчик цифр xor cx,cx ;сбрасываем остаток ON1: xor dx,dx ;длелим на систему счисления и получаем остаток от деления div bx ;запоминаем остаток в стеке push dx ;считаем запомненую цифру inc cx ;посторяем пока АХ больше нуля or ax,ax jnz ON1 ;форматируем вывод чисел ;значение, которое при +30Н даст код пробела mov ax,-10h ;увеличиваем счетчик цифр в стеке ON2: inc cx ;запоминаем в стеке условный код пробела push ax ;повторяем пока в стеке не будет 4-е цифры cmp cx,N jnz ON2 ;выводим число на экран ;извлекаем из стека очередную цифру ON3: pop ax ;переводим в символьный код для вывода на экран add al,30h ;выводим на экран символ int 29h ;повторяем пока в стеке есть цифры loop ON3 ;востанавливаем счетчик цикла pop cx ret ; ;трнспонируем матрицу ;устанавливаем размер матрицы TranspMatrix: mov bx,N ;устанавливаем индекс внешнего цикла mov cx,N ;сбрасываем указатель в матрице xor si,si ;сохраняем индекс внешнего цикла TM1: xchg dx,cx ;устанавливаем индекс внутреннего цикла mov cx,N ;проверяем индексы циклов TM2: cmp cx,dx ;если внешний больше или равен внутреннему пропускаем jbe TM3 ;сохраняем используемый регистр push dx ;готовимся к преобразованиям mov ax,si ;разделяем строки и столбцы xor dx,dx div bx ;АХ - строка ;DX - столбец ;запоминаем строку mov di,ax ;работаем со столбцом mov ax,dx ;преобразовываем столбец в указатель xor dx,dx mul bx ;получаем транспонированный указатель add di,ax ;востанавливаем регистр pop dx ;считываем текущее число mov al,[Matrix+si] ;обмениваем его с числом по транспонированному адресу указателя xchg [Matrix+di],al ;записываем транспонированное значение mov [Matrix+si],al ;следующий элемент матрицы TM3: inc si ;проверяем индекс внутреннего цикла loop TM2 ;востанавливаем значение индекса внешнего цикла xchg dx,cx ;проверяем индекс внешнего цикла loop TM1 ;выход из подпрограммы ret ;сегмент данных .data ;Matrix db 01,02,03,04 ; db 05,06,07,08 ; db 09,10,11,12 ; db 13,14,15,16 ;формируем матрицу Matrix label byte i = 1 rept N*N db i i = i+1 endm ;сегмент стека .stack 100h ;точка входа в программу end begin[/code] Переделал транспониование с помощью умножения и деления, а не сдвигов. Добавил единственный оптимальный макрос, т.к. всё остальное только увеличивает длину кода.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Совершенно верно, у Вас получилось, что после второго вызова п/п вывода матрицы Вы опять попадаете, уже прямо, на нее же и после ret улетаете неизвестно куда... А надо завершить программу...
Об авторе:
"Если вы заметили, что вы на стороне большинства, — это верный признак того, что пора меняться." Марк Твен
Об авторе:
"Если вы заметили, что вы на стороне большинства, — это верный признак того, что пора меняться." Марк Твен
Неизвестный
15.05.2012, 14:58
общий
Останусь на своём варианте, так мне легче воспринимать и понимать программу, как я понял если верну 4 строчки : ;Ожидаем любую клавишу и завершаем программу xor ax,ax int 16h mov ax,4c00h int 21h то всё остальное будет правильно? Может быть глупый вопрос но не понимаю почему по порядку не пишется, допустим: "сначала задаём сегмент стека, формируем матрицу ... трансопируем ... и в конце уже соответственно код завершения программы". В данном случае всё немного наоборот.
Неизвестный
15.05.2012, 15:12
общий
Я плоховато пока разбираюсь в ассемблере. Может это неправильно но мне проще воспринимать когда всё по порядку, если можно то прошу подправить в моём варианте так чтобы было правильно . Заранее большое спасибо!)
Сегменты стека, данных и кода Вы можете распологать в любой последовательности и в лобом количестве. К примеру даже так: .data .stack .code .data .code .data Компилятор при комппановке программы сам соберет одноименные сегменты одной группы, т.е. в результирующем коде они будут располагатся в одном сегменте. Аналогично происходит и с кодом. Но если данные могут быть разбросанны и не систематизированны. Код представляет собой определенный программистом последовательный набор команд процессора, которые выполняют определенный алгоритм заложенный в программу. Любое нарушения этой последовательности приводит к сбоям и т.д.
К примеру так будет правильно:
[code h=200].model small .186 .stack 100h .data Matrix db 01,02,03,04 db 05,06,07,08 db 09,10,11,12 db 13,14,15,16 .code
;Вывод матрицы OutMatrix: mov cx,4 ;устанавливаем внешний индекс цикла xor si,si ;сбрасываем указатель в матрице OM1: push cx ;запоминаем его в стеке mov cx,4 ;устанавливаем внутренний индекс цикла OM2: mov al, [Matrix+si] ;считываем значение числа inc si ;переходим к следующему числу call OutNumber ;выводим число на экран loop OM2 ;проверяем внутренний цикл call NewLine ;переходим на новую строку pop cx ;востанавливаем внешний индекс цикла loop OM1 ;проверяем внешний индекс цикла
;переходим на новую строку NewLine: mov al,10 int 29h mov al,13 int 29h ret ;возвращаемся из под програмы
;Выводим одно число в АХ OutNumber: push cx ;запоминаем счетчик цикла в стеке mov bx,10 ;система счисления, в данном случае 10-ая xor ah,ah ;сбрасываем старшую часть слова xor cx,cx ;сбрасываем счетчик цифр ON1: xor dx,dx ;сбрасываем остаток div bx ;длелим на систему счисления и получаем остаток от деления push dx ;запоминаем остаток в стеке inc cx ;считаем запомненую цифру or ax,ax ;посторяем пока АХ больше нуля jnz ON1
;форматируем вывод чисел mov ax,-10h ;значение, которое при +30Н даст код пробела
ON2: inc cx ;увеличиваем счетчик цифр в стеке push ax ;запоминаем в стеке условный код пробела cmp cx,4 ;повторяем пока в стеке не будет 4-е цифры jnz ON2
;выводим число на экран ON3: pop ax ;извлекаем из стека очередную цифру add al,30h ;переводим в символьный код для вывода на экран int 29h ;выводим на экран символ loop ON3 ;повторяем пока в стеке есть цифры pop cx ;востанавливаем счетчик цикла ret
;трнспонируем матрицу ;устанавливаем индекс внешнего цикла TranspMatrix: xor bx,bx ;база строки xor si,si ;смещение элемента в строке xor di,di ;смещение транспонированного элемента TM1: ;цикл по строкам верхнего треугольника push si ;сохраним индекс в строке push di ;сохраним смещение транспонированного элемента TM2: ;цикл по элементам строки верхнего треугольника inc si ;диагональный элемент обходим add di,N ;аналогично для второго элемента cmp si,N ;дошли до края строки? je TM3 ;да - переходим на следующую
;обмениваем элементы mov al,[Matrix+bx+si] xchg [Matrix+di],al mov [Matrix+bx+si],al jmp TM2 ;на слеующий элемент в строке TM3: ;переход на следующую строку pop di ;восстановим индексы pop si add bx, N ;переходим на слеующую строку inc si ;и смещаемся на одну позицию вправо ;(рассматриваем только верхний треугольник) add di, N+1 ;смещаемся на одну строку вниз и на одну позицию вправо ;(соответствующая позиция в нижнем треугольнике) cmp bx, (N-1)*N ;дошли до последней строки? jne TM1 ;нет - на отработку строки ret
Во! Это правильно! Посмотрим, что от Вас требуют, и объясним, что Вы неправильно поняли
Об авторе:
"Если вы заметили, что вы на стороне большинства, — это верный признак того, что пора меняться." Марк Твен
Неизвестный
15.05.2012, 16:09
общий
Методички к сожалению никакой нет, одни только лекции. Последний вариант программы вполне устраивает. Надеюсь преподователя тоже устроит. Ещё раз большое спасибо!
Неизвестный
23.05.2012, 12:55
общий
Адресаты:
Уважаемые эксперты прошу помочь переделать программу без прерываний 30h и 29h, или подробно описать что каждое из них делает и на что ссылается. Преподаватель сказал что незнает что делает 30h)) Прошу переделать или обьяснить как можно подробнее и проще. Заранее большое спасибо! Если надо могу создать новый вопрос. Программу сдавал кот. в ответе №3.
И где Вы увидели прерывание 30h? Посмотрите внимательнее, нету там такого... А прерывание 29h выводит на экран в текущей позиции символ из al. Аналог - функция 02 прерывания 21h, только там символ должен быть в dl
Об авторе:
"Если вы заметили, что вы на стороне большинства, — это верный признак того, что пора меняться." Марк Твен
Неизвестный
23.05.2012, 13:23
общий
Понятно спасибо! А для чего служит 30h поясните попобробней пожалуйста. Не понимаю всей этой операции - когда форматируем вывод чисел и выводим число на экран)
Используется при преобразовании двоичного числа в строку цифр. Сначала при помощи деления на 10 получаются разряды 0-9, затем эти числа преобразуются в символы '0'-'9', которые имеют код 30h-39h, т.е. отличаются на 30h. Вот мы эти 30h и добавляем
Об авторе:
"Если вы заметили, что вы на стороне большинства, — это верный признак того, что пора меняться." Марк Твен
Форма ответа
Отправка постов/ответов доступна только зарегистрированным и подтвержденным пользователям.
{"canUserNotesAccess":false,"canUserAdminsNotesAccess":false,"canAskQuestion":false,"canEditQuestions":false,"canSeeQuestionsComplains":false,"isSuperAdmin":false,"isAdmin":false,"isModer":false,"canCreateNewUser":false,"canConfirmUser":false,"canEditUserName":false,"canEditUserRole":false,"canEditUserEmail":false,"canEditUserPhone":false,"canEditUserBirthdate":false,"canEditUserCountry":false,"canEditSocialMedia":false,"canDeleteUserPhoto":false,"canDeleteUser":false,"canEditUserAbout":false,"canBanUser":false,"canResetUserPassword":false,"canEditRegistDate":false,"canChangeUserRating":false,"canAccessToAdmin":false,"canAnnouncements":false,"canManageQuestionPosts":false,"canManageForumSections":false,"canManageForumThreads":false,"canManageForumPosts":false,"canCreateForumThreads":false,"canSeeUserEmail":false,"canSeeUserPhone":false,"canSeeIPAddress":false,"canSeeUserRegistDate":false,"canSeeUserSocialMedia":false,"canSeeBirthDate":false,"canSeeUserCountry":false,"canSeeUserSettings":false,"canSeeDeletedPosts":false,"isEmailConfirmed":false,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":0,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-41 мин."},"isBanned":false,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":0,"absoluteRating":0,"dynamicRating":0,"dynamicRatingStars":0,"timezone":{"id":283,"baseUtcOffset":"03:00:00","displayName":"(UTC\u002B03:00) Москва","linuxid":"Europe/Moscow"},"currentDateTime":"2024-05-02T13:41:37.6445897+03:00","isValid":false,"isUnconfirmed":true,"isConfirmed":false,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":1,"counters":{"daysAtPortal":0,"questions":0,"questionsPosts":0,"questionsAnswers":0,"questionsPostsEvaluations":0,"forumPosts":0},"isRfproUserClass":true,"id":0,"name":"Неизвестный","email":"","role":0,"registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":false,"isNewUser":false,"isExisted":false,"isExpert":false}