(() => {
var __webpack_modules__ = ({
79852(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  LINK_KEYS_LEADING_CONFIG: () => (/* reexport */ LINK_KEYS_LEADING_CONFIG),
  LINK_KEYS: () => (/* reexport */ LINK_KEYS),
  preprocess: () => (/* reexport */ preprocess),
  render: () => (/* binding */ render),
  LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG: () => (/* reexport */ LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG)
});

// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_object_spread.js
var _object_spread = __webpack_require__(71893);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_object_spread_props.js
var _object_spread_props = __webpack_require__(55456);
// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(74848);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(96540);
// EXTERNAL MODULE: ./node_modules/react-dom/server.node.js
var server_node = __webpack_require__(94362);
// EXTERNAL MODULE: ./node_modules/@gravity-ui/uikit/build/esm/components/theme/ThemeProvider.js + 6 modules
var theme_ThemeProvider = __webpack_require__(33324);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/constants.js
var constants = __webpack_require__(81836);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/models/index.js
var models = __webpack_require__(78184);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/config/index.js + 2 modules
var esm_config = __webpack_require__(12905);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/contexts/InterfaceContext.js
var InterfaceContext = __webpack_require__(6790);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/contexts/RenderBodyHooksContext.js + 1 modules
var RenderBodyHooksContext = __webpack_require__(86639);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/ConsentPopup/ConsentPopup.js + 39 modules
var ConsentPopup = __webpack_require__(93516);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/Widgets/Widgets.js + 1 modules
var Widgets = __webpack_require__(36854);
// EXTERNAL MODULE: ./node_modules/@diplodoc/transform/dist/js/yfm.js
var yfm = __webpack_require__(20553);
;// CONCATENATED MODULE: ./src/components/Router/index.ts

var RouterContext = (0,react.createContext)({
    pathname: '/',
    depth: 0
});
RouterContext.displayName = 'RouterContext';
var Router_RouterProvider = RouterContext.Provider;
function Router_useRouter() {
    return (0,react.useContext)(RouterContext);
}

;// CONCATENATED MODULE: ./src/hooks/useLang.ts


var LangContext = (0,react.createContext)(models/* .Lang.En */.JA.En);
LangContext.displayName = 'Lang';
var useLang_LangProvider = LangContext.Provider;
function useLang() {
    return (0,react.useContext)(LangContext);
}

// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_type_of.js
var _type_of = __webpack_require__(61642);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/utils/index.js + 58 modules
var utils = __webpack_require__(1638);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.js + 1 modules
var yandex_metrika_adapter = __webpack_require__(22747);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/shared/libs/analytics/analytics.js + 2 modules
var analytics_analytics = __webpack_require__(87112);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_to_consumable_array.js + 3 modules
var _to_consumable_array = __webpack_require__(60478);
;// CONCATENATED MODULE: ./src/constants.ts


var HEADER_HEIGHT = 64;
var MOBILE_VIEW_WIDTH_BREAKPOINT = 769;
var DEFAULT_USER_SETTINGS = {
    theme: models/* .Theme.Light */.Sx.Light,
    textSize: models/* .TextSizes.M */.ov.M,
    showMiniToc: true,
    wideFormat: true,
    fullScreen: false
};
var RTL_LANGS = [
    'ar',
    'arc',
    'ckb',
    'dv',
    'fa',
    'ha',
    'he',
    'khw',
    'ks',
    'ps',
    'sd',
    'ur',
    'uz_AF',
    'yi'
];
var constants_TextDirection = /*#__PURE__*/ function(TextDirection) {
    TextDirection["RTL"] = "rtl";
    TextDirection["LTR"] = "ltr";
    return TextDirection;
}({});
var LINK_KEYS_LEADING_CONFIG = [
    'href'
];
var LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG = [
    'src',
    'url',
    'href',
    'icon',
    'image',
    'desktop',
    'mobile',
    'tablet',
    'previewImg',
    'image',
    'avatar',
    'logo',
    'light',
    'dark'
];
var LINK_KEYS = (0,_to_consumable_array._)(new Set((0,_to_consumable_array._)(LINK_KEYS_LEADING_CONFIG).concat((0,_to_consumable_array._)(LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG))));

;// CONCATENATED MODULE: ./src/utils.ts



function isBrowser() {
    return typeof document !== 'undefined';
}
function utils_updateThemeClassName(param) {
    var theme = param.theme;
    if (typeof document === 'undefined') {
        return;
    }
    document.querySelectorAll('.g-root').forEach(function(el) {
        el.classList.toggle('g-root_theme_light', theme === 'light');
        el.classList.toggle('g-root_theme_dark', theme === 'dark');
    });
}
function utils_updateRootClassName(states) {
    if (!isBrowser()) {
        return;
    }
    document.body.classList.add('g-root');
    var toggle = function(name, state) {
        return document.body.classList.toggle(name, Boolean(state));
    };
    Object.keys(states).forEach(function(state) {
        switch(state){
            case 'wideFormat':
                toggle('dc-root_wide-format', states[state]);
                break;
            case 'focusSearch':
                toggle('dc-root_focused-search', states[state]);
                break;
            case 'fullScreen':
                toggle('dc-root_full-screen', states[state]);
                break;
            case 'landingPage':
                toggle('dc-root_document-page', !states[state]);
                toggle('dc-root_landing-page', states[state]);
                break;
            case 'mobileView':
                toggle('mobile', states[state]);
                toggle('desktop', !states[state]);
                break;
        }
    });
}
function utils_getDirection(lang) {
    var isRTL = RTL_LANGS.includes(lang);
    return isRTL ? constants_TextDirection.RTL : constants_TextDirection.LTR;
}
var toBoolean = function(str) {
    if (typeof str === 'boolean') {
        return str;
    }
    return str ? str === 'true' : false;
};
function getSettings() {
    var theme = getSetting('theme');
    var textSize = getSetting('textSize');
    var showMiniToc = getSetting('showMiniToc');
    var wideFormat = getSetting('wideFormat');
    var fullScreen = getSetting('fullScreen');
    return {
        theme: theme,
        textSize: textSize,
        showMiniToc: toBoolean(showMiniToc),
        wideFormat: toBoolean(wideFormat),
        fullScreen: toBoolean(fullScreen)
    };
}
function getLandingPage(data) {
    return (0,utils/* .getPageType */.M5)(data) === 'PAGE_CONSTRUCTOR';
}
function getMobileView() {
    if (!isBrowser()) {
        return false;
    }
    return document.body.clientWidth < MOBILE_VIEW_WIDTH_BREAKPOINT;
}
function getSetting(name) {
    if (!isBrowser()) {
        return DEFAULT_USER_SETTINGS[name];
    }
    try {
        return sessionStorage.getItem(name) || DEFAULT_USER_SETTINGS[name];
    } catch (unused) {
        return DEFAULT_USER_SETTINGS[name];
    }
}
function utils_setSetting(name, value) {
    if (!isBrowser()) {
        return;
    }
    try {
        sessionStorage.setItem(name, String(value));
    } catch (unused) {}
}
function isDetailsTag(el) {
    return (el === null || el === void 0 ? void 0 : el.tagName.toLowerCase()) === 'details';
}
function isHeaderTag(el) {
    return [
        'H1',
        'H2',
        'H3',
        'H4',
        'H5',
        'H6'
    ].indexOf(el.tagName) !== -1;
}
/**
 * Scrolls to the element.
 * If the element is a heading - simply scrolls to it, since needed offset is already in css.
 * If the element is of any other type - calculate the offset form the element position in heading and scroll to it.
 * @param {HTMLElement} el
 */ function scrollToElement(el) {
    var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 200;
    if (isInViewport(el)) {
        return;
    }
    if (isHeaderTag(el)) {
        // Header already includes the offset in css
        // That puts it where we want it when it's scrolled to
        el.scrollIntoView();
    } else {
        var elementPosition = el.getBoundingClientRect().top;
        var offsetPosition = elementPosition + window.scrollY - offset;
        window.scrollTo({
            top: offsetPosition
        });
    }
}
function getLangPath(lang, href) {
    var path;
    var isLocal = href.match(/^file:\/\/\/(.*)$/);
    if (isLocal) {
        path = '/' + isLocal[1];
    } else {
        path = href.replace(/^https?:\/\/[^/]+/, '');
    }
    var newPath = path.replace(/\/[a-z]{2}\//, "/".concat(lang, "/"));
    if (isLocal) {
        return 'file://' + newPath;
    }
    return newPath;
}
function getDomainPath(lang, tld, href) {
    var newPath = href.replace(/([a-zA-Z0-9-]+\.[a-zA-Z0-9-]+)(?=[/:?#]|$)/, function(match) {
        var dotPos = match.lastIndexOf('.');
        if (dotPos === -1) {
            return match;
        }
        return match.slice(0, dotPos + 1) + tld;
    });
    return getLangPath(lang, newPath);
}
function isInViewport(el) {
    var rect = el.getBoundingClientRect();
    return rect.top >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight);
}
function scrollToHash() {
    var hash = window.location.hash.substring(1);
    // eslint-disable-next-line no-console
    console.log({
        hash: hash
    });
    if (!hash) {
        return;
    }
    var element = document.getElementById(hash);
    // eslint-disable-next-line no-console
    console.log({
        element: element
    });
    if (!element) {
        return;
    }
    var node = element === null || element === void 0 ? void 0 : element.parentElement;
    while(node){
        if (isDetailsTag(node)) {
            node.open = true;
        }
        node = node.parentElement;
    }
    element.focus();
    setTimeout(function() {
        // eslint-disable-next-line no-console
        console.log('scroll');
        scrollToElement(element);
    }, 10);
}
function normalizeAnalyticsConfig(rawConfig) {
    var config = {
        metrika: []
    };
    if (!rawConfig || (typeof rawConfig === "undefined" ? "undefined" : (0,_type_of._)(rawConfig)) !== 'object') {
        return config;
    }
    if ('gtm' in rawConfig && rawConfig.gtm && (0,_type_of._)(rawConfig.gtm) === 'object') {
        if (typeof rawConfig.gtm.id === 'string') {
            config.gtm = {
                id: rawConfig.gtm.id,
                mode: rawConfig.gtm.mode === 'notification' ? 'notification' : 'base'
            };
        }
    }
    if ('metrika' in rawConfig && Array.isArray(rawConfig.metrika)) {
        var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
        try {
            for(var _iterator = rawConfig.metrika[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                var metrika = _step.value;
                if (!metrika || (typeof metrika === "undefined" ? "undefined" : (0,_type_of._)(metrika)) !== 'object' || !metrika.id) {
                    continue;
                }
                config.metrika.push({
                    id: metrika.id,
                    params: metrika.params || {}
                });
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally{
            try {
                if (!_iteratorNormalCompletion && _iterator.return != null) {
                    _iterator.return();
                }
            } finally{
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }
    }
    return config;
}
function createAnalyticsProps(config) {
    var analyticsConfig = normalizeAnalyticsConfig(config);
    var adapters = analyticsConfig.metrika.map(function(config) {
        return new yandex_metrika_adapter/* .YandexMetrikaAdapter */.W(config);
    });
    var analyticsService = new analytics_analytics/* .Analytics */.j({
        adapters: adapters
    });
    return {
        analyticsConfig: analyticsConfig,
        analyticsService: analyticsService
    };
}

// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_define_property.js
var _define_property = __webpack_require__(50467);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_sliced_to_array.js
var esm_sliced_to_array = __webpack_require__(53014);
;// CONCATENATED MODULE: ./src/components/App/useSettings.ts





var capitalize = function(string) {
    return string.replace(/^./, function(ch) {
        return ch.toUpperCase();
    });
};
function useSettings_useSettings() {
    var settings = getSettings();
    var theme = useSetting('theme', settings);
    var textSize = useSetting('textSize', settings);
    var wideFormat = useSetting('wideFormat', settings);
    var fullScreen = useSetting('fullScreen', settings);
    var showMiniToc = useSetting('showMiniToc', settings);
    var controls = (0,react.useMemo)(function() {
        return (0,_object_spread._)({}, theme, textSize, wideFormat, showMiniToc, fullScreen);
    }, [
        theme,
        textSize,
        wideFormat,
        showMiniToc,
        fullScreen
    ]);
    return controls;
}
function useSetting(name, settings) {
    var _useState = (0,esm_sliced_to_array._)((0,react.useState)(settings[name]), 2), setting = _useState[0], setSetting = _useState[1];
    var onChangeSetting = (0,react.useMemo)(function() {
        return withSavingSetting(name, setSetting);
    }, [
        name,
        setSetting
    ]);
    return (0,react.useMemo)(function() {
        var _obj;
        return _obj = {}, (0,_define_property._)(_obj, name, setting), (0,_define_property._)(_obj, 'onChange' + capitalize(name), onChangeSetting), _obj;
    }, [
        name,
        setting,
        onChangeSetting
    ]);
}
function withSavingSetting(settingName, onChange) {
    return function(value) {
        utils_setSetting(settingName, value);
        onChange(value);
    };
}

;// CONCATENATED MODULE: ./src/components/App/useMobile.ts



function useMobile_useMobile() {
    var _useState = (0,esm_sliced_to_array._)((0,react.useState)(getMobileView()), 2), mobileView = _useState[0], setMobileView = _useState[1];
    var onResizeHandler = (0,react.useCallback)(function() {
        setMobileView(getMobileView());
    }, []);
    (0,react.useEffect)(onResizeHandler, [
        onResizeHandler
    ]);
    (0,react.useEffect)(function() {
        window.addEventListener('resize', onResizeHandler);
        return function() {
            return window.removeEventListener('resize', onResizeHandler);
        };
    }, [
        onResizeHandler
    ]);
    return mobileView;
}

// EXTERNAL MODULE: ./node_modules/bem-cn-lite/lib/index.js
var lib = __webpack_require__(23614);
;// CONCATENATED MODULE: ./src/components/index.ts




// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_async_to_generator.js
var _async_to_generator = __webpack_require__(41374);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_class_call_check.js
var _class_call_check = __webpack_require__(30494);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_create_class.js
var _create_class = __webpack_require__(99407);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_instanceof.js
var _instanceof = __webpack_require__(53750);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_ts_generator.js
var _ts_generator = __webpack_require__(51735);
;// CONCATENATED MODULE: ./src/components/Search/provider/utils/searchLink.ts
function buildSearchLink(base, config, query) {
    var page = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 1;
    var searchParams = new URLSearchParams();
    if (query) searchParams.set('query', query);
    if (page > 1) searchParams.set('page', page.toString());
    var params = searchParams.toString() ? "?".concat(searchParams.toString()) : '';
    var link = "".concat(base, "/").concat(config.link).concat(params);
    return link;
}

;// CONCATENATED MODULE: ./src/components/Search/provider/index.ts









var provider_DefaultSearchProvider = /*#__PURE__*/ function() {
    "use strict";
    function DefaultSearchProvider(config) {
        var _this = this;
        var _this1 = this;
        (0,_class_call_check._)(this, DefaultSearchProvider);
        (0,_define_property._)(this, "worker", void 0);
        (0,_define_property._)(this, "config", void 0);
        (0,_define_property._)(this, "init", function() {
            _this.worker = initWorker((0,_object_spread_props._)((0,_object_spread._)({}, _this.config), {
                base: _this.base,
                mark: 'Suggest__Item__Marker'
            }));
        });
        (0,_define_property._)(this, "link", function(query) {
            var page = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;
            return buildSearchLink(_this1.base, _this1.config, query, page);
        });
        this.config = config;
    }
    (0,_create_class._)(DefaultSearchProvider, [
        {
            key: "suggest",
            value: function suggest(query) {
                return (0,_async_to_generator._)(function() {
                    return (0,_ts_generator._)(this, function(_state) {
                        return [
                            2,
                            this.request({
                                type: 'suggest',
                                query: query
                            })
                        ];
                    });
                }).call(this);
            }
        },
        {
            key: "search",
            value: function search(query) {
                var page = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1, count = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 10;
                return (0,_async_to_generator._)(function() {
                    return (0,_ts_generator._)(this, function(_state) {
                        return [
                            2,
                            this.request({
                                type: 'search',
                                query: query,
                                page: page,
                                count: count
                            })
                        ];
                    });
                }).call(this);
            }
        },
        {
            key: "base",
            get: function get() {
                return window.location.href.split('/').slice(0, -this.config.depth).join('/');
            }
        },
        {
            key: "request",
            value: function request1(message) {
                return (0,_async_to_generator._)(function() {
                    return (0,_ts_generator._)(this, function(_state) {
                        switch(_state.label){
                            case 0:
                                return [
                                    4,
                                    this.worker
                                ];
                            case 1:
                                return [
                                    2,
                                    request.apply(void 0, [
                                        _state.sent(),
                                        message
                                    ])
                                ];
                        }
                    });
                }).call(this);
            }
        }
    ]);
    return DefaultSearchProvider;
}();
var BAD_ORIGIN_ERROR = /Script at '(.*?)' cannot be accessed from origin/;
function loadWorker() {
    return (0,_async_to_generator._)(function() {
        var match, url, blob;
        return (0,_ts_generator._)(this, function(_state) {
            try {
                return [
                    2,
                    new Worker(new URL(/* worker import */__webpack_require__.p + __webpack_require__.u("976"), __webpack_require__.b))
                ];
            } catch (error) {
                if ((0,_instanceof._)(error, DOMException)) {
                    match = BAD_ORIGIN_ERROR.exec(error.message);
                    if (match) {
                        url = match[1];
                        blob = new Blob([
                            "importScripts('".concat(url, "');")
                        ], {
                            type: 'text/javascript'
                        });
                        return [
                            2,
                            new Worker(URL.createObjectURL(blob))
                        ];
                    }
                }
                throw error;
            }
            return [
                2
            ];
        });
    })();
}
function initWorker(config) {
    return (0,_async_to_generator._)(function() {
        var worker;
        return (0,_ts_generator._)(this, function(_state) {
            switch(_state.label){
                case 0:
                    return [
                        4,
                        loadWorker()
                    ];
                case 1:
                    worker = _state.sent();
                    return [
                        4,
                        request(worker, (0,_object_spread_props._)((0,_object_spread._)({}, config), {
                            type: 'init'
                        }))
                    ];
                case 2:
                    _state.sent();
                    return [
                        2,
                        worker
                    ];
            }
        });
    })();
}
function request(worker, message) {
    var channel = new MessageChannel();
    return new Promise(function(resolve, reject) {
        channel.port1.onmessage = function(message) {
            if (message.data.error) {
                reject(message.data.error);
            } else {
                resolve(message.data.result);
            }
        };
        channel.port1.onmessageerror = function(message) {
            reject(message.data.error);
        };
        worker.postMessage(message, [
            channel.port2
        ]);
    });
}
function createProvider(config) {
    if (!config) {
        return null;
    }
    return new provider_DefaultSearchProvider(config);
}
var SearchProvider = (/* unused pure expression or super */ null && (provider_DefaultSearchProvider));

;// CONCATENATED MODULE: ./src/components/Search/useProvider.ts







function useProvider_useProvider() {
    var lang = useLang();
    var _useContext = (0,react.useContext)(RouterContext), _useContext_depth = _useContext.depth, depth = _useContext_depth === void 0 ? 0 : _useContext_depth;
    var search = (0,react.useContext)(SearchContext);
    var _useState = (0,esm_sliced_to_array._)((0,react.useState)(null), 2), provider = _useState[0], setProvider = _useState[1];
    var config = (0,react.useMemo)(function() {
        if (!search) {
            return null;
        }
        return (0,_object_spread_props._)((0,_object_spread._)({}, search), {
            depth: depth,
            lang: lang
        });
    }, [
        lang,
        depth,
        search
    ]);
    (0,react.useEffect)(function() {
        if (config) {
            setProvider(createProvider(config));
        }
    }, [
        config
    ]);
    return provider;
}

;// CONCATENATED MODULE: ./src/components/Search/Page.scss

;// CONCATENATED MODULE: ./src/components/Search/Page.tsx








var b = (0,lib["default"])('Search');
function getUrlParams() {
    var params = new URLSearchParams(window.location.search);
    return {
        query: params.get('query') || '',
        page: Number(params.get('page')) || 1
    };
}
function setUrlParams(query, page) {
    var params = new URLSearchParams();
    if (query) params.set('query', query);
    if (page > 1) params.set('page', String(page));
    window.history.pushState({}, '', "?".concat(params.toString()));
}
function formatResults(searchResults) {
    if (!Array.isArray(searchResults)) return [];
    return searchResults.map(function(result) {
        var _result_hierarchy, _result_hierarchy1, _result_hierarchy2;
        return {
            title: (result === null || result === void 0 ? void 0 : result.title) || (result === null || result === void 0 ? void 0 : (_result_hierarchy = result.hierarchy) === null || _result_hierarchy === void 0 ? void 0 : _result_hierarchy.lvl0) || (result === null || result === void 0 ? void 0 : (_result_hierarchy1 = result.hierarchy) === null || _result_hierarchy1 === void 0 ? void 0 : _result_hierarchy1.lvl1) || '',
            url: (result === null || result === void 0 ? void 0 : result.url) || (result === null || result === void 0 ? void 0 : result.link) || '#',
            description: (result === null || result === void 0 ? void 0 : result.description) || (result === null || result === void 0 ? void 0 : result.content) || (result === null || result === void 0 ? void 0 : result.text) || '',
            section: (result === null || result === void 0 ? void 0 : result.section) || (result === null || result === void 0 ? void 0 : (_result_hierarchy2 = result.hierarchy) === null || _result_hierarchy2 === void 0 ? void 0 : _result_hierarchy2.lvl1) || ''
        };
    });
}
var ITEMS_PER_PAGE = 10;
var Page_Page = function() {
    var provider = useProvider();
    var router = useRouter();
    var _useState = _sliced_to_array(useState(''), 2), query = _useState[0], setQuery = _useState[1];
    var _useState1 = _sliced_to_array(useState(1), 2), page = _useState1[0], setPage = _useState1[1];
    var _useState2 = _sliced_to_array(useState([]), 2), results = _useState2[0], setResults = _useState2[1];
    var _useState3 = _sliced_to_array(useState(0), 2), total = _useState3[0], setTotal = _useState3[1];
    var _useState4 = _sliced_to_array(useState(false), 2), loading = _useState4[0], setLoading = _useState4[1];
    var providerRef = useRef(null);
    useEffect(function() {
        var _provider_init;
        providerRef.current = provider;
        provider === null || provider === void 0 ? void 0 : (_provider_init = provider.init) === null || _provider_init === void 0 ? void 0 : _provider_init.call(provider);
    }, [
        provider
    ]);
    useEffect(function() {
        var _getUrlParams = getUrlParams(), q = _getUrlParams.query, p = _getUrlParams.page;
        setQuery(q);
        setPage(p);
    }, [
        router
    ]);
    useEffect(function() {
        if (query && providerRef.current) {
            setLoading(true);
            providerRef.current.search(query, page, ITEMS_PER_PAGE).then(function(searchResults) {
                var items = searchResults.items, total = searchResults.total;
                var formatted = formatResults(items !== null && items !== void 0 ? items : []);
                setResults(formatted);
                setTotal(total);
            }).catch(function() {
                setResults([]);
                setTotal(0);
            }).finally(function() {
                return setLoading(false);
            });
        } else {
            setResults([]);
            setTotal(0);
        }
    }, [
        query,
        page,
        provider
    ]);
    var handlePageChange = useCallback(function(newPage) {
        setUrlParams(query, newPage);
        setPage(newPage);
    }, [
        query
    ]);
    var handleQueryChange = useCallback(function(newQuery) {
        setUrlParams(newQuery, 1);
        setQuery(newQuery);
        setPage(1);
    }, []);
    return /*#__PURE__*/ _jsx("div", {
        className: b(),
        children: /*#__PURE__*/ _jsx(SearchPage, {
            query: query,
            items: results,
            page: page,
            totalItems: total,
            onPageChange: handlePageChange,
            onSubmit: handleQueryChange,
            loading: loading
        })
    });
};

;// CONCATENATED MODULE: ./src/components/Search/index.tsx










var SearchContext = /*#__PURE__*/ (0,react.createContext)(null);
SearchContext.displayName = 'SearchContext';
var Search_SearchProvider = SearchContext.Provider;
function Search(props) {
    var data = props.data, url = props.url;
    var searchData = data.search;
    var lang = (searchData === null || searchData === void 0 ? void 0 : searchData.lang) || Lang.En;
    var settings = useSettings();
    var mobileView = useMobile();
    var fixedLang = SUPPORTED_LANGS.includes(lang) ? lang : Lang.En;
    var direction = getDirection(fixedLang);
    configure({
        lang: fixedLang,
        localeCode: fixedLang
    });
    var routerConfig = {
        pathname: url.pathname,
        depth: 3
    };
    var theme = settings.theme, wideFormat = settings.wideFormat;
    useEffect(function() {
        updateRootClassName({
            mobileView: mobileView,
            wideFormat: wideFormat
        });
        updateThemeClassName({
            theme: theme
        });
    }, [
        theme,
        mobileView,
        wideFormat
    ]);
    return /*#__PURE__*/ _jsx(ThemeProvider, {
        theme: theme,
        direction: direction,
        children: /*#__PURE__*/ _jsx(LangProvider, {
            value: fixedLang,
            children: /*#__PURE__*/ _jsx(RouterProvider, {
                value: routerConfig,
                children: /*#__PURE__*/ _jsx(Search_SearchProvider, {
                    value: searchData,
                    children: /*#__PURE__*/ _jsx(Page, {})
                })
            })
        })
    });
}
function useSearch() {
    return (0,react.useContext)(SearchContext);
}

;// CONCATENATED MODULE: ./src/components/NeuroExpert/index.ts

var NeuroExpertContext = (0,react.createContext)(null);
NeuroExpertContext.displayName = 'NeuroExpertContext';
var NeuroExpertProvider = NeuroExpertContext.Provider;
function useNeuroExpert() {
    return (0,react.useContext)(NeuroExpertContext);
}

;// CONCATENATED MODULE: ./src/hooks/useFeedback.ts



function useFeedback(param) {
    var feedbackUrl = param.feedbackUrl, router = param.router, viewerInterface = param.viewerInterface;
    var onSendFeedback = (0,react.useCallback)(function(data) {
        if (!feedbackUrl) {
            return;
        }
        fetch(feedbackUrl, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify((0,_object_spread_props._)((0,_object_spread._)({}, data), {
                page: router.pathname,
                timestamp: new Date().toISOString()
            }))
        }).catch(function(error) {
            // eslint-disable-next-line no-console
            console.error('Failed to send feedback:', error);
        });
    }, [
        feedbackUrl,
        router.pathname
    ]);
    var isFeedbackEnabled = (viewerInterface === null || viewerInterface === void 0 ? void 0 : viewerInterface.feedback) !== false;
    return feedbackUrl && isFeedbackEnabled ? onSendFeedback : undefined;
}

// EXTERNAL MODULE: ./src/interceptors/leading-page-links.js
var leading_page_links = __webpack_require__(66008);
// EXTERNAL MODULE: ./node_modules/@swc/helpers/esm/_object_without_properties.js + 1 modules
var _object_without_properties = __webpack_require__(31105);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/shared/libs/analytics/react/analytics-provider.js
var analytics_provider = __webpack_require__(56701);
;// CONCATENATED MODULE: ./src/components/App/withAnalyticsProvider.tsx





function withAnalyticsProvider(Component) {
    return function WithAnalyticsProvider(props) {
        var analyticsService = props.analyticsService, otherProps = (0,_object_without_properties._)(props, [
            "analyticsService"
        ]);
        if (!analyticsService) {
            return /*#__PURE__*/ (0,jsx_runtime.jsx)(Component, (0,_object_spread._)({}, otherProps));
        }
        return /*#__PURE__*/ (0,jsx_runtime.jsx)(analytics_provider/* .AnalyticsProvider */.y, {
            value: analyticsService,
            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Component, (0,_object_spread._)({}, otherProps))
        });
    };
}

// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/Controls/ControlsLayout.js
var ControlsLayout = __webpack_require__(26141);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/Controls/Controls.js + 17 modules
var Controls = __webpack_require__(85715);
;// CONCATENATED MODULE: ./src/components/HeaderControls/index.tsx



var HeaderControls = /*#__PURE__*/ (0,react.memo)(function(param) {
    var mobileView = param.mobileView, theme = param.theme, onChangeTheme = param.onChangeTheme, textSize = param.textSize, onChangeTextSize = param.onChangeTextSize, wideFormat = param.wideFormat, onChangeWideFormat = param.onChangeWideFormat, showMiniToc = param.showMiniToc, onChangeShowMiniToc = param.onChangeShowMiniToc, lang = param.lang, langs = param.langs, onChangeLang = param.onChangeLang, _param_availableLangs = param.availableLangs, availableLangs = _param_availableLangs === void 0 ? [] : _param_availableLangs;
    return /*#__PURE__*/ (0,jsx_runtime.jsx)(ControlsLayout/* .ControlsLayout */.n, {
        controlClassName: 'Control',
        controlSize: models/* .ControlSizes.L */.Uv.L,
        isWideView: mobileView,
        isMobileView: mobileView,
        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Controls/* ["default"] */.A, {
            className: 'Controls',
            theme: theme,
            onChangeTheme: onChangeTheme,
            wideFormat: wideFormat,
            onChangeWideFormat: onChangeWideFormat,
            showMiniToc: showMiniToc,
            onChangeShowMiniToc: onChangeShowMiniToc,
            textSize: textSize,
            onChangeTextSize: onChangeTextSize,
            lang: lang,
            langs: langs,
            onChangeLang: onChangeLang,
            availableLangs: availableLangs
        })
    });
});
HeaderControls.displayName = 'HeaderControls';

;// CONCATENATED MODULE: ./src/components/App/CustomControls.tsx




var HeaderControlsContext = /*#__PURE__*/ (0,react.createContext)(null);
var HeaderControlsProvider = HeaderControlsContext.Provider;
var CustomControls_CustomControls = function() {
    var props = (0,react.useContext)(HeaderControlsContext);
    if (!props) {
        throw new Error('CustomControls must be used within HeaderControlsProvider');
    }
    return /*#__PURE__*/ (0,jsx_runtime.jsx)(HeaderControls, (0,_object_spread._)({}, props));
};

// EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/index.js + 1240 modules
var esm = __webpack_require__(67391);
;// CONCATENATED MODULE: ./src/components/ConstructorPage/useContent.tsx


var useContent = function(data, CustomPage) {
    var type = (0,utils/* .getPageType */.M5)(data);
    var fullScreen = type === models/* .DocumentType.PageConstructor */.KG.PageConstructor && 'data' in data && 'fullScreen' in data.data && data.data.fullScreen;
    var layout = (0,react.useMemo)(function() {
        return fullScreen ? data.data : {
            blocks: [
                {
                    type: 'page',
                    resetPaddings: true
                }
            ]
        };
    }, [
        fullScreen,
        data
    ]);
    var config = (0,react.useMemo)(function() {
        return {
            custom: {
                page: CustomPage
            },
            layout: layout
        };
    }, [
        CustomPage,
        layout
    ]);
    return config;
};

// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/hooks/useInterface.js
var useInterface = __webpack_require__(40258);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/SearchSuggest/index.js + 9 modules
var SearchSuggest = __webpack_require__(8593);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/SearchSuggest/AiIcon.js
var AiIcon = __webpack_require__(78564);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/NeuroExpertModal/NeuroExpertModal.js + 1 modules
var NeuroExpertModal = __webpack_require__(53819);
// EXTERNAL MODULE: ./node_modules/@gravity-ui/uikit/build/esm/components/Icon/Icon.js + 3 modules
var Icon = __webpack_require__(17427);
// EXTERNAL MODULE: ./node_modules/@gravity-ui/icons/esm/Magnifier.js
var Magnifier = __webpack_require__(84941);
;// CONCATENATED MODULE: ./src/components/Search/Suggest.scss

;// CONCATENATED MODULE: ./src/components/Search/Suggest.tsx











var Suggest_b = (0,lib["default"])('Suggest');
function SearchButton() {
    return /*#__PURE__*/ (0,jsx_runtime.jsx)(Icon/* .Icon */.I, {
        data: Magnifier/* ["default"] */.A,
        className: Suggest_b('end'),
        size: 24
    });
}
function Suggest() {
    var _useNeuroExpert;
    var provider = useProvider_useProvider();
    var suggest = (0,react.useRef)(null);
    var isSearchHidden = (0,useInterface/* .useInterface */.j)('search');
    var _useState = (0,esm_sliced_to_array._)((0,react.useState)(false), 2), modalOpen = _useState[0], setModalOpen = _useState[1];
    var _useState1 = (0,esm_sliced_to_array._)((0,react.useState)(''), 2), modalQuery = _useState1[0], setModalQuery = _useState1[1];
    var neuroExpertProjectId = (_useNeuroExpert = useNeuroExpert()) === null || _useNeuroExpert === void 0 ? void 0 : _useNeuroExpert.projectId;
    var onAiAction = (0,react.useMemo)(function() {
        return neuroExpertProjectId ? function(query) {
            setModalQuery(query);
            setModalOpen(true);
        } : undefined;
    }, [
        neuroExpertProjectId
    ]);
    var onModalClose = (0,react.useCallback)(function() {
        setModalOpen(false);
    }, []);
    var onFocus = (0,react.useCallback)(function() {
        utils_updateRootClassName({
            focusSearch: true
        });
    }, []);
    var onBlur = (0,react.useCallback)(function() {
        utils_updateRootClassName({
            focusSearch: false
        });
        setTimeout(function() {
            if (suggest.current) {
                suggest.current.close();
            }
        }, 100);
    }, []);
    if (!provider || isSearchHidden) {
        return null;
    }
    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
        children: [
            /*#__PURE__*/ (0,jsx_runtime.jsx)(SearchSuggest/* .SearchSuggest */.$H, {
                ref: suggest,
                provider: provider,
                onFocus: onFocus,
                onBlur: onBlur,
                endContent: /*#__PURE__*/ (0,jsx_runtime.jsx)(SearchButton, {}),
                className: Suggest_b('input'),
                classNameContainer: "".concat(Suggest_b(), " ").concat(onAiAction ? Suggest_b('with-ai') : ''),
                classNameClose: Suggest_b('close'),
                closeButton: true,
                startContent: onAiAction ? /*#__PURE__*/ (0,jsx_runtime.jsx)(AiIcon/* .AiIcon */.K, {}) : undefined,
                focusFirstSearchResult: Boolean(onAiAction),
                onAiAction: onAiAction
            }),
            neuroExpertProjectId && /*#__PURE__*/ (0,jsx_runtime.jsx)(NeuroExpertModal/* .NeuroExpertModal */.F, {
                open: modalOpen,
                query: modalQuery,
                projectId: neuroExpertProjectId,
                onClose: onModalClose
            })
        ]
    });
}

// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/navigation/CustomNavigation/CustomNavigation.js + 4 modules
var CustomNavigation = __webpack_require__(39754);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/navigation/MobileDropdown/MobileDropdown.js + 1 modules
var MobileDropdown = __webpack_require__(40233);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/navigation/Label/Label.js + 1 modules
var Label = __webpack_require__(40749);
// EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.js + 3 modules
var NavigationDropdown = __webpack_require__(16085);
;// CONCATENATED MODULE: ./src/components/ConstructorPage/useNavigation.tsx







function findItem(right, left, type) {
    return right.some(function(item) {
        return item.type === type;
    }) || left.some(function(item) {
        return item.type === type;
    });
}
var EmptyNavigation = {};
var EmptyHeader = {};
var EmptyLeftItems = [];
var EmptyRightItems = [];
var useNavigation = function(data, controls, CustomControls, CustomSuggest, viewerInterface) {
    var toc = data.toc;
    var navigation = toc.navigation || EmptyNavigation;
    var _navigation_header = navigation.header, header = _navigation_header === void 0 ? EmptyHeader : _navigation_header, logo = navigation.logo;
    var _header_leftItems = header.leftItems, leftItems = _header_leftItems === void 0 ? EmptyLeftItems : _header_leftItems, _header_rightItems = header.rightItems, rightItems = _header_rightItems === void 0 ? EmptyRightItems : _header_rightItems;
    var withControls = findItem(rightItems, leftItems, 'controls');
    var withSearch = findItem(rightItems, leftItems, 'search');
    var search = useSearch();
    var router = Router_useRouter();
    if (search && !withSearch) {
        rightItems.unshift({
            type: 'search'
        });
    }
    var navigationData = (0,react.useMemo)(function() {
        return {
            withBorder: true,
            leftItems: leftItems,
            rightItems: rightItems,
            customMobileHeaderItems: [
                {
                    type: 'search'
                }
            ]
        };
    }, [
        leftItems,
        rightItems
    ]);
    var navigationTocData = (0,react.useMemo)(function() {
        return {
            toc: toc,
            router: router,
            headerHeight: HEADER_HEIGHT
        };
    }, [
        toc,
        router
    ]);
    var mobileControlsData = (0,react.useMemo)(function() {
        return {
            controlSize: models/* .ControlSizes.L */.Uv.L,
            userSettings: controls,
            viewerInterface: viewerInterface
        };
    }, [
        controls,
        viewerInterface
    ]);
    var layout = (0,react.useMemo)(function() {
        var _ref;
        return EmptyNavigation === navigation ? undefined : {
            header: {
                leftItems: []
            },
            renderNavigation: function() {
                var _ref;
                return /*#__PURE__*/ (0,jsx_runtime.jsx)(CustomNavigation/* ["default"] */.A, {
                    logo: (0,_object_spread_props._)((0,_object_spread._)({}, logo), {
                        icon: (_ref = logo === null || logo === void 0 ? void 0 : logo.icon) !== null && _ref !== void 0 ? _ref : ''
                    }),
                    data: navigationData,
                    navigationTocData: navigationTocData,
                    mobileControlsData: mobileControlsData
                });
            },
            logo: (0,_object_spread_props._)((0,_object_spread._)({}, logo), {
                icon: (_ref = logo === null || logo === void 0 ? void 0 : logo.icon) !== null && _ref !== void 0 ? _ref : ''
            })
        };
    }, [
        navigationData,
        navigationTocData,
        mobileControlsData,
        logo,
        navigation
    ]);
    var config = (0,react.useMemo)(function() {
        return {
            custom: {
                search: CustomSuggest,
                controls: CustomControls,
                MobileDropdown: MobileDropdown/* ["default"] */.A,
                label: Label/* .Label */.J,
                dropdown: NavigationDropdown/* .NavigationDropdown */.g
            },
            layout: layout,
            withControls: withControls
        };
    }, [
        CustomSuggest,
        CustomControls,
        layout,
        withControls
    ]);
    return config;
};

;// CONCATENATED MODULE: ./src/components/App/PageContext.tsx

var PageContext = /*#__PURE__*/ (0,react.createContext)(null);
var PageProvider = PageContext.Provider;
function usePageContext() {
    var context = (0,react.useContext)(PageContext);
    if (!context) {
        throw new Error('usePageContext must be used within PageProvider');
    }
    return context;
}

;// CONCATENATED MODULE: ./src/components/Layout/Layout.scss

;// CONCATENATED MODULE: ./src/components/Layout/index.tsx





var Layout_b = (0,lib["default"])('Layout');
function Header() {
    return null;
}
function Content() {
    return null;
}
function Footer() {
    return null;
}
var defaults = {
    doc: false
};
var Layout = function(props) {
    var _$_object_spread = (0,_object_spread._)({}, defaults, props), children = _$_object_spread.children, doc = _$_object_spread.doc, _object_spread_headerHeight = _$_object_spread.headerHeight, headerHeight = _object_spread_headerHeight === void 0 ? 0 : _object_spread_headerHeight;
    var header, content, footer;
    react.Children.forEach(children, function(child) {
        switch(child.type){
            case Header:
                header = child.props.children;
                break;
            case Content:
                content = child.props.children;
                break;
            case Footer:
                footer = child.props.children;
                break;
        }
    });
    return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
        className: Layout_b({
            'full-header': headerHeight > 0
        }),
        children: [
            header && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
                className: Layout_b('header'),
                children: header
            }),
            /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
                className: Layout_b('body'),
                children: [
                    content && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
                        className: Layout_b('content'),
                        children: content
                    }),
                    footer && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
                        className: Layout_b('footer', {
                            doc: doc
                        }),
                        children: footer
                    })
                ]
            })
        ]
    });
};
Layout.displayName = 'Layout';
Layout.Header = Header;
Layout.Content = Content;
Layout.Footer = Footer;

