{"id":327159,"date":"2022-01-10T08:46:59","date_gmt":"2022-01-10T08:46:59","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=327159"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=327159","title":{"rendered":"<span>02. \u042f \u0443\u0436\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0432\u0438\u0436\u0443 \u043a\u043e\u0434. \u042f \u0432\u0438\u0436\u0443 \u0431\u043b\u043e\u043d\u0434\u0438\u043d\u043a\u0443, \u0431\u0440\u044e\u043d\u0435\u0442\u043a\u0443 \u0438 \u0440\u044b\u0436\u0443\u044e<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b &#8212; \u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u0438<\/h3>\n<p>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u043e\u0432 Siemens VDO Dayton CARMiN<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597625\/\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u0432\u0435\u0440\u0441 \u0447\u0435\u0440\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0441\u0435\u0440\u0430\u043a\u0442\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597851\/\" rel=\"noopener noreferrer nofollow\">01 \u0421\u0448\u0435\u0439 \u043a\u0440\u0430\u0441\u043d\u043e\u0435 \u0441 \u043a\u0440\u0430\u0441\u043d\u044b\u043c, \u0436\u0435\u043b\u0442\u043e\u0435 \u0441 \u0436\u0435\u043b\u0442\u044b\u043c, \u0431\u0435\u043b\u043e\u0435 \u0441 \u0431\u0435\u043b\u044b\u043c. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0411\u043b\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 carindb \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u043e\u0432, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u0441\u0443\u0449\u0438\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0417\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u044f \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043b \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445, \u043d\u0430\u043f\u043e\u043c\u043d\u044e:<\/p>\n<ul>\n<li>\n<p><code>PTR<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 16 \u0431\u0438\u0442 (\u0442\u043e\u0447\u043d\u0435\u0435, \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u043e\u043b\u044c\u0448\u0435). \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u043b\u043e\u043a\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 ushort ptr. \u0427\u0430\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 &#8212; byte \u0440\u0443\u043a\u0443, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 hex \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0433\u043e\u043b\u0443\u0431\u044b\u043c \u0444\u043e\u043d\u043e\u043c, \u043a\u0443\u0434\u0430 PTR \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f. \u0412 \u043e\u043a\u043d\u0435 hex PTR \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0438\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u043d\u0430 \u0433\u043e\u043b\u0443\u0431\u043e\u043c \u0444\u043e\u043d\u0435. \u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u043a\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p><code>LIST<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 32 \u0431\u0438\u0442\u0430. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435: PTR ptr \u0438 ushortcnt, \u0433\u0434\u0435 ptr &#8212; \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430, \u0430 cnt &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430. \u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0433\u0434\u0435 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d LIST. \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d \u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0447\u0435\u0440\u0435\u0437 offset. \u0421\u0432\u0435\u0442\u043b\u043e-\u0433\u043e\u043b\u0443\u0431\u043e\u0439 \u0444\u043e\u043d, ptr \u0441\u0438\u043d\u0438\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438, cnt &#8212; \u0442\u0451\u043c\u043d\u043e-\u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u043c.<\/p>\n<\/li>\n<li>\n<p><code>BL_ADDR<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 32 \u0431\u0438\u0442\u0430. \u041f\u0435\u0440\u0432\u044b\u0435 24-\u0431\u0438\u0442\u0430 &#8212; addr &#8212; \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 0x800 \u0431\u0430\u0439\u0442, \u0442.\u0435. \u0434\u043b\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 0x800 \u0438\u043b\u0438 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0432\u043b\u0435\u0432\u043e \u043d\u0430 7 \u043f\u043e\u0437\u0438\u0446\u0438\u0439. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 8 \u0431\u0438\u0442 &#8212; size &#8212; \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430 \u0432 0x800 \u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445. \u041e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a &#171;\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c\u0443&#187; \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 offset, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0440\u0430\u0432\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u044d\u0442\u043e\u0433\u043e BL_ADDR. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0442\u0430\u043a, \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a BL_ADDR, \u043a \u044d\u0442\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043e\u0431 \u044d\u0442\u043e\u043c, \u043e\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u044f \u0444\u043e\u043d \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0438 \u0432\u044b\u0432\u043e\u0434\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0432 \u043b\u043e\u0433. \u0412\u0430\u043b\u0438\u0434\u043d\u044b\u0439 BL_ADDR \u0432 \u043e\u043a\u043d\u0435 hex &#8212; \u043d\u0430 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u043e\u043c \u0444\u043e\u043d\u0435, \u0436\u0435\u043b\u0442\u044b\u0435 &#8212; \u0441\u0438\u043c\u0432\u043e\u043b\u044b addr \u0438 \u0442\u0435\u043c\u043d\u043e-\u0433\u043e\u043b\u0443\u0431\u044b\u0435 (cDkAqua) &#8212; size.<\/p>\n<\/li>\n<li>\n<p><code>BL_HEAD<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 64 \u0431\u0438\u0442\u0430. \u041f\u0435\u0440\u0432\u044b\u0435 32 &#8212; BL_ADDR, \u0437\u0430\u0442\u0435\u043c \u0431\u0430\u0439\u0442 zero_aligment \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u044b\u0439 \u043d\u0443\u043b\u044e, \u0437\u0430\u0442\u0435\u043c \u0431\u0430\u0439\u0442 type, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0438\u043f \u0431\u043b\u043e\u043a\u0430 (enum en_BL_TYPE), \u0438 2 \u0431\u0430\u0439\u0442\u0430 is_compressed \u0438 uncompressed_size, \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u043c carindb \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u044b\u0435 \u043d\u0443\u043b\u044e. \u042d\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0431\u043b\u043e\u043a\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e BL_ADDR \u043e\u0431\u044f\u0437\u0430\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c, \u043d\u043e \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d BL_HEAD. \u0412 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u0440\u043d\u044b\u0439 \u0431\u0430\u0439\u0442 here_last_byte, \u0431\u0440\u043e\u0441\u043a\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 (bgcolor=cPurple, fgcolor=cAqua) \u0432 hex, \u043e\u0442\u043c\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0430, \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 BL_HEAD \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0420\u0430\u0441\u0446\u0432\u0435\u0442\u043a\u0430 BL_HEAD \u0432 \u043e\u043a\u043d\u0435 hex &#8212; \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439 \u0444\u043e\u043d, \u0431\u0430\u0439\u0442 type cDkPurple, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0435\u0437\u043d\u0430\u0447\u0430\u0449\u0438\u0435 \u0431\u0430\u0439\u0442\u044b &#8212; \u0441\u0435\u0440\u044b\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u0438, \u0447\u0442\u043e \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0xB &#171;\u0432\u043d\u0435\u0448\u043d\u0438\u0435&#187; &#171;\u0441\u0441\u044b\u043b\u043a\u0438&#187; \u0432\u0435\u0434\u0443\u0442 \u0432 0xA. \u0418\u0437 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0xD \u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u0435\u0434\u0443\u0442 \u0432 0xC. \u0418\u0437 0x0F \u0432 0x0E. \u0418\u0437 0x11 \u0432 0x10.<br \/> \u0415\u0441\u043b\u0438 0xB &#8212; \u044d\u0442\u043e \u0431\u043b\u043e\u043a \u0441 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0431\u0443\u043a\u0432\u0430\u043c\u0438 \u0441\u0442\u0440\u0430\u043d, \u0442\u043e 0xA, \u043a\u0443\u0434\u0430 \u0432\u0435\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u044b, \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0442\u0440\u0430\u043d\u0430\u0445.<\/p>\n<p>\u041d\u0430 \u0444\u0430\u0439\u043b carindb_bnl, \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0411\u0435\u043d\u0438\u043b\u044e\u043a\u0441\u0430 (\u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u044b &#8212; \u0411\u0435\u043b\u044c\u0433\u0438\u044f, \u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b \u0438 \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433) \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438: \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u044e \u0431\u043b\u043e\u043a 0xB \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>block(FindBlockByType(0x0B));<\/code>. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/bp\/qq\/er\/bpqqerqic9n9y8ehhg5svzxekgy.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043b\u043b\u0430\u0436 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438: \u043d\u0430 \u0441\u043a\u0440\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 hex \u0441 \u0430\u0434\u0440\u0435\u0441\u0430 0x2000, \u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u043b\u043e\u043a\u0430 0xA, \u0438\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 0xB, \u0438 \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0436\u0435 0xA \u0442\u043e\u0436\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0430.<\/p>\n<ul>\n<li>\n<p>\u0412 \u0431\u043b\u043e\u043a\u0435 0xB \u0442\u0440\u0438 main_data, \u043e\u043d\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0431\u0443\u043a\u0432\u044b B, N \u0438 L \u0438 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 0x2030, 0x2038, 0x2040 &#8212; \u0441\u0438\u043d\u0438\u0435 \u0442\u043e\u0447\u0435\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u043e \u0444\u0430\u043a\u0442\u0435 \u0433\u043e\u043b\u0443\u0431\u0435\u043d\u044c\u043a\u0438\u043c \u043c\u0430\u044f\u043a\u0443\u044e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 PTR.here \u0432 main_data.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0436\u0435\u043b\u0442\u044b\u043c \u0444\u043e\u043d\u043e\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0431\u043b\u043e\u043a\u0430: &#8212; &#8216;00000401 000A0000&#8217; \u044d\u0442\u043e BL_HEAD, &#8212; &#8216;00300003&#8217; &#8212; LIST \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 3\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0434\u0443\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437 0xB, \u0447\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0438 \u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. &#8212; &#8216;00480003&#8217; &#8212; \u0435\u0449\u0435 \u043e\u0434\u0438\u043d LIST, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e. &#8212; uint zero &#8212; &#8217;00f00017&#8242; LIST \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 17h \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, ptr F0h \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e LIST, (f0 &#8212; 30) \/3 =0x40 &#8212; \u0428\u0435\u0441\u0442\u044c uint zero &#8212; \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u044b \u043d\u043e\u043b\u044e.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0441\u043a\u0440\u0438\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u043b\u043e\u043a\u0430 0xA \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u043e\u0441\u044c \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443, \u0441 \u0430\u0434\u0440\u0435\u0441\u0430 0x2210 \u0442\u0440\u0438 zero-ended \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: belgi\u00eb, luxembourg, nederland. \u0411\u0418\u041d\u0413\u041e!<\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 main_data \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 0xB, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b &#171;B&#187; &#8212; 0210h, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 &#171;belgi\u00eb&#187;, &#171;L&#187; &#8212; &#171;luxembourg&#187;, &#171;N&#187; &#8212; &#171;nederland&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 2 \u0431\u0430\u0439\u0442\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0430 0xA (LIST &#8216;00300003&#8217;), (\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0434\u0443\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437 0xB \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c) &#8212; \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 (LIST &#8216;00480003&#8217;)<\/p>\n<\/li>\n<\/ul>\n<h3>\u041d\u043e\u0432\u044b\u0435 \u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u0438: CONST_B, CONST_S, CONST_I, PSTR<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 vdo_inc.bt \u043d\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b.<\/p>\n<ul>\n<li>\n<p><code>CONST_B<\/code>, <code>CONST_S<\/code>, <code>CONST_I<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438.\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e 8, 16 \u0438 32 \u0431\u0438\u0442\u0430. \u0412 hex \u0431\u0435\u043b\u044b\u0435 \u0431\u0443\u043a\u0432\u044b \u043d\u0430 \u0442\u0435\u043c\u043d\u043e-\u0441\u0435\u0440\u043e\u043c \u0444\u043e\u043d\u0435, \u043d\u043e \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439 \u043d\u0435 \u0440\u0430\u0432\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0444\u043e\u043d \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043b\u043e\u0433.<\/p>\n<\/li>\n<li>\n<p><code>PSTR<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 16 \u0431\u0438\u0442. \u0410\u043d\u0430\u043b\u043e\u0433 PTR \u0441 \u0442\u0438\u043f\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 &#8212; \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043d\u0430 \u043d\u043e\u043b\u044c \u0441\u0442\u0440\u043e\u043a\u0430, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u0441\u0432\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 str \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443, \u0437\u0430\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u044f \u0435\u0451 \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u0444\u043e\u043d\u043e\u043c \u0438 \u0442\u0435\u043c\u043d\u043e-\u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438. \u0426\u0432\u0435\u0442 \u0432 hex &#8212; \u0433\u043e\u043b\u0443\u0431\u043e\u0439 \u0444\u043e\u043d, \u043a\u0430\u043a \u0443 PTR, \u043d\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0442\u0435\u043c\u043d\u043e-\u0437\u0435\u043b\u0435\u043d\u044b\u0435, \u0430 \u043d\u0435 \u0441\u0438\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">\/\/}CONST_B typedef struct(uchar val){     if(ReadUByte(FTell()) != val){         SetBackColor(cRed);         Printf(\"0f:%04X const ubyte(%02Xh) != %Xh\\n\",              FTell(), val, ReadUByte(FTell()));     }     ubyte value; }CONST_B &lt;fgcolor=cWhite, bgcolor=cGray, hidden=true>; \/\/}CONST_S typedef struct(ushort val){     if(ReadUShort(FTell()) != val){         SetBackColor(cRed);         Printf(\"0f:%04X const ushort (%04Xh) != %Xh\\n\",              FTell(), val, ReadUShort(FTell()));     }     ushort value; }CONST_S&lt;fgcolor=cWhite, bgcolor=cGray, hidden=true>; \/\/}CONST_I typedef struct(uint val){     if(ReadUInt(FTell()) != val){         SetBackColor(cRed);         Printf(\"0f:%04X const ushort (%04Xh) != %Xh\\n\",              FTell(), val, ReadUInt(FTell()));     }     uint value; }CONST_I&lt;fgcolor=cWhite, bgcolor=cGray, hidden=true>;  \/\/}PSTR typedef struct{     local uint offset &lt;hidden=true>;   \/\/ absolute block offset for next PTR ptr     if( exists(parentof(this).offset) ){         offset = parentof(this).offset; \/\/ start block offset      }     PTR     ptr &lt;fgcolor=cDkGreen>;         \/\/ pointer to string\/0     if(ptr.ptr){ \/\/ theoreticaly may==0, in this case no need calculate any vars         offset = ptr.ptr + offset;                \/\/ set own absolute offset          if(offset){ \/\/ shoulb be not zero             local DWORD curr_position = FTell(); \/\/ remember ret             FSeek(offset);          \/\/ jmp to offset             string str &lt;bgcolor=cLtGreen, fgcolor=cDkYellow>; \/\/ str as real             FSeek(curr_position);   \/\/ret         }else{             local string str;  \/\/ str as local             SPrintf(str, \"No offset %04X\", ptr.ptr);         }     } }PSTR &lt;read=Read_PSTR>; string Read_PSTR(PSTR &amp;a){     local string s; SPrintf(s, \"%X: %s\", a.offset, a.str); return s; } \/\/}PSTR <\/code><\/pre>\n<h3>\u0411\u043b\u043e\u043a 0x0A. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0440\u0430\u043d\u0430\u0445<\/h3>\n<p>\u0412 \u0438\u043d\u043a\u043b\u044e\u0434\u0435 <a class=\"mention\" href=\"\/users\/inc_block\">@inc_block<\/a>.bt&#187; \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e block() \u0432 swith \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u0442\u0438\u043f\u043e\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b BT_0x0A \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430.<\/p>\n<pre><code class=\"cpp\">    \/\/ reading block type     local uchar type = ReadUByte(start_offset + 5);     FSeek(start_offset);     switch (type){  \/\/ choice template for every known type        case 0x0B:             BT_0x0B_0x0D_0x0F_0x11     block_0x0B &lt;comment=\"D BT_0x0D_0x0B_0x0F\">;             break;        case 0x0A:             BT_0x0A              block_0x0A &lt;comment=\"0Ah BT_0x0A\">;             break; <\/code><\/pre>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e typedef \u0441 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 BT_0x0A.<\/p>\n<pre><code class=\"cpp\"> typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     LIST    pl_data;    \/\/ &lt;----------------need more analitic     LIST    pl_moreinfo;\/\/ &lt;----------------need more analitic     CONST_I zero(0);    \/\/ uint must be == 0       LIST    pl_addinfo; \/\/ &lt;----------------need more analitic     \/\/ six uints == 0     CONST_I zero(0);  CONST_I zero(0);  CONST_I zero(0);       CONST_I zero(0);  CONST_I zero(0);  CONST_I zero(0);        struct{         local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block           local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset         PSTR    pstr_name;  \/\/ ptr 2 zero-ended str         CONST_B zero(0);    \/\/ ubyte allways 0         ubyte   unk&lt;bgcolor=cYellow>;         CONST_S zero(0);    \/\/ ushort allways 0         PTR     p_moreinfo; \/\/ ptr to item of LIST pl_moreinfo;         Printf(\"%s \\n\", pstr_name.str);     }try_data[3]&lt;optimize=false>;      byte   after_parsed_block_info &lt;bgcolor=cPurple, fgcolor=cWhite>; }BT_0x0A;    block(FindBlockByType(0x0B)); \/\/ 0B 1      BT_0x0B_0x0D_0x0F_0x11 block(FindBlockByType(0x0A)); \/\/ 0A 1      BT_0x0A <\/code><\/pre>\n<p>\u0418 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e \u0435\u0433\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430\u0445 carindb_bnl, carindb_ee \u0438 carindb_rus.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/ss\/_2\/k6\/ss_2k6gret5fd31nj9qqfa16g1w.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d \u0441\u0442\u0440\u0435\u043b\u043a\u043e\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0431\u0430\u0439\u0442 CONST_B zero(0), \u0438\u0434\u0443\u0449\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 PSTR pstr_name \u0440\u0430\u0432\u0435\u043d 1, \u0430 \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u043c\u0443 0. \u042d\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0410\u0432\u0441\u0442\u0440\u0438\u0438  &#8212; \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u0432\u0430\u0436\u0434\u044b \u0432 2\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f &#8212; \u0441 \u0443\u043c\u043b\u044f\u0443\u0442\u0430\u043c\u0438 \u0438 \u0431\u0435\u0437 (\u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c ascii \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0435\u0440\u043d\u044b\u0439 \u0440\u043e\u043c\u0431\u0438\u043a-\u0432\u043e\u043f\u0440\u043e\u0441\u0438\u043a, \u0432 \u0442\u0435\u043b\u0435 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u00d6sterreich), \u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u044d\u0442\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u0430. \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u0430? \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u044e zero(0) \u0432 is_synonym(0).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u0436\u0435\u043b\u0442\u044b\u043c ubyte unk \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u043e \u043d\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b.<\/p>\n<\/li>\n<\/ul>\n<h3>Language codes en_LANG<\/h3>\n<p>\u0412 \u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u044b <code>Printf(\"%s \\n\", pstr_name.str);<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432\u044b\u0432\u043e\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f ubyte unk: <code>Printf(\"%02X\\t(%i)\\t%s \\n\", unk, unk, pstr_name.str);<\/code><br \/> \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0442\u043e\u044f\u0442 \u0446\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<pre><code>carindb_bnl 01(1)belgi\ufffd  03(3)luxembourg  01(1)nederland   carindb_ee FF(255)balgaria  13(19)ceska republika  FF(255)eesti  1A(26)hrvatska  1B(27)latvija  18(24)lietuva  FF(255)magyarorszag  12(18)polska  FF(255)rom\ufffdnia  17(23)slovenija  14(20)slovenska republika   carindb_rus 0B(11)andorra  FF(255)azarbaycan  01(1)belgie  FF(255)bosna i hercegovina  FF(255)bulgaria  FF(255)byelarus  FF(255)ceska republika  0A(10)danmark  04(4)deutschland  FF(255)eesti vabariik  02(2)\ufffdire  FF(255)ellas  06(6)espa\ufffda  03(3)france  FF(255)hrvatska  05(5)italia  FF(255)kibris  FF(255)latvija  FF(255)lietuva  FF(255)luxembourg  FF(255)lyoveldio island  FF(255)magyarorszag  FF(255)makedonija  FF(255)moldova  01(1)nederland  0E(14)norge  0f:2102 const ubyte(00h) != 1h 04(4)oesterreich  04(4)\ufffdsterreich  FF(255)polska  0F(15)portugal  FF(255)romania  FF(255)rossiya  FF(255)sak'art'velo  04(4)schweiz  FF(255)shqiperia  FF(255)slovenija  FF(255)slovensko  FF(255)srbija i crna gora  0C(12)suomen tasavalta  07(7)sverige  FF(255)turkiye  FF(255)ukrayina  02(2)united kingdom  <\/code><\/pre>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e: \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 unk \u043e\u0431\u0449\u0435\u0435 &#8212; \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 FF &#8212; \u0434\u043b\u044f \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u044f\u0437\u044b\u043a\u043e\u0432. \u0422\u043e, \u0447\u0442\u043e \u0432 rus \u043a\u0430\u0440\u0442\u0435 \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445  \u043a\u0430\u0440\u0442\u0430\u0445, \u0440\u0430\u0432\u043d\u044b FF, \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u0432\u0435\u0436\u0435\u0441\u0442\u044c\u044e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u0440\u0442. \u0412\u0438\u0434\u0438\u043c\u043e, \u044d\u0442\u0438 \u044f\u0437\u044b\u043a\u0438 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0437\u0436\u0435. \u0421\u043f\u0438\u0441\u043e\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0437\u044f\u0442 \u0438\u0437 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432?<\/p>\n<p> \u041d\u043e \u043d\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u043e\u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0439 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0441\u0442\u0440\u0430\u043d\u0430\u043c \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u043e\u0441\u044c. <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1\" rel=\"noopener noreferrer nofollow\">ISO_3166<\/a> \u0442\u0440\u0451\u0445\u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0439, <a href=\"https:\/\/cldr.unicode.org\/\" rel=\"noopener noreferrer nofollow\">CLDR<\/a> &#8212; \u043d\u0435\u0442, <a href=\"https:\/\/datahub.io\/core\/language-codes\" rel=\"noopener noreferrer nofollow\">IETF<\/a> &#8212; \u043d\u0435\u0442, <a href=\"https:\/\/datahub.io\/core\/country-codes\" rel=\"noopener noreferrer nofollow\">country codes<\/a> &#8212; \u043d\u0435\u0442.<\/p>\n<p> \u041d\u0435\u0442, \u043d\u0435\u0442 \u0438 \u043d\u0435\u0442. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u0441\u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043e\u0434\u043e\u0432 \u044f\u0437\u044b\u043a\u0430 \u0443 \u0441\u0442\u0440\u0430\u043d, &#8212; \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u043a\u043d\u0438\u0433\u0435 <a href=\"https:\/\/books.google.ru\/books?id=HnyQDAAAQBAJ&amp;pg=PA59&amp;lpg=PA59&amp;dq=1+nederland+2+english+3+france+4+german&amp;source=bl\" rel=\"noopener noreferrer nofollow\">Relational Database Programming: A Set-Oriented Approach<\/a>, \u0422\u0430\u0431\u043b\u0438\u0446\u0430 5-2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u043e\u0432 \u044f\u0437\u044b\u043a\u043e\u0432, \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0442\u0440\u0451\u043c carindb enum en_LANG. \u0415\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 inc_common.bt, \u0438 unk \u0437\u0430\u043c\u0435\u043d\u044f\u044e \u0442\u0438\u043f\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <code>en_LANG   en_lang &lt;bgcolor=cGreen, fgcolor=cDkGreen>; <\/code>.<\/p>\n<pre><code class=\"cpp\">\/\/en_LANG typedef enum &lt;uchar>{ typedef enum &lt;uchar>{ _Nederlands =   1,\/\/01 (1)  nederland, belgie - Dutch  _English    =   2,  \/\/02 (2)  united kingdom, eire _French     =   3,  \/\/03 (3)  france, luxembourg _Deutch     =   4,  \/\/04 (4)  deutschland oesterreich osterreich schweiz _Italian    =   5,  \/\/05 (5)  italia _Hispain    =   6,  \/\/06 (6)  espana _Svedian    =   7,  \/\/07 (7)  sverige __unk_08=8, __unk_09=9, _Danian =   0xA, \/\/0A (10)  danmark _Catalan =   0xB, \/\/0B (11)  andorra _Finnish    =   0xC, \/\/0C (12)  suomen tasavalta __unk_0d=0xd, _Norvegian  =   0xE, \/\/0E (14)  norge     _Portugal   =   0xF, \/\/0F (15)  portugal   __unk_10=0x10, __eng_TOO   =   0x11, _Polish     =   0x12, \/\/12 (18)  polska _Czech      =   0x13, \/\/13 (19)  ceska republika _Slovak     =   0x14, \/\/14 (20)  slovenska republika _Croatian=0x1A,\/\/1A (26)  hrvatska _Latvian=0x1B,\/\/1B (27)  latvija _Lithuanian=0x18,\/\/18 (24)  lietuva _Slovene=0x17,\/\/17 (23)  slovenija _UNK_lng  = 0xFF }en_LANG;   <\/code><\/pre>\n<p>\u0412 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 BL_0xA \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 try_data \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u044e \u0432 brief_geo, \u0438 \u0441\u043c\u043e\u0442\u0440\u044e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 LIST pl_moreinfo, \u0438 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 PTR p_moreinfo \u0438\u0437 brief_geo \u0443\u0436\u0435 \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u0438\u043b\u0438 \u0433\u043e\u043b\u0443\u0431\u0435\u043d\u044c\u043a\u0438\u043c \u0444\u043e\u043d\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0451\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 0x38 \u0431\u0430\u0439\u0442.<\/p>\n<ul>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8216;00000506&#8217; \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 BL_ADDR<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u043b\u0435\u0435 4 \u0431\u0430\u0439\u0442\u0430, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e LIST\u044b, \u0430\u0434\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u0432 BL_ADDR.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c 4 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b 32\u0431\u0438\u0442\u043d\u0430\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 Bh, 16h, 21h, 2Ch, \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0435, 11,22,33,44.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e LIST, \u0430\u0434\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0447\u0442\u043e-\u0442\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 hex01f4012c \/ dec32768300 \/ bin01111101000000000100101100<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 hex03e801f4 \/ dec65536500 \/  bin11111010000000000111110100<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 32\u0431\u0438\u0442\u043d\u0430\u044f, \u0440\u0430\u0432\u043d\u0430\u044f 1.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 16\u0431\u0438\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430\u0434\u043e \u0431\u043b\u0438\u0436\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 32\u0431\u0438\u0442\u043d\u0430\u044f, \u0440\u0430\u0432\u043d\u0430\u044f 0.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 0-ended \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u044b \u043f\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/ISO_3166-1\" rel=\"noopener noreferrer nofollow\">ISO_3166-1<\/a><\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 8\u0431\u0438\u0442\u043d\u0430\u044f, \u0440\u0430\u0432\u043d\u0430\u044f 0.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 zero-ended , \u0440\u0430\u0432\u043d\u0430\u044f &#8216;&#8212;&#8216;<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 16\u0431\u0438\u0442\u043d\u0430\u044f, \u0440\u0430\u0432\u043d\u0430\u044f 0.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439, \u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0441 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e. \u0412\u043e\u0442 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 32768300 \u0438\u043b\u0438 65536500? \u0427\u0442\u043e \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u044c? \u0427\u0442\u043e \u0437\u043d\u0430\u0447\u0430\u0442 32768 \u0438\u043b\u0438 65536, \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e &#8212; 2 \u0432 15 \u0438 16 \u0441\u0442\u0435\u043f\u0435\u043d\u0438. \u041d\u043e 300 \u0438 500, \u0447\u0442\u043e \u0437\u0430 \u044d\u0442\u0438\u043c? \u0417\u0430\u0433\u0430\u0434\u043a\u0430.<\/p>\n<h3>\u041a\u0438\u0440\u043f\u0438\u0447\u0438\u043a FAR_LIST moooooooooooooooooooo<\/h3>\n<p>\u041d\u0430\u0437\u043e\u0432\u0443 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0434\u0443\u0449\u0438\u0445 BL_ADDR \u0438 LIST, \u043a\u0430\u043a FAR_LIST, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0430\u043b\u0451\u043a\u0438\u0439, \u043d\u0435 \u0432 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u0441\u043f\u0438\u0441\u043e\u043a-\u043c\u0430\u0441\u0441\u0438\u0432. \u0420\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 64 \u0431\u0438\u0442\u0430, \u0440\u0430\u0441\u0446\u0432\u0435\u0442\u043a\u0430 BL_ADDR \u043e\u0431\u044b\u0447\u043d\u0430\u044f, \u0430 \u0443 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b LIST, \u0443 cnt \u0444\u043e\u043d \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439, \u0447\u0443\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0442\u0442\u0435\u043d\u043a\u0430, \u0447\u0435\u043c BL_ADDR, bgcolor=0x22BFFF.<\/p>\n<pre><code class=\"cpp\">typedef struct{     BL_ADDR far_block; \/\/ link to block type 0xd local ushort size = far_block.size * 0x800; local uint offset = far_block.offset;     LIST    pl_data &lt;bgcolor=0x22BFFF>;  \/\/ far pointer list, BL_ADDR+LIST }FAR_LIST &lt;read=Read_FAR_LIST>; string Read_FAR_LIST (FAR_LIST &amp;a){     local string s;     SPrintf( s, \"%04X+%02X=%04X cnt=%i(%02Xh); %s\",              a.far_block.offset, a.pl_data.ptr.ptr, a.pl_data.offset,             a.pl_data.cnt, a.pl_data.cnt,             Read_BL_ADDR(a.far_block));     return s; } <\/code><\/pre>\n<p>\u0412\u0435\u0440\u043d\u0443\u0441\u044c \u043a \u0431\u043b\u043e\u043a\u0443 0xA, \u043e\u043f\u0438\u0441\u0430\u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043f\u043e \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c.<\/p>\n<pre><code class=\"cpp\">    struct{         local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block           local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset         FAR_LIST     idx_ch_cityes;         CONST_I dec_11(0x0B) &lt;hidden=true>;         CONST_I dec_22(0x16) &lt;hidden=true>;         CONST_I dec_33(0x21) &lt;hidden=true>;         CONST_I dec_44(0x2C) &lt;hidden=true>;         LIST        pl_addinfo;         CONST_I hex01f4012c(0x01f4012c); \/\/ dec 32768300         CONST_I hex03e801f4(0x03e801f4); \/\/ dec 65536500         CONST_I     const_1(1);         ushort      unk_1 &lt;bgcolor=cYellow>;         CONST_I     zero(0);         \/\/https:\/\/ru.wikipedia.org\/wiki\/ISO_3166-1         string      alpha_2_ISO3166_1 &lt;bgcolor=cLtGreen, fgcolor=cBlue>;         CONST_B     aligment_b(0);         string      const_triple_defice &lt;bgcolor=cLtGreen, fgcolor=cBlue>;         CONST_S     aligment_s(0);           }more_info[pl_all_moreinfo.cnt] &lt;optimize=false>; <\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u044e \u043a carindb_bnl &#8212; \u0432\u0441\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u043a carindb_ee \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a \u0437\u0434\u043e\u0440\u043e\u0432\u043e &#8212; \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b CONST_I const_1(1), \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u0435 1, \u0430 0.<br \/> \u0422\u0435\u043c\u043f\u043b\u0435\u0439\u0442 \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 carindb_rus, \u043a\u0430\u043a \u0433\u0440\u0430\u043d\u0430\u0442\u0430 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/sa\/cn\/1a\/sacn1a5wlkto_jvxcbrxwkbcz9k.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0412 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043a\u0430\u0440\u0442\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442 more_info \u043c\u0435\u043d\u044c\u0448\u0435,\u0447\u0435\u043c \u0432 &#171;\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445&#187; \u043d\u0430 12 \u0431\u0430\u0439\u0442. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u044b\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c &#171;\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439&#187; \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0442 &#171;\u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e&#187;. \u041d\u0435 \u0437\u043d\u0430\u044e, \u043a\u0430\u043a \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440 \u043d\u0430  \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0433\u0434\u0435 \u043a\u0430\u043a\u043e\u0439, \u043d\u043e \u0431\u0430\u0439\u0442 \u0441 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c 0x2e \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u0430\u0445 \u0440\u0430\u0432\u0435\u043d 1, \u0430 \u0432 \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 &#8212; 2. \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0438\u043d\u043a\u043b\u044e\u0434-\u0444\u0430\u0439\u043b\u0430 inc_common.bt \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 &#171;\u0432\u0435\u0437\u0434\u0435&#187;.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">\/\/ only here i find different between 0A addinfo fields count \/\/ 1 - new, 2 - old, non-crypted, not-compressed local ubyte IS_OFICIAL_MAP = ( ReadUShort(0x2e) == 1); <\/code><\/pre>\n<ul>\n<li>\n<p>\u041a\u0440\u0430\u0441\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0435\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0435 \u0444\u043b\u0443\u043a\u0442\u0443\u0430\u0446\u0438\u0438 <code>CONST_I const_1(1);<\/code>. \u0420\u0430\u0437\u0431\u0438\u0432\u0430\u044e 32\u0431\u0438\u0442\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u043d\u0430 2 CONST_S const_a_0(0) \u0438 const_b_0(0). \u0423\u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 0, \u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0442\u0438\u043f, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c &#8212; \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043a\u0430\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 more_info[pl_all_moreinfo.cnt] \u0430\u0434\u0440\u0435\u0441\u0443\u044e\u0442\u0441\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430 brief_geo (PTR p_moreinfo). \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 more_info \u043a\u043e\u043f\u0438\u0440\u0443\u044e, \u043a\u0430\u043a typedef \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b MORE_INFO_0xA, \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 brief_geo \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u044d\u0442\u0438\u043c \u0442\u0438\u043f\u043e\u043c. \u0412 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u044b\u0432\u043e\u0436\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e unk_1, \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u0443\u044e \u0436\u0435\u043b\u0442\u044b\u043c \u0444\u043e\u043d\u043e\u043c, \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 enum \u043a\u043e\u0434\u0430 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">typedef struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST     idx_ch_cityes;     CONST_I dec_11(0x0B) &lt;hidden=true>;     CONST_I dec_22(0x16) &lt;hidden=true>;     CONST_I dec_33(0x21) &lt;hidden=true>;     CONST_I dec_44(0x2C) &lt;hidden=true>;     LIST        pl_addinfo;     CONST_I hex01f4012c(0x01f4012c); \/\/ dec 32768300     CONST_I hex03e801f4(0x03e801f4); \/\/ dec 65536500     CONST_S     const_a_0(0);     CONST_S     const_b_0(0);     ushort      unk_1 &lt;bgcolor=cYellow>;     CONST_S     zero_0(0);     if(IS_OFICIAL_MAP){         CONST_S     zero2(0);         \/\/https:\/\/ru.wikipedia.org\/wiki\/ISO_3166-1         string      alpha_2_ISO3166_1 &lt;bgcolor=cLtGreen, fgcolor=cBlue>;         CONST_B     aligment_b(0);         string      const_triple_defice &lt;bgcolor=cLtGreen, fgcolor=cBlue>;         CONST_S     aligment_s(0);      }     }MORE_INFO_0xA; &lt;.......>     struct{         local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block           local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset         PSTR        pstr_name;  \/\/ ptr 2 zero-ended str         CONST_B     is_synonym(0)&lt;hidden=false>;\/\/ !!! carindb_rus.0xA.osterreich = 1          en_LANG     en_lang &lt;bgcolor=cGreen, fgcolor=cDkGreen>;\/\/ language code         CONST_S     zero(0);    \/\/ ushort allways 0         PTR         p_moreinfo; \/\/ ptr to item of LIST pl_moreinfo;         \/\/ jump to MORE_INFO         local ushort return_here &lt;hidden=true> = FTell();         FSeek(p_moreinfo.ptr + offset);             MORE_INFO_0xA more_info; \/\/ ju         FSeek(return_here);         Printf(\"%i;\\t %s \\t ;%s\\n\",               more_info.unk_1, pstr_name.str, EnumToString(en_lang));     }brief_geo[pl_all_data.cnt] &lt;optimize=false>; <\/code><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/zh\/qa\/q2\/zhqaq2bv_gfqmfmws_6auvylaho.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f unk_1 \u0438 \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439, \u0438 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u0430\u0445 \u0440\u0430\u0432\u043d\u044b \u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u0430\u043d.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u0430, \u043f\u043e\u0445\u043e\u0436\u0435, \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c, \u0435\u0441\u043b\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0443 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d, \u0430 \u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u043a\u0430\u0440\u0442. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0433\u0443\u0433\u043b\u0438\u0442\u044c &#8212; \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043f\u0440\u0438\u0440\u043e\u0434\u0435 \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0433\u0434\u0435 \u0410\u043b\u0431\u0430\u043d\u0438\u044f (shqiperia) unk_1 = 2, \u0430 \u0410\u043d\u0434\u043e\u0440\u0440\u0430 (andorra) unk_1 = 5, \u0410\u0432\u0441\u0442\u0440\u0438\u044f (oesterreich) &#8212; 14, \u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d &#8212; 15. \u0418 \u0432\u0435\u0434\u044c \u0435\u0441\u0442\u044c, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0439 \u0443\u0441\u043b\u043e\u0432\u0438\u044e: <a href=\"https:\/\/www.nationsonline.org\/oneworld\/countries_of_the_world.htm\" rel=\"noopener noreferrer nofollow\">World Countries List<\/a>, \u043e\u0434\u043d\u0430\u043a\u043e \u041d\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0434\u043e \u0447\u0451\u0442\u0447\u0435: \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0411\u043e\u0441\u043d\u0438\u0438 \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u044b (27) \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0411\u043e\u043b\u0433\u0430\u0440\u0438\u0438 31, \u0430 \u043d\u0435 33, \u043a\u0430\u043a \u0432 carindb. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0443 -2, \u0442\u043e \u0434\u043e \u041b\u0430\u0442\u0432\u0438\u0438 \u0441\u0442\u0440\u0430\u043d\u044b \u0438\u0437 carindb \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0437\u0430\u0442\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043d\u0430 +1, \u0438 \u0441\u043d\u043e\u0432\u0430, \u0438 \u0441\u043d\u043e\u0432\u0430 (\u0443 \u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u0438 \u043e\u043d \u0430\u0436 33), \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0435 \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0436\u0435\u043b\u0442\u044b\u043c. \u0421\u0430\u043c\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0430, 241 &#8216;srbija i crna gora&#8217; \u0438\u043b\u0438 &#8216;Serbia and Montenegro&#8217; \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 nationsonline \u043e\u0442\u0441\u0443\u0441\u0442\u0432\u0443\u0435\u0442 (\u0438 \u0441 \u0447\u0435\u0433\u043e \u0431\u044b?). <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/bx\/w2\/0k\/bxw20k0myheal2tj0tbirgf4htq.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u0445\u0430\u0440\u0434\u043a\u043e\u0436\u0435\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u0418 \u044d\u0442\u043e \u044f\u0432\u043d\u043e \u043a\u043e\u0434\u044b \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0445 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043c\u0435\u0441\u0442\u043d\u044b\u0445, \u043d\u0430 CD \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u044b \u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f, \u0430 \u043f\u043e\u0442\u043e\u043c \u0440\u0430\u0434\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u0440\u0430\u043d\u0435\u0435 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u043c\u0438 \u043a\u0430\u0440\u0442\u0430\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e \u0441\u0442\u0430\u043b\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<p> \u0416\u0430\u043b\u044c, \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 enum \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0440\u0430\u043d, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u043c\u043e\u0438\u0445 CD.<\/p>\n<p> \u0421\u0434\u0435\u043b\u0430\u044e \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u0439, \u0432\u0437\u044f\u0432 \u0441\u0442\u0440\u0430\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0445 3\u0445 CD.<\/p>\n<pre><code class=\"cpp\">\/\/en_ENG_COUNTRY_NAME typedef enum &lt;ushort>{     Albania=2,     Andorra=5,     Austria=14,     Azerbaijan=15,     Belarus=20,     Belgium=21,     Bosnia_and_Herzegovina=27,     Bulgaria=33,     Croatia=53,     Cyprus=55,     Czech_Republic=56,     Denmark=57,     Estonia=67,     Finland=72,     France=73,     Georgia=80,     Germany=81,     Greece=84,     Hungary=97,     Iceland=98,     Ireland=103,     Italy=105,     Latvia=117,     Lithuania=123,     Luxembourg=124,     North_Macedonia=126,     Moldova_Republic_of=140,     Netherlands=150,     Norway=160,     Poland=171,     Portugal=172,     Romania=176,     Russian_Federation=177,     Slovakia_Slovak_Republic=190,     Slovenia=191,     Spain=196,     Sweden=204,     Switzerland=205,     Turkey=216,     Ukraine=221,     United_Kingdom=223,     Serbia_and_Montenegro=241 }en_ENG_COUNTRY_NAME  &lt;bgcolor=cGreen, fgcolor=cDkGreen>; <\/code><\/pre>\n<h3>\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0438 \u0441\u043e\u044e\u0437<\/h3>\n<p>\u0412 MORE_INFO_0xA \u043f\u0430\u0440\u0430 CONST_S, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b:  const_a_0(0) \u0438 const_b_0(0), \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0430\u043c, \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u044e. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/e3\/ie\/kk\/e3iekk94xqkwrsd-vfs_xlr2wwk.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0416\u0435\u043b\u0442\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f, \u041a\u0438\u043f\u0440 \u0438 \u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 const_a_0(0) \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f = 1. \u0411\u043e\u043b\u044c\u0448\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043d\u0435\u0442, ushort is_island.<\/p>\n<p>\u0417\u0435\u043b\u0435\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u0441\u0442\u0440\u0430\u043d\u044b, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 const_b_0(0) = 1. \u0412\u043e\u0442 \u043d\u0435\u0442 \u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u0438, \u0428\u0432\u0435\u0446\u0438\u0438, \u043d\u043e \u0435\u0441\u0442\u044c \u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f&#8230; \u0410 \u0442\u0430\u043a \u0431\u044b\u043b \u0431\u044b [\u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0440\u0430\u043d \u0415\u0421]<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%BE%D1%81%D1%83%D0%B4%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%B0_%E2%80%94_%D1%87%D0%BB%D0%B5%D0%BD%D1%8B_%D0%95%D0%B2%D1%80%D0%BE%D0%BF%D0%B5%D0%B9%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D1%81%D0%BE%D1%8E%D0%B7%D0%B0\" rel=\"noopener noreferrer nofollow\">https:\/\/ru.wikipedia.org\/wiki\/\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0430_\u2014_\u0447\u043b\u0435\u043d\u044b_\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e_\u0441\u043e\u044e\u0437\u0430<\/a>). \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0441\u043f\u0438\u0448\u0443 \u043d\u0430 \u0440\u0430\u0437\u043d\u043e\u0433\u043e\u0434\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0440\u0442, \u0438 \u043d\u0430\u0437\u043e\u0432\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e ushort is_EU. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0443\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 1 \u0438 \u043d\u0435 0 &#8212; \u043b\u043e\u0433, \u043a\u0440\u0430\u0441\u043d\u043e\u0435, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e.<\/p>\n<h3>\u0421\u0441\u044b\u043b\u043a\u0430(\u0438) \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0430 (\u0438 \u0441\u0451\u043b\u0430) \u0441\u0442\u0440\u0430\u043d\u044b<\/h3>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/1z\/jg\/sz\/1zjgszjgwscb_0kxysmdqzgjpby.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 more_info \u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u0430\u0447\u0430\u043b\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 LIST \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 BT_0x0A \u0441 \u0438\u043c\u0435\u043d\u0435\u043c pl_all_addinfo. \u041d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f LIST pl_addinfo \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 MORE_INFO_0xA.<\/p>\n<ul>\n<li>\n<p>\u0412 carindb_rus \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 more_info \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 pl_all_addinfo, \u0432 LIST pl_all_addinfo.cnt=2Ah, LIST pl_all_moreinfo.cnt=2A. \u042d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 &#8212; \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 12 \u0431\u0430\u0439\u0442 &#8212; \u0433\u043e\u043b\u0443\u0431\u043e\u0435 \u043f\u044f\u0442\u043d\u044b\u0448\u043a\u043e \u0441\u043b\u0435\u0434\u0430 \u043e\u0442 more_info.pl_addinfo.<\/p>\n<\/li>\n<li>\n<p>\u0412 carindb_bnl \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u044d\u0442\u043e\u0439 \u043d\u0435\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0435 3, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439, \u0430 23. \u0418\u0437 \u0411\u0435\u043b\u044c\u0433\u0438\u0438 \u043f\u0440\u043e\u0441\u044f\u0442 8 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0438\u0437 \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0430 7, \u0438\u0437 \u0413\u043e\u043b\u043b\u0430\u043d\u0438\u0438 &#8212; \u043e\u043f\u044f\u0442\u044c 8.<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0432\u044b\u0435 8 \u0431\u0430\u0439\u0442 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b &#8212; FAR_ADDR, 2 \u0431\u0430\u0439\u0442\u0430 &#8212; \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 2 &#8212; \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">    struct{ local string char_list=\"\";         FAR_LIST ch_idx;         ushort   unkn &lt;bgcolor=cYellow>;         PSTR     const_str_begin;         Printf(\"%X \\t%i\\n\", unkn, unkn);     }addinfo[pl_all_addinfo.cnt + 1] &lt;optimize=false>; <\/code><\/pre>\n<ul>\n<li>\n<p>\u0412 carindb_rus \u0432\u0441\u0435 unkn = 30h. \u0422\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0436\u0434\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 pl_all_addinfo \u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0441\u0442\u0440\u043e\u043a &#8212; &#171;\u043f\u0443\u0441\u0442\u043e\u0442\u0430&#187; \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 12 \u0431\u0430\u0439\u0442, \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f PTR \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u043e\u043a, \u043a\u0430\u043a \u0438 \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043c\u0430\u0441\u0441\u0438\u0432\u0443 addinfo \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0412 carindb_bnl \u043f\u043e more_info.pl_addinfo \u0434\u043b\u044f \u0411\u0435\u043b\u044c\u0433\u0438\u0438, \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0430 \u0438 \u0413\u043e\u043b\u043b\u0430\u043d\u0434\u0438\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e unkn {14 20 25 26 27 34 35 3a}, {14 20 25 26 27 34 3a } \u0438 {14 20 25 26 27 34 35 3a}. \u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 &#8212; \u0440\u0430\u0437\u043d\u044b\u0435 FAR_ADDR, \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u043b\u043e\u043a\u043e\u0432, \u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0437 \u043d\u0438\u0445 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0439 \u0438 \u0432 \u0440\u0430\u0437\u043d\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435. unkn &#8212; \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u043e\u0440\u043e\u0434\u0430? \u0421\u0442\u0430\u0442\u0443\u0441 &#8212; \u0441\u0442\u043e\u043b\u0438\u0446\u0430, \u0440\u0430\u0439\u043e\u043d\u043d\u044b\u0439 \u0446\u0435\u043d\u0442\u0440? \u041c\u043e\u0436\u0435\u0442, \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0441\u0442\u0430, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0440\u043e\u0434\u0430, \u043d\u043e \u0438 \u0440\u0435\u043a\u0438 \u0438\u043b\u0438 \u0445\u043e\u043b\u043c\u044b, \u043c\u0435\u0441\u0442\u0430? \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043d\u0435, \u0442\u0430\u043c \u0448\u0435\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432. \u0420\u0430\u0437\u043d\u044b\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b \u043a\u0430\u0440\u0442\u044b? \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f &#8212; \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0438\u043f \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u0441\u043f\u0438\u0441\u043e\u043a ch, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f LIST. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/so\/6l\/se\/so6lseuhshduptt-gvi-ukn8slu.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<h3>\u0410 \u0446\u0435 \u043fi\u0434 \u043f\u043e\u043c\u0438\u0434\u043e\u0440\u044b: \u0436\u0430\u0434\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/h3>\n<p>\u0412 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u043b\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0443 \u043c\u0435\u043d\u044f \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\u0437\u043b\u0438\u0448\u043d\u0435 \u0436\u0430\u0434\u043d\u044b\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u0447\u0442\u043e \u043e\u043d\u0430 \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430, \u0434\u043b\u044f BL_ADDR \u043f\u0440\u043e\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u0442\u0438\u043f, \u0432 Value \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043d\u043e \u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u0430\u044f, \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u043d\u044b\u0435 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0414\u043b\u044f \u0431\u043e\u0435\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 &#8212; \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0432\u0440\u0435\u0434\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434. \u041d\u043e \u0434\u043b\u044f \u0440\u0435\u0432\u0435\u0440\u0441\u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0439, \u0430 \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439.<\/p>\n<p> \u0412\u0430\u0436\u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u044c\u0441\u044f. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0431\u043b\u043e\u043a \u0442\u0438\u043f\u0430 struct BT_0x0B_0x0D_0x0F_0x11, \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u0438\u0434\u0435\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c &#8212; \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0433\u043b\u0443\u0431\u0436\u0435, 010Editor \u043b\u043e\u0436\u0438\u0442\u0441\u044f, \u0442.\u043a. \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u043c\u0438.<br \/> \u0418 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u043e\u0442\u044f \u043f\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c\u0443 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u043e\u043d\u0438 \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u043c.<\/p>\n<h3>\u0420\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 BT_0x0B_0x0D_0x0F_0x11<\/h3>\n<p>\u041f\u0430\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/p>\n<ul>\n<li>\n<p><code>string getChList(LIST &amp;ch_idx)<\/code> \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0437 char, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 12 \u0431\u0430\u0439\u0442 &#8212; \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 BT_0x0B_0x0D_0x0F_0x11 &#8212; \u043f\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0438 \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 LIST.<\/p>\n<\/li>\n<li>\n<p><code>string getPStrList(uint base_offset, LIST &amp;brif_idx,  uchar max_result)<\/code> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a, \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0447\u0435\u0440\u0435\u0437 8 \u0431\u0430\u0439\u0442 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 brif_idx, \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 brif_idx.cnt, \u043d\u043e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 max_result<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">\/\/parameter - LIST CH_IDX,  return - string string getChList(LIST &amp;ch_idx){     local string s;     local uint i&lt;format=hex>; \/\/cnt     for(i=ch_idx.offset+4;          \/\/ ch absolute addr           i&lt;(ch_idx.offset + 4 +ch_idx.cnt * 12); \/\/ LIST end, 12=sizeof(CH_IDX)         i+= 12){                   \/\/ 12 = sizeof(CH_IDX)             SPrintf(s,\"%s %c\", s, ReadByte(i)); \/\/ch = ReadByte(i);     }     return s; } \/\/parameter - far block begin, LIST BRIEF_GEO,  return - string OF STRINGS string getPStrList(uint base_offset, LIST &amp;brif_idx,  uchar max_result){     local string s, res;     local uint offset_str &lt;format=hex>, tu&lt; format=hex>;     local uint i&lt;format=hex>, max;   \/\/cnt     max = (brif_idx.cnt > max_result)? max_result: brif_idx.cnt;     for(i=brif_idx.offset;             \/\/ ch absolute addr           i&lt;(brif_idx.offset + max * 8); \/\/ 8=sizeof(BRIEF_GEO)         i+= 8){  ReadString( ReadUShort(i) + base_offset ) sometimes work strange             offset_str = ReadUShort(i);             offset_str += base_offset;             s = ReadString(offset_str); \/\/              SPrintf(res,\"%s, %s\", res, s);     }     return res; } <\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 enum \u0442\u0438\u043f\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<pre><code class=\"cpp\"> \/\/ Block types enum ------------------------------------------ typedef enum &lt;uchar>{     ABSTRACT    = 12h,     CH_country  = 0Bh,  \/\/fully parsed     COUNTRY     = 0Ah,  \/\/ -- block0xA.addinfo.unknown   rus = 30h     CH_idx_d    = 0Dh,  \/\/fully parsed      CH_idx_f    = 0Fh,  \/\/fully parsed      CH_idx_11   = 11h,  \/\/fully parsed     Invalid  = 0xFF }en_BL_TYPE &lt;format=hex>; <\/code><\/pre>\n<p>\u0420\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u044e \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0431\u0443\u043a\u0432 BT_0x0B_0x0D_0x0F_0x11 &#8212; \u0432 \u0431\u043b\u043e\u043a\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0441\u0441\u0438\u0432 CH_IDX, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 Value \u0432\u044b\u0432\u043e\u0434\u0438\u0442 (Read_CH_IDX) \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 &#8212; \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0440\u043e\u043a-\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0434\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f (\u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0438 \u0442\u0438\u043f\u043e\u043c \u0431\u043b\u043e\u043a\u0430-\u0446\u0435\u043b\u0438), \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432-\u0434\u0435\u0442\u0435\u0439.<\/p>\n<pre><code class=\"cpp\">\/\/{BT_0x0B_0x0D_0x0F_0x11; \/\/{CH_IDX struct CH_IDX; typedef struct{     BL_ADDR   bl_postaddr;     char      ch &lt;fgcolor=cYellow, bgcolor=cDkGreen>; \/\/ char     local     en_BL_TYPE en_curr_bl_type = head.type; \/\/ current bl type     \/\/ is_ptr_out - boolean     if(bl_postaddr.type == (en_curr_bl_type-1) ){ \/\/ outer link         ubyte is_ptr_out &lt;bgcolor=cLtBlue, fgcolor=cYellow>;     }else{                                          \/\/ innler link         ubyte is_ptr_out &lt;bgcolor=cLtBlue, fgcolor=cBlue>;     }     \/\/ next for LIST far_away, have use size and offset - from bl_type_0c     local uint size   &lt;format=hex, hidden=true> = bl_postaddr.size *0x800; \/\/ size in blocks, * 0x800     local uint offset &lt;format=hex, hidden=true> = bl_postaddr.offset;       LIST       pl_postaddr &lt;optimize=false>;      CONST_S    align_s(0);         if(align_s.value)     \/\/ \u0442\u0443\u0442 \u043d\u043e\u043b\u044c \u043d\u0435 \u043d\u043e\u043b\u044c             Printf(\"Warn, %X align_s = %i( %X )\\n\",              FTell(), \/\/ offset where happened             align_s.value, align_s.value); \/\/BAD WAY - MAY NOT ENOUGHT MEMORY FOR BIG BLOCKS     if(!is_ptr_out){         \/\/ jmp and recursive declare children struct         local uint return_addr &lt;hidden=true> = FTell();         FSeek(pl_postaddr.offset);            CH_IDX childs[pl_postaddr.cnt]&lt;optimize=false>;         FSeek(return_addr);     } }CH_IDX &lt;read = Read_CH_IDX>; string Read_CH_IDX(CH_IDX &amp;a){     local string brif_str;     local uchar MAX_CNT_STR_getPStrList = 5;     if(a.is_ptr_out){          \/\/ get str list of brif strnames         SPrintf(brif_str, \"%c [%i]>%08X %02x(%s)>%s\", a.ch,             a.pl_postaddr.cnt, a.bl_postaddr.raw,             a.bl_postaddr.type, EnumToString(a.bl_postaddr.type),              getPStrList(a.bl_postaddr.offset,                  a.pl_postaddr, MAX_CNT_STR_getPStrList) );     }else{ \/\/if(!is_ptr_out){         \/\/ get chars list         SPrintf(brif_str, \"%c [%i]>%s\", a.ch,              a.pl_postaddr.cnt,  getChList(a.pl_postaddr));     }      \/\/if(is_ptr_out)     return brif_str; } \/\/}CH_IDX \/\/ BT_0x0B_0x0D_0x0F_0x11 chars - and index to ge names or char set typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     LIST       pl_data;        CH_IDX     char_of[pl_data.cnt] &lt;optimize=false>;     byte   after_parsed_block_info &lt;bgcolor=cPurple, fgcolor=cWhite>; }BT_0x0B_0x0D_0x0F_0x11; \/\/}BT_0x0B_0x0D_0x0F_0x11; <\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u044e \u043d\u0430 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0431\u043b\u043e\u043a\u0430\u0445 0xB \u0438 0xD. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/ms\/o6\/v5\/mso6v5rimcjx14kgzoqcrkpiagy.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0431\u0443\u043a\u0432 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u0430\u0434\u0440\u0435\u0441 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0435\u0433\u043e \u0442\u0438\u043f, \u0435\u0441\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432\u0435\u0434\u0451\u0442 \u043d\u0430\u0440\u0443\u0436\u0443.<br \/> \u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u044c, \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u0431\u0443\u043a\u0432\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0443\u043a\u0432 &#8212; \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0442\u0438\u043f CH_IDX childs, \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0439 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0443 \u043d\u0435\u0433\u043e \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0435\u0442\u0438 &#8212; \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u0439\u0434\u0451\u0442 \u0434\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043e &#171;\u043d\u0430\u0440\u0443\u0436\u0443&#187;.<\/p>\n<h3>\u0420\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 BT_0x0A<\/h3>\n<p>\u041f\u043e\u0434\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u044e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b BT_0x0A. \u0418\u0434\u0435\u043e\u043b\u043e\u0433\u0438\u044f: \u0431\u043b\u043e\u043a\u0435 \u0435\u0441\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u0430 BRIF_0xA, \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u044b\u0439 \u0441\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0432\u044b\u043c \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 LIST pl_all_data.<\/p>\n<p> \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 MORE_INFO_0xA, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0430\u0434\u0440\u0435\u0441\u0443\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0438\u043c ADDINFO_0xA. \u041a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 010, \u0432 Values:<\/p>\n<ul>\n<li>\n<p>BRIF_0xA: \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0435 \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u044b, \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a.<\/p>\n<\/li>\n<li>\n<p>MORE_INFO_0xA: \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0434\u0432\u0443\u0445\u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e ISO3166_1 (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c), \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u043a \u0415\u0421 (EU, \u0435\u0441\u043b\u0438 \u0434\u0430), \u043e\u0441\u0442\u0440\u043e\u0432 (\u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043e\u0441\u0442\u0440\u043e\u0432), \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 ADDINFO_0xA<\/p>\n<\/li>\n<li>\n<p>ADDINFO_0xA: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c , \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u043c\u043e\u0433\u043e, \u0438, \u0440\u0430\u0437 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0430\u0434\u0440\u0435\u0441\u0443\u044e\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0442\u0438\u043f\u0430 CH_IDX, \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e getChList. \u0410\u0442\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f comment=Comment_ADDINFO_0xA \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 Comment \u0432\u043a\u043b\u0430\u0434\u043a\u0438 Variables \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 block \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0430 \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">\/\/{BT_0x0A  \/\/ADDINFO_0xA - additional data - part of MORE_INFO_0xA  typedef struct{     FAR_LIST ch_idx;     ushort   unkn &lt;bgcolor=cYellow>;     PSTR     const_str_begin;   }ADDINFO_0xA &lt;read=Read_ADDINFO_0xA, comment=Comment_ADDINFO_0xA>; string Read_ADDINFO_0xA(ADDINFO_0xA &amp;a){     local string s;     SPrintf(s, \"%X -[%i] %08X t(%02X)> %s\\n\", a.unkn,          a.ch_idx.pl_data.cnt, a.ch_idx.far_block.raw,         a.ch_idx.far_block.type,         getChList(a.ch_idx.pl_data) );     return s; } string Comment_ADDINFO_0xA(ADDINFO_0xA &amp;a){     local string s;     SPrintf(s, \"block(0x%04X); \/\/ comment ADDINFO_0xA\", a.ch_idx.far_block.offset);     return s; } \/\/}ADDINFO_0xA  \/\/MORE_INFO_0xA; - call from BRIF_0xA typedef struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     FAR_LIST     idx_ch_cityes;     CONST_I dec_11(0x0B) &lt;hidden=true>;     CONST_I dec_22(0x16) &lt;hidden=true>;     CONST_I dec_33(0x21) &lt;hidden=true>;     CONST_I dec_44(0x2C) &lt;hidden=true>;     LIST        pl_addinfo;     CONST_I hex01f4012c(0x01f4012c); \/\/ dec 32768300     CONST_I hex03e801f4(0x03e801f4); \/\/ dec 65536500     ushort       is_island &lt;bgcolor=cLtBlue>;     if((is_island &amp; ~1)) {     \/\/ !=0, !=1         Printf (\" is_island = %i\\n\", is_island); \/\/ !=0, !=1         FSeek(FTell()-2); ushort is_island &lt;bgcolor=cRed, fgcolor=cAqua>;     }     ushort      is_EU &lt;bgcolor=cLtBlue>;     if(is_EU &amp; ~1){      \/\/ !=0, !=1         Printf (\" is_EU = %i\\n\", is_EU);         FSeek(FTell()-2); ushort is_EU &lt;bgcolor=cRed, fgcolor=cAqua>;     }     en_ENG_COUNTRY_NAME      en_eng_strname&lt;fgcolor=cDkGreen, bgcolor=cGreen>;     CONST_S     aligment(0);     if(IS_OFICIAL_MAP){         CONST_S     zero2(0);         \/\/https:\/\/ru.wikipedia.org\/wiki\/ISO_3166-1         string   alpha_2_ISO3166_1 &lt;bgcolor=cLtGreen, fgcolor=cDkYellow>;         CONST_B  aligment_b(0);         string   const_triple_defice &lt;bgcolor=cLtGreen,fgcolor=cDkYellow,hidden=true>;         CONST_S  aligment_s(0);      }         \/\/ call ADDINFO_0xA     local uint return_here &lt;hidden=true> = FTell();     FSeek(pl_addinfo.offset);         ADDINFO_0xA addinfo[pl_addinfo.cnt] &lt;optimize=false>;     FSeek(return_here); }MORE_INFO_0xA&lt;read=Read_MORE_INFO_0xA>; string Read_MORE_INFO_0xA(MORE_INFO_0xA &amp;a){     local string s;     SPrintf(s, \"%s\",EnumToString(a.en_eng_strname));     if(exists(a.alpha_2_ISO3166_1)) SPrintf(s, \"%s, '%s'\", s, a.alpha_2_ISO3166_1);     if(a.is_EU) SPrintf(s, \"%s, EU\", s);     if(a.is_island) SPrintf(s, \"%s, island\", s); \/\/\/ Iseland in rus map - not iseland))     SPrintf(s,\"%s . add_cnt:[%i]\", s, a.pl_addinfo.cnt);     return s; } \/\/}MORE_INFO_0xA;  \/\/{BRIF_0xA; main data 0xA - BRIF_0xA typedef     struct{     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt;hidden=true> = head.addr.offset; \/\/ absolute block offset     PSTR        pstr_name;  \/\/ ptr to zero-ended str     CONST_B     is_synonym(0)&lt;hidden=false>;\/\/ !!! carindb_rus.0xA.osterreich = 1      en_LANG     en_lang;\/\/ language code     CONST_S     zero(0);    \/\/ ushort allways 0     PTR         p_moreinfo&lt;hidden=true>; \/\/ ptr to item of LIST pl_all_moreinfo;     \/\/ jump to MORE_INFO     local ushort return_here &lt;hidden=true> = FTell();     FSeek(p_moreinfo.ptr + offset);         MORE_INFO_0xA more_info;         FSeek(return_here); }BRIF_0xA&lt;read=Read_BRIF_0xA>; string Read_BRIF_0xA(BRIF_0xA &amp;a){     local string s;     SPrintf(s, \"%s, `%s`. Lang: %s\",         EnumToString(a.more_info.en_eng_strname),          a.pstr_name.str, EnumToString(a.en_lang)         );     return s; } \/\/}BRIF_0xA;  typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt;hidden=true> = head.addr.offset;     \/\/ absolute block offset     LIST    pl_all_data;    \/\/ brief geo info     LIST    pl_all_moreinfo;\/\/ more info, ptrs from briefs     CONST_I zero(0);      LIST    pl_all_addinfo; \/\/ outer links to ch_idx file     \/\/ next - six uints == 0     CONST_I zero(0);  CONST_I zero(0);  CONST_I zero(0);       CONST_I zero(0);  CONST_I zero(0);  CONST_I zero(0);       BRIF_0xA brief_geo[pl_all_data.cnt] &lt;optimize=false>;  \/\/ main data \/*     MORE_INFO_0xA   more_info[pl_all_moreinfo.cnt] &lt;optimize=false>; NO NEED MADE THIS ARRAY - ALL ITEMS WILL BE CREATD FROM brief_geo ptrs     FSeek(pl_all_addinfo.offset); \/\/ pl_all_addinfo - byte after more_info      ADDINFO_0xA addinfo[pl_all_addinfo.cnt] &lt;optimize=false>; NO NEED MADE THIS ARRAY - ALL ITEMS WILL BE CREATD FROM brief_geo ptrs *\/     byte   after_parsed_block_info &lt;bgcolor=cPurple, fgcolor=cWhite>; }BT_0x0A; \/\/}BT_0x0A <\/code><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/dq\/u7\/pb\/dqu7pbdt9xrlqvwo2suspk7kyrc.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>ADDINFO_0xA \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u043a \u0442\u0438\u043f\u0443 0x11 (\u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0443\u043a\u0441 POI), \u0445\u043e\u0442\u044f \u043c\u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 0xD (\u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u0443\u043a\u0432 \u0433\u043e\u0440\u043e\u0434\u043e\u0432), \u0441\u0443\u0434\u044f \u043f\u043e \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0442\u0438\u043f\u043e\u0432 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0438 \u043b\u043e\u0433\u0438\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0443 MORE_INFO_0xA \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 ADDINFO_0xA, \u0438 \u0442\u0438\u043f \u0435\u0433\u043e 0x30<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u0430\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e MORE_INFO_0xA \u043e\u0442 4 \u0434\u043e 10.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u043e\u043f\u0438\u0441\u0430\u0432 \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0435 \u0431\u043b\u043e\u043a \u0438\u0437 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f ADDINFO_0xA, \u0438 \u043a\u043b\u0438\u043a\u043d\u0443\u0432 \u043f\u043e MORE_INFO_0xA.FAR_LIST.PTR.here &#8212; \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0442\u0443\u0434\u0430 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f: \u0431\u043b\u043e\u043a \u043e\u043f\u0438\u0441\u0430\u043d, \u0435\u0441\u043b\u0438 \u0432 \u043e\u043a\u043d\u0435 hex \u043d\u0430\u0436\u0430\u0442\u044c +, \u0432\u043a\u043b\u0430\u0434\u043a\u0430 Variables \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0430 CH_IDX char_of. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/k3\/e8\/_r\/k3e8_radmwou2k1eeuq2lg_qbi0.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0411\u0435\u043b\u044c\u0433\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><code>14 -[7] 0045D708 t(11)>  a d g l m t z<\/code> &#8212; \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0438: <code>a [1]>004A5508 10()>, atomium, d - d [2]>004A5508 10()>, dierenpark planckendael, domaine des grottes de han ; g [2]>004A5508 10()>, grand hornu, grottes de han; g [2]>004A5508 10()>, grand hornu, grottes de han; m [1]>004A5508 10()>, manneken pis; t [1]>004A5508 10()>, trois bornes; z [1]>004A5508 10()>, zoo antwerpen<\/code> \u0414\u043e\u0441\u0442\u043e\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0430\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p><code>20 -[3] 0045D708 t(11)>  c k m <\/code> \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708: <code>c [1]>004A5508 10()>, centre historique de bastogne; k [3]>004A5508 10()>, koninklijk legermuseum, koninklijk museum voor midden afrik, koninklijke musea v. schone kunsten; m [9]>004A5508 10()>, musee d'art et d'histoire, musee d'art moderne, musee de l'armee, musee des sciences naturelles, musee royal d'afrique centrale 2<\/code> \u041c\u0443\u0437\u0435\u0438.<\/p>\n<\/li>\n<li>\n<p><code>25 -[9] 0045D708 t(11)>  b c g j k l o p s<\/code> \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708: <code>b [4]>004A5508 10()>, basiliek van het heilig hart, basilique du sacre coeur, belfort, butte du lion; c [2]>004A5508 10()>, cathedrale notre dame de tournai, chateau de laeken; g [2]>004A5508 10()>, grand place, grote markt; j [1]>004A5508 10()>, justitiepaleis; k [2]>004A5508 10()>, kasteel van laken, koninklijk paleis; l [2]>004A5508 10()>, l'abbaye de villers la ville, la collegiale sainte gertrude; o [2]>004A5508 10()>, onze lieve vrouwebasiliek, onze lieve vrouwekathedraal; p [2]>004A5508 10()>, palais de justice, palais royal; s [1]>004A5508 10()>, stadhuis leuven <\/code>. \u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u043f\u0430\u043c\u044f\u0442\u043d\u0438\u043a\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p><code>26 -[4] 0045D708 t(11)>  b p t w<\/code> \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708: <code> b [4]>004A5508 10()>, bellewaerde park, bobbejaanland, boudewijn seapark, bruparck; p [4]>004A5508 10()>, pairi daiza, parc d'aventures scientifiques, plopsa coo, plopsaland; t [1]>004A5508 10()>, technopolis; w [1]>004A5508 10()>, walibi belgium<\/code> \u041f\u0430\u0440\u043a\u0438 \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p><code>27 -[4] 0045D708 t(11)>  h n p s <\/code> \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708: <code> h [1]>004A5508 10()>, het zwin; n [1]>004A5508 10()>, nationale plantentuin; p [1]>004A5508 10()>, parc naturel des hautes fagnes; s [1]>004A5508 10()>, signal de botrange<\/code><\/p>\n<\/li>\n<li>\n<p><code>34 -[4] 0045D708 t(11)>  a b c l <\/code> \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708: <code>a [2]>004A5508 10()>, aeroport charleroi bruxelles sud, aeroport de charleroi gosselies; b [3]>004A5508 10()>, bru, brussel nationaal, brussels airport; c [1]>004A5508 10()>, crl; l [1]>004A5508 10()>, luchthaven brussel <\/code> \u0410\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u044b<\/p>\n<\/li>\n<li>\n<p><code>35 -[2] 0045D708 t(11)>  o z <\/code> \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708: <code>o [1]>004A5508 10()>, oostende ramsgate; z [1]>004A5508 10()>, zeebrugge <\/code> \u041f\u043e\u0440\u0442 (\u041d\u043e \u0410\u043d\u0442\u0432\u0435\u0440\u043f\u0435\u043d\u0430 \u043d\u0435\u0442? \u041f\u0430\u0440\u043e\u043c?<\/p>\n<\/li>\n<li>\n<p><code>3A -[15] 0045D708 t(11)>  a b c d e h k m n p q s t v z <\/code> \u0432 \u0431\u043b\u043e\u043a\u0435 0045D708: <code>a [7]>004A5508 10()>, abele n38 frankrijk, antwerpen a12 nederland 1, arendonk e34 nederland, arlon a28 france, arlon e411 luxembourg; b [8]>004A5508 10()>, baarle hertog chaamseweg nederland, baarle hertog turnhoutsew nederland, bastogne n84 luxembourg, beauraing n40 france, berneau n627 nederland; c [2]>004A5508 10()>, chimay france, couvin n5 france; d [1]>004A5508 10()>, dinant n96 france; e [5]>004A5508 10()>, erquelinnes n54 france, essen n117 nederland, estaimpuis n511 france, eupen e40 deutschland, eynatten n68 deutschland; h [1]>004A5508 10()>, hoogstraten e19 nederland; k [3]>004A5508 10()>, kelmis n3 deutschland, kinrooi n78 nederland, knokke n376 nederland; m [7]>004A5508 10()>, maaseik n761 nederland, maasmechelen e314 nederland, maldegem n410 nederland, martelange n4 luxembourg, moelingen e25 nederland; n [1]>004A5508 10()>, neerpelt n74 nederland; p [2]>004A5508 10()>, paal n403 nederland, philippeville n40 france; q [1]>004A5508 10()>, quevry le grand n6 france; s [2]>004A5508 10()>, sankt vith e42 deutschland, st. vith e421 luxembourg; t [4]>004A5508 10()>, tongeren n79 nederland, tournai e42 france, turnhout n119 nederland, turnhout n12 nederland; v [4]>004A5508 10()>, veldwezelt n2 nederland, veurne e40 frankrijk, vielsalm n68 luxembourg, virton n87 france; z [1]>004A5508 10()>, zelzate n423 nederland <\/code> \u041f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b?<\/p>\n<\/li>\n<li>\n<p> \u0417\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e \u0441\u0432\u043e\u0438 \u0434\u043e\u0433\u0430\u0434\u043a\u0438 \u0432 enum:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">typedef enum &lt;ushort>{ Sites_of_interest = 0x14, Museum= 0x20,\/\/musee d'art moderne, musee de l'armee, musee des sciences Naturelles Architecture = 0x25,\/\/ Fun_ park = 0x26,\/\/boudewijn seapark, bruparck Nature_park = 0x27,\/\/het zwin, nationale plantentuin City= 0x30,\/\/russian map Aeroport= 0x3a,\/\/brussel nationaal, brussels airport; , luchthaven brussel \/\/ 0x35  \/\/ oostende ramsgate (tonnel), zeebrugge (port), need mode exmpls Border_point = 0x34 \/\/ }en_PLACE_CATEGORY <\/code><\/pre>\n<p>\u0412 carindb_bnl \u043f\u043e\u043a\u0430 \u043d\u0435\u044f\u0441\u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 0x35. \u0427\u0443\u0442\u044c \u043f\u0440\u0430\u0432\u043b\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043d\u044b\u0439 Read_ADDINFO_0xA &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432\u044b\u0432\u043e\u0434 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e enum, \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432\u044b\u0432\u043e\u0434 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043f\u0438\u0441\u043a\u0430. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/kw\/1y\/mr\/kw1ymrehopq4v2vmce7etn3qfve.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0435 Variables \u043a\u043e\u043f\u0438\u043f\u0430\u0449\u0443 <code>(35) -[4] 0045D708 of:022EBD7C ty(11)>  e h i r<\/code>. \u041f\u0435\u0440\u0435\u0445\u043e\u0436\u0443 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \u0432 hex \u043e\u043a\u043d\u0435: \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c 022EBD7C, +, \u043a\u043b\u0438\u043a \u043d\u0430 hex \u043e\u043a\u043d\u0435, +<\/p>\n<p>+ &#8212; \u0438 \u0432 \u043e\u043a\u043d\u0435 Variables \u0444\u043e\u043a\u0443\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0435. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/webt\/-5\/im\/lz\/-5imlzqeiceqhyw0ftgeephtwws.png\" data-width=\"auto\"\/><figcaption><\/figcaption><\/figure>\n<pre><code>e [2]>004A5D08 10()>, eemshaven, europoort hull h [2]>004A5D08 10()>, hoek van holland harwich, hoek van holland stena line i [2]>004A5D08 10()>, ijmuiden felison terminal, ijmuiden newcastle r [1]>004A5D08 10()>, rotterdam europoort <\/code><\/pre>\n<p>\u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0437\u043d\u0430\u0447\u0438\u0442, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f Seaport = 0x35 \u0432 en_PLACE_CATEGORY.<br \/> \u0424\u0430\u0439\u043b carindb_ee \u0434\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u043d\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439:<br \/> <code>Sport = 0x23, \/\/automotodrom brno, o2 arena, ski areal jasna, o2 arena<\/code><br \/> \u0418 0x28 \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u043c <code>h [2]>015A6408 10()>, hala ludowa, hala stulecia<\/code>. \u041e\u0431\u044a\u0435\u043a\u0442 &#8212; \u043f\u043e\u043d\u044f\u0442\u0435\u043d, \u044d\u0442\u043e \u00ab\u0417\u0430\u043b \u0421\u0442\u043e\u043b\u0435\u0442\u0438\u044f\u00bb \u0438\u043b\u0438 \u041d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u0437\u0430\u043b (\u043f\u043e\u043b\u044c\u0441\u043a. Hala Stulecia, Hala Ludowa) \u0432\u043e \u0412\u0440\u043e\u0446\u043b\u0430\u0432\u0435. \u041d\u043e \u043a\u0430\u043a\u0443\u044e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442?<br \/> UNESCO World Heritage Site? \u0410\u0432\u0442\u043e\u0440 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043b, \u043a\u0430\u043a &#171;structure to host &#171;exhibitions, concerts, theatrical and opera performances, and sporting events)&#187;<\/p>\n<h3>\u0420\u0435\u0437\u044e\u043c\u0435<\/h3>\n<ul>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b CONST_B, CONST_S, CONST_I &#8212; \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0441 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c &#8212; \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 PSTR &#8212; \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c PTR \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u043d\u043e\u043b\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 FAR_LIST &#8212; \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c-\u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u043c \u0431\u043b\u043e\u043a\u0435<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 en_LANG &#8212; \u043a\u043e\u0434\u044b \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 <code>local ubyte IS_OFICIAL_MAP = ( ReadUShort(0x2e) == 1);<\/code> &#8212; \u0432\u0438\u0434 \u0444\u0430\u0439\u043b\u0430, \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439, \u0438\u043b\u0438 carindb_rus<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u043a\u043e\u043d\u0447\u0438\u043a\u0435 \u043f\u0435\u0440\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 en_ENG_COUNTRY_NAME<\/p>\n<\/li>\n<li>\n<p>\u0413\u0438\u043f\u043e\u0442\u0435\u0437\u0430 \u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0430\u043d\u044b \u043a \u0415\u0432\u0440\u043e\u0441\u043e\u044e\u0437\u0443, \u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0430 &#8212; \u043e\u0441\u0442\u0440\u043e\u0432\u043d\u0430\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0411\u043b\u043e\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 POI, points of interests, \u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0431\u043b\u043e\u043a\u0438 \u0442\u0438\u043f\u0430 11h, \u043d\u043e \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0430, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u0441\u0442\u0440\u0430\u043d\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u043a\u043e\u043d\u0447\u0438\u043a\u0435 \u043f\u0435\u0440\u0430 &#8212; en_PLACE_CATEGORY, \u0442\u0438\u043f\u044b POI<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 BT_0x0B_0x0D_0x0F_0x11 &#8212; \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0438\u0445 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0435\u043d, \u0432 \u0442.\u0447. \u0438 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u043b\u043e\u043a 0x0A &#8212; \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0440\u0430\u043d\u0430\u0445. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0435\u0441\u044c, \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0431\u0430\u0439\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 &#8212; \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/599661\/\" rel=\"noopener noreferrer nofollow\">\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>.<\/p>\n<\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/598673\/\"> https:\/\/habr.com\/ru\/post\/598673\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\" class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b &#8212; \u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u0438<\/h3>\n<p>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u043e\u0432 Siemens VDO Dayton CARMiN<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597625\/\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u0432\u0435\u0440\u0441 \u0447\u0435\u0440\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0441\u0435\u0440\u0430\u043a\u0442\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/597851\/\" rel=\"noopener noreferrer nofollow\">01 \u0421\u0448\u0435\u0439 \u043a\u0440\u0430\u0441\u043d\u043e\u0435 \u0441 \u043a\u0440\u0430\u0441\u043d\u044b\u043c, \u0436\u0435\u043b\u0442\u043e\u0435 \u0441 \u0436\u0435\u043b\u0442\u044b\u043c, \u0431\u0435\u043b\u043e\u0435 \u0441 \u0431\u0435\u043b\u044b\u043c. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0411\u043b\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 carindb \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u043e\u0432, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u0441\u0443\u0449\u0438\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0417\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u044f \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043b \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445, \u043d\u0430\u043f\u043e\u043c\u043d\u044e:<\/p>\n<ul>\n<li>\n<p><code>PTR<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 16 \u0431\u0438\u0442 (\u0442\u043e\u0447\u043d\u0435\u0435, \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u043e\u043b\u044c\u0448\u0435). \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u043b\u043e\u043a\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 ushort ptr. \u0427\u0430\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 &#8212; byte \u0440\u0443\u043a\u0443, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 hex \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0433\u043e\u043b\u0443\u0431\u044b\u043c \u0444\u043e\u043d\u043e\u043c, \u043a\u0443\u0434\u0430 PTR \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f. \u0412 \u043e\u043a\u043d\u0435 hex PTR \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0438\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u043d\u0430 \u0433\u043e\u043b\u0443\u0431\u043e\u043c \u0444\u043e\u043d\u0435. \u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u043a\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p><code>LIST<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 32 \u0431\u0438\u0442\u0430. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435: PTR ptr \u0438 ushortcnt, \u0433\u0434\u0435 ptr &#8212; \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430, \u0430 cnt &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430. \u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0433\u0434\u0435 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d LIST. \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d \u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0447\u0435\u0440\u0435\u0437 offset. \u0421\u0432\u0435\u0442\u043b\u043e-\u0433\u043e\u043b\u0443\u0431\u043e\u0439 \u0444\u043e\u043d, ptr \u0441\u0438\u043d\u0438\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438, cnt &#8212; \u0442\u0451\u043c\u043d\u043e-\u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u043c.<\/p>\n<\/li>\n<li>\n<p><code>BL_ADDR<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 32 \u0431\u0438\u0442\u0430. \u041f\u0435\u0440\u0432\u044b\u0435 24-\u0431\u0438\u0442\u0430 &#8212; addr &#8212; \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 0x800 \u0431\u0430\u0439\u0442, \u0442.\u0435. \u0434\u043b\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 0x800 \u0438\u043b\u0438 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0432\u043b\u0435\u0432\u043e \u043d\u0430 7 \u043f\u043e\u0437\u0438\u0446\u0438\u0439. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 8 \u0431\u0438\u0442 &#8212; size &#8212; \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430 \u0432 0x800 \u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445. \u041e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a &#171;\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c\u0443&#187; \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 offset, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e, \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0440\u0430\u0432\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u044d\u0442\u043e\u0433\u043e BL_ADDR. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0442\u0430\u043a, \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a BL_ADDR, \u043a \u044d\u0442\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043e\u0431 \u044d\u0442\u043e\u043c, \u043e\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u044f \u0444\u043e\u043d \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0438 \u0432\u044b\u0432\u043e\u0434\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0432 \u043b\u043e\u0433. \u0412\u0430\u043b\u0438\u0434\u043d\u044b\u0439 BL_ADDR \u0432 \u043e\u043a\u043d\u0435 hex &#8212; \u043d\u0430 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u043e\u043c \u0444\u043e\u043d\u0435, \u0436\u0435\u043b\u0442\u044b\u0435 &#8212; \u0441\u0438\u043c\u0432\u043e\u043b\u044b addr \u0438 \u0442\u0435\u043c\u043d\u043e-\u0433\u043e\u043b\u0443\u0431\u044b\u0435 (cDkAqua) &#8212; size.<\/p>\n<\/li>\n<li>\n<p><code>BL_HEAD<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 64 \u0431\u0438\u0442\u0430. \u041f\u0435\u0440\u0432\u044b\u0435 32 &#8212; BL_ADDR, \u0437\u0430\u0442\u0435\u043c \u0431\u0430\u0439\u0442 zero_aligment \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u044b\u0439 \u043d\u0443\u043b\u044e, \u0437\u0430\u0442\u0435\u043c \u0431\u0430\u0439\u0442 type, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0438\u043f \u0431\u043b\u043e\u043a\u0430 (enum en_BL_TYPE), \u0438 2 \u0431\u0430\u0439\u0442\u0430 is_compressed \u0438 uncompressed_size, \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u043c carindb \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u044b\u0435 \u043d\u0443\u043b\u044e. \u042d\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0431\u043b\u043e\u043a\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e BL_ADDR \u043e\u0431\u044f\u0437\u0430\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c, \u043d\u043e \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d BL_HEAD. \u0412 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u0440\u043d\u044b\u0439 \u0431\u0430\u0439\u0442 here_last_byte, \u0431\u0440\u043e\u0441\u043a\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 (bgcolor=cPurple, fgcolor=cAqua) \u0432 hex, \u043e\u0442\u043c\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0430, \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 BL_HEAD \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0420\u0430\u0441\u0446\u0432\u0435\u0442\u043a\u0430 BL_HEAD \u0432 \u043e\u043a\u043d\u0435 hex &#8212; \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439 \u0444\u043e\u043d, \u0431\u0430\u0439\u0442 type cDkPurple, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0435\u0437\u043d\u0430\u0447\u0430\u0449\u0438\u0435 \u0431\u0430\u0439\u0442\u044b &#8212; \u0441\u0435\u0440\u044b\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u0438, \u0447\u0442\u043e \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0xB &#171;\u0432\u043d\u0435\u0448\u043d\u0438\u0435&#187; &#171;\u0441\u0441\u044b\u043b\u043a\u0438&#187; \u0432\u0435\u0434\u0443\u0442 \u0432 0xA. \u0418\u0437 \u0431\u043b\u043e\u043a\u0430 \u0442\u0438\u043f\u0430 0xD \u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u0435\u0434\u0443\u0442 \u0432 0xC. \u0418\u0437 0x0F \u0432 0x0E. \u0418\u0437 0x11 \u0432 0x10.<br \/> \u0415\u0441\u043b\u0438 0xB &#8212; \u044d\u0442\u043e \u0431\u043b\u043e\u043a \u0441 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0431\u0443\u043a\u0432\u0430\u043c\u0438 \u0441\u0442\u0440\u0430\u043d, \u0442\u043e 0xA, \u043a\u0443\u0434\u0430 \u0432\u0435\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u044b, \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0442\u0440\u0430\u043d\u0430\u0445.<\/p>\n<p>\u041d\u0430 \u0444\u0430\u0439\u043b carindb_bnl, \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0411\u0435\u043d\u0438\u043b\u044e\u043a\u0441\u0430 (\u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u044b &#8212; \u0411\u0435\u043b\u044c\u0433\u0438\u044f, \u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b \u0438 \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433) \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438: \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u044e \u0431\u043b\u043e\u043a 0xB \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>block(FindBlockByType(0x0B));<\/code>. <\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043b\u043b\u0430\u0436 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438: \u043d\u0430 \u0441\u043a\u0440\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 hex \u0441 \u0430\u0434\u0440\u0435\u0441\u0430 0x2000, \u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u043b\u043e\u043a\u0430 0xA, \u0438\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 0xB, \u0438 \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0436\u0435 0xA \u0442\u043e\u0436\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0430.<\/p>\n<ul>\n<li>\n<p>\u0412 \u0431\u043b\u043e\u043a\u0435 0xB \u0442\u0440\u0438 main_data, \u043e\u043d\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0431\u0443\u043a\u0432\u044b B, N \u0438 L \u0438 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 0x2030, 0x2038, 0x2040 &#8212; \u0441\u0438\u043d\u0438\u0435 \u0442\u043e\u0447\u0435\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u043e \u0444\u0430\u043a\u0442\u0435 \u0433\u043e\u043b\u0443\u0431\u0435\u043d\u044c\u043a\u0438\u043c \u043c\u0430\u044f\u043a\u0443\u044e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 PTR.here \u0432 main_data.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0436\u0435\u043b\u0442\u044b\u043c \u0444\u043e\u043d\u043e\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0431\u043b\u043e\u043a\u0430: &#8212; &#8216;00000401 000A0000&#8217; \u044d\u0442\u043e BL_HEAD, &#8212; &#8216;00300003&#8217; &#8212; LIST \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 3\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0434\u0443\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437 0xB, \u0447\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0438 \u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. &#8212; &#8216;00480003&#8217; &#8212; \u0435\u0449\u0435 \u043e\u0434\u0438\u043d LIST, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e. &#8212; uint zero &#8212; &#8217;00f00017&#8242; LIST \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 17h \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, ptr F0h \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e LIST, (f0 &#8212; 30) \/3 =0x40 &#8212; \u0428\u0435\u0441\u0442\u044c uint zero &#8212; \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u044b \u043d\u043e\u043b\u044e.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0441\u043a\u0440\u0438\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u043b\u043e\u043a\u0430 0xA \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u043e\u0441\u044c \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443, \u0441 \u0430\u0434\u0440\u0435\u0441\u0430 0x2210 \u0442\u0440\u0438 zero-ended \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: belgi\u00eb, luxembourg, nederland. \u0411\u0418\u041d\u0413\u041e!<\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 main_data \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 0xB, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b &#171;B&#187; &#8212; 0210h, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 &#171;belgi\u00eb&#187;, &#171;L&#187; &#8212; &#171;luxembourg&#187;, &#171;N&#187; &#8212; &#171;nederland&#187;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 2 \u0431\u0430\u0439\u0442\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0430 0xA (LIST &#8216;00300003&#8217;), (\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0434\u0443\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437 0xB \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c) &#8212; \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 (LIST &#8216;00480003&#8217;)<\/p>\n<\/li>\n<\/ul>\n<h3>\u041d\u043e\u0432\u044b\u0435 \u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u0438: CONST_B, CONST_S, CONST_I, PSTR<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 vdo_inc.bt \u043d\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b.<\/p>\n<ul>\n<li>\n<p><code>CONST_B<\/code>, <code>CONST_S<\/code>, <code>CONST_I<\/code> &#8212; \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438.\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e 8, 16 \u0438 32 \u0431\u0438\u0442\u0430. \u0412 hex \u0431\u0435\u043b\u044b\u0435 \u0431\u0443\u043a\u0432\u044b \u043d\u0430 \u0442\u0435\u043c\u043d\u043e-\u0441\u0435\u0440\u043e\u043c \u0444\u043e\u043d\u0435, \u043d\u043e \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439 \u043d\u0435 \u0440\u0430\u0432\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0444\u043e\u043d \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043b\u043e\u0433.<\/p>\n<\/li>\n<li>\n<p><code>PSTR<\/code>. \u0420\u0430\u0437\u043c\u0435\u0440 16 \u0431\u0438\u0442. \u0410\u043d\u0430\u043b\u043e\u0433 PTR \u0441 \u0442\u0438\u043f\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 &#8212; \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043d\u0430 \u043d\u043e\u043b\u044c \u0441\u0442\u0440\u043e\u043a\u0430, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u0441\u0432\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 str \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443, \u0437\u0430\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u044f \u0435\u0451 \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u0444\u043e\u043d\u043e\u043c \u0438 \u0442\u0435\u043c\u043d\u043e-\u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438. \u0426\u0432\u0435\u0442 \u0432 hex &#8212; \u0433\u043e\u043b\u0443\u0431\u043e\u0439 \u0444\u043e\u043d, \u043a\u0430\u043a \u0443 PTR, \u043d\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0442\u0435\u043c\u043d\u043e-\u0437\u0435\u043b\u0435\u043d\u044b\u0435, \u0430 \u043d\u0435 \u0441\u0438\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">\/\/}CONST_B typedef struct(uchar val){     if(ReadUByte(FTell()) != val){         SetBackColor(cRed);         Printf(\"0f:%04X const ubyte(%02Xh) != %Xh\\n\",              FTell(), val, ReadUByte(FTell()));     }     ubyte value; }CONST_B &lt;fgcolor=cWhite, bgcolor=cGray, hidden=true>; \/\/}CONST_S typedef struct(ushort val){     if(ReadUShort(FTell()) != val){         SetBackColor(cRed);         Printf(\"0f:%04X const ushort (%04Xh) != %Xh\\n\",              FTell(), val, ReadUShort(FTell()));     }     ushort value; }CONST_S&lt;fgcolor=cWhite, bgcolor=cGray, hidden=true>; \/\/}CONST_I typedef struct(uint val){     if(ReadUInt(FTell()) != val){         SetBackColor(cRed);         Printf(\"0f:%04X const ushort (%04Xh) != %Xh\\n\",              FTell(), val, ReadUInt(FTell()));     }     uint value; }CONST_I&lt;fgcolor=cWhite, bgcolor=cGray, hidden=true>;  \/\/}PSTR typedef struct{     local uint offset &lt;hidden=true>;   \/\/ absolute block offset for next PTR ptr     if( exists(parentof(this).offset) ){         offset = parentof(this).offset; \/\/ start block offset      }     PTR     ptr &lt;fgcolor=cDkGreen>;         \/\/ pointer to string\/0     if(ptr.ptr){ \/\/ theoreticaly may==0, in this case no need calculate any vars         offset = ptr.ptr + offset;                \/\/ set own absolute offset          if(offset){ \/\/ shoulb be not zero             local DWORD curr_position = FTell(); \/\/ remember ret             FSeek(offset);          \/\/ jmp to offset             string str &lt;bgcolor=cLtGreen, fgcolor=cDkYellow>; \/\/ str as real             FSeek(curr_position);   \/\/ret         }else{             local string str;  \/\/ str as local             SPrintf(str, \"No offset %04X\", ptr.ptr);         }     } }PSTR &lt;read=Read_PSTR>; string Read_PSTR(PSTR &amp;a){     local string s; SPrintf(s, \"%X: %s\", a.offset, a.str); return s; } \/\/}PSTR <\/code><\/pre>\n<h3>\u0411\u043b\u043e\u043a 0x0A. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0440\u0430\u043d\u0430\u0445<\/h3>\n<p>\u0412 \u0438\u043d\u043a\u043b\u044e\u0434\u0435 <a class=\"mention\" href=\"\/users\/inc_block\">@inc_block<\/a>.bt&#187; \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e block() \u0432 swith \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u0442\u0438\u043f\u043e\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b BT_0x0A \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430.<\/p>\n<pre><code class=\"cpp\">    \/\/ reading block type     local uchar type = ReadUByte(start_offset + 5);     FSeek(start_offset);     switch (type){  \/\/ choice template for every known type        case 0x0B:             BT_0x0B_0x0D_0x0F_0x11     block_0x0B &lt;comment=\"D BT_0x0D_0x0B_0x0F\">;             break;        case 0x0A:             BT_0x0A              block_0x0A &lt;comment=\"0Ah BT_0x0A\">;             break; <\/code><\/pre>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e typedef \u0441 \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 BT_0x0A.<\/p>\n<pre><code class=\"cpp\"> typedef struct{     BL_HEAD head; \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block       local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset     LIST    pl_data;    \/\/ &lt;----------------need more analitic     LIST    pl_moreinfo;\/\/ &lt;----------------need more analitic     CONST_I zero(0);    \/\/ uint must be == 0       LIST    pl_addinfo; \/\/ &lt;----------------need more analitic     \/\/ six uints == 0     CONST_I zero(0);  CONST_I zero(0);  CONST_I zero(0);       CONST_I zero(0);  CONST_I zero(0);  CONST_I zero(0);        struct{         local ushort size &lt;format=hex, hidden=true> = head.addr.size * 0x800; \/\/ size of this block           local uint   offset &lt; hidden=true> = head.addr.offset;     \/\/ absolute block offset         PSTR    pstr_name;  \/\/ ptr 2 zero-ended str         CONST_B zero(0);    \/\/ ubyte allways 0         ubyte   unk&lt;bgcolor=cYellow>;         CONST_S zero(0);    \/\/ ushort allways 0         PTR     p_moreinfo; \/\/ ptr to item of LIST pl_moreinfo;         Printf(\"%s \\n\", pstr_name.str);     }try_data[3]&lt;optimize=false>;      byte   after_parsed_block_info &lt;bgcolor=cPurple, fgcolor=cWhite>; }BT_0x0A;    block(FindBlockByType(0x0B)); \/\/ 0B 1      BT_0x0B_0x0D_0x0F_0x11 block(FindBlockByType(0x0A)); \/\/ 0A 1      BT_0x0A <\/code><\/pre>\n<p>\u0418 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e \u0435\u0433\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430\u0445 carindb_bnl, carindb_ee \u0438 carindb_rus.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>\u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d \u0441\u0442\u0440\u0435\u043b\u043a\u043e\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0431\u0430\u0439\u0442 CONST_B zero(0), \u0438\u0434\u0443\u0449\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 PSTR pstr_name \u0440\u0430\u0432\u0435\u043d 1, \u0430 \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u043c\u0443 0. \u042d\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0410\u0432\u0441\u0442\u0440\u0438\u0438  &#8212; \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u0432\u0430\u0436\u0434\u044b \u0432 2\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f &#8212; \u0441 \u0443\u043c\u043b\u044f\u0443\u0442\u0430\u043c\u0438 \u0438 \u0431\u0435\u0437 (\u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c ascii \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0435\u0440\u043d\u044b\u0439 \u0440\u043e\u043c\u0431\u0438\u043a-\u0432\u043e\u043f\u0440\u043e\u0441\u0438\u043a, \u0432 \u0442\u0435\u043b\u0435 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u00d6sterreich), \u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u044d\u0442\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u0430. \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u0430? \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u044e zero(0) \u0432 is_synonym(0).<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u0436\u0435\u043b\u0442\u044b\u043c ubyte unk \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u043e \u043d\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b.<\/p>\n<\/li>\n<\/ul>\n<h3>Language codes en_LANG<\/h3>\n<p>\u0412 \u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u044b <code>Printf(\"%s \\n\", pstr_name.str);<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432\u044b\u0432\u043e\u0434 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f ubyte unk: <code>Printf(\"%02X\\t(%i)\\t%s \\n\", unk, unk, pstr_name.str);<\/code><br \/> \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0442\u043e\u044f\u0442 \u0446\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<pre><code>carindb_bnl 01(1)belgi\ufffd  03(3)luxembourg  01(1)nederland   carindb_ee FF(255)balgaria  13(19)ceska republika  FF(255)eesti  1A(26)hrvatska  1B(27)latvija  18(24)lietuva  FF(255)magyarorszag  12(18)polska  FF(255)rom\ufffdnia<\/code><\/pre>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-327159","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/327159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=327159"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/327159\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=327159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=327159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=327159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}