;// CONCATENATED MODULE: ./src/components/ConstructorPage/index.tsx






var bPC = (0,lib["default"])('pc-page-constructor');
var bPCRow = (0,lib["default"])('pc-constructor-row');
var ConstructorRow = function(param) {
    var children = param.children;
    return children ? /*#__PURE__*/ (0,jsx_runtime.jsx)(esm/* .Row */.fI1, {
        className: bPCRow(),
        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(esm/* .Col */.fvL, {
            children: children
        })
    }) : null;
};
function ConstructorPage(param) {
    var background = param.background, blocks = param.blocks;
    var theme = (0,esm/* .useTheme */.DPo)();
    var themedBackground = (0,esm/* .getThemedValue */.dgY)(background, theme);
    return /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
        className: bPC('docs'),
        children: /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
            className: bPC('wrapper'),
            children: [
                blocks && themedBackground && /*#__PURE__*/ (0,jsx_runtime.jsx)(esm/* .BackgroundMedia */.bGR, (0,_object_spread_props._)((0,_object_spread._)({}, themedBackground), {
                    className: bPC('background')
                })),
                /*#__PURE__*/ (0,jsx_runtime.jsx)(esm/* .Grid */.xA9, {
                    children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ConstructorRow, {
                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(esm/* .ConstructorBlocks */.FA7, {
                            items: blocks
                        })
                    })
                })
            ]
        })
    });
}

;// CONCATENATED MODULE: ./src/components/App/CustomPage.tsx








var CustomPage_CustomPage = function() {
    var _usePageContext = usePageContext(), data = _usePageContext.data, props = _usePageContext.props, hasLayout = _usePageContext.hasLayout;
    var type = (0,utils/* .getPageType */.M5)(data);
    var PageComponent = (0,utils/* .getPageByType */.$T)(type);
    var headerHeight = props.fullScreen || !hasLayout ? 0 : 64;
    var pageProps = (0,_object_spread._)({}, data, props);
    return /*#__PURE__*/ (0,jsx_runtime.jsx)(Layout, {
        headerHeight: headerHeight,
        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Layout.Content, {
            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(PageComponent, (0,_object_spread_props._)((0,_object_spread._)({}, pageProps), {
                children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ConstructorPage, (0,_object_spread._)({}, data.data))
            }))
        })
    }, "layout");
};

;// CONCATENATED MODULE: ./src/components/App/Page.tsx












function App_Page_Page(param) {
    var data = param.data, props = param.props, controls = param.controls;
    var theme = props.theme, fullScreen = props.fullScreen;
    var analytics = (0,analytics_provider/* .useAnalytics */.s)();
    var navigation = useNavigation(data, controls, CustomControls_CustomControls, Suggest);
    var content = useContent(data, CustomPage_CustomPage);
    var headerControls = (0,react.useMemo)(function() {
        if (navigation.withControls) {
            return filterControls(controls, [
                'theme',
                'onChangeTheme',
                'textSize',
                'onChangeTextSize',
                'wideFormat',
                'onChangeWideFormat',
                'showMiniToc',
                'onChangeShowMiniToc',
                'langs',
                'onChangeLang'
            ]);
        }
        return controls;
    }, [
        navigation.withControls,
        controls
    ]);
    var pageConstructorAnalytics = react.useMemo(function() {
        return analytics ? {
            sendEvents: function(events) {
                events.forEach(function(_0) {
                    var name = _0.name, counters = _0.counters, params = (0,_object_without_properties._)(_0, [
                        "name",
                        "counters"
                    ]);
                    analytics.track(name, params, {
                        includeKeys: counters === null || counters === void 0 ? void 0 : counters.include,
                        excludeKeys: counters === null || counters === void 0 ? void 0 : counters.exclude
                    });
                });
            }
        } : undefined;
    }, [
        analytics
    ]);
    var custom = (0,react.useMemo)(function() {
        return {
            navigation: navigation.custom,
            blocks: content.custom
        };
    }, [
        navigation,
        content
    ]);
    var hasLayout = Boolean(navigation.layout);
    var pageContext = (0,react.useMemo)(function() {
        var pageProps = (0,_object_spread._)({}, props, headerControls);
        return {
            data: data,
            props: pageProps,
            hasLayout: hasLayout
        };
    }, [
        data,
        hasLayout,
        headerControls,
        props
    ]);
    return /*#__PURE__*/ (0,jsx_runtime.jsx)(PageProvider, {
        value: pageContext,
        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(esm/* .PageConstructorProvider */.ZzZ, {
            theme: theme,
            projectSettings: {
                disableCompress: true
            },
            ssrConfig: {
                isServer: Boolean(false)
            },
            analytics: pageConstructorAnalytics,
            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(esm/* .PageConstructor */.i$, {
                custom: custom,
                content: content.layout,
                navigation: fullScreen ? undefined : navigation.layout
            })
        })
    });
}
function filterControls(controls, omitProps) {
    return Object.keys(controls).reduce(function(acc, key) {
        if (!omitProps.includes(key)) {
            acc[key] = controls[key];
        }
        return acc;
    }, {});
}

// EXTERNAL MODULE: ./node_modules/@diplodoc/mermaid-extension/build/react/index.js
var build_react = __webpack_require__(58498);
// EXTERNAL MODULE: ./node_modules/@diplodoc/latex-extension/build/react/index.js
var latex_extension_build_react = __webpack_require__(89457);
// EXTERNAL MODULE: ./node_modules/@diplodoc/openapi-extension/build/runtime/index.min.js + 27 modules
var index_min = __webpack_require__(92816);
// EXTERNAL MODULE: ./node_modules/@gravity-ui/uikit/build/esm/components/theme/useTheme.js
var useTheme = __webpack_require__(29714);
// EXTERNAL MODULE: ./node_modules/@diplodoc/tabs-extension/build/react/index.js
var tabs_extension_build_react = __webpack_require__(81397);
// EXTERNAL MODULE: ./node_modules/@diplodoc/page-constructor-extension/build/react/index.js
var page_constructor_extension_build_react = __webpack_require__(59071);
;// CONCATENATED MODULE: ./src/components/App/Runtime.tsx









function Runtime() {
    var theme = (0,useTheme/* .useTheme */.D)();
    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
        children: [
            /*#__PURE__*/ (0,jsx_runtime.jsx)(index_min/* .Runtime */.v, {}),
            /*#__PURE__*/ (0,jsx_runtime.jsx)(latex_extension_build_react/* .LatexRuntime */.l, {}),
            /*#__PURE__*/ (0,jsx_runtime.jsx)(build_react/* .MermaidRuntime */.A, {
                theme: theme === models/* .Theme.Dark */.Sx.Dark ? 'dark' : 'neutral',
                zoom: {
                    showMenu: true,
                    bindKeys: true
                }
            }),
            /*#__PURE__*/ (0,jsx_runtime.jsx)(tabs_extension_build_react.TabsRuntime, {
                saveTabsToLocalStorage: true,
                saveTabsToQueryStateMode: "page"
            }),
            /*#__PURE__*/ (0,jsx_runtime.jsx)(page_constructor_extension_build_react/* .PageConstructorRuntime */.UQ, {
                theme: theme
            })
        ]
    });
}

;// CONCATENATED MODULE: ./src/components/App/useLangs.ts


function useLangs(param) {
    var lang = param.lang, langs = param.langs;
    var onChangeLang = (0,react.useCallback)(function(newLang, options) {
        var _ref = options || {}, tld = _ref.tld, href = _ref.href;
        if (href) {
            window.location.href = href;
            return;
        }
        var url = window.location.href;
        if (tld) {
            window.location.replace(getDomainPath(newLang, tld, url));
        } else {
            window.location.replace(getLangPath(newLang, url));
        }
    }, []);
    return (0,react.useMemo)(function() {
        return {
            lang: lang,
            langs: langs,
            onChangeLang: onChangeLang
        };
    }, [
        lang,
        langs,
        onChangeLang
    ]);
}

;// CONCATENATED MODULE: ./src/components/App/useAvailableLangs.ts



function hasLang(l, langs) {
    return langs.some(function(cfg) {
        return typeof cfg === 'string' ? cfg === l : cfg.lang === l;
    });
}
function useAvailableLangs(data, langs) {
    return (0,react.useMemo)(function() {
        if (!('meta' in data)) {
            return [];
        }
        var _data_meta = data.meta, canonical = _data_meta.canonical, _data_meta_alternate = _data_meta.alternate, alternate = _data_meta_alternate === void 0 ? [] : _data_meta_alternate;
        if (!canonical) {
            return [];
        }
        var langsSet = new Set();
        var _canonical_split = (0,esm_sliced_to_array._)(canonical.split('/'), 1), canonicalLang = _canonical_split[0];
        if (hasLang(canonicalLang, langs)) {
            langsSet.add(canonicalLang);
        }
        var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
        try {
            for(var _iterator = alternate[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
                var alt = _step.value;
                var href = alt.href;
                if (!href || (0,utils/* .isExternalHref */.ZR)(href)) {
                    continue;
                }
                var _href_split = (0,esm_sliced_to_array._)(href.split('/'), 1), altLang = _href_split[0];
                if (hasLang(altLang, langs)) {
                    langsSet.add(altLang);
                }
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally{
            try {
                if (!_iteratorNormalCompletion && _iterator.return != null) {
                    _iterator.return();
                }
            } finally{
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }
        return Array.from(langsSet);
    }, [
        data,
        langs
    ]);
}

// EXTERNAL MODULE: ./node_modules/@diplodoc/mdx-extension/build/esm/hooks/useMdxSsr.js + 8 modules
var useMdxSsr = __webpack_require__(34236);
;// CONCATENATED MODULE: ./src/components/App/withMdxInit.tsx




var withMdxInit = function(param) {
    var components = param.components, pureComponents = param.pureComponents;
    var withMdx = function(Component) {
        return function MdxWrapper(props) {
            var forwardRef = props.forwardRef, mdxArtifacts = props.mdxArtifacts, html = props.html;
            var refCtr = (0,react.useRef)(null);
            refCtr.current = null;
            var forwardRefWrap = (0,react.useCallback)(function(v) {
                refCtr.current = v;
                return forwardRef(v);
            }, [
                forwardRef
            ]);
            var node = (0,useMdxSsr/* ["default"] */.A)({
                refCtr: refCtr,
                components: components,
                pureComponents: pureComponents,
                mdxArtifacts: mdxArtifacts,
                html: html
            });
            return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Component, (0,_object_spread_props._)((0,_object_spread._)({}, props), {
                forwardRef: forwardRefWrap
            })), node);
        };
    };
    return withMdx;
};

;// CONCATENATED MODULE: ./src/components/App/App.scss

;// CONCATENATED MODULE: ./src/components/App/index.tsx
























function AppBase(props) {
    var data = props.data, router = props.router, lang = props.lang, langs = props.langs, search = props.search, analytics = props.analytics, feedback = props.feedback, viewerInterface = props.viewerInterface, neuroExpert = props.neuroExpert;
    var settings = useSettings_useSettings();
    var langData = useLangs(props);
    var mobileView = useMobile_useMobile();
    var availableLangs = useAvailableLangs(data, langs);
    var fixedLang = constants/* .SUPPORTED_LANGS.includes */.Lq.includes(lang) ? lang : models/* .Lang.En */.JA.En;
    (0,esm_config/* .configure */.jK)({
        lang: fixedLang,
        localeCode: fixedLang
    });
    var renderHooks = (0,react.useMemo)(function() {
        var hooks = [];
        var getMdxInitProps = global && 'getMdxInitProps' in global && global.getMdxInitProps;
        if (typeof getMdxInitProps === 'function') {
            hooks.push(withMdxInit(getMdxInitProps({
                dependencies: {
                    react: react
                }
            })));
        }
        return hooks;
    }, []);
    var theme = settings.theme, textSize = settings.textSize, wideFormat = settings.wideFormat, fullScreen = settings.fullScreen, showMiniToc = settings.showMiniToc;
    var onSendFeedback = useFeedback({
        feedbackUrl: feedback === null || feedback === void 0 ? void 0 : feedback.url,
        router: router,
        viewerInterface: viewerInterface
    });
    var page = (0,react.useMemo)(function() {
        return {
            router: router,
            theme: theme,
            textSize: textSize,
            wideFormat: wideFormat,
            fullScreen: fullScreen,
            showMiniToc: showMiniToc,
            isMobile: mobileView
        };
    }, [
        router,
        theme,
        textSize,
        wideFormat,
        fullScreen,
        showMiniToc,
        mobileView
    ]);
    var controls = (0,react.useMemo)(function() {
        return (0,_object_spread_props._)((0,_object_spread._)({}, settings, langData), {
            mobileView: mobileView,
            availableLangs: availableLangs,
            onSendFeedback: onSendFeedback
        });
    }, [
        langData,
        settings,
        mobileView,
        availableLangs,
        onSendFeedback
    ]);
    var direction = utils_getDirection(lang);
    var landingPage = getLandingPage(data);
    (0,react.useEffect)(function() {
        utils_updateRootClassName({
            mobileView: mobileView,
            wideFormat: wideFormat,
            fullScreen: fullScreen,
            landingPage: landingPage
        });
        utils_updateThemeClassName({
            theme: theme
        });
        scrollToHash();
        // Apply wide mode after render for static builds
        if (typeof window !== 'undefined' && window.patchAfterRender) {
            window.patchAfterRender();
        }
    }, [
        theme,
        mobileView,
        wideFormat,
        fullScreen,
        landingPage,
        lang
    ]);
    return /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
        className: "App",
        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(theme_ThemeProvider/* .ThemeProvider */.N, {
            theme: theme,
            direction: direction,
            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(useLang_LangProvider, {
                value: lang,
                children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Router_RouterProvider, {
                    value: router,
                    children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Search_SearchProvider, {
                        value: search,
                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(NeuroExpertProvider, {
                            value: neuroExpert,
                            children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(InterfaceContext/* .InterfaceProvider */.p, {
                                interface: viewerInterface || {},
                                children: [
                                    /*#__PURE__*/ (0,jsx_runtime.jsx)(RenderBodyHooksContext/* .RenderBodyHooksContext.Provider */.W.Provider, {
                                        value: renderHooks,
                                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(HeaderControlsProvider, {
                                            value: controls,
                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(App_Page_Page, {
                                                data: data,
                                                props: page,
                                                controls: controls
                                            })
                                        })
                                    }),
                                    (analytics === null || analytics === void 0 ? void 0 : analytics.gtm) && /*#__PURE__*/ (0,jsx_runtime.jsx)(ConsentPopup/* ["default"] */.A, {
                                        router: router,
                                        gtmId: analytics.gtm.id,
                                        consentMode: analytics.gtm.mode
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime.jsx)(Widgets/* ["default"] */.A, {}),
                                    /*#__PURE__*/ (0,jsx_runtime.jsx)(Runtime, {})
                                ]
                            })
                        })
                    })
                })
            })
        })
    });
}
var App = withAnalyticsProvider(AppBase);

// EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/server/index.js
var server = __webpack_require__(69298);
;// CONCATENATED MODULE: ./src/preprocess.ts



var preprocess_Lang = /*#__PURE__*/ (/* unused pure expression or super */ null && (function(Lang) {
    Lang["RU"] = "ru";
    Lang["EN"] = "en";
    return Lang;
}({})));
function isPageConfig(config) {
    return 'blocks' in config;
}
function preprocess(content, params, customYfmTransformer) {
    var lang = params.lang;
    if (isPageConfig(content) && content.blocks) {
        return (0,_object_spread_props._)((0,_object_spread._)({}, content), {
            blocks: transformBlocks(content.blocks, lang, customYfmTransformer)
        });
    }
    return content;
}
function replaceTransformer(config, newTransformer) {
    return Object.keys(config).reduce(function(newConfig, subBlockType) {
        var subBlock = config[subBlockType];
        if (Array.isArray(subBlock)) {
            newConfig[subBlockType] = subBlock.map(function(block) {
                return block.transformer.name === 'yfmTransformer' ? (0,_object_spread_props._)((0,_object_spread._)({}, block), {
                    transformer: newTransformer
                }) : block;
            });
        } else {
            newConfig[subBlockType] = subBlock.transformer.name === 'yfmTransformer' ? (0,_object_spread_props._)((0,_object_spread._)({}, subBlock), {
                transformer: newTransformer
            }) : subBlock;
        }
        return newConfig;
    }, {});
}
function transformBlocks(blocks, lang, customYfmTransformer) {
    var customConfig = replaceTransformer(server.config, customYfmTransformer);
    return (0,server.contentTransformer)({
        content: {
            blocks: blocks
        },
        options: {
            lang: lang,
            customConfig: customConfig
        }
    }).blocks;
}

;// CONCATENATED MODULE: ./src/index.server.tsx










var render = function(props) {
    var _createAnalyticsProps = createAnalyticsProps(props.analytics), analyticsConfig = _createAnalyticsProps.analyticsConfig, analyticsService = _createAnalyticsProps.analyticsService;
    return (0,server_node.renderToString)(/*#__PURE__*/ (0,jsx_runtime.jsx)(App, (0,_object_spread_props._)((0,_object_spread._)({}, props), {
        analytics: analyticsConfig,
        analyticsService: analyticsService
    })));
};


},
66008() {
(function() {
    /**
     * Element.matches() polyfill.
     * @link https://developer.mozilla.org/ru/docs/Web/API/Element/matches
     */ if (typeof Element !== 'undefined') {
        (function(e) {
            var matches = e.matches || e.matchesSelector || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector || e.oMatchesSelector;
            if (matches) {
                e.matches = e.matchesSelector = matches;
            } else {
                e.matches = e.matchesSelector = function(selector) {
                    var th = this;
                    return Array.prototype.some.call(document.querySelectorAll(selector), function(el) {
                        return el === th;
                    });
                };
            }
        })(Element.prototype);
    }
})();


},
98010(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* export default binding */ __rspack_default_export)
});
/* export default */ function __rspack_default_export() {}


},
42562(module) {
"use strict";
module.exports = require("buffer");

},
76982(module) {
"use strict";
module.exports = require("crypto");

},
79896(module) {
"use strict";
module.exports = require("fs");

},
34589(module) {
"use strict";
module.exports = require("node:assert");

},
16698(module) {
"use strict";
module.exports = require("node:async_hooks");

},
4573(module) {
"use strict";
module.exports = require("node:buffer");

},
37540(module) {
"use strict";
module.exports = require("node:console");

},
77598(module) {
"use strict";
module.exports = require("node:crypto");

},
53053(module) {
"use strict";
module.exports = require("node:diagnostics_channel");

},
40610(module) {
"use strict";
module.exports = require("node:dns");

},
78474(module) {
"use strict";
module.exports = require("node:events");

},
73024(module) {
"use strict";
module.exports = require("node:fs");

},
51455(module) {
"use strict";
module.exports = require("node:fs/promises");

},
37067(module) {
"use strict";
module.exports = require("node:http");

},
32467(module) {
"use strict";
module.exports = require("node:http2");

},
77030(module) {
"use strict";
module.exports = require("node:net");

},
76760(module) {
"use strict";
module.exports = require("node:path");

},
643(module) {
"use strict";
module.exports = require("node:perf_hooks");

},
41792(module) {
"use strict";
module.exports = require("node:querystring");

},
80099(module) {
"use strict";
module.exports = require("node:sqlite");

},
57075(module) {
"use strict";
module.exports = require("node:stream");

},
87997(module) {
"use strict";
module.exports = require("node:timers");

},
41692(module) {
"use strict";
module.exports = require("node:tls");

},
57975(module) {
"use strict";
module.exports = require("node:util");

},
73429(module) {
"use strict";
module.exports = require("node:util/types");

},
75919(module) {
"use strict";
module.exports = require("node:worker_threads");

},
38522(module) {
"use strict";
module.exports = require("node:zlib");

},
70857(module) {
"use strict";
module.exports = require("os");

},
16928(module) {
"use strict";
module.exports = require("path");

},
932(module) {
"use strict";
module.exports = require("process");

},
24876(module) {
"use strict";
module.exports = require("punycode");

},
2203(module) {
"use strict";
module.exports = require("stream");

},
13193(module) {
"use strict";
module.exports = require("string_decoder");

},
52018(module) {
"use strict";
module.exports = require("tty");

},
87016(module) {
"use strict";
module.exports = require("url");

},
39023(module) {
"use strict";
module.exports = require("util");

},

});
// The module cache
var __webpack_module_cache__ = {};

// The require function
function __webpack_require__(moduleId) {

// Check if module is in cache
var cachedModule = __webpack_module_cache__[moduleId];
if (cachedModule !== undefined) {
return cachedModule.exports;
}
// Create a new module (and put it into the cache)
var module = (__webpack_module_cache__[moduleId] = {
id: moduleId,
loaded: false,
exports: {}
});
// Execute the module function
__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);

// Flag the module as loaded
module.loaded = true;
// Return the exports of the module
return module.exports;

}

// expose the modules object (__webpack_modules__)
__webpack_require__.m = __webpack_modules__;

// the startup function
__webpack_require__.x = () => {
// Load entry module and return exports
// This entry module depends on other loaded chunks and execution need to be delayed
var __webpack_exports__ = __webpack_require__.O(undefined, ["85", "474"], () => __webpack_require__(79852));
__webpack_exports__ = __webpack_require__.O(__webpack_exports__);
return __webpack_exports__
};

// webpack/runtime/compat_get_default_export
(() => {
// getDefaultExport function for compatibility with non-ESM modules
__webpack_require__.n = (module) => {
	var getter = module && module.__esModule ?
		() => (module['default']) :
		() => (module);
	__webpack_require__.d(getter, { a: getter });
	return getter;
};

})();
// webpack/runtime/create_fake_namespace_object
(() => {
var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
var leafPrototypes;
// create a fake namespace object
// mode & 1: value is a module id, require it
// mode & 2: merge all properties of value into the ns
// mode & 4: return value when already ns object
// mode & 16: return value when it's Promise-like
// mode & 8|1: behave like require
__webpack_require__.t = function(value, mode) {
	if(mode & 1) value = this(value);
	if(mode & 8) return value;
	if(typeof value === 'object' && value) {
		if((mode & 4) && value.__esModule) return value;
		if((mode & 16) && typeof value.then === 'function') return value;
	}
	var ns = Object.create(null);
  __webpack_require__.r(ns);
	var def = {};
	leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
	for(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {
		Object.getOwnPropertyNames(current).forEach((key) => { def[key] = () => (value[key]) });
	}
	def['default'] = () => (value);
	__webpack_require__.d(ns, def);
	return ns;
};
})();
// webpack/runtime/define_property_getters
(() => {
__webpack_require__.d = (exports, definition) => {
	for(var key in definition) {
        if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
            Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
        }
    }
};
})();
// webpack/runtime/ensure_chunk
(() => {
__webpack_require__.f = {};
// This file contains only the entry chunk.
// The chunk loading function for additional chunks
__webpack_require__.e = (chunkId) => {
	return Promise.all(
		Object.keys(__webpack_require__.f).reduce((promises, key) => {
			__webpack_require__.f[key](chunkId, promises);
			return promises;
		}, [])
	);
};
})();
// webpack/runtime/get javascript chunk filename
(() => {
// This function allow to reference chunks
__webpack_require__.u = (chunkId) => {
  // return url for filenames not based on template
  
  // return url for filenames based on template
  return "" + ({"474": "vendor","85": "react",}[chunkId] || chunkId) + ".js"
}
})();
// webpack/runtime/has_own_property
(() => {
__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
})();
// webpack/runtime/make_namespace_object
(() => {
// define __esModule on exports
__webpack_require__.r = (exports) => {
	if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
		Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
	}
	Object.defineProperty(exports, '__esModule', { value: true });
};
})();
// webpack/runtime/node_module_decorator
(() => {
__webpack_require__.nmd = (module) => {
  module.paths = [];
  if (!module.children) module.children = [];
  return module;
};
})();
// webpack/runtime/on_chunk_loaded
(() => {
var deferred = [];
__webpack_require__.O = (result, chunkIds, fn, priority) => {
	if (chunkIds) {
		priority = priority || 0;
		for (var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--)
			deferred[i] = deferred[i - 1];
		deferred[i] = [chunkIds, fn, priority];
		return;
	}
	var notFulfilled = Infinity;
	for (var i = 0; i < deferred.length; i++) {
		var [chunkIds, fn, priority] = deferred[i];
		var fulfilled = true;
		for (var j = 0; j < chunkIds.length; j++) {
			if (
				(priority & (1 === 0) || notFulfilled >= priority) &&
				Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))
			) {
				chunkIds.splice(j--, 1);
			} else {
				fulfilled = false;
				if (priority < notFulfilled) notFulfilled = priority;
			}
		}
		if (fulfilled) {
			deferred.splice(i--, 1);
			var r = fn();
			if (r !== undefined) result = r;
		}
	}
	return result;
};

})();
// webpack/runtime/public_path
(() => {
__webpack_require__.p = "";
})();
// webpack/runtime/startup_chunk_dependencies
(() => {
var next = __webpack_require__.x
__webpack_require__.x = () => {
  __webpack_require__.e("85");
__webpack_require__.e("474");
return next();
}
})();
// webpack/runtime/require_chunk_loading
(() => {
__webpack_require__.b = require("url").pathToFileURL(__filename);
var installedChunks = {"509": 1,};
__webpack_require__.O.require = (chunkId) => (installedChunks[chunkId])// object to store loaded chunks
// "1" means "loaded", otherwise not loaded yet
var installChunk = (chunk) => {
	var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
	for (var moduleId in moreModules) {
		if (__webpack_require__.o(moreModules, moduleId)) {
		 __webpack_require__.m[moduleId] = moreModules[moduleId];
		}
	}
	if (runtime) runtime(__webpack_require__);
	for (var i = 0; i < chunkIds.length; i++) installedChunks[chunkIds[i]] = 1;
	__webpack_require__.O();
};// require() chunk loading for javascript
__webpack_require__.f.require = (chunkId, promises) => {
	// "1" is the signal for "already loaded"
	if (!installedChunks[chunkId]) {
		if (true) {
			installChunk(require("./" + __webpack_require__.u(chunkId)));
		} else installedChunks[chunkId] = 1;
	}
};
})();
// run startup
var __webpack_exports__ = __webpack_require__.x();
module.exports = __webpack_exports__;
})()
;
//# sourceMappingURL=app.js.map