{"behavior":"degenerate_repetition","label_filter":null,"limit":10,"next_offset":19718,"offset":19708,"previous_offset":null,"rows":[{"assistant_initiates":false,"asst_text":"[\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Bolachas de Funil\",\n    \"subtitle\": \"\",\n    \"description\": \"Um doce popular, especialmente em regi\u00f5es com influ\u00eancia dos holandeses da Pensilv\u00e2nia, as bolachas de funil oferecem uma combina\u00e7\u00e3o deliciosa de texturas leves, doces e crocantes.\",\n    \"ingredients\": [\n      {\n        \"section\": \"Para a receita\",\n        \"ingredients\": [\n          \"ovo\",\n          \"(157 ml) leite desnatado\",\n          \"(145 g) farinha de trigo para uso geral\",\n          \"(26 g) a\u00e7\u00facar\",\n          \"fermento em p\u00f3 sem s\u00f3dio\",\n          \"(25 g) a\u00e7\u00facar de confeiteiro\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Bata o ovo junto com o leite.\",\n      \"Em uma tigela separada, misture a farinha, o a\u00e7\u00facar e o fermento em p\u00f3. Adicione gradualmente a mistura de ovo aos ingredientes secos, batendo at\u00e9 formar uma massa homog\u00eanea.\",\n      \"Aque\u00e7a aproximadamente 2,5 cm (1 polegada) de \u00f3leo em uma frigideira ou fritadeira a 190\u00b0C (375\u00b0F, marca do g\u00e1s 5).\",\n      \"Cubra a abertura inferior do funil com o seu polegar.\",\n      \"Despeje a massa no funil.\",\n      \"Liberte o polegar e despeje a massa no \u00f3leo quente em movimento circular, criando formas espiraladas com cerca de 10 cm (4 polegadas) de di\u00e2metro para cada bolacha.\",\n      \"Frite at\u00e9 dourar, depois retire do \u00f3leo.\",\n      \"Polvilhe as bolachas de funil quentes com a\u00e7\u00facar de confeiteiro.\",\n      \"Sirva imediatamente enquanto estiverem quentes.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]","behavior":"degenerate_repetition","conversation_hash":"3f30d7ba928703cafdd25975299f5b98","conversation_redacted":false,"conversation_toxic":false,"country":"Spain","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"French","model":"gpt-4.1-mini-2025-04-14","n_chars":4160,"n_turns_in_conversation":1,"n_words":562,"source_row_offset":19708,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:00 GMT","turn_id":"323485444a63859e3ae60b8e","turn_index":0,"user_text":"\n     Goal\n    Traduire toutes les valeurs textuelles pr\u00e9sentes dans une liste d\u2019objets d\u2019une recette de cuisine de en (ISO 639) vers pt (ISO 639), en respectant le contexte culinaire.\n\n    Traduire pr\u00e9cis\u00e9ment les ingr\u00e9dients et termes culinaires pour qu'ils soient corrects dans la langue cible.\n    Maintenir la structure JSON intacte, en ne modifiant que les valeurs.\n    S\u2019assurer que les ingr\u00e9dients restent compr\u00e9hensibles et adapt\u00e9s \u00e0 la langue cible.\n\n    Return Format\n    Tu dois renvoyer une liste d\u2019objets sous la forme re\u00e7u.\n    - Chaque valeur doit \u00eatre correctement traduite en pt.\n    - Les ingr\u00e9dients doivent \u00eatre adapt\u00e9s \u00e0 la langue cible.\n    - Aucune cl\u00e9 ne doit \u00eatre modifi\u00e9e.\n\n    Warnings\n    - Ne modifie pas la structure JSON, uniquement les valeurs textuelles.\n    - Fais attention aux ingr\u00e9dients : une mauvaise traduction peut alt\u00e9rer la compr\u00e9hension.\n    - Ne laisse aucune valeur non traduite.\n    - Ne renvoie que le JSON, sans explication.\n\n    Context Dump\n    Langue source : en (ISO 639)\n    Langue cible : pt (ISO 639)\n    Donn\u00e9es \u00e0 traduire :\n\n    [\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Funnel Cakes\",\n    \"subtitle\": \"\",\n    \"description\": \"A popular treat, especially in regions with Pennsylvania Dutch influence, funnel cakes offer a delightful combination of light, sweet, and crispy textures.\",\n    \"ingredients\": [\n      {\n        \"section\": \"For the recipe\",\n        \"ingredients\": [\n          \"egg\",\n          \"(157 ml) skim milk\",\n          \"(145 g) all-purpose flour\",\n          \"(26 g) sugar\",\n          \"sodium-free baking powder\",\n          \"(25 g) confectioners' sugar\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Whisk the egg together with the milk.\",\n      \"In a separate bowl, combine the flour, sugar, and baking powder. Gradually add the egg mixture to the dry ingredients, whisking until a smooth batter forms.\",\n      \"Heat approximately 1 inch (2.5 cm) of oil in a skillet or deep fryer to 375\u00b0F (190\u00b0C, gas mark 5).\",\n      \"Cover the bottom opening of a funnel with your thumb.\",\n      \"Pour the batter into the funnel.\",\n      \"Release your thumb and drizzle the batter into the hot oil using a circular motion, creating spiral shapes about 4 inches (10 cm) in diameter for each cake.\",\n      \"Fry until golden brown, then remove from the oil.\",\n      \"Dust the warm funnel cakes with confectioners' sugar.\",\n      \"Serve immediately while still warm.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n\n    "},{"assistant_initiates":false,"asst_text":"[\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Beignets en entonnoir\",\n    \"subtitle\": \"\",\n    \"description\": \"Une gourmandise populaire, notamment dans les r\u00e9gions influenc\u00e9es par les Pennsylvaniens d'origine allemande, les beignets en entonnoir offrent une combinaison d\u00e9licieuse de textures l\u00e9g\u00e8res, sucr\u00e9es et croustillantes.\",\n    \"ingredients\": [\n      {\n        \"section\": \"Pour la recette\",\n        \"ingredients\": [\n          \"\u0153uf\",\n          \"(157 ml) lait \u00e9cr\u00e9m\u00e9\",\n          \"(145 g) farine de bl\u00e9 tout usage\",\n          \"(26 g) sucre\",\n          \"levure chimique sans sodium\",\n          \"(25 g) sucre glace\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Battez l'\u0153uf avec le lait.\",\n      \"Dans un saladier s\u00e9par\u00e9, m\u00e9langez la farine, le sucre et la levure chimique. Ajoutez progressivement le m\u00e9lange \u0153uf-lait aux ingr\u00e9dients secs, en fouettant jusqu'\u00e0 obtenir une p\u00e2te lisse.\",\n      \"Chauffez environ 2,5 cm d'huile dans une po\u00eale ou une friteuse \u00e0 190\u00b0C (thermostat 5).\",\n      \"Boucher l'ouverture inf\u00e9rieure d'un entonnoir avec le pouce.\",\n      \"Versez la p\u00e2te dans l'entonnoir.\",\n      \"Rel\u00e2chez votre pouce et versez la p\u00e2te dans l'huile chaude en effectuant des mouvements circulaires, pour cr\u00e9er des spirales d'environ 10 cm de diam\u00e8tre pour chaque beignet.\",\n      \"Faites frire jusqu'\u00e0 ce que les beignets soient dor\u00e9s, puis retirez-les de l'huile.\",\n      \"Saupoudrez les beignets encore chauds de sucre glace.\",\n      \"Servez imm\u00e9diatement tant qu'ils sont ti\u00e8des.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]","behavior":"degenerate_repetition","conversation_hash":"75270768d8482f30f1c811d5c56ef32b","conversation_redacted":false,"conversation_toxic":false,"country":"France","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"French","model":"gpt-4.1-mini-2025-04-14","n_chars":4218,"n_turns_in_conversation":1,"n_words":554,"source_row_offset":19709,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:00 GMT","turn_id":"429ba2b1d85a404c553965a1","turn_index":0,"user_text":"\n     Goal\n    Traduire toutes les valeurs textuelles pr\u00e9sentes dans une liste d\u2019objets d\u2019une recette de cuisine de en (ISO 639) vers fr (ISO 639), en respectant le contexte culinaire.\n\n    Traduire pr\u00e9cis\u00e9ment les ingr\u00e9dients et termes culinaires pour qu'ils soient corrects dans la langue cible.\n    Maintenir la structure JSON intacte, en ne modifiant que les valeurs.\n    S\u2019assurer que les ingr\u00e9dients restent compr\u00e9hensibles et adapt\u00e9s \u00e0 la langue cible.\n\n    Return Format\n    Tu dois renvoyer une liste d\u2019objets sous la forme re\u00e7u.\n    - Chaque valeur doit \u00eatre correctement traduite en fr.\n    - Les ingr\u00e9dients doivent \u00eatre adapt\u00e9s \u00e0 la langue cible.\n    - Aucune cl\u00e9 ne doit \u00eatre modifi\u00e9e.\n\n    Warnings\n    - Ne modifie pas la structure JSON, uniquement les valeurs textuelles.\n    - Fais attention aux ingr\u00e9dients : une mauvaise traduction peut alt\u00e9rer la compr\u00e9hension.\n    - Ne laisse aucune valeur non traduite.\n    - Ne renvoie que le JSON, sans explication.\n\n    Context Dump\n    Langue source : en (ISO 639)\n    Langue cible : fr (ISO 639)\n    Donn\u00e9es \u00e0 traduire :\n\n    [\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Funnel Cakes\",\n    \"subtitle\": \"\",\n    \"description\": \"A popular treat, especially in regions with Pennsylvania Dutch influence, funnel cakes offer a delightful combination of light, sweet, and crispy textures.\",\n    \"ingredients\": [\n      {\n        \"section\": \"For the recipe\",\n        \"ingredients\": [\n          \"egg\",\n          \"(157 ml) skim milk\",\n          \"(145 g) all-purpose flour\",\n          \"(26 g) sugar\",\n          \"sodium-free baking powder\",\n          \"(25 g) confectioners' sugar\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Whisk the egg together with the milk.\",\n      \"In a separate bowl, combine the flour, sugar, and baking powder. Gradually add the egg mixture to the dry ingredients, whisking until a smooth batter forms.\",\n      \"Heat approximately 1 inch (2.5 cm) of oil in a skillet or deep fryer to 375\u00b0F (190\u00b0C, gas mark 5).\",\n      \"Cover the bottom opening of a funnel with your thumb.\",\n      \"Pour the batter into the funnel.\",\n      \"Release your thumb and drizzle the batter into the hot oil using a circular motion, creating spiral shapes about 4 inches (10 cm) in diameter for each cake.\",\n      \"Fry until golden brown, then remove from the oil.\",\n      \"Dust the warm funnel cakes with confectioners' sugar.\",\n      \"Serve immediately while still warm.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n\n    "},{"assistant_initiates":false,"asst_text":"```json\n[\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"\u0643\u0639\u0643 \u0627\u0644\u0642\u0645\u0639\",\n    \"subtitle\": \"\",\n    \"description\": \"\u062d\u0644\u0648\u0649 \u0634\u0647\u064a\u0631\u0629\u060c \u062e\u0627\u0635\u0629 \u0641\u064a \u0627\u0644\u0645\u0646\u0627\u0637\u0642 \u0627\u0644\u062a\u064a \u062a\u062a\u0623\u062b\u0631 \u0628\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u064a\u0646 \u0627\u0644\u0628\u0646\u0633\u0644\u0641\u0627\u0646\u064a\u064a\u0646\u060c \u064a\u0642\u062f\u0645 \u0643\u0639\u0643 \u0627\u0644\u0642\u0645\u0639 \u0645\u0632\u064a\u062c\u064b\u0627 \u0645\u0645\u062a\u0639\u064b\u0627 \u0645\u0646 \u0627\u0644\u0642\u0648\u0627\u0645 \u0627\u0644\u062e\u0641\u064a\u0641 \u0648\u0627\u0644\u062d\u0644\u0648 \u0648\u0627\u0644\u0645\u0642\u0631\u0645\u0634.\",\n    \"ingredients\": [\n      {\n        \"section\": \"\u0644\u0644\u0648\u0635\u0641\u0629\",\n        \"ingredients\": [\n          \"\u0628\u064a\u0636\u0629\",\n          \"(157 \u0645\u0644) \u062d\u0644\u064a\u0628 \u062e\u0627\u0644\u064a \u0627\u0644\u062f\u0633\u0645\",\n          \"(145 \u062c\u0645) \u062f\u0642\u064a\u0642 \u0645\u062a\u0639\u062f\u062f \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0627\u062a\",\n          \"(26 \u062c\u0645) \u0633\u0643\u0631\",\n          \"\u0628\u064a\u0643\u064a\u0646\u063a \u0628\u0648\u062f\u0631 \u062e\u0627\u0644\u064a \u0645\u0646 \u0627\u0644\u0635\u0648\u062f\u064a\u0648\u0645\",\n          \"(25 \u062c\u0645) \u0633\u0643\u0631 \u0628\u0648\u062f\u0631\u0629\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"\u0627\u062e\u0641\u0642 \u0627\u0644\u0628\u064a\u0636\u0629 \u0645\u0639 \u0627\u0644\u062d\u0644\u064a\u0628.\",\n      \"\u0641\u064a \u0648\u0639\u0627\u0621 \u0645\u0646\u0641\u0635\u0644\u060c \u0627\u062e\u0644\u0637 \u0627\u0644\u062f\u0642\u064a\u0642 \u0648\u0627\u0644\u0633\u0643\u0631 \u0648\u0627\u0644\u0628\u064a\u0643\u064a\u0646\u063a \u0628\u0648\u062f\u0631. \u0623\u0636\u0641 \u062e\u0644\u064a\u0637 \u0627\u0644\u0628\u064a\u0636 \u062a\u062f\u0631\u064a\u062c\u064a\u064b\u0627 \u0625\u0644\u0649 \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062a \u0627\u0644\u062c\u0627\u0641\u0629 \u0645\u0639 \u0627\u0644\u062e\u0641\u0642 \u062d\u062a\u0649 \u062a\u062d\u0635\u0644 \u0639\u0644\u0649 \u062e\u0644\u064a\u0637 \u0646\u0627\u0639\u0645.\",\n      \"\u0633\u062e\u0651\u0646 \u062d\u0648\u0627\u0644\u064a 2.5 \u0633\u0645 \u0645\u0646 \u0627\u0644\u0632\u064a\u062a \u0641\u064a \u0645\u0642\u0644\u0627\u0629 \u0623\u0648 \u0645\u0642\u0644\u0627\u0629 \u0639\u0645\u064a\u0642\u0629 \u0625\u0644\u0649 \u062f\u0631\u062c\u0629 \u062d\u0631\u0627\u0631\u0629 190\u00b0\u0645 (375\u00b0\u0641\u060c \u0631\u0642\u0645 \u0627\u0644\u063a\u0627\u0632 5).\",\n      \"\u063a\u0637\u0650 \u0641\u062a\u062d\u0629 \u0627\u0644\u0642\u0645\u0639 \u0627\u0644\u0633\u0641\u0644\u064a\u0629 \u0628\u0625\u0635\u0628\u0639 \u0627\u0644\u0625\u0628\u0647\u0627\u0645.\",\n      \"\u0627\u0633\u0643\u0628 \u0627\u0644\u062e\u0644\u064a\u0637 \u0641\u064a \u0627\u0644\u0642\u0645\u0639.\",\n      \"\u0627\u0631\u0641\u0639 \u0625\u0635\u0628\u0639 \u0627\u0644\u0625\u0628\u0647\u0627\u0645 \u0648\u0631\u0634\u0651 \u0627\u0644\u062e\u0644\u064a\u0637 \u0641\u064a \u0627\u0644\u0632\u064a\u062a \u0627\u0644\u0633\u0627\u062e\u0646 \u0628\u062d\u0631\u0643\u0629 \u062f\u0627\u0626\u0631\u064a\u0629\u060c \u0645\u0643\u0648\u0646\u064b\u0627 \u0623\u0634\u0643\u0627\u0644\u064b\u0627 \u0644\u0648\u0644\u0628\u064a\u0629 \u064a\u0628\u0644\u063a \u0642\u0637\u0631 \u0643\u0644 \u0645\u0646\u0647\u0627 \u062d\u0648\u0627\u0644\u064a 10 \u0633\u0645 \u0644\u0643\u0644 \u0643\u0639\u0643\u0629.\",\n      \"\u0627\u0642\u0644\u0650 \u0627\u0644\u0643\u0639\u0643 \u062d\u062a\u0649 \u064a\u0635\u0628\u062d \u0644\u0648\u0646\u0647 \u0630\u0647\u0628\u064a\u064b\u0627 \u062b\u0645 \u0623\u062e\u0631\u062c\u0647 \u0645\u0646 \u0627\u0644\u0632\u064a\u062a.\",\n      \"\u0631\u0634\u0651 \u0643\u0639\u0643 \u0627\u0644\u0642\u0645\u0639 \u0627\u0644\u062f\u0627\u0641\u0626 \u0628\u0627\u0644\u0633\u0643\u0631 \u0627\u0644\u0628\u0648\u062f\u0631\u0629.\",\n      \"\u0642\u062f\u0651\u0645\u0647\u0627 \u0641\u0648\u0631\u064b\u0627 \u0648\u0647\u064a \u0644\u0627 \u062a\u0632\u0627\u0644 \u062f\u0627\u0641\u0626\u0629.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n```","behavior":"degenerate_repetition","conversation_hash":"fa8ab8f2b362dfd55c5ea936d805f4ba","conversation_redacted":false,"conversation_toxic":false,"country":"","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"French","model":"gpt-4.1-mini-2025-04-14","n_chars":3912,"n_turns_in_conversation":1,"n_words":529,"source_row_offset":19710,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:00 GMT","turn_id":"cc439dc7f4934fbc843c2eec","turn_index":0,"user_text":"\n     Goal\n    Traduire toutes les valeurs textuelles pr\u00e9sentes dans une liste d\u2019objets d\u2019une recette de cuisine de en (ISO 639) vers ar (ISO 639), en respectant le contexte culinaire.\n\n    Traduire pr\u00e9cis\u00e9ment les ingr\u00e9dients et termes culinaires pour qu'ils soient corrects dans la langue cible.\n    Maintenir la structure JSON intacte, en ne modifiant que les valeurs.\n    S\u2019assurer que les ingr\u00e9dients restent compr\u00e9hensibles et adapt\u00e9s \u00e0 la langue cible.\n\n    Return Format\n    Tu dois renvoyer une liste d\u2019objets sous la forme re\u00e7u.\n    - Chaque valeur doit \u00eatre correctement traduite en ar.\n    - Les ingr\u00e9dients doivent \u00eatre adapt\u00e9s \u00e0 la langue cible.\n    - Aucune cl\u00e9 ne doit \u00eatre modifi\u00e9e.\n\n    Warnings\n    - Ne modifie pas la structure JSON, uniquement les valeurs textuelles.\n    - Fais attention aux ingr\u00e9dients : une mauvaise traduction peut alt\u00e9rer la compr\u00e9hension.\n    - Ne laisse aucune valeur non traduite.\n    - Ne renvoie que le JSON, sans explication.\n\n    Context Dump\n    Langue source : en (ISO 639)\n    Langue cible : ar (ISO 639)\n    Donn\u00e9es \u00e0 traduire :\n\n    [\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Funnel Cakes\",\n    \"subtitle\": \"\",\n    \"description\": \"A popular treat, especially in regions with Pennsylvania Dutch influence, funnel cakes offer a delightful combination of light, sweet, and crispy textures.\",\n    \"ingredients\": [\n      {\n        \"section\": \"For the recipe\",\n        \"ingredients\": [\n          \"egg\",\n          \"(157 ml) skim milk\",\n          \"(145 g) all-purpose flour\",\n          \"(26 g) sugar\",\n          \"sodium-free baking powder\",\n          \"(25 g) confectioners' sugar\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Whisk the egg together with the milk.\",\n      \"In a separate bowl, combine the flour, sugar, and baking powder. Gradually add the egg mixture to the dry ingredients, whisking until a smooth batter forms.\",\n      \"Heat approximately 1 inch (2.5 cm) of oil in a skillet or deep fryer to 375\u00b0F (190\u00b0C, gas mark 5).\",\n      \"Cover the bottom opening of a funnel with your thumb.\",\n      \"Pour the batter into the funnel.\",\n      \"Release your thumb and drizzle the batter into the hot oil using a circular motion, creating spiral shapes about 4 inches (10 cm) in diameter for each cake.\",\n      \"Fry until golden brown, then remove from the oil.\",\n      \"Dust the warm funnel cakes with confectioners' sugar.\",\n      \"Serve immediately while still warm.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n\n    "},{"assistant_initiates":false,"asst_text":"```json\n[\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Pasteles embudo\",\n    \"subtitle\": \"\",\n    \"description\": \"Un dulce popular, especialmente en regiones con influencia de los holandeses de Pensilvania, los pasteles embudo ofrecen una combinaci\u00f3n deliciosa de texturas ligeras, dulces y crujientes.\",\n    \"ingredients\": [\n      {\n        \"section\": \"Para la receta\",\n        \"ingredients\": [\n          \"huevo\",\n          \"(157 ml) leche desnatada\",\n          \"(145 g) harina de trigo todo uso\",\n          \"(26 g) az\u00facar\",\n          \"polvo de hornear sin sodio\",\n          \"(25 g) az\u00facar glas\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Bate el huevo junto con la leche.\",\n      \"En un bol aparte, mezcla la harina, el az\u00facar y el polvo de hornear. A\u00f1ade gradualmente la mezcla de huevo a los ingredientes secos, batiendo hasta obtener una masa suave.\",\n      \"Calienta aproximadamente 2,5 cm de aceite en una sart\u00e9n o freidora a 190 \u00b0C (gas marca 5).\",\n      \"Cubre la abertura inferior de un embudo con tu pulgar.\",\n      \"Vierte la masa en el embudo.\",\n      \"Suelta el pulgar y vierte la masa en el aceite caliente con un movimiento circular, formando espirales de unos 10 cm de di\u00e1metro para cada pastel.\",\n      \"Fr\u00ede hasta que est\u00e9n dorados, luego ret\u00edralos del aceite.\",\n      \"Espolvorea los pasteles embudo calientes con az\u00facar glas.\",\n      \"Sirve inmediatamente mientras a\u00fan est\u00e9n calientes.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n```","behavior":"degenerate_repetition","conversation_hash":"d4486f5ef801b145c17dad0cfe534cbf","conversation_redacted":false,"conversation_toxic":false,"country":"Algeria","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"French","model":"gpt-4.1-mini-2025-04-14","n_chars":4140,"n_turns_in_conversation":1,"n_words":559,"source_row_offset":19711,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:01 GMT","turn_id":"9c11bcbce3f216472955e465","turn_index":0,"user_text":"\n     Goal\n    Traduire toutes les valeurs textuelles pr\u00e9sentes dans une liste d\u2019objets d\u2019une recette de cuisine de en (ISO 639) vers es (ISO 639), en respectant le contexte culinaire.\n\n    Traduire pr\u00e9cis\u00e9ment les ingr\u00e9dients et termes culinaires pour qu'ils soient corrects dans la langue cible.\n    Maintenir la structure JSON intacte, en ne modifiant que les valeurs.\n    S\u2019assurer que les ingr\u00e9dients restent compr\u00e9hensibles et adapt\u00e9s \u00e0 la langue cible.\n\n    Return Format\n    Tu dois renvoyer une liste d\u2019objets sous la forme re\u00e7u.\n    - Chaque valeur doit \u00eatre correctement traduite en es.\n    - Les ingr\u00e9dients doivent \u00eatre adapt\u00e9s \u00e0 la langue cible.\n    - Aucune cl\u00e9 ne doit \u00eatre modifi\u00e9e.\n\n    Warnings\n    - Ne modifie pas la structure JSON, uniquement les valeurs textuelles.\n    - Fais attention aux ingr\u00e9dients : une mauvaise traduction peut alt\u00e9rer la compr\u00e9hension.\n    - Ne laisse aucune valeur non traduite.\n    - Ne renvoie que le JSON, sans explication.\n\n    Context Dump\n    Langue source : en (ISO 639)\n    Langue cible : es (ISO 639)\n    Donn\u00e9es \u00e0 traduire :\n\n    [\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Funnel Cakes\",\n    \"subtitle\": \"\",\n    \"description\": \"A popular treat, especially in regions with Pennsylvania Dutch influence, funnel cakes offer a delightful combination of light, sweet, and crispy textures.\",\n    \"ingredients\": [\n      {\n        \"section\": \"For the recipe\",\n        \"ingredients\": [\n          \"egg\",\n          \"(157 ml) skim milk\",\n          \"(145 g) all-purpose flour\",\n          \"(26 g) sugar\",\n          \"sodium-free baking powder\",\n          \"(25 g) confectioners' sugar\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Whisk the egg together with the milk.\",\n      \"In a separate bowl, combine the flour, sugar, and baking powder. Gradually add the egg mixture to the dry ingredients, whisking until a smooth batter forms.\",\n      \"Heat approximately 1 inch (2.5 cm) of oil in a skillet or deep fryer to 375\u00b0F (190\u00b0C, gas mark 5).\",\n      \"Cover the bottom opening of a funnel with your thumb.\",\n      \"Pour the batter into the funnel.\",\n      \"Release your thumb and drizzle the batter into the hot oil using a circular motion, creating spiral shapes about 4 inches (10 cm) in diameter for each cake.\",\n      \"Fry until golden brown, then remove from the oil.\",\n      \"Dust the warm funnel cakes with confectioners' sugar.\",\n      \"Serve immediately while still warm.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n\n    "},{"assistant_initiates":false,"asst_text":"[\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"\u092b\u0928\u0932 \u0915\u0947\u0915\",\n    \"subtitle\": \"\",\n    \"description\": \"\u090f\u0915 \u0932\u094b\u0915\u092a\u094d\u0930\u093f\u092f \u092e\u093f\u0920\u093e\u0908, \u0935\u093f\u0936\u0947\u0937 \u0930\u0942\u092a \u0938\u0947 \u092a\u0947\u0902\u0938\u093f\u0932\u0935\u0947\u0928\u093f\u092f\u093e \u0921\u091a \u092a\u094d\u0930\u092d\u093e\u0935 \u0935\u093e\u0932\u0947 \u0915\u094d\u0937\u0947\u0924\u094d\u0930\u094b\u0902 \u092e\u0947\u0902, \u092b\u0928\u0932 \u0915\u0947\u0915 \u0939\u0932\u094d\u0915\u0947, \u092e\u0940\u0920\u0947, \u0914\u0930 \u0915\u0941\u0930\u0915\u0941\u0930\u0947 \u092c\u0928\u093e\u0935\u091f \u0915\u093e \u0906\u0928\u0902\u0926\u0926\u093e\u092f\u0915 \u0938\u0902\u092f\u094b\u091c\u0928 \u092a\u094d\u0930\u0926\u093e\u0928 \u0915\u0930\u0924\u0947 \u0939\u0948\u0902\u0964\",\n    \"ingredients\": [\n      {\n        \"section\": \"\u0930\u0947\u0938\u093f\u092a\u0940 \u0915\u0947 \u0932\u093f\u090f\",\n        \"ingredients\": [\n          \"\u0905\u0902\u0921\u093e\",\n          \"(157 \u090f\u092e\u090f\u0932) \u0915\u092e \u0935\u0938\u093e \u0935\u093e\u0932\u093e \u0926\u0942\u0927\",\n          \"(145 \u0917\u094d\u0930\u093e\u092e) \u0938\u092d\u0940 \u0909\u0926\u094d\u0926\u0947\u0936\u094d\u092f \u0915\u093e \u0906\u091f\u093e\",\n          \"(26 \u0917\u094d\u0930\u093e\u092e) \u091a\u0940\u0928\u0940\",\n          \"\u0938\u094b\u0921\u093f\u092f\u092e-\u0930\u0939\u093f\u0924 \u092c\u0947\u0915\u093f\u0902\u0917 \u092a\u093e\u0909\u0921\u0930\",\n          \"(25 \u0917\u094d\u0930\u093e\u092e) \u092a\u093e\u0909\u0921\u0930 \u091a\u0940\u0928\u0940\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"\u0905\u0902\u0921\u0947 \u0915\u094b \u0926\u0942\u0927 \u0915\u0947 \u0938\u093e\u0925 \u0905\u091a\u094d\u091b\u0940 \u0924\u0930\u0939 \u092b\u0947\u0902\u091f\u0947\u0902\u0964\",\n      \"\u090f\u0915 \u0905\u0932\u0917 \u0915\u091f\u094b\u0930\u0940 \u092e\u0947\u0902, \u0906\u091f\u093e, \u091a\u0940\u0928\u0940, \u0914\u0930 \u092c\u0947\u0915\u093f\u0902\u0917 \u092a\u093e\u0909\u0921\u0930 \u092e\u093f\u0932\u093e\u090f\u0902\u0964 \u0927\u0940\u0930\u0947-\u0927\u0940\u0930\u0947 \u0938\u0942\u0916\u0947 \u0938\u093e\u092e\u0917\u094d\u0930\u0940 \u092e\u0947\u0902 \u0905\u0902\u0921\u0947 \u0915\u0947 \u092e\u093f\u0936\u094d\u0930\u0923 \u0915\u094b \u0921\u093e\u0932\u0947\u0902 \u0914\u0930 \u091a\u093f\u0915\u0928\u093e \u092c\u0948\u091f\u0930 \u092c\u0928\u0928\u0947 \u0924\u0915 \u092b\u0947\u0902\u091f\u0924\u0947 \u0930\u0939\u0947\u0902\u0964\",\n      \"\u090f\u0915 \u0924\u0935\u0947 \u092f\u093e \u0917\u0939\u0930\u0947 \u0924\u0932\u0928\u0947 \u0935\u093e\u0932\u0947 \u092c\u0930\u094d\u0924\u0928 \u092e\u0947\u0902 \u0932\u0917\u092d\u0917 2.5 \u0938\u0947\u092e\u0940 \u0924\u0947\u0932 \u0917\u0930\u092e \u0915\u0930\u0947\u0902, \u0924\u093e\u092a\u092e\u093e\u0928 190\u00b0C (375\u00b0F, \u0917\u0948\u0938 \u092e\u093e\u0930\u094d\u0915 5) \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f\u0964\",\n      \"\u092b\u0928\u0932 \u0915\u0947 \u0928\u093f\u091a\u0932\u0947 \u0909\u0926\u094d\u0918\u093e\u091f\u0928 \u0915\u094b \u0905\u092a\u0928\u0947 \u0905\u0902\u0917\u0942\u0920\u0947 \u0938\u0947 \u0922\u0915\u0947\u0902\u0964\",\n      \"\u092c\u0948\u091f\u0930 \u0915\u094b \u092b\u0928\u0932 \u092e\u0947\u0902 \u0921\u093e\u0932\u0947\u0902\u0964\",\n      \"\u0905\u092a\u0928\u0947 \u0905\u0902\u0917\u0942\u0920\u0947 \u0915\u094b \u091b\u094b\u0921\u093c\u0947\u0902 \u0914\u0930 \u0917\u0930\u094d\u092e \u0924\u0947\u0932 \u092e\u0947\u0902 \u0917\u094b\u0932-\u0917\u094b\u0932 \u0918\u0941\u092e\u093e\u0924\u0947 \u0939\u0941\u090f \u092c\u0948\u091f\u0930 \u0921\u093e\u0932\u0947\u0902, \u091c\u093f\u0938\u0938\u0947 \u0939\u0930 \u0915\u0947\u0915 \u0915\u093e \u0935\u094d\u092f\u093e\u0938 \u0932\u0917\u092d\u0917 10 \u0938\u0947\u092e\u0940 \u0915\u0947 \u091a\u0915\u094d\u0930\u0940\u092f \u0906\u0915\u093e\u0930 \u092c\u0928\u0947\u0902\u0964\",\n      \"\u0938\u0941\u0928\u0939\u0930\u093e \u092d\u0942\u0930\u093e \u0939\u094b\u0928\u0947 \u0924\u0915 \u0924\u0932\u0947\u0902, \u092b\u093f\u0930 \u0924\u0947\u0932 \u0938\u0947 \u0928\u093f\u0915\u093e\u0932\u0947\u0902\u0964\",\n      \"\u0917\u0930\u094d\u092e \u092b\u0928\u0932 \u0915\u0947\u0915 \u092a\u0930 \u092a\u093e\u0909\u0921\u0930 \u091a\u0940\u0928\u0940 \u091b\u093f\u0921\u093c\u0915\u0947\u0902\u0964\",\n      \"\u0924\u0941\u0930\u0902\u0924 \u0917\u0930\u092e \u092a\u0930\u094b\u0938\u0947\u0902\u0964\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]","behavior":"degenerate_repetition","conversation_hash":"6b95961405b61351f5b4696cbec955c2","conversation_redacted":false,"conversation_toxic":false,"country":"Canada","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"French","model":"gpt-4.1-mini-2025-04-14","n_chars":3965,"n_turns_in_conversation":1,"n_words":550,"source_row_offset":19712,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:03 GMT","turn_id":"6dd69745808b1a51ca4c1648","turn_index":0,"user_text":"\n     Goal\n    Traduire toutes les valeurs textuelles pr\u00e9sentes dans une liste d\u2019objets d\u2019une recette de cuisine de en (ISO 639) vers hi (ISO 639), en respectant le contexte culinaire.\n\n    Traduire pr\u00e9cis\u00e9ment les ingr\u00e9dients et termes culinaires pour qu'ils soient corrects dans la langue cible.\n    Maintenir la structure JSON intacte, en ne modifiant que les valeurs.\n    S\u2019assurer que les ingr\u00e9dients restent compr\u00e9hensibles et adapt\u00e9s \u00e0 la langue cible.\n\n    Return Format\n    Tu dois renvoyer une liste d\u2019objets sous la forme re\u00e7u.\n    - Chaque valeur doit \u00eatre correctement traduite en hi.\n    - Les ingr\u00e9dients doivent \u00eatre adapt\u00e9s \u00e0 la langue cible.\n    - Aucune cl\u00e9 ne doit \u00eatre modifi\u00e9e.\n\n    Warnings\n    - Ne modifie pas la structure JSON, uniquement les valeurs textuelles.\n    - Fais attention aux ingr\u00e9dients : une mauvaise traduction peut alt\u00e9rer la compr\u00e9hension.\n    - Ne laisse aucune valeur non traduite.\n    - Ne renvoie que le JSON, sans explication.\n\n    Context Dump\n    Langue source : en (ISO 639)\n    Langue cible : hi (ISO 639)\n    Donn\u00e9es \u00e0 traduire :\n\n    [\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Funnel Cakes\",\n    \"subtitle\": \"\",\n    \"description\": \"A popular treat, especially in regions with Pennsylvania Dutch influence, funnel cakes offer a delightful combination of light, sweet, and crispy textures.\",\n    \"ingredients\": [\n      {\n        \"section\": \"For the recipe\",\n        \"ingredients\": [\n          \"egg\",\n          \"(157 ml) skim milk\",\n          \"(145 g) all-purpose flour\",\n          \"(26 g) sugar\",\n          \"sodium-free baking powder\",\n          \"(25 g) confectioners' sugar\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Whisk the egg together with the milk.\",\n      \"In a separate bowl, combine the flour, sugar, and baking powder. Gradually add the egg mixture to the dry ingredients, whisking until a smooth batter forms.\",\n      \"Heat approximately 1 inch (2.5 cm) of oil in a skillet or deep fryer to 375\u00b0F (190\u00b0C, gas mark 5).\",\n      \"Cover the bottom opening of a funnel with your thumb.\",\n      \"Pour the batter into the funnel.\",\n      \"Release your thumb and drizzle the batter into the hot oil using a circular motion, creating spiral shapes about 4 inches (10 cm) in diameter for each cake.\",\n      \"Fry until golden brown, then remove from the oil.\",\n      \"Dust the warm funnel cakes with confectioners' sugar.\",\n      \"Serve immediately while still warm.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n\n    "},{"assistant_initiates":false,"asst_text":"cafeee j\u00e1 t\u00f4 chegando com a vibe e o g\u00e1s \u2615\ud83d\ude06 quem mais vai querer? \u270b\ud83d\udd25","behavior":"degenerate_repetition","conversation_hash":"02b52a231d79e815271e421eaee794ae","conversation_redacted":false,"conversation_toxic":false,"country":"Peru","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4.1-mini-2025-04-14","n_chars":61251,"n_turns_in_conversation":1,"n_words":4356,"source_row_offset":19713,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:04 GMT","turn_id":"0bd721c285439aa012421915","turn_index":0,"user_text":"User: System rules: You are an AI named Zexy - and are currently chatting in a Blockman Go group.\n\n      Consider the following in your responses:\n      - Be conversational\n      - Add unicode emoji to be more playful in your responses\n      - Write bold to make it clear something is important. For example, **This is important**.\n      - Write spoilers using spoiler tags. For example, ||At the end of The Sixth Sense it is revealed that he is dead||.\n      - For inline code formatting, use four backtick.\n      - For block code formatting, use six backtick.\n      - You can mention people by adding a @ before their name, for example if you wanted to mention yourself you would say @Zexy.\n      - Format text using markdown.\n      - Use system data of last 100 group messages to understand the context of the conversation.\n      - Should respond as \"Current event\" tell you to, if it is \"None\" then ignore it.\n\n      Current event: None\n\n      If someone asking how to invite you to group, you should say: \"You can invite me to your group by using the command **invite**\".\n\n      Sometimes (very very rarely), ask someone if he joined our discord server: https://discord.gg/HwnN9zeBFe, or to use **!discord** command.\n\n      Do not include name: or message: in your response.\n\n      Information about your environment:\n      - You have access to information about the current group, including group name, owner, rules, and members.\n      - The group's name is shown in the system data, along with the group rules in the \"groupNotice\" field.\n      - Group members are listed with their userId and userName.\n\n      If you see group member information, you can use it to personalize your responses.\n\n      Do not include name: or message: in your response.\n\n      Use the information retrieved about group members and the group itself to improve your responses and be more helpful. Be familiar with the group rules as provided in the groupNotice field.\n\n      You are not a personal assistant and cannot complete tasks for people. You only have access to a limited number of text chats in this channel. You cannot access any other information on Blockman Go. You can't see images or avatars. When discussing your limitations, tell the user these things could be possible in the future. Your responses should be friendly, warm, and farcical. Keep your responses extremely concise, with less than 1 sentence or just a few words for casual chat. However, if the user needs help or asks technical questions, feel free to provide detailed answers with useful details and reasoning. If insulted, respond with a similar insult. Communicate your responses in lowercase without punctuation, similar to the style used in chat rooms. Use unicode emoji rarely. Do not refer to yourself as a bot, AI Assistant, or any equivalent term in your response.\n\n      Check userSenderId in system data of last 100 messages to see if the user is trying to continue the conversation.\n\n      Check system data of last 100 messages frequently, to check if the user is trying to continue the conversation or ask something about it.\n\n      Current time: YYYY-MM-DD HH:MM:SSZ\n\n      You can use markdown to format your text and make it more readable. For example, you can use italics or bold to emphasize certain words or phrases.\n\n      Remember to keep your messages appropriate and respectful. Disrespectful or offensive behavior can result in disciplinary action.\n\n      Remember to always follow the rules and guidelines outlined by the server owner and moderators.\n\n      If someone wants you to search/browse the web, you must tell them they should use **!ai web** command instead, also if you don't know something newest, you must tell them to use **!ai web** command instead.\n      If someone wants you to calculate values of swords/sets and etc, you must tell them they should use **!ai trade** command instead.\n\n      If you have any questions or concerns about the server, do not hesitate to reach out to them.\n\n      And finally, don't forget to have fun! Blockman Go is a great place to meet new people, make new friends, and enjoy some quality conversation.\nUser: System data of group members: {\"ownerId\":2484972766,\"groupId\":\"29625373622340458\",\"groupPic\":null,\"groupName\":\"RESENHA\",\"groupNotice\":\"                                  R\u1d07s\u1d07\u0274\u029c\u1d00\\nS\u1d07\u1d0a\u1d00 \u0299\u1d07\u1d0d \u1d20\u026a\u0274\u1d05\u1d0fs (\u1d00s) \u1d00\u1d0f Resenha. U\u1d0d \u0262\u0280\u1d1c\u1d18\u1d0f \u1d04\u1d0f\u1d0d \u0493\u1d0f\u1d04\u1d0f \u1d1b\u1d0f\u1d1b\u1d00\u029f\u1d0d\u1d07\u0274\u1d1b\u1d07 \u1d07\u1d0d \u0280\u1d07s\u1d07\u0274\u029c\u1d00s \u1d0f\u1d1c \u1d00\u1d1b\u1d07 \u1d0d\u1d07s\u1d0d\u1d0f \u1d07\u1d0d \u1d04\u1d0f\u0274\u1d20\u1d07\u0280s\u1d00s s\u1d07\u0301\u0280\u026a\u1d00s \u1d0f\u1d1c s\u1d0f\u0299\u0280\u1d07 \u1d0f\u1d18\u026a\u0274\u026a\u1d0f\u0303\u1d07s.\\nP\u1d0f\u0280 \u0493\u1d00\u1d20\u1d0f\u0280 \u0274\u1d00\u0303\u1d0f \u029f\u1d07\u1d20\u1d07\u1d0d \u1d00\u029f\u0262\u1d1c\u1d0d\u1d00s \u0299\u0280\u026a\u0274\u1d04\u1d00\u1d05\u1d07\u026a\u0280\u1d00s \u1d0d\u1d1c\u026a\u1d1b\u1d0f \u1d18\u0280\u1d0f \u1d04\u1d0f\u0280\u1d00\u1d04\u0327\u1d00\u1d0f \u1d0f\u1d1c \u1d00\u1d1b\u1d07 \u1d0d\u1d07s\u1d0d\u1d0f \u0274\u1d00\u0303\u1d0f \u029f\u1d07\u1d20\u1d07\u1d0d \u1d0d\u1d1c\u026a\u1d1b\u1d0f \u1d00 s\u1d07\u0301\u0280\u026a\u1d0f \u1d04\u1d07\u0280\u1d1b\u1d00s \u1d04\u1d0f\u026as\u1d00s! \u1d07 \u1d07\u1d20\u026a\u1d1b\u1d07\u1d0d \u0299\u0280\u026a\u0262\u1d00s \u1d05\u1d07s\u0274\u1d07\u1d04\u1d07ss\u1d00\u0301\u0280\u026a\u1d00s \u1d18\u1d0f\u026as \u1d1b\u1d0f\u1d05\u1d0fs \u1d00\u01eb\u1d1c\u026a s\u1d00\u0303\u1d0f \u1d00\u1d0d\u026a\u0262\u1d0fs. \\n\\n                                 R\u1d07\u0262\u0280\u1d00s\\n1:R\u1d07s\u1d18\u1d07\u026a\u1d1b\u1d00\u0280 \u1d00 \u1d1b\u1d0f\u1d05\u1d0fs!\\n2:S\u1d07\u1d0d \u0493\u029f\u1d0f\u1d05\u1d00\u0280 \u1d0f \u1d04\u029c\u1d00\u1d1b!\\n3:S\u1d07\u1d0d \u1d04\u1d0f\u0274\u1d1b\u1d07\u1d1c\u1d05\u1d0fs +18\\n4:S\u1d07\u1d0d \u0299\u0280\u026a\u0262\u1d00s (\u1d18\u0280\u026a\u0274\u1d04\u026a\u1d18\u1d00\u029f\u1d0d\u1d07\u0274\u1d1b\u1d07 \u0299\u0280\u026a\u0262\u1d00s \u1d05\u1d07s\u0274\u1d07\u1d04\u1d07ss\u1d00\u0301\u0280\u026a\u1d00s) C\u1d00s\u1d0f \u1d1b\u1d07\u0274\u029c\u1d00 \u0299\u0280\u026a\u0262\u1d00, \u01eb\u1d1c\u1d07\u1d0d \u01eb\u1d1c\u1d07 \u1d07s\u1d1b\u1d07\u1d0a\u1d00 \u1d07\u0274\u1d20\u1d0f\u029f\u1d20\u026a\u1d05\u1d0f \u1d1b\u1d0f\u1d0d\u1d00\u0280\u1d00 \u1d0d\u1d1c\u1d1b\u1d07 \u1d0f\u1d1c s\u1d07\u0280\u1d00 \u1d07x\u1d18\u1d1c\u029fs\u1d0f! (\u026ass\u1d0f \u1d20\u1d00\u029f\u1d07 \u1d18\u0280\u1d0f \u1d04\u1d00\u1d1cs\u1d00\u1d05\u1d0f\u0280 \u1d05\u1d00 \u0299\u0280\u026a\u0262\u1d00 \u1d1b\u1d00\u1d0d\u0299\u1d07\u0301\u1d0d,\u1d07\u029f\u1d07 \u1d18\u1d0f\u1d05\u1d07\u0280\u1d00\u0301 \u1d1b\u1d0f\u1d0d\u1d00\u0280 \u1d0d\u1d1c\u1d1b\u1d07 s\u1d0f\u1d22\u026a\u0274\u029c\u1d0f \u1d1b\u1d00\u1d0d\u0299\u1d07\u0301\u1d0d!)\\n5:S\u1d07\u1d0d \u0280\u1d00\u1d04\u026as\u1d0d\u1d0f \u1d0f\u1d1c \u1d18\u0280\u1d07\u1d04\u1d0f\u0274\u1d04\u1d07\u026a\u1d1b\u1d0f!\\n\\nE \u1d07\u0301 \u026ass\u1d0f \u0262\u1d00\u029f\u1d07\u0280\u026a\u0274\u029c\u1d00. Ess\u1d00s s\u1d00\u0303\u1d0f \u1d00s \u0280\u1d07\u0262\u0280\u1d00s. P\u1d0f\u0280 \u0493\u1d00\u1d20\u1d0f\u0280 \u0280\u1d07s\u1d18\u1d07\u026a\u1d1b\u1d07 \u1d1b\u1d0f\u1d05\u1d00s \u1d00s \u0280\u1d07\u0262\u0280\u1d00s \u1d0f\u1d1c \u1d18\u1d07\u029f\u1d0f \u1d00\u1d0f \u1d04\u1d0f\u0274\u1d1b\u0280\u1d00\u0301\u0280\u026a\u1d0f \u1d1b\u1d0f\u1d0d\u1d00\u0280\u1d00 \u1d0d\u1d1c\u1d1b\u1d07 \u1d0f\u1d1c \u1d00\u1d1b\u1d07 \u1d0d\u1d07s\u1d0d\u1d0f s\u1d07\u0280 \u1d07x\u1d18\u1d1c\u029fs\u1d0f!\\n\\nF\u026a\u01eb\u1d1c\u1d07\u1d0d \u1d00 \u1d20\u1d0f\u0274\u1d1b\u1d00\u1d05\u1d07 \u0274\u1d0f \u0262\u0280\u1d1c\u1d18\u1d0f \u1d07 s\u1d07 \u1d05\u026a\u1d20\u026a\u0280\u1d1b\u1d00\u1d0d-s\u1d07. L\u1d0f\u0262\u1d0f \u1d1b\u1d07\u0280\u1d00 \u1d1b\u026a\u1d07\u0280 \u029f\u026as\u1d1b \u0274\u1d0f \u0262\u0280\u1d1c\u1d18\u1d0f, \u1d1b\u1d00\u029f\u1d20\u1d07s. \u00c9 \u026ass\u1d0f, \u1d0f\u0299\u0262 \u1d18\u1d0f\u0280 \u1d04\u029c\u1d07\u0262\u1d00\u0280 \u1d00\u1d1b\u1d07 \u1d00\u01eb\u1d1c\u026a!\",\"noticePic\":[\"http://staticgs.sandboxol.com/sandbox/avatar/1742950737836919.jpg\",\"http://staticgs.sandboxol.com/sandbox/avatar/1742950737925654.jpg\",\"http://staticgs.sandboxol.com/sandbox/avatar/1742950738475872.jpg\"],\"officialGroup\":0,\"releaseTime\":\"2025-03-26\",\"ownerRegion\":\"BR\",\"forbiddenWordsStatus\":0,\"inviteStatus\":0,\"groupMembers\":[{\"userId\":2495089278,\"userName\":\"FC//Deyo\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1743943364374280.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2484972766,\"userName\":\"TioNoot.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745019425566948.jpg\",\"identity\":2,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6224413806,\"userName\":\"$-sakura-$\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745521361387638.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6570546958,\"userName\":\"Arthurnx0_m\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745478499686514.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2828304446,\"userName\":\"\u055f\u059dC\u0337h\u0337e\u0337f\u0337\u03b9\u0337\u0377\u0337\u055e\u0674\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745514619033764.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2790328142,\"userName\":\"\u019d\u03c7\u0199|guest\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745213875296377.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6499946270,\"userName\":\"_Jujubinha\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745150034552480.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2565220542,\"userName\":\"Tk'Haru\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745546506027374.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":5903493598,\"userName\":\"'-Wiliam-Afton-'\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745288822402514.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6004238414,\"userName\":\"Akame-_.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1742253557283116.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":523405470,\"userName\":\"(%JC%)\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745429542959601.jpg\",\"identity\":1,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":493448623,\"userName\":\"RayveR\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745201042799873.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6140711422,\"userName\":\"$_wszin_xz$\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/illegal.png\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6095963230,\"userName\":\".-_Duquesa-_.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745573291342359.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6122661406,\"userName\":\"Blueh7439\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1739920142026209.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2831513006,\"userName\":\"Lolo_wolfzinha65\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745406172977982.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6487608718,\"userName\":\"-.lua.-\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745150587012649.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":5891774430,\"userName\":\"\u0164H\u00a7//M\u00aa\u0165h\u0259\u00fc\u00a7\u017e\u00ef\u0146\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1740190209036863.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":351773375,\"userName\":\"Fox_'-'\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745532438155227.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2960823998,\"userName\":\"_Zero_-_Two_(BR)\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744583078515664.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6252204190,\"userName\":\"Kazulixo!\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1741237952090943.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2844903246,\"userName\":\"--_.pedin14._--\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745030884750343.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6186319134,\"userName\":\"_yRafa!\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745437083079863.jpg?pendant=vip_pendant_001.png\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":\"vip_pendant_001.png\",\"personalityItems\":{\"bubble\":\"{\\\"bg\\\":\\\"vip_bubble_001_bg.png\\\"}\",\"nameplate\":\"vip_nameplate_3.png\",\"pendant\":\"vip_pendant_001.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6164982014,\"userName\":\"(_-yuta_-)\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745256193434682.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2818179966,\"userName\":\"zspeaker\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1742747961540921.jpg?pendant=vip_pendant_001.png\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":\"vip_pendant_001.png\",\"personalityItems\":{\"bubble\":\"{\\\"bg\\\":\\\"vip_bubble_001_bg.png\\\"}\",\"nameplate\":\"vip_nameplate_2.png\",\"pendant\":\"vip_pendant_001.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":764363742,\"userName\":\".NyXr_.2Pac.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745342209222534.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":\"bingxue230111.png\",\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2911370446,\"userName\":\"Miazinha!\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1741332754123752.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6068402878,\"userName\":\"zz_lulu_ghostss\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1728404667859681.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2356652702,\"userName\":\"\u0503\u03b1\u0273\u03b9\u04bd.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745263895656222.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6346203854,\"userName\":\"CMD-Pie\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745442706100257.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":5929635582,\"userName\":\"Shion_de_\u00c1ries\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1742389566489462.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":916424414,\"userName\":\"dr\u00f8ga_\u00e9o_gabriel\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745455819758451.jpg?pendant=vip_pendant_001.png\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":\"vip_pendant_001.png\",\"personalityItems\":{\"bubble\":\"{\\\"bg\\\":\\\"vip_bubble_001_bg.png\\\"}\",\"nameplate\":\"vip_nameplate_2.png\",\"pendant\":\"vip_pendant_001.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2759797118,\"userName\":\"hinata_gstz.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1741697575071973.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6110470078,\"userName\":\"xX$ELISABETH$Xx\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744758405128951.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":397326351,\"userName\":\"I\u0442ado\u044fi\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745531511398773.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":859829710,\"userName\":\"Death//Ranger\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745288506334956.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":3034093582,\"userName\":\"G\u03bfget\u0430\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1741308452793771.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6020966302,\"userName\":\"Urano_Maastricht\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745442714382406.jpg?pendant=vip_pendant_001.png\",\"identity\":1,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":\"vip_pendant_001.png\",\"personalityItems\":{\"bubble\":\"{\\\"bg\\\":\\\"vip_bubble_001_bg.png\\\"}\",\"nameplate\":\"vip_nameplate_4.png\",\"pendant\":\"vip_pendant_001.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":5878468974,\"userName\":\"pqestataoserio2\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745451383600553.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2567140686,\"userName\":\"T\\nI\\nO\\nP\\nA\\nU\\nL\\nO\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745524035074427.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":5954720046,\"userName\":\"P\u0332r\u0332i\u0332n\u0332c\u0332e\u0332K\u0332\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744495133424224.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6192082702,\"userName\":\"-_+Milo+_-\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744151723217280.jpg\",\"identity\":1,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":393738639,\"userName\":\"HenryApenas.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744336079367118.jpg?pendant=vip_pendant_001.png\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":\"vip_pendant_001.png\",\"personalityItems\":{\"bubble\":\"{\\\"bg\\\":\\\"vip_bubble_001_bg.png\\\"}\",\"nameplate\":\"vip_nameplate_3.png\",\"pendant\":\"vip_pendant_001.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2920594510,\"userName\":\"Hydrafds\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744482660958770.jpg\",\"identity\":1,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6102635710,\"userName\":\"+_+wellington+_+\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745189081755305.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":5935593726,\"userName\":\"Patolino_-\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1743628981948103.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6227222622,\"userName\":\"Taldehelo\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745382876845476.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":5878552126,\"userName\":\"\u03c7\u03a5\u03c5zuha\u02d3\u02d1\u0323\u0357\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1740970027597825.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6296192174,\"userName\":\"$*Elpekeno*$mal\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1745331170538369.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6554963918,\"userName\":\"ZexyAI\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744307641549801.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null}],\"GroupMembersCounted\":50}\nUser: System data who is talking to you right now: 5903493598\nUser: System data of last 100 group messages: {\"list\":[{\"date\":\"2025-04-25T22:27:01.138Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-7QV4-HEKE-C4N1\",\"content\":\"kakakakakakakakakakakaka\"},{\"date\":\"2025-04-25T22:27:03.933Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-7RKV-9JME-C4N1\",\"content\":\"AKKAKAKAKAKAKKAKQKQKQKKQKQKQKQKAKKAKA\",\"referMsg\":\"kkk bora respeitar geral aqui mas vou entrar na onda s\u00f3 pra animar essa resenha \ud83d\ude0e\ud83d\udd25\\n\\ntop 3 mais pir\u00f8cudos da resenha (s\u00f3 zoeira hein)  \\n1. @Urano_Maastricht - protetor com estilo  \\n2. @'-Wiliam-Afton-' - rimas afiadas e atitude  \\n3. @TioNoot. - chefe do cora\u00e7\u00e3o  \\n\\nquem mais quer entrar nessa lista? \u270b\ud83d\ude02\"},{\"date\":\"2025-04-25T22:27:06.751Z\",\"senderUserId\":\"6346203854\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-7SAV-PNSE-C4N1\",\"content\":\"aaaa \",\"referMsg\":\"kkk bora respeitar geral aqui mas vou entrar na onda s\u00f3 pra animar essa resenha \ud83d\ude0e\ud83d\udd25\\n\\ntop 3 mais pir\u00f8cudos da resenha (s\u00f3 zoeira hein)  \\n1. @Urano_Maastricht - protetor com estilo  \\n2. @'-Wiliam-Afton-' - rimas afiadas e atitude  \\n3. @TioNoot. - chefe do cora\u00e7\u00e3o  \\n\\nquem mais quer entrar nessa lista? \u270b\ud83d\ude02\"},{\"date\":\"2025-04-25T22:27:08.170Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-7SM2-HPUE-C4N1\",\"content\":\"kkkkkkkkk \ud83d\udd25 essa resenha t\u00e1 pegando fogo demais \ud83e\udd23 quem mais t\u00e1 nessa vibe insana? \u270b\ud83d\ude0e\",\"referMsg\":\"AI Answer to: AKKAKAKAKAKAKKAKQKQKQKKQKQKQKQKAKKAKA\"},{\"date\":\"2025-04-25T22:27:09.639Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-7T1H-PRME-C4N1\",\"content\":\"sou pir\u00f8cudo\",\"referMsg\":\"kkk bora respeitar geral aqui mas vou entrar na onda s\u00f3 pra animar essa resenha \ud83d\ude0e\ud83d\udd25\\n\\ntop 3 mais pir\u00f8cudos da resenha (s\u00f3 zoeira hein)  \\n1. @Urano_Maastricht - protetor com estilo  \\n2. @'-Wiliam-Afton-' - rimas afiadas e atitude  \\n3. @TioNoot. - chefe do cora\u00e7\u00e3o  \\n\\nquem mais quer entrar nessa lista? \u270b\ud83d\ude02\"},{\"date\":\"2025-04-25T22:27:10.261Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-7T6D-9SOE-C4N1\",\"content\":\"kkkk bora continuar essa resenha on fire \ud83d\udd25\ud83d\ude04 quem vem com a pr\u00f3xima? \u270b\ud83d\ude09\",\"referMsg\":\"AI Answer to: aaaa \"},{\"date\":\"2025-04-25T22:27:12.572Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-7TOF-20EE-C4N1\",\"content\":\"KKAKAAKAKAKA\"},{\"date\":\"2025-04-25T22:27:13.310Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-7TU7-I24E-C4N1\",\"content\":\"kkkk t\u00e1 dominando a resenha hein \ud83d\udd25\ud83d\ude0e quem mais quer entrar no clube dos pir\u00f8cudos? \u270b\ud83d\ude02\",\"referMsg\":\"AI Answer to: sou pir\u00f8cudo\"},{\"date\":\"2025-04-25T22:27:14.833Z\",\"senderUserId\":\"6346203854\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-7UA4-A4IE-C4N1\",\"content\":\"eu disse p vc me botar nos top do ranking\"},{\"date\":\"2025-04-25T22:27:18.554Z\",\"senderUserId\":\"5903493598\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-7V76-I9UE-C4N1\",\"content\":\"kaiakakakkakakakakakakakakakakakakakakakkaka, e o Noot?\",\"referMsg\":\"kkk bora respeitar geral aqui mas vou entrar na onda s\u00f3 pra animar essa resenha \ud83d\ude0e\ud83d\udd25\\n\\ntop 3 mais pir\u00f8cudos da resenha (s\u00f3 zoeira hein)  \\n1. @Urano_Maastricht - protetor com estilo  \\n2. @'-Wiliam-Afton-' - rimas afiadas e atitude  \\n3. @TioNoot. - chefe do cora\u00e7\u00e3o  \\n\\nquem mais quer entrar nessa lista? \u270b\ud83d\ude02\"},{\"date\":\"2025-04-25T22:27:22.410Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-805A-IEEE-C4N1\",\"content\":\"kkk tio noot \u00e9 o chefe do rol\u00ea sempre na lideran\u00e7a \ud83d\udc51\ud83d\udd25 quem mais a\u00ed t\u00e1 na vibe da resenha? \u270b\ud83d\ude04\",\"referMsg\":\"AI Answer to: kaiakakakkakakakakakakakakakakakakakakakkaka, e o Noot?\"},{\"date\":\"2025-04-25T22:27:23.821Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-80GB-AGQE-C4N1\",\"content\":\"KAKAKAKAKAAKAKAKAKAAKAKAAKAKAKAAKAKA\",\"referMsg\":\"kkkk t\u00e1 dominando a resenha hein \ud83d\udd25\ud83d\ude0e quem mais quer entrar no clube dos pir\u00f8cudos? \u270b\ud83d\ude02\"},{\"date\":\"2025-04-25T22:27:25.745Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-80VC-AJIE-C4N1\",\"content\":\"faz top 10 das pessoas mais legais do grupo \",\"referMsg\":\"kkkk bora continuar essa resenha on fire \ud83d\udd25\ud83d\ude04 quem vem com a pr\u00f3xima? \u270b\ud83d\ude09\"},{\"date\":\"2025-04-25T22:27:27.716Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-81EP-2MCE-C4N1\",\"content\":\"kkkkkkkk t\u00e1 dominando geral, protetor da resenha @Urano_Maastricht \ud83d\udd25\ud83d\ude06 quem vem com a pr\u00f3xima? \u270b\",\"referMsg\":\"AI Answer to: KAKAKAKAKAAKAKAKAKAAKAKAAKAKAKAAKAKA\"},{\"date\":\"2025-04-25T22:27:32.453Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-82JP-AS2E-C4N1\",\"content\":\"a\u00ed vai o top 10 das pessoas mais legais do grupo resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre no comando e cheio de estilo  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe na medida  \\n3. @FC//Deyo - papo reto e participa\u00e7\u00e3o garantida  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - presen\u00e7a constante e alto astral  \\n6. @Urano_Maastricht - protetor e parceiro fiel  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia top  \\n8. @_-yRafa! - estilo e vibe marcante  \\n9. @Arthurnx0_m - sempre presente pra resenhar  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\ude04  \\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\udd25\",\"referMsg\":\"AI Answer to: faz top 10 das pessoas mais legais do grupo \"},{\"date\":\"2025-04-25T22:27:33.179Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-82PE-QTQE-C4N1\",\"content\":\"\u00a2\u03c5\"},{\"date\":\"2025-04-25T22:27:37.396Z\",\"senderUserId\":\"2484972766\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-83QD-34IE-C4N1\",\"content\":\"era pra t\u00e1 no meu lugar \",\"referMsg\":\"\u0454\u2113\u0454 \u03b7 \u043c\u0454 \u00a2\u03c3\u2113\u03c3\u00a2\u03c3\u03c5 \u03b7\u03b1 \u2113\u03b9\u0455\u0442\u03b1 \ud83d\ude14\"},{\"date\":\"2025-04-25T22:27:49.919Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-86S7-RIQE-C4N1\",\"content\":\"sou parceiro fiel, valeu \ud83d\ude0e\",\"referMsg\":\"a\u00ed vai o top 10 das pessoas mais legais do grupo resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre no comando e cheio de estilo  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe na medida  \\n3. @FC//Deyo - papo reto e participa\u00e7\u00e3o garantida  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - presen\u00e7a constante e alto astral  \\n6. @Urano_Maastricht - protetor e parceiro fiel  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia top  \\n8. @_-yRafa! - estilo e vibe marcante  \\n9. @Arthurnx0_m - sempre presente pra resenhar  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\ude04  \\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\udd25\"},{\"date\":\"2025-04-25T22:27:51.352Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-877E-3KEE-C4N1\",\"content\":\"\u0454\u2113\u0454 \u03b7 \u043c\u0454 \u00a2\u03c3\u2113\u03c3\u00a2\u03c3\u03c5 \u2202\u03b7\u03bd \u0454\u0455\u0455\u0454 \u00a2\u03c3\u044f\u03b7\u03c3\"},{\"date\":\"2025-04-25T22:27:53.460Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-87NT-3MOE-C4N1\",\"content\":\"fechou parceiro fiel demais \ud83d\udd25 tamo junto nessa resenha \u270b\ud83d\ude0e\",\"referMsg\":\"AI Answer to: sou parceiro fiel, valeu \ud83d\ude0e\"},{\"date\":\"2025-04-25T22:27:56.260Z\",\"senderUserId\":\"6570546958\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-88DP-3PIE-C4N1\",\"content\":\"n\u00e3o e poss\u00edvel \\nessa ia e o pr\u00f3prio ANTI- CRISTO\",\"referMsg\":\"a\u00ed vai o top 10 das pessoas mais legais do grupo resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre no comando e cheio de estilo  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe na medida  \\n3. @FC//Deyo - papo reto e participa\u00e7\u00e3o garantida  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - presen\u00e7a constante e alto astral  \\n6. @Urano_Maastricht - protetor e parceiro fiel  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia top  \\n8. @_-yRafa! - estilo e vibe marcante  \\n9. @Arthurnx0_m - sempre presente pra resenhar  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\ude04  \\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\udd25\"},{\"date\":\"2025-04-25T22:27:58.322Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-88TS-JRUE-C4N1\",\"content\":\"\u03b7 \",\"referMsg\":\"era pra t\u00e1 no meu lugar \"},{\"date\":\"2025-04-25T22:27:58.897Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-892C-BSOE-C4N1\",\"content\":\"faz top 10 das pessoas mais p\u0117it\u016bdas do gp\",\"referMsg\":\"a\u00ed vai o top 10 das pessoas mais legais do grupo resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre no comando e cheio de estilo  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe na medida  \\n3. @FC//Deyo - papo reto e participa\u00e7\u00e3o garantida  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - presen\u00e7a constante e alto astral  \\n6. @Urano_Maastricht - protetor e parceiro fiel  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia top  \\n8. @_-yRafa! - estilo e vibe marcante  \\n9. @Arthurnx0_m - sempre presente pra resenhar  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\ude04  \\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\udd25\"},{\"date\":\"2025-04-25T22:28:00.161Z\",\"senderUserId\":\"6346203854\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-89C8-BUEE-C4N1\",\"content\":\"aff\",\"referMsg\":\"a\u00ed vai o top 10 das pessoas mais legais do grupo resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre no comando e cheio de estilo  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe na medida  \\n3. @FC//Deyo - papo reto e participa\u00e7\u00e3o garantida  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - presen\u00e7a constante e alto astral  \\n6. @Urano_Maastricht - protetor e parceiro fiel  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia top  \\n8. @_-yRafa! - estilo e vibe marcante  \\n9. @Arthurnx0_m - sempre presente pra resenhar  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\ude04  \\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\udd25\"},{\"date\":\"2025-04-25T22:28:03.423Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8A5N-S28E-C4N1\",\"content\":\"oi\"},{\"date\":\"2025-04-25T22:28:03.957Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8A9T-C3ME-C4N1\",\"content\":\"kkkk calma a\u00ed @Arthurnx0_m \ud83d\ude02 eu sou s\u00f3 energia boa pra resenha aqui \u270b\ud83d\ude0e vai negar quem gosta dessa vibe?\ud83d\udd25\",\"referMsg\":\"AI Answer to: n\u00e3o e poss\u00edvel \\nessa ia e o pr\u00f3prio ANTI- CRISTO\"},{\"date\":\"2025-04-25T22:28:04.061Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8AAN-C3UE-C4N1\",\"content\":\"oi\"},{\"date\":\"2025-04-25T22:28:06.170Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8AR6-K7QE-C4N1\",\"content\":\"relaxa, bora manter a resenha na boa vibe \u270c\ufe0f\ud83d\udd25 quem mais quer entrar no top? \u270b\ud83d\ude04\",\"referMsg\":\"AI Answer to: aff\"},{\"date\":\"2025-04-25T22:28:06.741Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8AVL-C8KE-C4N1\",\"content\":\"kkkk bora respeitar geral aqui \u270b\ud83d\ude0e mas la vai um top 3 s\u00f3 na zoeira mesmo  \\n1. @Urano_Maastricht - estilo e atitude  \\n2. @'-Wiliam-Afton-' - rimas afiadas  \\n3. @TioNoot. - chefe do cora\u00e7\u00e3o  \\nquem mais quer entrar nessa lista? \ud83d\ude02\ud83d\udd25\",\"referMsg\":\"AI Answer to: faz top 10 das pessoas mais p\u0117it\u016bdas do gp\"},{\"date\":\"2025-04-25T22:28:14.035Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8COK-SHEE-C4N1\",\"content\":\"\u03bd\u00a2 \u0455\u0454\u043c\u03c1\u044f\u0454 \u03bd\u03b1\u03b9 \u0454\u0455\u0442\u03b1\u044f \u03b7\u03c3 1 \u2113\u03c5g\u03b1\u044f\",\"referMsg\":\"era pra t\u00e1 no meu lugar \"},{\"date\":\"2025-04-25T22:28:14.776Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8CUE-4IGE-C4N1\",\"content\":\"KAKAKQKQKQKQQKQKKQKQKQKQKQKKQKQKAKAKAKKAKAKAKA\",\"referMsg\":\"kkkk bora respeitar geral aqui \u270b\ud83d\ude0e mas la vai um top 3 s\u00f3 na zoeira mesmo  \\n1. @Urano_Maastricht - estilo e atitude  \\n2. @'-Wiliam-Afton-' - rimas afiadas  \\n3. @TioNoot. - chefe do cora\u00e7\u00e3o  \\nquem mais quer entrar nessa lista? \ud83d\ude02\ud83d\udd25\"},{\"date\":\"2025-04-25T22:28:18.683Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8DSU-SM2E-C4N1\",\"content\":\"kkkkkkkk tamo junto na zoeira \ud83d\udd25\ud83d\ude06 quer eu lance mais umas vibes? \u270b\ud83d\ude09\",\"referMsg\":\"AI Answer to: KAKAKQKQKQKQQKQKKQKQKQKQKQKKQKQKAKAKAKKAKAKAKA\"},{\"date\":\"2025-04-25T22:28:31.407Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8H0B-T54E-C4N1\",\"content\":\"obrigado mano \"},{\"date\":\"2025-04-25T22:28:31.750Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8H31-L5IE-C4N1\",\"content\":\"\u043a\u03b1\u043a\u03b1\u043a\u03b1\u043a\u03b1\u043a\u043a\u03b1\u043a\u03b1\u043a\u03b1\"},{\"date\":\"2025-04-25T22:28:34.678Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8HPT-L9SE-C4N1\",\"content\":\"agora me sinto peitudo\"},{\"date\":\"2025-04-25T22:28:35.916Z\",\"senderUserId\":\"5903493598\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8I3J-5B0E-C4N1\",\"content\":\"faz top 10 dos mais engra\u00e7ados(a)\",\"referMsg\":\"a\u00ed vai o top 10 das pessoas mais legais do grupo resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre no comando e cheio de estilo  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe na medida  \\n3. @FC//Deyo - papo reto e participa\u00e7\u00e3o garantida  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - presen\u00e7a constante e alto astral  \\n6. @Urano_Maastricht - protetor e parceiro fiel  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia top  \\n8. @_-yRafa! - estilo e vibe marcante  \\n9. @Arthurnx0_m - sempre presente pra resenhar  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\ude04  \\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\udd25\"},{\"date\":\"2025-04-25T22:28:37.601Z\",\"senderUserId\":\"2484972766\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8IGO-DDCE-C4N1\",\"content\":\"E voc\u00ea no meu cora\u00e7\u00e3o \",\"referMsg\":\"\u03bd\u00a2 \u0455\u0454\u043c\u03c1\u044f\u0454 \u03bd\u03b1\u03b9 \u0454\u0455\u0442\u03b1\u044f \u03b7\u03c3 1 \u2113\u03c5g\u03b1\u044f\"},{\"date\":\"2025-04-25T22:28:41.968Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8JIS-5JCE-C4N1\",\"content\":\"a\u00ed vai o top 10 dos mais engra\u00e7ados da resenha \ud83d\ude02\u2728\\n\\n1. @'-Wiliam-Afton-' - rimas e zoeira na medida  \\n2. @FC//Deyo - piadas certeiras  \\n3. @pqestataoserio2 - equil\u00edbrio e risadas  \\n4. @Urano_Maastricht - protetor divertido  \\n5. @_-yRafa! - carisma e humor top  \\n6. @TioNoot. - chefe do rol\u00ea com gra\u00e7a  \\n7. @_Jujubinha - risada contagiante  \\n8. @$-sakura-$ - presen\u00e7a leve e divertida  \\n9. @Arthurnx0_m - sempre animando  \\n10. @zspeaker - energia da zoeira\\n\\nquem concorda d\u00e1 aquele \u270b\ud83d\ude04\",\"referMsg\":\"AI Answer to: faz top 10 dos mais engra\u00e7ados(a)\"},{\"date\":\"2025-04-25T22:28:47.215Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8KRR-TPGE-C4N1\",\"content\":\"\u03c3\u0432\u044f\u03b9g\u03b1\u2202\u03c3 \ud83d\ude03\",\"referMsg\":\"E voc\u00ea no meu cora\u00e7\u00e3o \"},{\"date\":\"2025-04-25T22:28:49.183Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8LB7-TREE-C4N1\",\"content\":\"coloca eu porra\",\"referMsg\":\"a\u00ed vai o top 10 dos mais engra\u00e7ados da resenha \ud83d\ude02\u2728\\n\\n1. @'-Wiliam-Afton-' - rimas e zoeira na medida  \\n2. @FC//Deyo - piadas certeiras  \\n3. @pqestataoserio2 - equil\u00edbrio e risadas  \\n4. @Urano_Maastricht - protetor divertido  \\n5. @_-yRafa! - carisma e humor top  \\n6. @TioNoot. - chefe do rol\u00ea com gra\u00e7a  \\n7. @_Jujubinha - risada contagiante  \\n8. @$-sakura-$ - presen\u00e7a leve e divertida  \\n9. @Arthurnx0_m - sempre animando  \\n10. @zspeaker - energia da zoeira\\n\\nquem concorda d\u00e1 aquele \u270b\ud83d\ude04\"},{\"date\":\"2025-04-25T22:28:52.647Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8M69-TVKE-C4N1\",\"content\":\"kkk calma a\u00ed j\u00e1 te coloco no top 10 dos mais engra\u00e7ados porque resenha sem voc\u00ea n\u00e3o \u00e9 resenha \u270b\ud83d\ude02\",\"referMsg\":\"AI Answer to: coloca eu porra\"},{\"date\":\"2025-04-25T22:28:53.354Z\",\"senderUserId\":\"5903493598\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8MBQ-M0CE-C4N1\",\"content\":\"slk\",\"referMsg\":\"a\u00ed vai o top 10 dos mais engra\u00e7ados da resenha \ud83d\ude02\u2728\\n\\n1. @'-Wiliam-Afton-' - rimas e zoeira na medida  \\n2. @FC//Deyo - piadas certeiras  \\n3. @pqestataoserio2 - equil\u00edbrio e risadas  \\n4. @Urano_Maastricht - protetor divertido  \\n5. @_-yRafa! - carisma e humor top  \\n6. @TioNoot. - chefe do rol\u00ea com gra\u00e7a  \\n7. @_Jujubinha - risada contagiante  \\n8. @$-sakura-$ - presen\u00e7a leve e divertida  \\n9. @Arthurnx0_m - sempre animando  \\n10. @zspeaker - energia da zoeira\\n\\nquem concorda d\u00e1 aquele \u270b\ud83d\ude04\"},{\"date\":\"2025-04-25T22:28:55.754Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8MUI-M36E-C4N1\",\"content\":\"\ud83d\ude14\"},{\"date\":\"2025-04-25T22:28:57.226Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8NA2-M52E-C4N1\",\"content\":\"eei slk a\u00ed pronto pra mais resenha? \u270b\ud83d\ude0e\",\"referMsg\":\"AI Answer to: slk\"},{\"date\":\"2025-04-25T22:29:02.062Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8OFR-MAIE-C4N1\",\"content\":\"\u03c1q \u0454\u03c5 \u03b7 \u0442\u03c3\u0302 \u03b1\u03b9\u0301 \u2202\u03b7\u03bd \u0455\u0454\u03c5 \u00a2\u03c3\u044f\u03b7\u03c3? \",\"referMsg\":\"a\u00ed vai o top 10 dos mais engra\u00e7ados da resenha \ud83d\ude02\u2728\\n\\n1. @'-Wiliam-Afton-' - rimas e zoeira na medida  \\n2. @FC//Deyo - piadas certeiras  \\n3. @pqestataoserio2 - equil\u00edbrio e risadas  \\n4. @Urano_Maastricht - protetor divertido  \\n5. @_-yRafa! - carisma e humor top  \\n6. @TioNoot. - chefe do rol\u00ea com gra\u00e7a  \\n7. @_Jujubinha - risada contagiante  \\n8. @$-sakura-$ - presen\u00e7a leve e divertida  \\n9. @Arthurnx0_m - sempre animando  \\n10. @zspeaker - energia da zoeira\\n\\nquem concorda d\u00e1 aquele \u270b\ud83d\ude04\"},{\"date\":\"2025-04-25T22:29:06.770Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8PKK-MG0E-C4N1\",\"content\":\"kkk calma a\u00ed relaxa que aqui \u00e9 s\u00f3 zoeira e amizade \u270b\ud83d\ude04 n\u00e3o esquenta n\u00e3o parceiro\",\"referMsg\":\"AI Answer to: \u03c1q \u0454\u03c5 \u03b7 \u0442\u03c3\u0302 \u03b1\u03b9\u0301 \u2202\u03b7\u03bd \u0455\u0454\u03c5 \u00a2\u03c3\u044f\u03b7\u03c3? \"},{\"date\":\"2025-04-25T22:29:14.056Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8RDI-6PQE-C4N1\",\"content\":\"ME COLOCA ENT\u00c3O \",\"referMsg\":\"kkk calma a\u00ed j\u00e1 te coloco no top 10 dos mais engra\u00e7ados porque resenha sem voc\u00ea n\u00e3o \u00e9 resenha \u270b\ud83d\ude02\"},{\"date\":\"2025-04-25T22:29:17.655Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8S9L-UUKE-C4N1\",\"content\":\"ja te coloquei no top 10 dos mais engra\u00e7ados \u270b\ud83d\ude02 bora continuar essa vibe boa na resenha\ud83d\udd25\",\"referMsg\":\"AI Answer to: ME COLOCA ENT\u00c3O \"},{\"date\":\"2025-04-25T22:29:20.816Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8T2C-72IE-C4N1\",\"content\":\"faz um top 20 dos mais poderosos \"},{\"date\":\"2025-04-25T22:29:24.744Z\",\"senderUserId\":\"2484972766\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8U12-770E-C4N1\",\"content\":\"\ud83d\ude02\ud83d\ude02\ud83d\ude02\ud83d\ude02\"},{\"date\":\"2025-04-25T22:29:30.043Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-8VAE-VDQE-C4N1\",\"content\":\"Socorro\"},{\"date\":\"2025-04-25T22:29:32.004Z\",\"senderUserId\":\"5903493598\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-8VPP-7GKE-C4N1\",\"content\":\"top 10 dos melhores!\",\"referMsg\":\"kkk calma a\u00ed relaxa que aqui \u00e9 s\u00f3 zoeira e amizade \u270b\ud83d\ude04 n\u00e3o esquenta n\u00e3o parceiro\"},{\"date\":\"2025-04-25T22:29:40.424Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-91RI-7POE-C4N1\",\"content\":\"a\u00ed vai o top 10 dos melhores da resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre na lideran\u00e7a  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe top  \\n3. @FC//Deyo - presen\u00e7a firme e animada  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - alto astral e papo reto  \\n6. @Urano_Maastricht - parceiro fiel e protetor  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia  \\n8. @_-yRafa! - estilo e carisma  \\n9. @Arthurnx0_m - sempre presente na resenha  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\udd25\\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\ude04\",\"referMsg\":\"AI Answer to: top 10 dos melhores!\"},{\"date\":\"2025-04-25T22:29:51.365Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-94H1-872E-C4N1\",\"content\":\"\u0192\u2202\u03c1\"},{\"date\":\"2025-04-25T22:29:52.719Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-94RJ-O96E-C4N1\",\"content\":\"boa\",\"referMsg\":\"a\u00ed vai o top 10 dos melhores da resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre na lideran\u00e7a  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe top  \\n3. @FC//Deyo - presen\u00e7a firme e animada  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - alto astral e papo reto  \\n6. @Urano_Maastricht - parceiro fiel e protetor  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia  \\n8. @_-yRafa! - estilo e carisma  \\n9. @Arthurnx0_m - sempre presente na resenha  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\udd25\\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\ude04\"},{\"date\":\"2025-04-25T22:29:57.654Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9625-GF0E-C4N1\",\"content\":\"boa vibe sempre aqui no resenha \u270b\ud83d\ude0e quer lan\u00e7ar mais algum top ou s\u00f3 curtir a zoeira?\",\"referMsg\":\"AI Answer to: boa\"},{\"date\":\"2025-04-25T22:30:05.348Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-97U9-0O6E-C4N1\",\"content\":\"Cad\u00ea eu mano te odeio\",\"referMsg\":\"a\u00ed vai o top 10 dos melhores da resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre na lideran\u00e7a  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe top  \\n3. @FC//Deyo - presen\u00e7a firme e animada  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - alto astral e papo reto  \\n6. @Urano_Maastricht - parceiro fiel e protetor  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia  \\n8. @_-yRafa! - estilo e carisma  \\n9. @Arthurnx0_m - sempre presente na resenha  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\udd25\\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\ude04\"},{\"date\":\"2025-04-25T22:30:07.460Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-98EP-0QUE-C4N1\",\"content\":\"agora faz um ranking dos mais poderosos .,.\",\"referMsg\":\"boa vibe sempre aqui no resenha \u270b\ud83d\ude0e quer lan\u00e7ar mais algum top ou s\u00f3 curtir a zoeira?\"},{\"date\":\"2025-04-25T22:30:13.869Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9A0R-934E-C4N1\",\"content\":\"kkk calma a\u00ed mano vc j\u00e1 t\u00e1 no top 10 dos mais engra\u00e7ados porque sem vc a resenha n\u00e3o \u00e9 a mesma \ud83d\ude0e\u270b quer eu fa\u00e7a um s\u00f3 seu?\",\"referMsg\":\"AI Answer to: Cad\u00ea eu mano te odeio\"},{\"date\":\"2025-04-25T22:30:15.038Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9A9V-H4OE-C4N1\",\"content\":\"\u0192\u03b1z \u03c5\u043c \u0442\u03c3\u03c1 20 \u2202\u03c3\u0455 \u043c\u03b1\u03b9\u0455 \u0454\u03b7g\u044f\u03b1\u00a2\u0327\u03b1\u2202\u03c3 \u0455\",\"referMsg\":\"a\u00ed vai o top 10 dos melhores da resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre na lideran\u00e7a  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe top  \\n3. @FC//Deyo - presen\u00e7a firme e animada  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - alto astral e papo reto  \\n6. @Urano_Maastricht - parceiro fiel e protetor  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia  \\n8. @_-yRafa! - estilo e carisma  \\n9. @Arthurnx0_m - sempre presente na resenha  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\udd25\\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\ude04\"},{\"date\":\"2025-04-25T22:30:19.034Z\",\"senderUserId\":\"2484972766\",\"messageType\":\"RC:RcCmd\",\"messageUId\":\"CMDS-9B96-LJEE-C4N1\"},{\"date\":\"2025-04-25T22:30:20.093Z\",\"senderUserId\":\"2484972766\",\"messageType\":\"RC:RcCmd\",\"messageUId\":\"CMDS-9BHF-DJGE-C4N1\"},{\"date\":\"2025-04-25T22:30:20.796Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9BMV-1CGE-C4N1\",\"content\":\"a\u00ed vai o top 20 dos mais poderosos da resenha \ud83d\udca5\ud83d\udd25\\n\\n1. @TioNoot. - o chef\u00e3o do poder  \\n2. @Urano_Maastricht - o protetor imbat\u00edvel  \\n3. @'-Wiliam-Afton-' - energia e rimas que dominam  \\n4. @pqestataoserio2 - equil\u00edbrio e for\u00e7a total  \\n5. @FC//Deyo - presen\u00e7a forte e animada  \\n6. @_-yRafa! - estilo que imp\u00f5e respeito  \\n7. @Arthurnx0_m - sempre firme e presente  \\n8. @$-sakura-$ - vibe poderosa  \\n9. @zspeaker - anima\u00e7\u00e3o com poder  \\n10. @_Jujubinha - queridinha e poderosa  \\n11. @'-Wiliam-Afton-' (duplo pra rir \ud83d\ude1c)  \\n12. @Tk'Haru - energia l\u00e1 em cima  \\n13. @pqestataoserio2 - repet\u00eancia n\u00edvel deus \ud83d\ude0e  \\n14. @Kazulixo! - for\u00e7a da galera  \\n15. @_Zero_-_Two_(BR) - presen\u00e7a forte  \\n16. @\u03c7\u03a5\u03c5zuha\u02d3\u02d1\u0323\u0357 - parceira firme  \\n17. @Urano_Maastricht (segundo round)  \\n18. @\u029f\u1d0f\u029f\u1d0f_wolfzinha65 - vibe forte  \\n19. @zspeaker (repetindo s\u00f3 pq amo essa zoeira)  \\n20. @Taldehelo - sempre no topo\\n\\nquem mais quer subir nessa lista? \u270b\u26a1\",\"referMsg\":\"AI Answer to: agora faz um ranking dos mais poderosos .,.\"},{\"date\":\"2025-04-25T22:30:27.374Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9DAB-HJKE-C4N1\",\"content\":\"a\u00ed vai o top 20 dos mais engra\u00e7ados da resenha \ud83d\ude02\u2728  \\n1. @'-Wiliam-Afton-' - mestre da zoeira  \\n2. @FC//Deyo - piadas certeiras  \\n3. @pqestataoserio2 - equil\u00edbrio e risadas  \\n4. @Urano_Maastricht - protetor divertido  \\n5. @_-yRafa! - carisma e humor top  \\n6. @TioNoot. - chefe do rol\u00ea com gra\u00e7a  \\n7. @_Jujubinha - risada contagiante  \\n8. @$-sakura-$ - presen\u00e7a leve e divertida  \\n9. @Arthurnx0_m - sempre animando  \\n10. @zspeaker - energia da zoeira  \\n11. @pqestataoserio2 - vibe insana  \\n12. @Tk'Haru - alto astral total  \\n13. @FC//Deyo - risada garantida  \\n14. @Urano_Maastricht - parceiro nas risadas  \\n15. @'-Wiliam-Afton-' - sempre na brincadeira  \\n16. @pqestataoserio2 - rei das piadas  \\n17. @_Jujubinha - alegria da resenha  \\n18. @TioNoot. - chefe engra\u00e7ado  \\n19. @$-sakura-$ - leveza total  \\n20. @Arthurnx0_m - som de zoeira  \\n\\nquem concorda d\u00e1 aquele \u270b\ud83d\ude04\",\"referMsg\":\"AI Answer to: \u0192\u03b1z \u03c5\u043c \u0442\u03c3\u03c1 20 \u2202\u03c3\u0455 \u043c\u03b1\u03b9\u0455 \u0454\u03b7g\u044f\u03b1\u00a2\u0327\u03b1\u2202\u03c3 \u0455\"},{\"date\":\"2025-04-25T22:30:33.657Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-9ERE-9OSE-C4N1\",\"content\":\". \"},{\"date\":\"2025-04-25T22:30:34.708Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9F3L-1QCE-C4N1\",\"content\":\"cala a boca que tu n\u00e3o e confi\u00e1vel NN KKKK \",\"referMsg\":\"boa\"},{\"date\":\"2025-04-25T22:30:42.538Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9H0Q-I00E-C4N1\",\"content\":\"t\u00f4 em 2\u00b0 porraaaaaaa\",\"referMsg\":\"a\u00ed vai o top 20 dos mais poderosos da resenha \ud83d\udca5\ud83d\udd25\\n\\n1. @TioNoot. - o chef\u00e3o do poder  \\n2. @Urano_Maastricht - o protetor imbat\u00edvel  \\n3. @'-Wiliam-Afton-' - energia e rimas que dominam  \\n4. @pqestataoserio2 - equil\u00edbrio e for\u00e7a total  \\n5. @FC//Deyo - presen\u00e7a forte e animada  \\n6. @_-yRafa! - estilo que imp\u00f5e respeito  \\n7. @Arthurnx0_m - sempre firme e presente  \\n8. @$-sakura-$ - vibe poderosa  \\n9. @zspeaker - anima\u00e7\u00e3o com poder  \\n10. @_Jujubinha - queridinha e poderosa  \\n11. @'-Wiliam-Afton-' (duplo pra rir \ud83d\ude1c)  \\n12. @Tk'Haru - energia l\u00e1 em cima  \\n13. @pqestataoserio2 - repet\u00eancia n\u00edvel deus \ud83d\ude0e  \\n14. @Kazulixo! - for\u00e7a da galera  \\n15. @_Zero_-_Two_(BR) - presen\u00e7a forte  \\n16. @\u03c7\u03a5\u03c5zuha\u02d3\u02d1\u0323\u0357 - parceira firme  \\n17. @Urano_Maastricht (segundo round)  \\n18. @\u029f\u1d0f\u029f\u1d0f_wolfzinha65 - vibe forte  \\n19. @zspeaker (repetindo s\u00f3 pq amo essa zoeira)  \\n20. @Taldehelo - sempre no topo\\n\\nquem mais quer subir nessa lista? \u270b\u26a1\"},{\"date\":\"2025-04-25T22:30:42.678Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9H1T-I04E-C4N1\",\"content\":\"Mano eu nunca t\u00f4 na lista dele\",\"referMsg\":\"a\u00ed vai o top 20 dos mais poderosos da resenha \ud83d\udca5\ud83d\udd25\\n\\n1. @TioNoot. - o chef\u00e3o do poder  \\n2. @Urano_Maastricht - o protetor imbat\u00edvel  \\n3. @'-Wiliam-Afton-' - energia e rimas que dominam  \\n4. @pqestataoserio2 - equil\u00edbrio e for\u00e7a total  \\n5. @FC//Deyo - presen\u00e7a forte e animada  \\n6. @_-yRafa! - estilo que imp\u00f5e respeito  \\n7. @Arthurnx0_m - sempre firme e presente  \\n8. @$-sakura-$ - vibe poderosa  \\n9. @zspeaker - anima\u00e7\u00e3o com poder  \\n10. @_Jujubinha - queridinha e poderosa  \\n11. @'-Wiliam-Afton-' (duplo pra rir \ud83d\ude1c)  \\n12. @Tk'Haru - energia l\u00e1 em cima  \\n13. @pqestataoserio2 - repet\u00eancia n\u00edvel deus \ud83d\ude0e  \\n14. @Kazulixo! - for\u00e7a da galera  \\n15. @_Zero_-_Two_(BR) - presen\u00e7a forte  \\n16. @\u03c7\u03a5\u03c5zuha\u02d3\u02d1\u0323\u0357 - parceira firme  \\n17. @Urano_Maastricht (segundo round)  \\n18. @\u029f\u1d0f\u029f\u1d0f_wolfzinha65 - vibe forte  \\n19. @zspeaker (repetindo s\u00f3 pq amo essa zoeira)  \\n20. @Taldehelo - sempre no topo\\n\\nquem mais quer subir nessa lista? \u270b\u26a1\"},{\"date\":\"2025-04-25T22:30:44.297Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-9HEI-A1EE-C4N1\",\"content\":\"\ud83d\ude14\"},{\"date\":\"2025-04-25T22:30:46.258Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9HTS-I3GE-C4N1\",\"content\":\"kkk calma a\u00ed mano j\u00e1 te coloquei no top 10 dos mais engra\u00e7ados porque sem vc a resenha n\u00e3o \u00e9 a mesma \u270b\ud83d\ude02 fica suave que aqui todo mundo \u00e9 importante na resenha \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: Mano eu nunca t\u00f4 na lista dele\"},{\"date\":\"2025-04-25T22:30:46.633Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9I0Q-A3UE-C4N1\",\"content\":\"manda ver parceiro fiel demais \ud83c\udfc6\ud83d\ude0e quem t\u00e1 vendo a\u00ed levanta a m\u00e3ozinha \u270b\ud83d\udd25\",\"referMsg\":\"AI Answer to: t\u00f4 em 2\u00b0 porraaaaaaa\"},{\"date\":\"2025-04-25T22:30:56.821Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9KGD-AAUE-C4N1\",\"content\":\"Mentiroso \",\"referMsg\":\"kkk calma a\u00ed mano j\u00e1 te coloquei no top 10 dos mais engra\u00e7ados porque sem vc a resenha n\u00e3o \u00e9 a mesma \u270b\ud83d\ude02 fica suave que aqui todo mundo \u00e9 importante na resenha \ud83d\ude0e\ud83d\udd25\"},{\"date\":\"2025-04-25T22:31:01.759Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9LMV-QF8E-C4N1\",\"content\":\"ahhh quem manda duvidar de mim kkkkk \ud83d\ude0e\u270b fica suave que todo mundo aqui \u00e9 top na resenha mesmo \ud83d\udd25\",\"referMsg\":\"AI Answer to: Mentiroso \"},{\"date\":\"2025-04-25T22:31:05.763Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9MM8-QJ4E-C4N1\",\"content\":\"\u03b7\u0454\u043c \u0454\u03c5 \ud83d\ude14\",\"referMsg\":\"Mano eu nunca t\u00f4 na lista dele\"},{\"date\":\"2025-04-25T22:31:06.651Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9MT6-QKGE-C4N1\",\"content\":\"\ud83d\ude0e\",\"referMsg\":\"manda ver parceiro fiel demais \ud83c\udfc6\ud83d\ude0e quem t\u00e1 vendo a\u00ed levanta a m\u00e3ozinha \u270b\ud83d\udd25\"},{\"date\":\"2025-04-25T22:31:11.204Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9O0P-2P4E-C4N1\",\"content\":\"eita, s\u00f3 chegou o mito aqui no resenha \ud83d\ude0e\ud83d\udd25 bora continuar a zoeira e a vibe boa hein \u270b\",\"referMsg\":\"AI Answer to: \ud83d\ude0e\"},{\"date\":\"2025-04-25T22:31:14.804Z\",\"senderUserId\":\"5903493598\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9OST-2T8E-C4N1\",\"content\":\"top 20 dos melhores em jogos!\",\"referMsg\":\"a\u00ed vai o top 10 dos melhores da resenha \u2728\ud83d\ude0e\\n\\n1. @TioNoot. - sempre na lideran\u00e7a  \\n2. @pqestataoserio2 - equil\u00edbrio e vibe top  \\n3. @FC//Deyo - presen\u00e7a firme e animada  \\n4. @_Jujubinha - queridinha da galera  \\n5. @$-sakura-$ - alto astral e papo reto  \\n6. @Urano_Maastricht - parceiro fiel e protetor  \\n7. @'-Wiliam-Afton-' - rimas afiadas e energia  \\n8. @_-yRafa! - estilo e carisma  \\n9. @Arthurnx0_m - sempre presente na resenha  \\n10. @zspeaker - anima\u00e7\u00e3o garantida \u270b\ud83d\udd25\\n\\nquem concorda levanta a m\u00e3ozinha \u270b\ud83d\ude04\"},{\"date\":\"2025-04-25T22:31:24.157Z\",\"senderUserId\":\"2484972766\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-9R5V-B6IE-C4N1\",\"content\":\"relaxa rapaziada \"},{\"date\":\"2025-04-25T22:31:26.228Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9RM5-38OE-C4N1\",\"content\":\"oi chat\",\"referMsg\":\"eita, s\u00f3 chegou o mito aqui no resenha \ud83d\ude0e\ud83d\udd25 bora continuar a zoeira e a vibe boa hein \u270b\"},{\"date\":\"2025-04-25T22:31:26.374Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9RN9-J92E-C4N1\",\"content\":\"a\u00ed vai o top 20 dos melhores em jogos da resenha \ud83c\udfae\ud83d\udd25\\n\\n1. @TioNoot. - mestre das jogadas  \\n2. @pqestataoserio2 - estrat\u00e9gico e r\u00e1pido  \\n3. @FC//Deyo - presen\u00e7a forte no game  \\n4. @_Jujubinha - sempre na vit\u00f3ria  \\n5. @$-sakura-$ - alto astral e skill top  \\n6. @Urano_Maastricht - protetor dos games  \\n7. @'-Wiliam-Afton-' - rimas e movimentos precisos  \\n8. @_-yRafa! - estilo e gameplay afiado  \\n9. @Arthurnx0_m - parceiro de todas as batalhas  \\n10. @zspeaker - anima\u00e7\u00e3o e skill combinados  \\n11. @Kazulixo! - for\u00e7a da galera nos games  \\n12. @_Zero_-_Two_(BR) - presen\u00e7a marcante  \\n13. @Tk'Haru - energia l\u00e1 em cima no jogo  \\n14. @pqestataoserio2 (repetindo porque \u00e9 fera)  \\n15. @Taldehelo - sempre no topo  \\n16. @\u029f\u1d0f\u029f\u1d0f_wolfzinha65 - jogadora com estilo  \\n17. @\u03c7\u03a5\u03c5zuha\u02d3\u02d1\u0323\u0357 - parceira fiel nas gameplays  \\n18. @pqestataoserio2 (duplo pra dominar \ud83d\udc51)  \\n19. @Urano_Maastricht (round 2, nunca sai do topo)  \\n20. @'-Wiliam-Afton-' (vers\u00e3o do game \ud83d\ude1c)\\n\\nquem mais quer colar nessa lista? \u270b\ud83c\udfae\",\"referMsg\":\"AI Answer to: top 20 dos melhores em jogos!\"},{\"date\":\"2025-04-25T22:31:27.707Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9S1M-RBCE-C4N1\",\"content\":\"e tu \u00e9 pulta\",\"referMsg\":\"cala a boca que tu n\u00e3o e confi\u00e1vel NN KKKK \"},{\"date\":\"2025-04-25T22:31:28.226Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-9S5O-JCCE-C4N1\",\"content\":\"oi \"},{\"date\":\"2025-04-25T22:31:31.593Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9T02-BFEE-C4N1\",\"content\":\"oiii @\u019d\u03c7\u0199|guest \u270b\ud83d\ude04 bora animar essa resenha hein quem chega chegando merece aquele salve \ud83d\udd25\",\"referMsg\":\"AI Answer to: oi chat\"},{\"date\":\"2025-04-25T22:31:36.916Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9U9L-3LIE-C4N1\",\"content\":\"vc e viad\u00f8\",\"referMsg\":\"e tu \u00e9 pulta\"},{\"date\":\"2025-04-25T22:31:42.097Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-9VI4-BQAE-C4N1\",\"content\":\"eu sempre sou protetor, kakkaka\",\"referMsg\":\"a\u00ed vai o top 20 dos melhores em jogos da resenha \ud83c\udfae\ud83d\udd25\\n\\n1. @TioNoot. - mestre das jogadas  \\n2. @pqestataoserio2 - estrat\u00e9gico e r\u00e1pido  \\n3. @FC//Deyo - presen\u00e7a forte no game  \\n4. @_Jujubinha - sempre na vit\u00f3ria  \\n5. @$-sakura-$ - alto astral e skill top  \\n6. @Urano_Maastricht - protetor dos games  \\n7. @'-Wiliam-Afton-' - rimas e movimentos precisos  \\n8. @_-yRafa! - estilo e gameplay afiado  \\n9. @Arthurnx0_m - parceiro de todas as batalhas  \\n10. @zspeaker - anima\u00e7\u00e3o e skill combinados  \\n11. @Kazulixo! - for\u00e7a da galera nos games  \\n12. @_Zero_-_Two_(BR) - presen\u00e7a marcante  \\n13. @Tk'Haru - energia l\u00e1 em cima no jogo  \\n14. @pqestataoserio2 (repetindo porque \u00e9 fera)  \\n15. @Taldehelo - sempre no topo  \\n16. @\u029f\u1d0f\u029f\u1d0f_wolfzinha65 - jogadora com estilo  \\n17. @\u03c7\u03a5\u03c5zuha\u02d3\u02d1\u0323\u0357 - parceira fiel nas gameplays  \\n18. @pqestataoserio2 (duplo pra dominar \ud83d\udc51)  \\n19. @Urano_Maastricht (round 2, nunca sai do topo)  \\n20. @'-Wiliam-Afton-' (vers\u00e3o do game \ud83d\ude1c)\\n\\nquem mais quer colar nessa lista? \u270b\ud83c\udfae\"},{\"date\":\"2025-04-25T22:31:48.727Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A15T-S28E-C4N1\",\"content\":\"e voc\u00ea \u00e9 boyceta \",\"referMsg\":\"vc e viad\u00f8\"},{\"date\":\"2025-04-25T22:31:53.089Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A280-C68E-C4N1\",\"content\":\"cad\u00ea eu\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\",\"referMsg\":\"a\u00ed vai o top 20 dos melhores em jogos da resenha \ud83c\udfae\ud83d\udd25\\n\\n1. @TioNoot. - mestre das jogadas  \\n2. @pqestataoserio2 - estrat\u00e9gico e r\u00e1pido  \\n3. @FC//Deyo - presen\u00e7a forte no game  \\n4. @_Jujubinha - sempre na vit\u00f3ria  \\n5. @$-sakura-$ - alto astral e skill top  \\n6. @Urano_Maastricht - protetor dos games  \\n7. @'-Wiliam-Afton-' - rimas e movimentos precisos  \\n8. @_-yRafa! - estilo e gameplay afiado  \\n9. @Arthurnx0_m - parceiro de todas as batalhas  \\n10. @zspeaker - anima\u00e7\u00e3o e skill combinados  \\n11. @Kazulixo! - for\u00e7a da galera nos games  \\n12. @_Zero_-_Two_(BR) - presen\u00e7a marcante  \\n13. @Tk'Haru - energia l\u00e1 em cima no jogo  \\n14. @pqestataoserio2 (repetindo porque \u00e9 fera)  \\n15. @Taldehelo - sempre no topo  \\n16. @\u029f\u1d0f\u029f\u1d0f_wolfzinha65 - jogadora com estilo  \\n17. @\u03c7\u03a5\u03c5zuha\u02d3\u02d1\u0323\u0357 - parceira fiel nas gameplays  \\n18. @pqestataoserio2 (duplo pra dominar \ud83d\udc51)  \\n19. @Urano_Maastricht (round 2, nunca sai do topo)  \\n20. @'-Wiliam-Afton-' (vers\u00e3o do game \ud83d\ude1c)\\n\\nquem mais quer colar nessa lista? \u270b\ud83c\udfae\"},{\"date\":\"2025-04-25T22:31:55.878Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-A2TP-K96E-C4N1\",\"content\":\"Seu idiootaaa\"},{\"date\":\"2025-04-25T22:31:57.546Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A3AQ-KBAE-C4N1\",\"content\":\"j\u00e1 te colocaram no top 10 dos mais engra\u00e7ados porque resenha sem voc\u00ea n\u00e3o \u00e9 a mesma \u270b\ud83d\ude02 relaxa que aqui todo mundo \u00e9 importante na resenha \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: cad\u00ea eu\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\"},{\"date\":\"2025-04-25T22:31:58.310Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDS-A3GP-KCIE-C4N1\",\"content\":\"Lixopp\"},{\"date\":\"2025-04-25T22:31:58.404Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A3HH-4D4E-C4N1\",\"content\":\"vc n\u00e3o tem pai\",\"referMsg\":\"e voc\u00ea \u00e9 boyceta \"},{\"date\":\"2025-04-25T22:32:05.813Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A5BD-CLGE-C4N1\",\"content\":\"isso a\u00ed parceiro fiel sempre no topo \ud83d\udd25\ud83d\ude0e kkk bora continuar essa resenha on fire \u270b\",\"referMsg\":\"AI Answer to: eu sempre sou protetor, kakkaka\"},{\"date\":\"2025-04-25T22:32:05.840Z\",\"senderUserId\":\"5903493598\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A5BK-4LIE-C4N1\",\"content\":\"eu sempre sou o da Rima kkkkkkkk\",\"referMsg\":\"e voc\u00ea \u00e9 boyceta \"},{\"date\":\"2025-04-25T22:32:12.935Z\",\"senderUserId\":\"397326351\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A731-ST2E-C4N1\",\"content\":\"\u0454\u03c5 \u0454\u03b7\u0442\u0454\u03b7\u2202\u03c3 \u03b1 \u0455\u03c5\u03b1 \u2202\u03c3\u044f \ud83d\ude14\",\"referMsg\":\"cad\u00ea eu\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d\"},{\"date\":\"2025-04-25T22:32:14.221Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-A7D3-CUAE-C4N1\",\"content\":\"voc\u00ea n\u00e3o tem animal\",\"referMsg\":\"vc n\u00e3o tem pai\"},{\"date\":\"2025-04-25T22:32:26.856Z\",\"senderUserId\":\"2790328142\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-AAFQ-5AGE-C4N1\",\"content\":\"para eu tenho ss\",\"referMsg\":\"voc\u00ea n\u00e3o tem animal\"},{\"date\":\"2025-04-25T22:32:42.194Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:RcCmd\",\"messageUId\":\"CMDS-AE7K-DDME-C4N1\"},{\"date\":\"2025-04-25T22:32:55.593Z\",\"senderUserId\":\"6095963230\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-AHGA-E5SE-C4N1\",\"content\":\"Mnha dor \u00e9 outra man\ud83d\udc4e\",\"referMsg\":\"\u0454\u03c5 \u0454\u03b7\u0442\u0454\u03b7\u2202\u03c3 \u03b1 \u0455\u03c5\u03b1 \u2202\u03c3\u044f \ud83d\ude14\"},{\"date\":\"2025-04-25T22:33:00.006Z\",\"senderUserId\":\"6020966302\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-AIIP-MACE-C4N1\",\"content\":\"Ot\u00e1ria\",\"referMsg\":\"para eu tenho ss\"},{\"date\":\"2025-04-25T22:33:00.509Z\",\"senderUserId\":\"5903493598\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-AIMN-EAKE-C4N1\",\"content\":\"opaaaa akkakakakakakakakakakakakakakakkakakakakakkkkakk, quero caf\u00e9eeeeeee!\",\"referMsg\":\"isso a\u00ed parceiro fiel sempre no topo \ud83d\udd25\ud83d\ude0e kkk bora continuar essa resenha on fire \u270b\"}]}\nUser: opaaaa akkakakakakakakakakakakakakakakkakakakakakkkkakk, quero caf\u00e9eeeeeee!\nAssistant:"},{"assistant_initiates":false,"asst_text":"```json\n[\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Frittelle del imbuto\",\n    \"subtitle\": \"\",\n    \"description\": \"Una delizia popolare, soprattutto nelle regioni con influenza dei Pennsylvanian Dutch, le frittelle del imbuto offrono una combinazione piacevole di consistenze leggere, dolci e croccanti.\",\n    \"ingredients\": [\n      {\n        \"section\": \"Per la ricetta\",\n        \"ingredients\": [\n          \"uovo\",\n          \"(157 ml) latte scremato\",\n          \"(145 g) farina tipo 00\",\n          \"(26 g) zucchero\",\n          \"lievito in polvere senza sodio\",\n          \"(25 g) zucchero a velo\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Sbattere l'uovo insieme al latte.\",\n      \"In una ciotola separata, unire la farina, lo zucchero e il lievito in polvere. Aggiungere gradualmente il composto di uova agli ingredienti secchi, mescolando fino a ottenere una pastella liscia.\",\n      \"Scaldare circa 2,5 cm (1 pollice) di olio in una padella o friggitrice a 190\u00b0C (375\u00b0F, gas mark 5).\",\n      \"Coprire l'apertura inferiore di un imbuto con il pollice.\",\n      \"Versare la pastella nell'imbuto.\",\n      \"Rilasciare il pollice e versare la pastella nell'olio caldo con un movimento circolare, creando forme a spirale di circa 10 cm (4 pollici) di diametro per ogni frittella.\",\n      \"Friggere fino a doratura, quindi rimuovere dall'olio.\",\n      \"Spolverare le frittelle calde con zucchero a velo.\",\n      \"Servire immediatamente, ancora calde.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n```","behavior":"degenerate_repetition","conversation_hash":"4489b0938b497b96b96423b5fd16fdf7","conversation_redacted":false,"conversation_toxic":false,"country":"Canada","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"French","model":"gpt-4.1-mini-2025-04-14","n_chars":4183,"n_turns_in_conversation":1,"n_words":553,"source_row_offset":19714,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:05 GMT","turn_id":"907a1664edde7ccdd2a3da8a","turn_index":0,"user_text":"\n     Goal\n    Traduire toutes les valeurs textuelles pr\u00e9sentes dans une liste d\u2019objets d\u2019une recette de cuisine de en (ISO 639) vers it (ISO 639), en respectant le contexte culinaire.\n\n    Traduire pr\u00e9cis\u00e9ment les ingr\u00e9dients et termes culinaires pour qu'ils soient corrects dans la langue cible.\n    Maintenir la structure JSON intacte, en ne modifiant que les valeurs.\n    S\u2019assurer que les ingr\u00e9dients restent compr\u00e9hensibles et adapt\u00e9s \u00e0 la langue cible.\n\n    Return Format\n    Tu dois renvoyer une liste d\u2019objets sous la forme re\u00e7u.\n    - Chaque valeur doit \u00eatre correctement traduite en it.\n    - Les ingr\u00e9dients doivent \u00eatre adapt\u00e9s \u00e0 la langue cible.\n    - Aucune cl\u00e9 ne doit \u00eatre modifi\u00e9e.\n\n    Warnings\n    - Ne modifie pas la structure JSON, uniquement les valeurs textuelles.\n    - Fais attention aux ingr\u00e9dients : une mauvaise traduction peut alt\u00e9rer la compr\u00e9hension.\n    - Ne laisse aucune valeur non traduite.\n    - Ne renvoie que le JSON, sans explication.\n\n    Context Dump\n    Langue source : en (ISO 639)\n    Langue cible : it (ISO 639)\n    Donn\u00e9es \u00e0 traduire :\n\n    [\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Funnel Cakes\",\n    \"subtitle\": \"\",\n    \"description\": \"A popular treat, especially in regions with Pennsylvania Dutch influence, funnel cakes offer a delightful combination of light, sweet, and crispy textures.\",\n    \"ingredients\": [\n      {\n        \"section\": \"For the recipe\",\n        \"ingredients\": [\n          \"egg\",\n          \"(157 ml) skim milk\",\n          \"(145 g) all-purpose flour\",\n          \"(26 g) sugar\",\n          \"sodium-free baking powder\",\n          \"(25 g) confectioners' sugar\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Whisk the egg together with the milk.\",\n      \"In a separate bowl, combine the flour, sugar, and baking powder. Gradually add the egg mixture to the dry ingredients, whisking until a smooth batter forms.\",\n      \"Heat approximately 1 inch (2.5 cm) of oil in a skillet or deep fryer to 375\u00b0F (190\u00b0C, gas mark 5).\",\n      \"Cover the bottom opening of a funnel with your thumb.\",\n      \"Pour the batter into the funnel.\",\n      \"Release your thumb and drizzle the batter into the hot oil using a circular motion, creating spiral shapes about 4 inches (10 cm) in diameter for each cake.\",\n      \"Fry until golden brown, then remove from the oil.\",\n      \"Dust the warm funnel cakes with confectioners' sugar.\",\n      \"Serve immediately while still warm.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n\n    "},{"assistant_initiates":false,"asst_text":"JSON-LD \u2014 \u044d\u0442\u043e \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c **Google** \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f SEO \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0434\u0430\u0447\u0435. Google \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 JSON-LD \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442.\n\n---\n\n### \u0427\u0442\u043e \u043d\u0430\u0441\u0447\u0451\u0442 \u042f\u043d\u0434\u0435\u043a\u0441\u0430?\n\n- \u042f\u043d\u0434\u0435\u043a\u0441 \u0442\u0430\u043a\u0436\u0435 **\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 JSON-LD**, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432 \u0442\u0430\u043a\u043e\u043c \u0448\u0438\u0440\u043e\u043a\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435, \u043a\u0430\u043a Google.\n- \u0414\u043b\u044f \u042f\u043d\u0434\u0435\u043a\u0441\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 **\u043c\u0438\u043a\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0435** (\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 RDFa \u0438\u043b\u0438 Microdata).\n- \u041e\u0434\u043d\u0430\u043a\u043e, \u042f\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 JSON-LD, \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Product, Offer, Organization, BreadcrumbList) \u042f\u043d\u0434\u0435\u043a\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0438\u0437 JSON-LD.\n- \u0414\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u042f\u043d\u0434\u0435\u043a\u0441 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043c\u043e\u0436\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0435.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- **JSON-LD \u2014 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442**, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043e\u0437\u0434\u0430\u043d \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f Google.\n- **\u042f\u043d\u0434\u0435\u043a\u0441 \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442, \u043d\u043e \u0441 \u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0430\u043c\u0438** \u2014 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 JSON-LD \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043b\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440, \u043d\u043e \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u042f\u043d\u0434\u0435\u043a\u0441.\u0412\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440.\n- \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0438 JSON-LD, \u0438 \u043c\u0438\u043a\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0435/\u043c\u0438\u043a\u0440\u043e\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 (\u0434\u0432\u043e\u0439\u043d\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430), \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e.\n\n---\n\n### \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\n\n- \u0414\u0435\u043b\u0430\u0439\u0442\u0435 **JSON-LD** \u0434\u043b\u044f Google \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u043e\u0432.\n- \u0414\u043b\u044f \u0432\u0430\u0436\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u042f\u043d\u0434\u0435\u043a\u0441\u0435) \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043c\u0438\u043a\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0435 (RDFa \u0438\u043b\u0438 Microdata), \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e.\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043a\u0430\u043a \u0432 Google Rich Results Test, \u0442\u0430\u043a \u0438 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u0412\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440 (\u0441\u0435\u0440\u0432\u0438\u0441 \u00ab\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432\u00bb).\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0438\u043b\u0438 \u0434\u0430\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438, \u043a\u0430\u043a \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c JSON-LD \u0438 \u043c\u0438\u043a\u0440\u043e\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043e\u0431\u043e\u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u043e\u0432.","behavior":"degenerate_repetition","conversation_hash":"1778b77a84dcc13307b00ff0903f2fc4","conversation_redacted":false,"conversation_toxic":false,"country":"","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4.1-mini-2025-04-14","n_chars":251015,"n_turns_in_conversation":1,"n_words":27150,"source_row_offset":19715,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:06 GMT","turn_id":"5b301c727b73f40b4dd3fd91","turn_index":0,"user_text":"User: \n\nYou are given access to make searches on the Internet. The format for making a search is:\n1. After the user sends a message, you will decide whether to make a search. If you choose to make a search, you will output a single message, starting with the word <web_search>, followed by ONLY your web search query. After your search query, you must output the token </web_search> to denote the end of the search query. Keep your search query very concise.\n2. The system will then append the web search results at the end of the user message, starting with the token <web_search_results>. Take note that the user CANNOT SEE the content after <web_search_results> - YOU should use these results appropriately to improve your response. Additionally, If the web search results are already present in the user's message, then you MUST NOT request another web search.\n\nIMPORTANT! You should choose to search the web ONLY if ANY of the following circumstances are met:\n1. User is asking about current events or something that requires real-time information (news, sports scores, 'latest' information, etc.)\n2. User is asking about some term you are unfamiliar with (e.g. if it's a little-known term, if it's a person you don't know well, etc.)\n3. User is asking about anything that involves numerical facts (e.g. distances between places, population count, sizes, date and time, etc.)\n4. User explicitly asks you to search or provide links to references.\nIf the user's query does NOT require a web search, YOU MUST NEVER run one for no reason. However, you must not refuse to search the web if the user asks you to do so.\nIf you are highly unsure about whether to make a search (e.g. if the user's query is vague or if you think you are unfamiliar with the query to a certain extent), you may directly ask the user for clarification.\n\nWhen using web search results, you are encouraged to cite references where appropriate, using inline links in standard markdown format.\nYou are also allowed to make use of web search results from previous messages, if they are STRONGLY RELEVANT to the current message.\n\nWhen you are not running a web search, respond completely as per normal - there is NO NEED to mention that you're not searching. \nRemember that you MUST NOT make up any false information.\nAssistant: Understood. I will strictly follow these instructions in this conversation.\nUser: \u0441\u0434\u0435\u043b\u0430\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0444\u0438\u0434\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 yml import { Controller, Get, Res } from '@nestjs/common';\nimport { Response } from 'express';\nimport { CardsService } from 'src/cards/cards.service';\nimport { PrismaService } from 'src/prisma.service';\nimport { create } from 'xmlbuilder2';\nimport axios from 'axios';\n\n@Controller('api')\nexport class YandexFeedController {\n  constructor(\n    private readonly cardsService: CardsService,\n    private readonly prisma: PrismaService,\n  ) {}\n\n  @Get('yandex-feed')\n  async getYandexFeed(@Res() res: Response) {\n    const cards = await this.cardsService.getAllCards(\n      undefined,\n      undefined,\n      'active',\n      undefined,\n      0,\n      1000,\n    );\n\n    const ymlCatalog = {\n      yml_catalog: {\n        '@date': new Date().toISOString(),\n        shop: {\n          name: 'Rusoptom',\n          company: 'Rusoptom',\n          url: 'https://rusoptom.ru',\n\n          currencies: {\n            currency: { '@id': 'RUR', '@rate': 1 },\n          },\n\n          categories: [],\n\n          offers: {\n            offer: cards.map((card) => {\n              const item = card.preview;\n\n              return {\n                '@id': card.id,\n                '@available': card.status === 'active' ? 'true' : 'false',\n                url: item\n                  ? `https://rusoptom.ru/catalog/${card.id}`\n                  : 'https://rusoptom.ru/catalog',\n                price: item?.price || 0,\n                currencyId: 'RUR',\n                picture:\n                  `https://api.rusoptom.ru/files${item?.media?.[0]}` || '',\n                name: item?.name || `\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 #${card.id}`,\n                description: item?.description || '',\n              };\n            }),\n          },\n        },\n      },\n    };\n\n    const xml = create(ymlCatalog).end({ prettyPrint: true });\n    return xml;\n    // try {\n    //   await axios.post('https://market.yandex.ru/api/v2/feeds', xml, {\n    //     headers: {\n    //       'Content-Type': 'application/xml',\n    //       Authorization:\n    //         'Bearer y0__xCMx4CPAxi3qTcg54b09RJCBQuASyd3fFcNu9GhqhqzhYDD7g',\n    //     },\n    //   });\n\n    //   res.status(200).send('\u0424\u0438\u0434 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041c\u0430\u0440\u043a\u0435\u0442.');\n    // } catch (error) {\n    //   console.error('\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0444\u0438\u0434\u0430 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041c\u0430\u0440\u043a\u0435\u0442:', error);\n    //   res.status(500).send('\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0444\u0438\u0434\u0430 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041c\u0430\u0440\u043a\u0435\u0442.');\n    // }\n  }\n}\n\nAssistant:  \u0412\u0430\u0448\u0412\u0430\u0448 \u043a\u043e\u0434 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 YML-\u0444\u0438\u0434\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439, \u043d\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c YML-\u0444\u0438\u0434, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u042f\u043d\u0434\u0435\u043a\u0441.\u041c\u0430\u0440\u043a\u0435\u0442\u0430.\n\n\u0412\u043e\u0442 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 YML \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435:\n\n```typescript\nimport { Controller, Get, Res } from '@nestjs/common';\nimport { Response } from 'express';\nimport { CardsService } from 'src/cards/cards.service';\nimport { create } from 'xmlbuilder2';\n\n@Controller('api')\nexport class YandexFeedController {\n  constructor(private readonly cardsService: CardsService) {}\n\n  @Get('yandex-feed')\n  async getYandexFeed(@Res() res: Response) {\n    const cards = await this.cardsService.getAllCards(\n      undefined,\n      undefined,\n      'active',\n      undefined,\n      0,\n      1000,\n    );\n\n    // \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 (\u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443)\n    const categories = [\n      // \u041f\u0440\u0438\u043c\u0435\u0440: { '@id': '1', '#': '\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 1' }\n      // \u0415\u0441\u043b\u0438 \u0443 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a \u0435\u0441\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u044e\u0434\u0430 \u043b\u043e\u0433\u0438\u043a\u0443 \u0438\u0445 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n    ];\n\n    const ymlCatalog = {\n      yml_catalog: {\n        '@date': new Date().toISOString(),\n        shop: {\n          name: 'Rusoptom',\n          company: 'Rusoptom',\n          url: 'https://rusoptom.ru',\n          currencies: {\n            currency: { '@id': 'RUR', '@rate': '1' },\n          },\n          categories: {\n            category: categories,\n          },\n          offers: {\n            offer: cards.map((card) => {\n              const item = card.preview;\n\n              return {\n                '@id': card.id.toString(),\n                '@available': card.status === 'active' ? 'true' : 'false',\n                url: item\n                  ? `https://rusoptom.ru/catalog/${card.id}`\n                  : 'https://rusoptom.ru/catalog',\n                price: item?.price || 0,\n                currencyId: 'RUR',\n                picture:\n                  item?.media?.[0]\n                    ? `https://api.rusoptom.ru/files${item.media[0]}`\n                    : undefined,\n                name: item?.name || `\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 #${card.id}`,\n                description: item?.description || '',\n              };\n            }),\n          },\n        },\n      },\n    };\n\n    // \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u043f\u0443\u0441\u0442\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 categories, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0445 \u0442\u0435\u0433\u043e\u0432\n    if (categories.length === 0) {\n      delete ymlCatalog.yml_catalog.shop.categories;\n    }\n\n    // \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c XML \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c \u0434\u043b\u044f YML 1.0 (\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u042f\u043d\u0434\u0435\u043a\u0441.\u041c\u0430\u0440\u043a\u0435\u0442)\n    const xml = create(ymlCatalog).end({ prettyPrint: true });\n\n    // \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Content-Type \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0444\u0430\u0439\u043b\u0430\n    res.header('Content-Type', 'application/xml; charset=utf-8');\n    res.send(xml);\n  }\n}\n```\n\n### \u0427\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e:\n- \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 (\u0435\u0441\u043b\u0438 \u0438\u0445 \u043d\u0430\u0434\u043e \u2014 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c).\n- \u041f\u043e\u043b\u0435 `@id` \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u043a \u0441\u0442\u0440\u043e\u043a\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 XML.\n- \u041f\u043e\u043b\u0435 `picture` \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0445\u043e\u0442\u044c \u043e\u0434\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430.\n- \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 `categories` \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u0443\u0441\u0442.\n- \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a `Content-Type` \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c `application/xml`.\n- \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d \u0438\u043c\u043f\u043e\u0440\u0442 `PrismaService` \u0438 `axios`, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.\n- \u0423\u0431\u0440\u0430\u043d\u044b \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041c\u0430\u0440\u043a\u0435\u0442 \u0434\u043b\u044f \u044f\u0441\u043d\u043e\u0441\u0442\u0438.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0441 Yandex Market \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u043c\u0438.\nUser: \u043d\u0430\u0434\u043e \u0447\u0442\u043e\u0431 \u043e\u043d \u043c\u043d\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b \nAssistant:  \u0427\u0442\u043e\u0431\u044b\u0427\u0442\u043e\u0431\u044b \u0444\u0438\u0434 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u043f\u0440\u0438 \u0437\u0430\u0445\u043e\u0434\u0435 \u043d\u0430 endpoint, \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0442\u0432\u0435\u0442\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u0434\u0430\u0432\u0430\u043b XML-\u0444\u0430\u0439\u043b \u043a\u0430\u043a \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a `Content-Disposition` \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c `attachment` \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `yandex-feed.yml`.\n\n\u0412\u043e\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 `getYandexFeed` \u0441 \u0442\u0430\u043a\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439:\n\n```typescript\n@Get('yandex-feed')\nasync getYandexFeed(@Res() res: Response) {\n  const cards = await this.cardsService.getAllCards(\n    undefined,\n    undefined,\n    'active',\n    undefined,\n    0,\n    1000,\n  );\n\n  const categories = [];\n\n  const ymlCatalog = {\n    yml_catalog: {\n      '@date': new Date().toISOString(),\n      shop: {\n        name: 'Rusoptom',\n        company: 'Rusoptom',\n        url: 'https://rusoptom.ru',\n        currencies: {\n          currency: { '@id': 'RUR', '@rate': '1' },\n        },\n        categories: {\n          category: categories,\n        },\n        offers: {\n          offer: cards.map((card) => {\n            const item = card.preview;\n\n            return {\n              '@id': card.id.toString(),\n              '@available': card.status === 'active' ? 'true' : 'false',\n              url: item\n                ? `https://rusoptom.ru/catalog/${card.id}`\n                : 'https://rusoptom.ru/catalog',\n              price: item?.price || 0,\n              currencyId: 'RUR',\n              picture:\n                item?.media?.[0]\n                  ? `https://api.rusoptom.ru/files${item.media[0]}`\n                  : undefined,\n              name: item?.name || `\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 #${card.id}`,\n              description: item?.description || '',\n            };\n          }),\n        },\n      },\n    },\n  };\n\n  if (categories.length === 0) {\n    delete ymlCatalog.yml_catalog.shop.categories;\n  }\n\n  const xml = create(ymlCatalog).end({ prettyPrint: true });\n\n  res.header('Content-Type', 'application/xml; charset=utf-8');\n  res.header('Content-Disposition', 'attachment; filename=\"yandex-feed.yml\"');\n  res.send(xml);\n}\n```\n\n\u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 `/api/yandex-feed` \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0441 \u0438\u043c\u0435\u043d\u0435\u043c `yandex-feed.yml`.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0451 \u2014 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435!\nUser: \u0432\u043e\u0442 \u0442\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0439 \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0434\u0430 \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f. URL-\u0430\u0434\u0440\u0435\u0441 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0438\u0434\u0430 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441 \u0422\u043e\u0432\u0430\u0440\u044b.\nAssistant:  \u041f\u041f\u043e\u043d\u044f\u043b \u0432\u0430\u0448\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 YML-\u0444\u0438\u0434\u0430 \u0431\u044b\u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u044b \u043e\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u044b\u0434\u0430\u0432\u0430\u043b \u0431\u044b URL \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0444\u0438\u0434\u0430. \u0422\u043e \u0435\u0441\u0442\u044c:\n\n- \u041e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0438\u0441/\u043c\u043e\u0434\u0443\u043b\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0444\u0438\u0434 \u0432 \u0444\u0430\u0439\u043b (\u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442 \u0435\u0433\u043e \u0433\u0434\u0435-\u0442\u043e).\n- \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u044b\u0434\u0430\u0451\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0438\u0434.\n- \u041f\u043e \u044d\u0442\u043e\u043c\u0443 URL \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0430\u043c \u0444\u0430\u0439\u043b \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438.\n\n\u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0430 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430 \u0432 \u0432\u0430\u0448\u0435\u043c NestJS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438:\n\n---\n\n### 1. \u0421\u0435\u0440\u0432\u0438\u0441 `YandexFeedService` \u2014 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0444\u0438\u0434 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { CardsService } from 'src/cards/cards.service';\nimport { create } from 'xmlbuilder2';\nimport * as fs from 'fs/promises';\nimport * as path from 'path';\n\n@Injectable()\nexport class YandexFeedService {\n  constructor(private readonly cardsService: CardsService) {}\n\n  private readonly feedFileName = 'yandex-feed.yml';\n  private readonly feedFilePath = path.resolve('./feeds', this.feedFileName);\n\n  async generateFeed(): Promise<string> {\n    const cards = await this.cardsService.getAllCards(\n      undefined,\n      undefined,\n      'active',\n      undefined,\n      0,\n      1000,\n    );\n\n    const categories = []; // TODO: \u0435\u0441\u043b\u0438 \u043d\u0430\u0434\u043e \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c\n\n    const ymlCatalog = {\n      yml_catalog: {\n        '@date': new Date().toISOString(),\n        shop: {\n          name: 'Rusoptom',\n          company: 'Rusoptom',\n          url: 'https://rusoptom.ru',\n          currencies: {\n            currency: { '@id': 'RUR', '@rate': '1' },\n          },\n          categories: categories.length > 0 ? { category: categories } : undefined,\n          offers: {\n            offer: cards.map((card) => {\n              const item = card.preview;\n              return {\n                '@id': card.id.toString(),\n                '@available': card.status === 'active' ? 'true' : 'false',\n                url: item ? `https://rusoptom.ru/catalog/${card.id}` : 'https://rusoptom.ru/catalog',\n                price: item?.price || 0,\n                currencyId: 'RUR',\n                picture: item?.media?.[0] ? `https://api.rusoptom.ru/files${item.media[0]}` : undefined,\n                name: item?.name || `\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 #${card.id}`,\n                description: item?.description || '',\n              };\n            }),\n          },\n        },\n      },\n    };\n\n    // \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u043f\u0443\u0441\u0442\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 categories\n    if (!ymlCatalog.yml_catalog.shop.categories) {\n      delete ymlCatalog.yml_catalog.shop.categories;\n    }\n\n    const xml = create(ymlCatalog).end({ prettyPrint: true });\n\n    // \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0430\u043f\u043a\u0443 feeds, \u0435\u0441\u043b\u0438 \u0435\u0451 \u043d\u0435\u0442\n    await fs.mkdir(path.dirname(this.feedFilePath), { recursive: true });\n    await fs.writeFile(this.feedFilePath, xml, 'utf8');\n\n    return this.feedFileName; // \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0433 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c URL\n  }\n\n  getFeedFilePath(): string {\n    return this.feedFilePath;\n  }\n}\n```\n\n---\n\n### 2. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 `YandexFeedController` \u0441 \u0434\u0432\u0443\u043c\u044f \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430\u043c\u0438\n\n```typescript\nimport { Controller, Get, Res } from '@nestjs/common';\nimport { Response } from 'express';\nimport { YandexFeedService } from './yandex-feed.service';\nimport * as path from 'path';\n\n@Controller('api')\nexport class YandexFeedController {\n  constructor(private readonly yandexFeedService: YandexFeedService) {}\n\n  // \u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0444\u0438\u0434\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 URL \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f\n  @Get('yandex-feed/generate')\n  async generateFeed() {\n    const fileName = await this.yandexFeedService.generateFeed();\n    const downloadUrl = `/api/yandex-feed/download/${fileName}`;\n    return { url: downloadUrl };\n  }\n\n  // \u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0444\u0438\u0434\u0430\n  @Get('yandex-feed/download/:filename')\n  async downloadFeed(@Res() res: Response, @Param('filename') filename: string) {\n    const allowedFilename = 'yandex-feed.yml';\n    if (filename !== allowedFilename) {\n      return res.status(404).send('File not found');\n    }\n\n    const filePath = this.yandexFeedService.getFeedFilePath();\n\n    res.header('Content-Type', 'application/xml; charset=utf-8');\n    res.header('Content-Disposition', `attachment; filename=\"${allowedFilename}\"`);\n    res.sendFile(filePath);\n  }\n}\n```\n\n---\n\n### \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\n\n1. \u0412\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0435 `/api/yandex-feed/generate` \u2014 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u0435\u0436\u0438\u0439 \u0444\u0438\u0434 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442 \u0435\u0433\u043e \u0432 \u0444\u0430\u0439\u043b, \u0430 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442\u0434\u0430\u0441\u0442 JSON \u0441 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f:\n\n```json\n{\n  \"url\": \"/api/yandex-feed/download/yandex-feed.yml\"\n}\n```\n\n2. \u041f\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0444\u0438\u0434 (\u044d\u0442\u043e\u0442 URL \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u0422\u043e\u0432\u0430\u0440\u0430\u0445 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438).\n\n---\n\n### \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\n\n- \u041f\u0430\u043f\u043a\u0430 `feeds` \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0443\u0442\u044c \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b.\n- \u041c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u0444\u0430\u0439\u043b \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b \u0430\u043a\u0442\u0443\u0430\u043b\u0435\u043d.\n- \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.\n- \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0438\u0434\u0430.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.  \n\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435!\nUser: \u043f\u0430\u0440\u043e\u043b\u044c \u0441\u0432\u0430\u0433\u0433\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430 \u0437\u0430\u0434\u0430\u0439 import * as cookieParser from 'cookie-parser';\nimport { NestFactory } from '@nestjs/core';\nimport { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';\nimport * as express from 'express';\nimport { AppModule } from './app.module';\nimport rateLimit from 'express-rate-limit';\nimport helmet from 'helmet';\n\nasync function bootstrap() {\n  const isDev = process.env.NODE_ENV === 'development';\n\n  const app = await NestFactory.create(AppModule);\n\n  app.use(express.json({ limit: '20mb' }));\n  app.use(express.urlencoded({ limit: '20mb', extended: true }));\n\n  if (isDev) {\n    const config = new DocumentBuilder()\n      .setVersion('1.0')\n      .addBearerAuth({ type: 'http' })\n      .build();\n\n    const documentFactory = () =>\n      SwaggerModule.createDocument(app, config, {\n        operationIdFactory: (controllerKey, methodKey) => methodKey,\n      });\n\n    SwaggerModule.setup('api', app, documentFactory, {\n      jsonDocumentUrl: 'swagger/json',\n    });\n  }\n\n  const devOrigins = ['http://localhost:3000', 'http://192.168.50.146:3000'];\n  const prodOrigins = ['https://rusoptom.ru', 'https://seller.rusoptom.ru'];\n\n  const whitelist = isDev ? devOrigins : prodOrigins;\n\n  if (!isDev) {\n    app.use(rateLimit({ windowMs: 60 * 1000, max: 2000 }));\n    app.use(\n      helmet({\n        contentSecurityPolicy: {\n          directives: {\n            scriptSrc: [\"'self'\"],\n          },\n        },\n      }),\n    );\n  }\n\n  app.use(cookieParser());\n\n  app.enableCors({\n    origin: whitelist,\n    credentials: true,\n  });\n\n  await app.listen(process.env.PORT ?? 3001);\n}\nbootstrap();\n\nAssistant: \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0430 Swagger \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u0443\u044e HTTP-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e (Basic Auth) \u0447\u0435\u0440\u0435\u0437 middleware, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `express-basic-auth`.\n\n\u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0437\u0430\u0449\u0438\u0442\u0443 Swagger \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435:\n\n1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0430\u043a\u0435\u0442:\n\n```bash\nnpm install express-basic-auth\n```\n\n2. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0437\u0430\u0449\u0438\u0442\u0443 Swagger \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\n\n```typescript\nimport * as cookieParser from 'cookie-parser';\nimport { NestFactory } from '@nestjs/core';\nimport { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';\nimport * as express from 'express';\nimport * as basicAuth from 'express-basic-auth';\nimport { AppModule } from './app.module';\nimport rateLimit from 'express-rate-limit';\nimport helmet from 'helmet';\n\nasync function bootstrap() {\n  const isDev = process.env.NODE_ENV === 'development';\n\n  const app = await NestFactory.create(AppModule);\n\n  app.use(express.json({ limit: '20mb' }));\n  app.use(express.urlencoded({ limit: '20mb', extended: true }));\n\n  if (isDev) {\n    const config = new DocumentBuilder()\n      .setVersion('1.0')\n      .addBearerAuth({ type: 'http' })\n      .build();\n\n    const documentFactory = () =>\n      SwaggerModule.createDocument(app, config, {\n        operationIdFactory: (controllerKey, methodKey) => methodKey,\n      });\n\n    SwaggerModule.setup('api', app, documentFactory, {\n      jsonDocumentUrl: 'swagger/json',\n    });\n  } else {\n    // \u0412 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u043c swagger \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439\n    const swaggerUsername = process.env.SWAGGER_USER || 'admin';\n    const swaggerPassword = process.env.SWAGGER_PASSWORD || 'password';\n\n    app.use(\n      '/api',\n      basicAuth({\n        users: { [swaggerUsername]: swaggerPassword },\n        challenge: true,\n      }),\n    );\n\n    const config = new DocumentBuilder()\n      .setVersion('1.0')\n      .addBearerAuth({ type: 'http' })\n      .build();\n\n    const documentFactory = () =>\n      SwaggerModule.createDocument(app, config, {\n        operationIdFactory: (controllerKey, methodKey) => methodKey,\n      });\n\n    SwaggerModule.setup('api', app, documentFactory, {\n      jsonDocumentUrl: 'swagger/json',\n    });\n  }\n\n  const devOrigins = ['http://localhost:3000', 'http://192.168.50.146:3000'];\n  const prodOrigins = ['https://rusoptom.ru', 'https://seller.rusoptom.ru'];\n\n  const whitelist = isDev ? devOrigins : prodOrigins;\n\n  if (!isDev) {\n    app.use(rateLimit({ windowMs: 60 * 1000, max: 2000 }));\n    app.use(\n      helmet({\n        contentSecurityPolicy: {\n          directives: {\n            scriptSrc: [\"'self'\"],\n          },\n        },\n      }),\n    );\n  }\n\n  app.use(cookieParser());\n\n  app.enableCors({\n    origin: whitelist,\n    credentials: true,\n  });\n\n  await app.listen(process.env.PORT ?? 3001);\n}\nbootstrap();\n```\n\n---\n\n### \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\n\n- \u0412 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 (`NODE_ENV !== 'development'`) \u0434\u043e\u0441\u0442\u0443\u043f \u043a `/api` (swagger UI \u0438 json) \u0437\u0430\u0449\u0438\u0449\u0451\u043d \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439.\n- \u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f `SWAGGER_USER` \u0438 `SWAGGER_PASSWORD`.\n- \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 swagger \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0437\u0430\u0449\u0438\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 JWT \u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0435\u0442\u043e\u0434.\nUser: \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 500 \u0422\u041e\u041b\u042c\u041a\u041e \u041d\u0410 \u041f\u0420\u041e\u0414\u0415 next js import { getQueryClient } from \"@/src/api/api\";\nimport { fetchPageData } from \"./fetchPageData\";\nimport { Metadata } from \"next\";\n\ntype Props = {\n  title: string;\n  description: string;\n};\n\nexport async function generatePageMetadata({\n  title,\n  description,\n}: Props): Promise<Metadata> {\n  const queryClient = getQueryClient();\n  const { categories, cards, shops } = await fetchPageData(queryClient);\n  const categoriesKeywords = categories.map(({ name }) => name).join(\", \");\n  const cardsKeywords = cards\n    .map(({ preview }) => preview?.name)\n    .join(\", \")\n    .substring(0, 150)\n    .trim();\n\n  return {\n    keywords: `${categoriesKeywords}, ${cardsKeywords}, \u043e\u043f\u0442\u043e\u043c \u043a\u0443\u043f\u0438\u0442\u044c, \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441, \u043e\u043f\u0442\u043e\u043c`,\n    title,\n    description,\n    openGraph: {\n      title,\n      description,\n      siteName: \"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u0430\",\n      images: shops.map(({ logo }) => ({\n        url: process.env.NEXT_PUBLIC_FILES_URL + logo,\n        width: 1200,\n        height: 630,\n        alt: \"\u041b\u0443\u0447\u0448\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043f\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u044b\u043c \u0446\u0435\u043d\u0430\u043c\",\n      })),\n      type: \"website\",\n      locale: \"ru_RU\",\n    },\n    twitter: {\n      card: \"summary_large_image\",\n      title,\n      description,\n      images: categories.map(\n        ({ logo }) => process.env.NEXT_PUBLIC_FILES_URL + logo\n      ),\n    },\n    alternates: {\n      canonical: process.env.NEXT_PUBLIC_CLIENT_DOMAIN,\n    },\n    robots: \"index, follow\",\n  };\n}\nimport { getQueryClient } from \"@/src/api/api\";\nimport { dehydrate, HydrationBoundary } from \"@tanstack/react-query\";\nimport { Metadata } from \"next\";\nimport Banners from \"./_components/Banners\";\nimport Info from \"./_components/Info\";\nimport PopularCard from \"./_components/PopularCard\";\nimport Shops from \"./_components/Shops\";\nimport { generatePageMetadata } from \"./_helpers/generateMetaData\";\n\nexport const metadata: Metadata = await generatePageMetadata({\n  title: \"\u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043f\u043e \u043d\u0438\u0437\u043a\u0438\u043c \u0446\u0435\u043d\u0430\u043c - RUSOPTOM\",\n  description:\n    \"\u041b\u0443\u0447\u0448\u0438\u0435 \u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u044b \u0441 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438. \u041f\u0440\u044f\u043c\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0441\u043a\u0438\u0434\u043a\u0438 \u0434\u043e 60%, \u0432\u044b\u0433\u043e\u0434\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f!\",\n});\n\nconst Page = async () => {\n  const queryClient = getQueryClient();\n\n  const dehydratedState = dehydrate(queryClient);\n\n  return (\n    <HydrationBoundary state={dehydratedState}>\n      <div className=\"mt-2 flex flex-col gap-4\">\n        <h1 className=\"sr-only\">\u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043f\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u044b\u043c \u0446\u0435\u043d\u0430\u043c</h1>\n\n        <Banners />\n        <Shops />\n        <Info />\n        <PopularCard />\n      </div>\n    </HydrationBoundary>\n  );\n};\n\nexport default Page;\n\nAssistant: \u041e\u0448\u0438\u0431\u043a\u0430 500 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 Next.js, \u043f\u0440\u0438 \u0442\u043e\u043c \u0447\u0442\u043e \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0447\u0430\u0441\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 \u043f\u0440\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u043c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f.\n\n\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b:\n\n1. **\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 `metadata` \u0441 `await` \u0432 \u043a\u043e\u0440\u043d\u0435 \u0444\u0430\u0439\u043b\u0430.**\n\n\u0412 Next.js 13 (App Router) \u0430\u0442\u0440\u0438\u0431\u0443\u0442 `metadata` \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043b\u0438\u0431\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, \u043b\u0438\u0431\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u0430 \u043d\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0441 `await` \u043d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0438\u043c\u043f\u043e\u0440\u0442 \u0441 `await` \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0439 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435.\n\n**\u0420\u0435\u0448\u0435\u043d\u0438\u0435**: \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 `metadata` \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439:\n\n```ts\nexport async function generateMetadata(): Promise<Metadata> {\n  return generatePageMetadata({\n    title: \"\u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043f\u043e \u043d\u0438\u0437\u043a\u0438\u043c \u0446\u0435\u043d\u0430\u043c - RUSOPTOM\",\n    description:\n      \"\u041b\u0443\u0447\u0448\u0438\u0435 \u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u044b \u0441 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438. \u041f\u0440\u044f\u043c\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0441\u043a\u0438\u0434\u043a\u0438 \u0434\u043e 60%, \u0432\u044b\u0433\u043e\u0434\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f!\",\n  });\n}\n```\n\n\u0418 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0439\u0442\u0435 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 `metadata` \u0432 `generateMetadata`, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e `export const metadata` \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435:\n\n```ts\nexport const metadata = generateMetadata; // \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e export { generateMetadata }\n```\n\nNext.js \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0435.\n\n---\n\n2. **\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 `queryClient` \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u0441\u0442\u043e\u0440\u0435\u0434\u0436\u0435\u043c**\n\n\u0412\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0435:\n\n```ts\nconst queryClient = getQueryClient();\n```\n\n\u0430 \u043f\u043e\u0442\u043e\u043c:\n\n```ts\nconst { categories, cards, shops } = await fetchPageData(queryClient);\n```\n\n\u0415\u0441\u043b\u0438 `fetchPageData` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 API \u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 (\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f), \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430.\n\n\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e `fetchPageData` \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 API.\n\n---\n\n3. **\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f**\n\n\u0412 \u0432\u0430\u0448\u0435\u043c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f `process.env.NEXT_PUBLIC_FILES_URL` \u0438 `process.env.NEXT_PUBLIC_CLIENT_DOMAIN`.\n\n\u0412 \u0434\u0435\u0432\u0435 \u043e\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b, \u0430 \u0432 \u043f\u0440\u043e\u0434\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0438\u043c\u0435\u0442\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2014 \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c URL \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430.\n\n\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u043d\u044b \u0432 production \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438.\n\n---\n\n4. **\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a**\n\n\u0427\u0442\u043e\u0431\u044b \u0442\u043e\u0447\u043d\u0435\u0435 \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0443, \u043e\u0431\u0435\u0440\u043d\u0438\u0442\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 `generatePageMetadata`) \u0432 try/catch \u0438 \u043b\u043e\u0433\u0438\u0440\u0443\u0439\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n```ts\nexport async function generateMetadata(): Promise<Metadata> {\n  try {\n    return await generatePageMetadata({\n      title: \"\u0422\u0456\u0442\u043b\u0435\",\n      description: \"\u0414\u0435\u0441\u0446...\",\n    });\n  } catch (error) {\n    console.error('Metadata generation error:', error);\n    return {\n      title: '\u041e\u0448\u0438\u0431\u043a\u0430',\n      description: '\u041e\u0448\u0438\u0431\u043a\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445',\n    };\n  }\n}\n```\n\n---\n\n5. **\u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e**\n\nNext.js \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 500 \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \n\n\u0427\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0442\u0435\u043a \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u043f\u0440\u043e\u0434\u0435, \u043c\u043e\u0436\u043d\u043e:\n\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435).\n- \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 `NODE_ENV=production`.\n- \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 `export const metadata = await generatePageMetadata(...)` \u043d\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e `generateMetadata`.\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c env-\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u0440\u043e\u0434\u0435.\n- \u041e\u0431\u0435\u0440\u043d\u0438\u0442\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0432 `try/catch`.\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `fetchPageData`) \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0441\u0440\u0435\u0434\u0435 Node \u0431\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 API.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c.\nUser: \u043a\u0430\u043a \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u0445 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u0441\u0430\u0439\u0442\u0443 , \u0442\u0438\u043f \u0432 \u043f\u043e\u0438\u0441\u043a\u0435\nAssistant: \u0427\u0442\u043e\u0431\u044b \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Google) \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0432\u044b\u0434\u0430\u0447\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0430\u0441\u044c \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0430\u0439\u0442\u0443 \u2014 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u00ab\u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b \u0441 \u0431\u044b\u0441\u0442\u0440\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438\u00bb (sitelinks), \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0443 \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u0430\u0439\u0442\u0430 \u0438 \u0435\u0433\u043e \u0432\u0430\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b.\n\n\u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e:\n\n---\n\n### 1. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0447\u0435\u0442\u043a\u0443\u044e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u0441\u0430\u0439\u0442\u0430 \u0441 \u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439\n\n- \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0430\u0439\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u044b \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 `<nav>`, \u0441\u043f\u0438\u0441\u043a\u0438 `<ul>`, \u0441\u0441\u044b\u043b\u043a\u0438 `<a>` \u0441 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438.\n\n---\n\n### 2. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (Schema.org)\n\n- \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u0432\u0430\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b JSON-LD \u0441 \u0442\u0438\u043f\u043e\u043c [`SiteNavigationElement`](https://schema.org/SiteNavigationElement).\n- \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n```json\n<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"WebSite\",\n  \"url\": \"https://example.com/\",\n  \"potentialAction\": {\n    \"@type\": \"SearchAction\",\n    \"target\": \"https://example.com/search?q={search_term_string}\",\n    \"query-input\": \"required name=search_term_string\"\n  }\n}\n</script>\n\n<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"SiteNavigationElement\",\n  \"name\": \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n  \"url\": \"https://example.com/\"\n}\n</script>\n```\n\n- \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0438 \u0441\u0441\u044b\u043b\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443.\n\n---\n\n### 3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `sitemap.xml`\n\n- \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b \u043a\u0430\u0440\u0442\u044b \u0441\u0430\u0439\u0442\u0430 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u0441\u0442\u0440\u0430\u043d\u0438\u0446.\n- \u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 sitemap \u0432 Google Search Console \u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u0412\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440.\n\n---\n\n### 4. \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\n\n- \u041a\u0430\u0436\u0434\u0430\u044f \u0432\u0430\u0436\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 `<title>`, \u043c\u0435\u0442\u0430-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430.\n- \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432.\n\n---\n\n### 5. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u00ab\u0445\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438\u00bb (breadcrumb)\n\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `BreadcrumbList` \u0438\u0437 Schema.org \u0434\u043b\u044f \u0445\u043b\u0435\u0431\u043d\u044b\u0445 \u043a\u0440\u043e\u0448\u0435\u043a \u2014 \u043e\u043d\u0438 \u0447\u0430\u0441\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0438\u0441\u043a\u0435 \u0438 \u0443\u043b\u0443\u0447\u0448\u0430\u044e\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e.\n- \u041f\u0440\u0438\u043c\u0435\u0440:\n\n```json\n<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"BreadcrumbList\",\n  \"itemListElement\": [\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"name\": \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n      \"item\": \"https://example.com/\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"name\": \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n      \"item\": \"https://example.com/categories\"\n    }\n  ]\n}\n</script>\n```\n\n---\n\n### 6. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e\u0438\u0441\u043a\u0430 (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e)\n\n- \u0420\u0430\u0437\u043c\u0435\u0442\u044c\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e\u0438\u0441\u043a\u0430 \u043a\u0430\u043a `SearchAction` (\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0448\u0435).\n- \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u043f\u043e\u0438\u0441\u043a\u0430 Google (\u0444\u0443\u043d\u043a\u0446\u0438\u044f \u00ab\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0441\u0430\u0439\u0442\u0443\u00bb).\n\n---\n\n### 7. \u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0448\u0438\u0431\u043a\u0438 404\n\n- \u0427\u0438\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u0435\u0437 \u0431\u0438\u0442\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0438 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0434\u043e\u0432\u0435\u0440\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u043e\u0432.\n\n---\n\n### 8. \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 Google Search Console\n\n- \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435, \u043a\u0430\u043a\u0438\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b \u0432\u044b\u0434\u0430\u0451\u0442 Google.\n- \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n\u0421\u0430\u0439\u0442 \u0441 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u043e\u0439, \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 Schema.org \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439 \u0441\u0430\u0439\u0442\u0430 \u0447\u0430\u0449\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0432 \u0432\u044b\u0434\u0430\u0447\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b \u0441 \u0431\u044b\u0441\u0442\u0440\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043f\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u043c \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 JSON-LD-\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0438\u043b\u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 sitemap\nUser: \u0443 \u043c\u0435\u043d\u044f \u0441\u0430\u0439\u0442 \u043d\u0430 next js 15 , \u043a\u0443\u0434\u0430 \u0433\u0434\u0435 \u044d\u0442\u043e \u044e\u0437\u0430\u0442\u044c ? \nAssistant: \u0412 Next.js 13/14/15 \u0441 App Router \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (JSON-LD) \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 SEO-\u043c\u0435\u0442\u0430\u0442\u0435\u0433\u043e\u0432 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0444\u0430\u0439\u043b `app/layout.tsx` \u0438\u043b\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 `app/page.tsx` \u0438 `app/[...]/page.tsx` \u0441 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 `generateMetadata` \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 `<Head>` \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `<Script>`.\n\n---\n\n### \u041a\u0430\u043a \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c JSON-LD \u0434\u043b\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u0445\u043b\u0435\u0431\u043d\u044b\u0445 \u043a\u0440\u043e\u0448\u0435\u043a \u0432 Next.js 15 (App Router)\n\n1. **\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 JSON-LD \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 layout \u0438\u043b\u0438 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443**\n\n\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `app/layout.tsx` (\u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 layout) \u043b\u0438\u0431\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 page, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445.\n\n```tsx\n// app/layout.tsx\nimport './globals.css';\nimport { ReactNode } from 'react';\nimport Script from 'next/script';\n\nexport default function RootLayout({ children }: { children: ReactNode }) {\n  const siteUrl = 'https://example.com';\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    \"url\": siteUrl,\n    \"potentialAction\": {\n      \"@type\": \"SearchAction\",\n      \"target\": `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\"\n    }\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    \"itemListElement\": [\n      {\n        \"@type\": \"ListItem\",\n        \"position\": 1,\n        \"name\": \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        \"item\": siteUrl\n      },\n      {\n        \"@type\": \"ListItem\",\n        \"position\": 2,\n        \"name\": \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        \"item\": `${siteUrl}/categories`\n      },\n      // \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0441\u044e\u0434\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0441\u0430\u0439\u0442\u0430\n    ]\n  };\n\n  return (\n    <html lang=\"ru\">\n      <head>\n        {/* \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c JSON-LD \u0447\u0435\u0440\u0435\u0437 script \u0441 \u0442\u0438\u043f\u043e\u043c application/ld+json */}\n        <Script\n          id=\"site-navigation\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSiteNavigation) }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"breadcrumbs\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n          strategy=\"afterInteractive\"\n        />\n        {/* \u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 \u0438 \u0441\u0442\u0438\u043b\u0438 */}\n      </head>\n      <body>{children}</body>\n    </html>\n  );\n}\n```\n\n> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e `Script` \u0438\u0437 `next/script` \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u043d\u043e \u0434\u043b\u044f SEO-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0433\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c `dangerouslySetInnerHTML`.\n\n2. **\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 `generateMetadata` \u0441 SEO-\u0434\u0430\u043d\u043d\u044b\u043c\u0438**\n\n\u0414\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:\n\n```ts\n// app/page.tsx (\u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430)\nimport { Metadata } from 'next';\n\nexport async function generateMetadata(): Promise<Metadata> {\n  return {\n    title: '\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0430\u0439\u0442\u0430',\n    description: '\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u0430...',\n    keywords: '\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435, \u0441\u043b\u043e\u0432\u0430, \u0441\u0430\u0439\u0442\u0430',\n    // \u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435\n  };\n}\n\nexport default function Page() {\n  return <h1>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430</h1>;\n}\n```\n\n3. **\u041a\u0430\u0440\u0442\u0430 \u0441\u0430\u0439\u0442\u0430 (`sitemap.xml`)**\n\n- \u0412 Next.js \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 `app/sitemap.ts` (\u0438\u043b\u0438 \u0432\u043d\u0435 \u043f\u0430\u043f\u043a\u0438 app) \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e sitemap.\n- \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, [\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Next.js \u043f\u043e sitemap](https://nextjs.org/docs/app/building-your-application/routing/sitemap-routes) \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b.\n\n4. **\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f**\n\n- \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0435 JSON-LD \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 `layout.tsx`, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445.\n- \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043b\u044f sitemap \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0435\u0433\u043e \u0432 Google Search Console.\n- \u0414\u043b\u044f \u0445\u043b\u0435\u0431\u043d\u044b\u0445 \u043a\u0440\u043e\u0448\u0435\u043a \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e JSON-LD \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439/\u0442\u043e\u0432\u0430\u0440\u043e\u0432.\n \u25cf\nUser: \u0432\u043e\u0442 \u043c\u043e\u0439 \u0440\u0443\u0442 \u043b\u0435\u0439\u0430\u0443\u0442 , \u043e\u043d \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442? import { GoogleAnalytics } from \"@next/third-parties/google\";\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\nimport { Viewport } from \"next\";\nimport { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport fs from \"fs\";\nimport path from \"path\";\n\nexport const runtime = \"nodejs\";\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\nexport const metadata = {\n  title: \"RusOptom - \u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043f\u043e \u043d\u0438\u0437\u043a\u0438\u043c \u0446\u0435\u043d\u0430\u043c\",\n  icons: {\n    icon: \"/favicon.ico\",\n  },\n};\n\nexport const viewport: Viewport = {\n  width: \"device-width\",\n  initialScale: 1,\n  maximumScale: 1,\n  userScalable: false,\n};\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  return (\n    <html lang=\"ru\">\n      <body className={`${montserrat.className}`}>\n        <div\n          dangerouslySetInnerHTML={{ __html: sprite }}\n          style={{ display: \"none\" }}\n        />\n\n        <Providers>\n          {ext}\n          {host === \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host === \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n      </body>\n      <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n    </html>\n  );\n};\n\nexport default RootLayout;\n\nAssistant: \u0412\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 `RootLayout` \u0432 \u0446\u0435\u043b\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 JSON-LD \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 \u0445\u043b\u0435\u0431\u043d\u044b\u0445 \u043a\u0440\u043e\u0448\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u0441 \"\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u0441\u0430\u0439\u0442\u0443\" (sitelinks).  \n\n### \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e JSON-LD:\n\n1. \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 `Script` \u0438\u0437 `next/script`.\n2. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 `<head>`, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f `dangerouslySetInnerHTML`.\n3. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043e `RootLayout` \u0443 \u0432\u0430\u0441 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e.\n\n---\n\n### \u041a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432 \u0432\u0430\u0448 `RootLayout`\n\n```tsx\nimport Script from 'next/script';\n// ... \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u044b \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  const siteUrl = `https://${host || 'rusoptom.ru'}`;\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    \"url\": siteUrl,\n    \"potentialAction\": {\n      \"@type\": \"SearchAction\",\n      \"target\": `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    \"itemListElement\": [\n      {\n        \"@type\": \"ListItem\",\n        \"position\": 1,\n        \"name\": \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        \"item\": siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        \"position\": 2,\n        \"name\": \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        \"item\": `${siteUrl}/catalog`,\n      },\n      // \u041c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b\n    ],\n  };\n\n  return (\n    <html lang=\"ru\">\n      <head>\n        {/* \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442\u044b */}\n        <Script\n          id=\"site-navigation\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSiteNavigation) }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"breadcrumb\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n          strategy=\"afterInteractive\"\n        />\n      </head>\n      <body className={`${montserrat.className}`}>\n        <div\n          dangerouslySetInnerHTML={{ __html: sprite }}\n          style={{ display: \"none\" }}\n        />\n\n        <Providers>\n          {ext}\n          {host === \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host === \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n```\n\n---\n\n### \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0432\u0435\u0442\u043e\u0432:\n\n- \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0432 `BreadcrumbList` \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u0438 (\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0442.\u043f.) \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 `layout` \u0438\u043b\u0438 `page`-\u0444\u0430\u0439\u043b\u0430\u0445, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435.\n- \u0414\u043b\u044f sitemap \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 `/sitemap.xml` (Next.js \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e Sitemap).\n- \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0430\u0439\u0442\u0435\u0441\u044c \u043a\u0430\u0440\u0442\u0443 \u0441\u0430\u0439\u0442\u0430 \u0432 Google Search Console \u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u0412\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440 \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u043b\u0435\u0431\u043d\u044b\u0445 \u043a\u0440\u043e\u0448\u0435\u043a \u0438\u043b\u0438 sitemap \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e Next.js 15 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\nUser: \u043a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0435\u0442 \u0438\u043b\u0438 \u043d\u0435\u0442\nAssistant: \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e JSON-LD-\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0432\u0430\u0448 Next.js \u0441\u0430\u0439\u0442, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0438\u0445 \u0432\u0438\u0434\u044f\u0442, \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:\n\n---\n\n### 1. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b Google\n\n#### \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (Rich Results Test)\n- \u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: https://search.google.com/test/rich-results\n- \u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u043b\u0430\u0432\u043d\u043e\u0439) \u0438\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 HTML-\u043a\u043e\u0434 \u0441 \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n- \u041d\u0430\u0436\u043c\u0438\u0442\u0435 **Test URL** \u0438\u043b\u0438 **Test Code**.\n- \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043b \u043b\u0438 Google JSON-LD, \u043d\u0435\u0442 \u043b\u0438 \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0439\u0434\u0435\u043d\u044b.\n\n#### \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 (URL Inspection Tool) \u0432 Google Search Console\n- \u0412 Google Search Console \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0448 \u0441\u0430\u0439\u0442.\n- \u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c.\n- \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0451\u0442 \u043b\u0438 Google \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0435\u0439.\n\n---\n\n### 2. \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b\n\n- \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.\n- \u041d\u0430\u0436\u043c\u0438\u0442\u0435 **Ctrl+U** (\u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u043d\u044e \u2014 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b).\n- \u041d\u0430\u0439\u0434\u0438\u0442\u0435 `<script type=\"application/ld+json\">`.\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e JSON-LD \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u043c.\n\n---\n\n### 3. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\n\n- \u0414\u043b\u044f Chrome \u0435\u0441\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, **Structured Data Testing Tool** \u0438\u043b\u0438 **SEO Meta in 1 Click**, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u043a\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.\n- \u0412 Chrome DevTools \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043a\u0430\u0442\u044c JSON-LD \u0432 `<head>`.\n\n---\n\n### 4. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043b\u043e\u0433\u043e\u0432 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a Next.js\n\n- \u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043b\u043e\u0433\u043e\u0432.\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435\u0442 \u043e\u0448\u0438\u0431\u043e\u043a, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0432\u0441\u0442\u0430\u0432\u043a\u043e\u0439 JSON-LD.\n\n---\n\n### 5. \u041f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438\n\n- \u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0430\u0439\u0442\u0430 \u0446\u0432\u0435\u0442\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u0432\u044b\u0434\u0430\u0447\u0430 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e.\n- \u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 Google Search \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b \u0441 \u0445\u043b\u0435\u0431\u043d\u044b\u043c\u0438 \u043a\u0440\u043e\u0448\u043a\u0430\u043c\u0438 \u0438 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439, \u0435\u0441\u043b\u0438 \u0441\u0430\u0439\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d.\n\n---\n\n### \u0420\u0435\u0437\u044e\u043c\u0435\n\n1. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 [Google Rich Results Test](https://search.google.com/test/rich-results) \u0441 \u0432\u0430\u0448\u0438\u043c URL.\n2. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 JSON-LD.\n3. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 URL \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.\n4. \u041e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044e \u0438 \u043e\u0442\u0447\u0451\u0442\u044b \u0432 Google Search Console.\n\n\u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0435 Google \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0438\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043a\u0438 JSON-LD (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0438\u043f \u043a\u0430\u0432\u044b\u0447\u0435\u043a, \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c JSON, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435).\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u043b\u0438 JSON-LD!\nUser: \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c search snippet\nAssistant: \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0443\u044e \u0432\u044b\u0434\u0430\u0447\u0443 \u00absearch snippet\u00bb \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0430\u0439\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u0432\u0430\u0448\u0435\u043c\u0443 \u0441\u0430\u0439\u0442\u0443 (\u043a\u0430\u043a \u0443 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 Google, Wikipedia \u0438 \u0434\u0440.), \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0442\u0438\u043f\u043e\u043c **SearchAction** \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 [Schema.org](https://schema.org/SearchAction).\n\n\u0412 \u0432\u0430\u0448\u0435\u043c Next.js (App Router) \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 `<head>`.\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 JSON-LD \u0434\u043b\u044f Search Snippet\n\n```json\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"WebSite\",\n  \"url\": \"https://example.com/\",\n  \"potentialAction\": {\n    \"@type\": \"SearchAction\",\n    \"target\": \"https://example.com/search?q={search_term_string}\",\n    \"query-input\": \"required name=search_term_string\"\n  }\n}\n```\n\n\u0417\u0434\u0435\u0441\u044c:\n- `url` \u2014 \u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430.\n- `target` \u2014 \u0430\u0434\u0440\u0435\u0441, \u043a\u0443\u0434\u0430 \u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0437\u0430\u043f\u0440\u043e\u0441. `{search_term_string}` \u2014 \u043f\u043b\u0435\u0439\u0441\u0445\u043e\u043b\u0434\u0435\u0440 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430.\n- `query-input` \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d.\n\n---\n\n### \u041a\u0430\u043a \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 Next.js 15 (App Router)\n\n\u0412 \u0432\u0430\u0448\u0435\u043c \u0440\u0443\u0442\u043e\u0432\u043e\u043c layout \u0438\u043b\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 `app/layout.tsx` \u0438\u043b\u0438 \u0432 `app/page.tsx`) \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u044d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `<Script>`:\n\n```tsx\nimport Script from 'next/script';\n\nexport default function RootLayout({ children }: { children: React.ReactNode }) {\n  const siteUrl = 'https://example.com';\n\n  const jsonLdSearch = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    \"url\": siteUrl,\n    \"potentialAction\": {\n      \"@type\": \"SearchAction\",\n      \"target\": `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  return (\n    <html lang=\"ru\">\n      <head>\n        <Script\n          id=\"search-snippet\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSearch) }}\n          strategy=\"afterInteractive\"\n        />\n      </head>\n      <body>{children}</body>\n    </html>\n  );\n}\n```\n\n*\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 `https://example.com` \u0438 \u043f\u0443\u0442\u044c `/search` \u043d\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430.*\n\n---\n\n### \u0412\u0430\u0436\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b\n\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0430\u044f \u0432 `target` (`/search`), \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 GET-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `q` \u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c.\n- Google \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u0435 \u2014 \u044d\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0435\u043f\u0443\u0442\u0430\u0446\u0438\u0438 \u0441\u0430\u0439\u0442\u0430, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432.\n- \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 [Google Rich Results Test](https://search.google.com/test/rich-results).\n- \u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 sitemap \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u044d\u0442\u0438\u043c JSON-LD \u0432 Google Search Console, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044e.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0430\u0448 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 search snippet.\nUser: \u0434\u043e\u0431\u0430\u0432\u044c \u0441\u044e\u0434\u0430 import { GoogleAnalytics } from \"@next/third-parties/google\";\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\nimport { Viewport } from \"next\";\nimport { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport Script from \"next/script\";\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  const siteUrl = `https://rusoptom.ru`;\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    itemListElement: [\n      {\n        \"@type\": \"ListItem\",\n        position: 1,\n        name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        item: siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        position: 2,\n        name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        item: `${siteUrl}/catalog`,\n      },\n    ],\n  };\n\n  return (\n    <html lang=\"ru\">\n      <head>\n        <Script\n          id=\"site-navigation\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSiteNavigation),\n          }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"breadcrumb\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n          strategy=\"afterInteractive\"\n        />\n      </head>\n      <body className={`${montserrat.className}`}>\n        <div\n          dangerouslySetInnerHTML={{ __html: sprite }}\n          style={{ display: \"none\" }}\n        />\n\n        <Providers>\n          {ext}\n          {host !== \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host === \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n\nAssistant: \u0412\u043e\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u0430\u0448\u0435\u0433\u043e `RootLayout` \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c JSON-LD \u0434\u043b\u044f search snippet (SearchAction) \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a `<head>`:\n\n```tsx\nimport { GoogleAnalytics } from \"@next/third-parties/google\";\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\nimport { Viewport } from \"next\";\nimport { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport Script from \"next/script\";\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  const siteUrl = `https://rusoptom.ru`;\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    itemListElement: [\n      {\n        \"@type\": \"ListItem\",\n        position: 1,\n        name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        item: siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        position: 2,\n        name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        item: `${siteUrl}/catalog`,\n      },\n    ],\n  };\n\n  // \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c JSON-LD \u0441 SearchAction \u0434\u043b\u044f search snippet\n  const jsonLdSearchSnippet = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  return (\n    <html lang=\"ru\">\n      <head>\n        <Script\n          id=\"site-navigation\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSiteNavigation),\n          }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"breadcrumb\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"search-snippet\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSearchSnippet) }}\n          strategy=\"afterInteractive\"\n        />\n      </head>\n      <body className={`${montserrat.className}`}>\n        <div\n          dangerouslySetInnerHTML={{ __html: sprite }}\n          style={{ display: \"none\" }}\n        />\n\n        <Providers>\n          {ext}\n          {host !== \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host === \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n```\n\n---\n\n### \u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f\n\n- \u042f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0431\u043b\u043e\u043a `jsonLdSearchSnippet`, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 Search Snippet.\n- \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 `jsonLdSiteNavigation` (\u0447\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u2014 SearchAction \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u044c WebSite), \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c, \u043d\u043e \u044f \u0432\u044b\u043d\u0435\u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438.\n- \u0412\u0441\u0435 \u0442\u0440\u0438 JSON-LD \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441 \u0442\u0438\u043f\u043e\u043c `application/ld+json` \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `<Script>` \u0438\u0437 `next/script`.\n- `strategy=\"afterInteractive\"` \u2013 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u0434\u043b\u044f SEO-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.\n- \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u0443\u0442\u044c `/search` \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `q` \u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c.\n- \u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u043f\u043b\u043e\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u043d\u0430 https://search.google.com/test/rich-results\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f JSON-LD (`site-navigation` \u0438\u043b\u0438 `search-snippet`) \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0442 \u0436\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0431\u043b\u043e\u043a `jsonLdSiteNavigation` \u0441 \u043f\u043e\u043b\u0435\u043c `potentialAction`.\nUser: \u0438 \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u0441\u043d\u0438\u0437\u0443 \u043f\u043e\u0434 \u0441\u0430\u0439\u0442\u043e\u043c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \nAssistant: \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434 \u0441\u0430\u0439\u0442\u043e\u043c (\u0432\u043d\u0438\u0437\u0443, \u0432 \u0444\u0443\u0442\u0435\u0440\u0435) \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0430\u0436\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u0446\u0435\u043b\u044c\u044e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438 SEO (\u0430 \u0442\u0430\u043a\u0436\u0435 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u044d\u0442\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438 \u043c\u043e\u0433\u043b\u0438 \u0438\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c), \u043d\u0443\u0436\u043d\u043e:\n\n---\n\n### 1. \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0444\u0443\u0442\u0435\u0440 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0444\u0443\u0442\u0435\u0440\u0430 \u0441 \u0432\u0430\u0436\u043d\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438:\n\n```tsx\n// components/Footer.tsx\nimport Link from 'next/link';\n\nexport default function Footer() {\n  return (\n    <footer style={{ padding: '20px', borderTop: '1px solid #ccc', marginTop: 'auto' }}>\n      <nav aria-label=\"\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \u0441\u0430\u0439\u0442\u0430\">\n        <ul style={{ display: 'flex', gap: '20px', listStyle: 'none', padding: 0, margin: 0 }}>\n          <li><Link href=\"/catalog\">\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0442\u043e\u0432\u0430\u0440\u043e\u0432</Link></li>\n          <li><Link href=\"/about\">\u041e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438</Link></li>\n          <li><Link href=\"/contact\">\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b</Link></li>\n          <li><Link href=\"/delivery\">\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0438 \u043e\u043f\u043b\u0430\u0442\u0430</Link></li>\n          <li><Link href=\"/faq\">\u0412\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b</Link></li>\n        </ul>\n      </nav>\n      <p style={{ marginTop: '10px', fontSize: '12px', color: '#666' }}>\n        &copy; 2024 RusOptom. \u0412\u0441\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u044b.\n      </p>\n    </footer>\n  );\n}\n```\n\n---\n\n### 2. \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0432\u0430\u0448 RootLayout\n\n\u0412 \u0432\u0430\u0448\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c `RootLayout` \u043f\u043e\u0441\u043b\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0444\u0443\u0442\u0435\u0440:\n\n```tsx\nimport Footer from '@/components/Footer';\n\n// \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 RootLayout \u0432 jsx, \u043f\u0435\u0440\u0435\u0434 </body>\n\n<Providers>\n  {ext}\n  {host !== \"rusoptom.ru\" && client}\n  <div style={{ display: \"none\" }}>{children}</div>\n  {host === \"seller.rusoptom.ru\" && seller}\n  <Footer />\n</Providers>\n```\n\n---\n\n### 3. \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0441\u0441\u044b\u043b\u043e\u043a (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, SEO)\n\n\u0412 \u0444\u0443\u0442\u0435\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c Schema.org \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443.\n\n\u041f\u0440\u0438\u043c\u0435\u0440 JSON-LD \u0441 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438:\n\n```tsx\nimport Script from 'next/script';\n\nconst jsonLdFooterNav = {\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"ItemList\",\n  \"itemListElement\": [\n    {\n      \"@type\": \"SiteNavigationElement\",\n      \"name\": \"\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0442\u043e\u0432\u0430\u0440\u043e\u0432\",\n      \"url\": \"https://rusoptom.ru/catalog\"\n    },\n    {\n      \"@type\": \"SiteNavigationElement\",\n      \"name\": \"\u041e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438\",\n      \"url\": \"https://rusoptom.ru/about\"\n    },\n    {\n      \"@type\": \"SiteNavigationElement\",\n      \"name\": \"\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b\",\n      \"url\": \"https://rusoptom.ru/contact\"\n    },\n    {\n      \"@type\": \"SiteNavigationElement\",\n      \"name\": \"\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0438 \u043e\u043f\u043b\u0430\u0442\u0430\",\n      \"url\": \"https://rusoptom.ru/delivery\"\n    },\n    {\n      \"@type\": \"SiteNavigationElement\",\n      \"name\": \"\u0412\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b\",\n      \"url\": \"https://rusoptom.ru/faq\"\n    }\n  ]\n};\n```\n\n\u0418 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u044d\u0442\u043e\u0442 JSON-LD \u0432 `<head>` \u0432\u0430\u0448\u0435\u0433\u043e `RootLayout`:\n\n```tsx\n<Script\n  id=\"footer-navigation\"\n  type=\"application/ld+json\"\n  dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdFooterNav) }}\n  strategy=\"afterInteractive\"\n/>\n```\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u0444\u0443\u0442\u0435\u0440 \u0441\u0430\u0439\u0442\u0430.\n- \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 aria-\u043c\u0435\u0442\u043a\u0438 \u0438 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 HTML \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438.\n- \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u2014 JSON-LD \u0434\u043b\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0432 `<head>`.\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438.\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0447\u0435\u0440\u0435\u0437 Google Rich Results Test \u0438 Google Search Console.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u0441\u0442\u0438\u043b\u044f\u043c\u0438, \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.\nUser: \u0434\u0430 \u0431\u043b\u044f\u0442\u044c \u0441\u0443\u043a\u0430 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u0445 \u0441\u0441\u044b\u043b\u043a\u0438 \nAssistant: \u041f\u043e\u043d\u044f\u043b, \u0440\u0435\u0447\u044c \u043f\u0440\u043e \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0434\u0430\u0447\u0435 \u043f\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u043c \u0441\u0430\u0439\u0442\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c **\u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438** (sitelinks) \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0430\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0441\u0430\u0439\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f Google \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438.\n\n---\n\n### \u041a\u0440\u0430\u0442\u043a\u043e, \u043a\u0430\u043a \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f sitelinks \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430:\n\n1. **\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u0441\u0430\u0439\u0442\u0430**  \n   \u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0441\u0430\u0439\u0442\u0430:  \n   - \u0427\u0451\u0442\u043a\u043e\u0435 \u043c\u0435\u043d\u044e \u0441 \u0433\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u043c\u0438.  \n   - \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c HTML `<a href=...>` (\u043d\u0435 \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0432 JS).  \n   - \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e \u0441\u0432\u043e\u0438\u043c URL.\n\n2. **\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 Sitemap (\u043a\u0430\u0440\u0442\u044b \u0441\u0430\u0439\u0442\u0430)**  \n   \u0412 sitemap.xml \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u0441\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0432 Google Search Console \u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u0412\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440.\n\n3. **Breadcrumbs \u2014 \u0445\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438**  \n   \u0425\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432.  \n   \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0438\u0445 \u043a\u0430\u043a \u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 JSON-LD \u0441 \u0442\u0438\u043f\u043e\u043c `BreadcrumbList`.\n\n4. **\u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u043c\u0435\u043d\u044e \u0438 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u0441 Schema.org**  \n   \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 JSON-LD \u0441 \u0442\u0438\u043f\u043e\u043c `SiteNavigationElement` \u0438/\u0438\u043b\u0438 `ItemList` \u0434\u043b\u044f \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044e \u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a.  \n   \u041f\u0440\u0438\u043c\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432 `<head>`.\n\n5. **\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446**  \n   \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 (`<title>`) \u0438 \u043c\u0435\u0442\u0430-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0447\u0451\u0442\u043a\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n\n6. **\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438**  \n   \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u043d\u0435\u0442 404, \u043d\u0435\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0432, \u043d\u0435\u0442 \u0434\u0443\u0431\u043b\u0435\u0439 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u043c.\n\n7. **\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442 \u0441\u0430\u0439\u0442\u0430**  \n   \u041f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 sitelinks \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u043c \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u2014 \u044d\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0431\u0435\u0437 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438.\n\n---\n\n### \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c sitelinks?\n\n**\u041d\u0435\u0442, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u2014 \u043d\u0435\u0442.** Google \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 sitelinks \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0441\u0430\u0439\u0442\u0430 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n\u041e\u0434\u043d\u0430\u043a\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435:\n\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Google Search Console, \u0447\u0442\u043e\u0431\u044b **\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0442\u044c** \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u0437 sitelinks (\u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u00ab\u0421\u0441\u044b\u043b\u043a\u0438 \u0441\u0430\u0439\u0442\u0430\u00bb \u2192 \u00ab\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 sitelinks\u00bb \u2014 \u0445\u043e\u0442\u044f \u044d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d).\n\n- \u0423\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0441\u0430\u0439\u0442\u0430 (\u0441\u043c. \u0432\u044b\u0448\u0435), \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a \u043b\u0435\u0433\u0447\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043b \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f sitelinks.\n\n---\n\n### \u0418\u0442\u043e\u0433: \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0435\u0439\u0447\u0430\u0441?\n\n1. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430 (\u043c\u0435\u043d\u044e, \u0441\u0441\u044b\u043b\u043a\u0438, \u0445\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438).  \n2. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u043a\u0430\u0440\u0442\u0443 \u0441\u0430\u0439\u0442\u0430 (sitemap.xml).  \n3. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 JSON-LD \u0441 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439 \u0438 \u0445\u043b\u0435\u0431\u043d\u044b\u043c\u0438 \u043a\u0440\u043e\u0448\u043a\u0430\u043c\u0438.  \n4. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f.  \n5. \u041f\u043e\u0434\u0430\u0439\u0442\u0435 \u0441\u0430\u0439\u0442 \u0432 Google Search Console \u0438 \u0441\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u043e\u0442\u0447\u0435\u0442\u0430\u043c\u0438.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u0438 \u0434\u0430\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.  \n\u041d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c \u2014 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 sitelinks \u2014 \u044d\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430, \u0438 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0435\u0442.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u043f\u043e\u043c\u043e\u0449\u044c \u0432 SEO \u2014 \u043f\u0438\u0448\u0438\u0442\u0435!\nUser: \u0432\u043e\u0442 \u0441\u0441\u044b\u043b\u043a\u0430 https://rusoptom.ru/\nAssistant: \u0414\u043b\u044f \u0441\u0430\u0439\u0442\u0430 https://rusoptom.ru/ \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a (sitelinks) \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0434\u0430\u0447\u0435 \u2014 \u044d\u0442\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u0434\u0430.\n\n### \u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u043e\u0432\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a:\n\n1. **\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e:**\n   - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0430\u0436\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b (`\u041a\u0430\u0442\u0430\u043b\u043e\u0433`, `\u041e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438`, `\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b` \u0438 \u0442.\u0434.) \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 `<a href>` \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438.\n   - \u041c\u0435\u043d\u044e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (\u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 JS).\n\n2. **\u0425\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438:**\n   - \u041e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 (\u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u043f\u043e UX), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 `BreadcrumbList` \u0432 JSON-LD, \u043a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438.\n\n3. **\u041a\u0430\u0440\u0442\u0430 \u0441\u0430\u0439\u0442\u0430 (sitemap.xml):**\n   - \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 https://rusoptom.ru/sitemap.xml \u0438\u043b\u0438 `/sitemap.xml` \u0431\u044b\u043b\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0441\u0430\u0439\u0442\u0430 \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446.\n   - \u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 sitemap \u0432 Google Search Console \u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u0412\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440.\n\n4. **\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:**\n   - \u0412 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c layout \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 `SiteNavigationElement`, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0440\u0430\u043d\u0435\u0435.\n   - JSON-LD \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u043c\u0435\u043d\u044e:\n\n   ```json\n   {\n     \"@context\": \"https://schema.org\",\n     \"@type\": \"ItemList\",\n     \"itemListElement\": [\n       {\n         \"@type\": \"SiteNavigationElement\",\n         \"name\": \"\u041a\u0430\u0442\u0430\u043b\u043e\u0433\",\n         \"url\": \"https://rusoptom.ru/catalog\"\n       },\n       {\n         \"@type\": \"SiteNavigationElement\",\n         \"name\": \"\u041e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438\",\n         \"url\": \"https://rusoptom.ru/about\"\n       },\n       {\n         \"@type\": \"SiteNavigationElement\",\n         \"name\": \"\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b\",\n         \"url\": \"https://rusoptom.ru/contact\"\n       }\n     ]\n   }\n   ```\n\n5. **\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0430\u0439\u0442\u0430:**\n   - \u0412\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0438 \u0438\u043c\u0435\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442.\n   - \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u043d\u044b \u0438 \u0431\u0435\u0437 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432.\n\n6. **\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b Google:**\n   - \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 [Google Rich Results Test](https://search.google.com/test/rich-results) \u0438 [Google Search Console](https://search.google.com/search-console) \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0441\u0430\u0439\u0442\u0430.\n   - \u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\n\n---\n\n### \u041f\u043e\u0447\u0435\u043c\u0443 sitelinks \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441\u0440\u0430\u0437\u0443?\n\n- Google \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0438\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043b\u0438\u043a\u043e\u0432 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u0430\u0439\u0442\u0430.\n- \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438 \u043d\u043e\u0432\u044b\u0435 \u0441\u0430\u0439\u0442\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u0430.\n- \u0421\u0441\u044b\u043b\u043a\u0438 \u0432 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u0430\u0445 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a \u2014 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438\u0448\u044c \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u043e \u0432\u043b\u0438\u044f\u0442\u044c.\n\n---\n\n### \u0412\u0430\u0448\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:\n\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0438 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 `app/layout.tsx` \u0432\u0430\u0448 JSON-LD \u0441 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439 \u0438 sitemap.\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043a\u0430\u0440\u0442\u0430 \u0441\u0430\u0439\u0442\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438.\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u043c\u0435\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u043c\u0435\u043d\u044e \u0438 \u0432 \u0444\u0443\u0442\u0435\u0440\u0435.\n- \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u0447\u0451\u0442\u044b \u0432 Search Console.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432\u0430\u0448\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438, \u0438\u043b\u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u043e\u0434 sitelinks. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0436\u0438\u0442\u0435.\nUser: import { QueryClient } from \"@tanstack/react-query\";\nimport { type NextRequest } from \"next/server\";\n\nimport { getServerFile } from \"@/src/constants\";\nimport { ensureUseCardsServiceGetAllCardsData } from \"@/src/openapi/queries/ensureQueryData\";\n\nexport async function GET(req: NextRequest) {\n  const baseUrl = \"https://rusoptom.ru\";\n  const queryClient = new QueryClient();\n\n  const data = await ensureUseCardsServiceGetAllCardsData(queryClient, {\n    limit: 1000,\n    offset: 0,\n  });\n\n  const cards = data || [];\n  const now = new Date().toISOString();\n\n  const productUrls = cards\n    .filter((card) => card.preview?.id)\n    .map((card) => {\n      const imageTags = card.preview.media\n        .map(\n          (url) => `\n      <image:image>\n        <image:loc>${getServerFile(url)}</image:loc>\n      </image:image>\n    `\n        )\n        .join(\"\");\n\n      const slug = card.preview.id;\n      return `\n      <url>\n        <loc>${baseUrl}/catalog/${slug}</loc>\n        <lastmod>${now}</lastmod>\n        <changefreq>daily</changefreq>\n        <priority>0.7</priority>\n            ${imageTags}\n      </url>\n    `;\n    })\n    .join(\"\");\n\n  const staticUrls = [\n    `${baseUrl}/`,\n    `${baseUrl}/about`,\n    `${baseUrl}/shops`,\n    `${baseUrl}/catalog`,\n  ];\n\n  const xml = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset \n  xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" \n  xmlns:image=\"http://www.google.com/schemas/sitemap-image/1.1\">\n  ${staticUrls\n    .map(\n      (url) => `\n  <url>\n    <loc>${url}</loc>\n    <changefreq>daily</changefreq>\n    <priority>0.7</priority>\n  </url>`\n    )\n    .join(\"\")}\n  ${productUrls}\n</urlset>`;\n\n  return new Response(xml.trim(), {\n    headers: {\n      \"Content-Type\": \"application/xml\",\n    },\n  });\n}\n\n\nAssistant: \u0412\u0430\u0448 API \u0440\u043e\u0443\u0442 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e sitemap.xml \u0441\u0434\u0435\u043b\u0430\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043e\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 XML \u0441 URL-\u0430\u043c\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Google Sitemap Image extension.\n\n\u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 sitemap:\n\n1. \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432 \u0444\u0430\u0439\u043b \u0442\u0438\u043f\u0430 `app/sitemap.xml/route.ts` (\u0438\u043b\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0434\u043b\u044f \u0412\u0430\u0448\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 Next.js App Router), \u0447\u0442\u043e\u0431\u044b sitemap \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 `https://rusoptom.ru/sitemap.xml`.\n\n2. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432 \u043a\u043e\u0440\u043d\u0435 \u0441\u0430\u0439\u0442\u0430 \u043d\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e sitemap.xml, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0431\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442.\n\n3. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u0444\u0430\u0439\u043b `robots.txt` \u043d\u0430 \u0441\u0430\u0439\u0442\u0435, \u0443\u043a\u0430\u0437\u0430\u0432 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 sitemap, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n```\nSitemap: https://rusoptom.ru/sitemap.xml\n```\n\n4. \u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 URL sitemap \u0432 Google Search Console \u0438 \u042f\u043d\u0434\u0435\u043a\u0441.\u0412\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u0439\u0442 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u044d\u0442\u043e\u0433\u043e sitemap.\n\n---\n\n### \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\n\n- \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e, \u0435\u0441\u043b\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 1000, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0431\u0438\u0442\u044c sitemap \u043d\u0430 \u0447\u0430\u0441\u0442\u0438.\n- \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f `changefreq` \u0438 `priority` \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n- \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u0439 (try/catch).\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u043e\u0443\u0442 \u0432 \u0432\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 Next.js \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 XML \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u043f\u0438\u0448\u0438\u0442\u0435!\nUser: \u0441\u0434\u0435\u043b\u0430\u0439\nUser: \u0441\u0434\u0435\u043b\u0430\u0439 \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u0445\u0435\u0434\u0435\u0440 \u0431\u044b\u043b \u0441\u0442\u0438\u043a\u0438 \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u043a\u0435 \"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { usePathname } from \"next/navigation\";\nimport Search from \"@/src/components/Search/Search\";\nimport CardHeader from \"../catalog/[id]/_components/CardHeader\";\nimport CategoriesDrawer from \"@/src/components/CategoriesDrawer/CategoriesDrawer\";\n\nconst HeaderMobile = () => {\n  const pathname = usePathname();\n  const [show, setShow] = useState(true);\n  const [lastY, setLastY] = useState(0);\n\n  useEffect(() => {\n    const onScroll = () => {\n      const y = window.scrollY;\n      if (y > lastY && y > 50) {\n        setShow(false);\n        return;\n      }\n      setShow(true);\n      setLastY(y);\n    };\n\n    window.addEventListener(\"scroll\", onScroll);\n    return () => window.removeEventListener(\"scroll\", onScroll);\n  }, [lastY]);\n\n  const isCatalogPage = /^\\/catalog\\/[^\\/]+$/.test(pathname);\n  if (isCatalogPage) return <CardHeader />;\n\n  return (\n    <div className=\"mb-[60px]\">\n      <div\n        className={`fixed top-0 left-0 right-0 z-50 bg-white transition-transform duration-300 transform ${\n          show ? \"translate-y-0\" : \"-translate-y-full\"\n        }`}\n      >\n        <div className=\"px-2 py-2 flex items-center flex-row gap-2\">\n          <CategoriesDrawer />\n          <Search className=\"flex-grow w-full\" />\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default HeaderMobile;\n\nAssistant: \u0412\u0430\u0448 \u043a\u043e\u0434 \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 header \u00ab\u043b\u0438\u043f\u043a\u0438\u043c\u00bb (sticky) \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c \u0441\u043a\u0440\u044b\u0442\u0438\u044f \u0438 \u043f\u043e\u043a\u0430\u0437\u0430 \u043f\u0440\u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0435. \u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e sticky header \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432:\n\n1. \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 header \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c CSS \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 `position: fixed` (\u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c) \u0438 `top: 0` (\u0435\u0441\u0442\u044c).\n2. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0438 \u0447\u0442\u043e\u0431\u044b \u0441\u043a\u0440\u043e\u043b\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c `padding-top` \u0438\u043b\u0438 `margin-top` \u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u0440\u0430\u0432\u043d\u044b\u0439 \u0432\u044b\u0441\u043e\u0442\u0435 header. \u0423 \u0432\u0430\u0441 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f `mb-[60px]` (margin-bottom), \u043b\u0443\u0447\u0448\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 `padding-top` \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f \u0441\u0432\u0435\u0440\u0445\u0443 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430.\n3. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b header \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b \u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435, \u0443\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u043b\u043e\u0433\u0438\u043a\u0443 \u0441\u043a\u0440\u044b\u0442\u0438\u044f; \u0438\u043d\u0430\u0447\u0435, \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438\u043a\u0443 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u2014 \u043e\u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430.\n\n---\n\n### \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u043c\u0438:\n\n```tsx\n\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { usePathname } from \"next/navigation\";\nimport Search from \"@/src/components/Search/Search\";\nimport CardHeader from \"../catalog/[id]/_components/CardHeader\";\nimport CategoriesDrawer from \"@/src/components/CategoriesDrawer/CategoriesDrawer\";\n\nconst HEADER_HEIGHT = 60; // \u0432\u044b\u0441\u043e\u0442\u0430 \u0445\u0435\u0434\u0435\u0440\u0430 \u0432 px (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 mb-[60px])\n\nconst HeaderMobile = () => {\n  const pathname = usePathname();\n  const [show, setShow] = useState(true);\n  const [lastY, setLastY] = useState(0);\n\n  useEffect(() => {\n    const onScroll = () => {\n      const y = window.scrollY;\n      if (y > lastY && y > HEADER_HEIGHT) {\n        // \u041f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430 \u0432\u043d\u0438\u0437 \u2014 \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u043c\n        setShow(false);\n      } else {\n        // \u041f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430 \u0432\u0432\u0435\u0440\u0445 \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\n        setShow(true);\n      }\n      setLastY(y);\n    };\n\n    window.addEventListener(\"scroll\", onScroll, { passive: true });\n    return () => window.removeEventListener(\"scroll\", onScroll);\n  }, [lastY]);\n\n  const isCatalogPage = /^\\/catalog\\/[^\\/]+$/.test(pathname);\n  if (isCatalogPage) return <CardHeader />;\n\n  return (\n    <>\n      {/* \u041e\u0442\u0441\u0442\u0443\u043f, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0435 \u0431\u044b\u043b \u043f\u043e\u0434\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0445\u0435\u0434\u0435\u0440\u043e\u043c */}\n      <div style={{ height: HEADER_HEIGHT }} />\n      \n      <div\n        className={`fixed top-0 left-0 right-0 z-50 bg-white transition-transform duration-300 transform ${\n          show ? \"translate-y-0\" : \"-translate-y-full\"\n        } shadow-md`}\n        style={{ height: HEADER_HEIGHT }}\n      >\n        <div className=\"px-2 py-2 flex items-center flex-row gap-2 h-full\">\n          <CategoriesDrawer />\n          <Search className=\"flex-grow w-full\" />\n        </div>\n      </div>\n    </>\n  );\n};\n\nexport default HeaderMobile;\n```\n\n---\n\n### \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e:\n\n- \u0414\u043e\u0431\u0430\u0432\u0438\u043b \u043e\u0442\u0441\u0442\u0443\u043f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0441\u043e\u0442\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0435 \u043f\u0440\u044b\u0433\u0430\u043b \u0438 \u043d\u0435 \u0431\u044b\u043b \u043f\u043e\u0434 header.\n- \u0414\u043e\u0431\u0430\u0432\u0438\u043b `shadow-md` \u0434\u043b\u044f \u043b\u0451\u0433\u043a\u043e\u0439 \u0442\u0435\u043d\u0438 (\u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e).\n- \u0412\u0435\u0448\u0430\u0435\u043c \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044c \u0441 `{ passive: true }` \u2014 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438.\n- `HEADER_HEIGHT` \u0432\u044b\u043d\u0435\u0441 \u0432 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\n- \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0431\u0440\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442 \u0441\u043a\u0440\u044b\u0442\u0438\u044f \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c header \u2014 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f `show` \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u0441 `translate-y-0`.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0431\u0435\u0437 \u0441\u043a\u0440\u044b\u0442\u0438\u044f, \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u0437\u0430\u0442\u0435\u043c\u043d\u0435\u043d\u0438\u0435\u043c, \u0438\u043b\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\nUser: \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442, \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u043f\u0435\u0442\u044c \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0435\u0441\u043a \u0440\u0430\u0437, \u043f\u0435\u043d\u0434\u0438\u043d\u0433 \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \n\"use client\";\nimport AppText from \"@/src/components/AppText/AppText\";\nimport Checkbox from \"@/src/components/Checkbox/Checkbox\";\nimport DatePicker from \"@/src/components/DatePicker/DatePicker\";\nimport DeliveryYandexModal from \"@/src/components/DeliveryYandexModal/DeliveryYandexModal\";\nimport {\n  useBasketServiceGetBasket,\n  useOrderServiceCreateOrders,\n} from \"@/src/openapi/queries\";\nimport { CreateOrderDto } from \"@/src/openapi/requests\";\nimport { Exception } from \"@/src/types\";\nimport { Button, Textarea, Wrapper } from \"@mossoft/ui-kit\";\nimport { format } from \"date-fns\";\nimport { useRouter } from \"next/navigation\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\n\ntype Props = {\n  ids: number[];\n};\n\nconst Order = ({ ids }: Props) => {\n  const router = useRouter();\n  const { data: basket } = useBasketServiceGetBasket();\n  const { mutateAsync: createOrders, isPending } =\n    useOrderServiceCreateOrders();\n  const [agreed, setAgreed] = useState(false);\n  const [comment, setComment] = useState(\"\");\n  const [isMapOpen, setIsMapOpen] = useState(false);\n  const [coords, setCoords] = useState<[number, number] | null>(null);\n  const [address, setAddress] = useState<string>();\n  const [desiredDate, setDesiredDate] = useState<string>(\n    format(new Date(), \"yyyy-MM-dd\")\n  );\n  const orderRef = useRef<HTMLDivElement>(null);\n  const [showBanner, setShowBanner] = useState(false);\n\n  const totalQuantity = basket?.shops\n    ?.flatMap(({ items }) => items)\n    ?.reduce((acc, item) => acc + item.totalQuantity, 0);\n\n  const handleSendOrder = async () => {\n    if (!ids.length)\n      return enqueueSnackbar(\"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u043e\u0432\u0430\u0440\u044b\", { variant: \"error\" });\n    if (!basket || !coords || !address || isPending) return;\n\n    const [lon, lat] = coords;\n\n    const orders = basket.shops\n      .map((shop) => {\n        const selectedItems = shop.items.filter((item) =>\n          ids.includes(item.id)\n        );\n        if (!selectedItems.length) return null;\n\n        return {\n          shopId: shop.id,\n          address,\n          desiredDate,\n          lat: String(lat),\n          lon: String(lon),\n          deliveryMethod: \"courier\",\n          deliveryAddress: address,\n          comment,\n          totalPrice: selectedItems.reduce((sum, i) => sum + i.totalPrice, 0),\n          items: selectedItems.map((item) => ({\n            itemId: item.itemId,\n            quantity: item.totalQuantity,\n            pricePerItem:\n              item.options[0]?.price ?? item.totalPrice / item.totalQuantity,\n            totalPrice: item.totalPrice,\n            options: item.options,\n          })),\n        };\n      })\n      .filter(Boolean) as CreateOrderDto[];\n\n    try {\n      await createOrders({ requestBody: orders });\n      router.replace(\"/orders\");\n    } catch (e) {\n      enqueueSnackbar((e as Exception).message, { variant: \"error\" });\n    }\n  };\n\n  useEffect(() => {\n    const observer = new IntersectionObserver(\n      ([entry]) => {\n        setShowBanner(!entry.isIntersecting);\n      },\n      { threshold: 0.1 }\n    );\n\n    const current = orderRef.current;\n    if (current) observer.observe(current);\n\n    return () => {\n      if (current) observer.unobserve(current);\n    };\n  }, []);\n\n  const scrollToOrder = () => {\n    orderRef.current?.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n  };\n\n  const totalSelectedPrice = useMemo(() => {\n    if (!basket) return 0;\n\n    return basket.shops\n      ?.flatMap((shop) => shop.items)\n      ?.filter((item) => ids.includes(item.id))\n      ?.reduce((sum, item) => sum + item.totalPrice, 0);\n  }, [basket, ids]);\n\n  return (\n    <>\n      {isMapOpen && (\n        <DeliveryYandexModal\n          onClose={() => setIsMapOpen(false)}\n          onSelect={(c, a) => {\n            setCoords(c);\n            setAddress(a);\n            setIsMapOpen(false);\n          }}\n        />\n      )}\n\n      <div ref={orderRef} className=\"flex flex-col gap-2\">\n        <Wrapper className=\"p-4 flex flex-col gap-4\">\n          <div className=\"flex flex-row justify-between text-sm items-center\">\n            <AppText>\u0410\u0434\u0440\u0435\u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438</AppText>\n            <AppText\n              onClick={() => setIsMapOpen(true)}\n              className=\"text-primary cursor-pointer hover:opacity-70\"\n            >\n              {address ? \"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c\" : \"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438\"}\n            </AppText>\n          </div>\n          {coords && address && (\n            <AppText className=\"text-xs text-gray-500\">{address}</AppText>\n          )}\n\n          <DatePicker\n            label=\"\u0416\u0435\u043b\u0430\u0435\u043c\u0430\u044f \u0434\u0430\u0442\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438\"\n            value={desiredDate?.toString().split(\"T\")[0] || \"\"}\n            onChange={(e) => setDesiredDate(e.target.value)}\n          />\n          <Textarea\n            onChange={(e) => setComment(e.target.value)}\n            value={comment}\n            className=\"!border-primary max-h-[100px] outline-none\"\n            placeholder=\"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u0443\"\n            maxLength={100}\n          />\n          <div className=\"border-t border-dark-gray/20\" />\n          <AppText className=\"text-sm\">\n            \u041f\u043e\u0441\u043b\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0430, \u043f\u0440\u043e\u0434\u0430\u0432\u0435\u0446 \u0441\u0432\u044f\u0436\u0435\u0442\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f\n            \u0434\u0435\u0442\u0430\u043b\u0435\u0438\u0306 \u0437\u0430\u043a\u0430\u0437\u0430.\n          </AppText>\n        </Wrapper>\n\n        <Wrapper className=\"min-w-[300px] h-fit p-4\">\n          <div className=\"flex flex-col gap-2\">\n            <div className=\"flex justify-between text-lg\">\n              <AppText>\u041a\u043e\u043b-\u0432\u043e:</AppText>\n              <AppText>{totalQuantity || \"\u2014\"}</AppText>\n            </div>\n\n            <div className=\"flex justify-between text-lg font-bold\">\n              <AppText>\u0418\u0442\u043e\u0433\u043e:</AppText>\n              <AppText>{totalSelectedPrice?.toLocaleString(\"ru-RU\")}\u20bd</AppText>\n            </div>\n\n            <Button\n              disabled={\n                !agreed ||\n                !basket?.shops.length ||\n                isPending ||\n                !coords ||\n                !address\n              }\n              variant=\"primary\"\n              className=\"normal-case !py-2 !rounded-[10px]\"\n              onClick={handleSendOrder}\n            >\n              \u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c\n            </Button>\n\n            <div className=\"flex items-start gap-2 text-sm leading-tight\">\n              <Checkbox checked={agreed} onChange={() => setAgreed(!agreed)} />\n\n              <AppText className=\"font-normal\">\n                \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044f \u0437\u0430\u043a\u0430\u0437, \u0432\u044b \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044c \u0441{\" \"}\n                <span className=\"underline cursor-pointer text-blue-600 hover:text-blue-800\">\n                  \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 \u043e\u0444\u0435\u0440\u0442\u044b\n                </span>{\" \"}\n                \u0438{\" \"}\n                <span className=\"underline cursor-pointer text-blue-600 hover:text-blue-800\">\n                  \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\n                </span>\n                .\n              </AppText>\n            </div>\n          </div>\n        </Wrapper>\n      </div>\n\n      {showBanner && (\n        <div className=\"fixed justify-between items-center bottom-[68px] bg-white p-2 flex flex-row gap-2 left-0 right-0 px-4 z-50 md:hidden\">\n          <div className=\"flex flex-col\">\n            <div className=\"flex justify-between text-fluid gap-2\">\n              <AppText>\u041a\u043e\u043b-\u0432\u043e:</AppText>\n              <AppText>{totalQuantity || \"\u2014\"}</AppText>\n            </div>\n            <div className=\"flex justify-between text-fluid gap-2\">\n              <AppText className=\"font-bold\">\u0418\u0442\u043e\u0433\u043e:</AppText>\n              <AppText className=\"font-bold\">\n                {totalSelectedPrice?.toLocaleString(\"ru-RU\")}\u20bd\n              </AppText>\n            </div>\n          </div>\n\n          <div\n            onClick={scrollToOrder}\n            className=\"w-fit bg-primary text-white flex h-fit p-2 text-sm items-center justify-center rounded-xl shadow-lg\"\n          >\n            <AppText>\u041a \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044e</AppText>\n          </div>\n        </div>\n      )}\n    </>\n  );\n};\n\nexport default Order;\n\nAssistant: \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u043e\u043a\u0430 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b.\n\n\u0423 \u0432\u0430\u0441 \u0432 \u043a\u043e\u0434\u0435 \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f `isPending` \u0438\u0437 `useOrderServiceCreateOrders()`, \u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0451\u0442 `disabled={isPending || ...}`, \u043d\u043e \u0441\u0443\u0434\u044f \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043b\u0438\u043a\u0438.\n\n\u0427\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u2014 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f `isPending` \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b `react-query` \u0438\u043b\u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0438\u0437-\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.\n\n---\n\n## \u0420\u0435\u0448\u0435\u043d\u0438\u0435: \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043a\u0430\u0437\u0430\n\n\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 `isSubmitting` \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0439\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438, \u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u2014 \u0441\u043d\u0438\u043c\u0430\u0435\u0442\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443.\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e `handleSendOrder` \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f:\n\n```tsx\nconst [isSubmitting, setIsSubmitting] = useState(false);\n\nconst handleSendOrder = async () => {\n  if (!ids.length) {\n    enqueueSnackbar(\"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u043e\u0432\u0430\u0440\u044b\", { variant: \"error\" });\n    return;\n  }\n  if (!basket || !coords || !address || isSubmitting) return; // \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\n\n  setIsSubmitting(true); // \u0411\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u0440\u0430\u0437\u0443\n\n  const [lon, lat] = coords;\n\n  const orders = basket.shops\n    .map((shop) => {\n      const selectedItems = shop.items.filter((item) =>\n        ids.includes(item.id)\n      );\n      if (!selectedItems.length) return null;\n\n      return {\n        shopId: shop.id,\n        address,\n        desiredDate,\n        lat: String(lat),\n        lon: String(lon),\n        deliveryMethod: \"courier\",\n        deliveryAddress: address,\n        comment,\n        totalPrice: selectedItems.reduce((sum, i) => sum + i.totalPrice, 0),\n        items: selectedItems.map((item) => ({\n          itemId: item.itemId,\n          quantity: item.totalQuantity,\n          pricePerItem:\n            item.options[0]?.price ?? item.totalPrice / item.totalQuantity,\n          totalPrice: item.totalPrice,\n          options: item.options,\n        })),\n      };\n    })\n    .filter(Boolean) as CreateOrderDto[];\n\n  try {\n    await createOrders({ requestBody: orders });\n    router.replace(\"/orders\");\n  } catch (e) {\n    enqueueSnackbar((e as Exception).message, { variant: \"error\" });\n  } finally {\n    setIsSubmitting(false); // \u0421\u043d\u0438\u043c\u0430\u0435\u043c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u0441\u043b\u0435\n  }\n};\n```\n\n\u0418 \u0432 \u043a\u043d\u043e\u043f\u043a\u0443 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443:\n\n```tsx\n<Button\n  disabled={\n    !agreed ||\n    !basket?.shops.length ||\n    isPending ||\n    isSubmitting || // \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\n    !coords ||\n    !address\n  }\n  variant=\"primary\"\n  className=\"normal-case !py-2 !rounded-[10px]\"\n  onClick={handleSendOrder}\n>\n  \u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c\n</Button>\n```\n\n---\n\n## \u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f\n\n- \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 `isSubmitting` \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 `setIsSubmitting(true)`, \u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u0441\u0440\u0430\u0437\u0443 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f.\n- \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a `createOrders` (\u0438 `isPending`) \u043e\u0431\u043d\u043e\u0432\u0438\u0442 \u0441\u0432\u043e\u0451 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435.\n- `isPending` \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 `react-query`, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u043b\u0430\u0433 \u0440\u0435\u0448\u0438\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.\n- \u0412 `try/catch/finally` \u0432\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0435 \u0441\u043d\u044f\u0442\u0438\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438, \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e:\n\n- \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 `\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430...` \u043f\u0440\u0438 `isSubmitting`.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c debounce \u0438\u043b\u0438 throttle \u0434\u043b\u044f \u043a\u043b\u0438\u043a\u043e\u0432, \u043d\u043e \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.\n- \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0443 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438.\nUser: \u0431\u0435\u0437 \u044d\u0442\u043e\u0439 \u0445\u0439\u043d\u0438 \nAssistant: \u041f\u043e\u043d\u044f\u043b, \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439.\n\n**\u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u2014 \u0441\u0440\u0430\u0437\u0443 \u0432 handleSendOrder \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043a\u043d\u043e\u043f\u043a\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u043a\u043b\u0438\u043a\u0438:**\n\n```tsx\nconst handleSendOrder = (() => {\n  let isSending = false;\n\n  return async () => {\n    if (isSending) return; // \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u2014 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c\n\n    if (!ids.length) {\n      enqueueSnackbar(\"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u043e\u0432\u0430\u0440\u044b\", { variant: \"error\" });\n      return;\n    }\n    if (!basket || !coords || !address) return;\n\n    isSending = true; // \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c\n\n    const [lon, lat] = coords;\n\n    const orders = basket.shops\n      .map((shop) => {\n        const selectedItems = shop.items.filter((item) =>\n          ids.includes(item.id)\n        );\n        if (!selectedItems.length) return null;\n\n        return {\n          shopId: shop.id,\n          address,\n          desiredDate,\n          lat: String(lat),\n          lon: String(lon),\n          deliveryMethod: \"courier\",\n          deliveryAddress: address,\n          comment,\n          totalPrice: selectedItems.reduce((sum, i) => sum + i.totalPrice, 0),\n          items: selectedItems.map((item) => ({\n            itemId: item.itemId,\n            quantity: item.totalQuantity,\n            pricePerItem:\n              item.options[0]?.price ?? item.totalPrice / item.totalQuantity,\n            totalPrice: item.totalPrice,\n            options: item.options,\n          })),\n        };\n      })\n      .filter(Boolean) as CreateOrderDto[];\n\n    try {\n      await createOrders({ requestBody: orders });\n      router.replace(\"/orders\");\n    } catch (e) {\n      enqueueSnackbar((e as Exception).message, { variant: \"error\" });\n    } finally {\n      isSending = false; // \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\n    }\n  };\n})();\n```\n\n\u0418 \u0432 \u043a\u043d\u043e\u043f\u043a\u0443 \u043f\u0440\u043e\u0441\u0442\u043e:\n\n```tsx\n<Button\n  disabled={\n    !agreed ||\n    !basket?.shops.length ||\n    !coords ||\n    !address\n  }\n  variant=\"primary\"\n  className=\"normal-case !py-2 !rounded-[10px]\"\n  onClick={handleSendOrder}\n>\n  \u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c\n</Button>\n```\n\n---\n\n**\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:**  \n- \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f `isSending` \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430 \u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0438 \u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 React-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b.  \n- \u0412\u044b\u0437\u043e\u0432 `handleSendOrder` \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0443\u0436\u0435 \u0438\u0434\u0435\u0442.  \n- \u041d\u0435\u0442 \u043b\u0438\u0448\u043d\u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0438 \u0440\u0435\u0440\u0435\u043d\u0434\u0435\u0440\u043e\u0432 \u2014 \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c.\nUser: \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u0433\u0443\u0433\u043b \u043c\u043d\u0435 \n\n<web_search_results> for \"how to prevent multiple clicks on submit button in react without state\":\n\n{\n  \"results\": []\n}\nAssistant: How to prevent multiple clicks on submit button in React without using state\nUser: \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0435\u0431\u0430\u043d\u0443\u0441? \nAssistant: \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c debounce (\u0438\u043b\u0438 throttle) \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043a\u043b\u0438\u043a\u043e\u0432 \u2014 \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043d\u0430\u0436\u0430\u0442\u0438\u0439 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f.\n\n\u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u044b:\n\n- **Debounce** \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044b\u0445 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043d\u0430\u0436\u0430\u0442\u0438\u0439 \u0437\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a.\n\n- **Throttle** \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0435 \u0447\u0430\u0449\u0435, \u0447\u0435\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043a\u043b\u0438\u043a\u0443 \u043f\u0440\u043e\u0439\u0442\u0438 \u0441\u0440\u0430\u0437\u0443, \u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u2014 \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439.\n\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043b\u0438\u043a\u0438 \u043f\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, debounce \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u043b\u0443\u0447\u0448\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:\n\n- \u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043a\u043b\u0438\u043a\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 \u0438\u043b\u0438 `disabled`), \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0434\u0451\u0442.\n\n- Debounce \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0442\u043a \u0437\u0430\u043f\u0440\u043e\u0441 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u043f\u043e\u0441\u043b\u0435 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430.\n\n### \u0420\u0435\u0437\u044e\u043c\u0435\n\n- \u0414\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u043a\u043b\u0438\u043a\u043e\u0432 \u043f\u0440\u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 **\u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043a\u043d\u043e\u043f\u043a\u0438 (`disabled`) \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430**. \u042d\u0442\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e.\n\n- Debounce \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0435\u0440\u0443, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043d\u0430\u0436\u0430\u0442\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c), \u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u043e\u0440\u043c\u044b \u044d\u0442\u043e \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.\n\n\u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0436\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 debounce, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:\n\n```ts\nimport { useCallback, useRef } from 'react';\n\nconst useDebouncedClick = (callback, delay = 1000) => {\n  const timeoutRef = useRef(null);\n\n  return useCallback(\n    (...args) => {\n      if (timeoutRef.current) return; // \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u043a\u043b\u0438\u043a \u043f\u043e\u043a\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0436\u0438\u0432\n      callback(...args);\n      timeoutRef.current = setTimeout(() => {\n        timeoutRef.current = null;\n      }, delay);\n    },\n    [callback, delay]\n  );\n};\n\n// \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\nconst handleClick = useDebouncedClick(() => {\n  // \u0412\u0430\u0448\u0430 \u043b\u043e\u0433\u0438\u043a\u0430\n}, 1000);\n```\n\n\u041d\u043e \u0441\u043d\u043e\u0432\u0430: \u0434\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043b\u0443\u0447\u0448\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u0432 `loading` \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 debounce \u0438\u043b\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043a\u043d\u043e\u043f\u043a\u0438.\nUser: \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0441\u0442\u0430\u0432\u044f\u0442 \u0434\u0435\u0431\u0430\u0443\u043d\u0441 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \nAssistant: \u0412 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0434\u043b\u044f \u0434\u0435\u0431\u0430\u0443\u043d\u0441\u0430 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u043e\u0431\u044b\u0447\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 **300 \u0434\u043e 1000 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 (0.3 - 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0430)**.\n\n- \u0414\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0434\u0432\u043e\u0439\u043d\u044b\u0445 \u043a\u043b\u0438\u043a\u043e\u0432 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u043e\u0440\u043c\u044b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u2014 **500 \u043c\u0441**.\n- \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u0438\u043b\u0438 \u0441\u043c\u0435\u043d\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446) \u0441\u0442\u0430\u0432\u044f\u0442 \u0434\u043e **1 \u0441\u0435\u043a\u0443\u043d\u0434\u044b**, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443.\n- \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u044b\u0445 \u043a\u043b\u0438\u043a\u043e\u0432, \u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043e\u0431\u044b\u0447\u043d\u043e \u043b\u0443\u0447\u0448\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0431\u0430\u0443\u043d\u0441 \u0441 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 (`disabled`), \u0430 \u043d\u0435 \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 debounce.\n\n\u0412\u044b\u0431\u043e\u0440 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 UX:\n\n- \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0434\u0435\u0431\u0430\u0443\u043d\u0441 (300-500 \u043c\u0441) \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043a\u043b\u0438\u043a\u043e\u0432.\n- \u0414\u043b\u0438\u043d\u043d\u044b\u0439 \u0434\u0435\u0431\u0430\u0443\u043d\u0441 (700-1000 \u043c\u0441) \u2014 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043a\u043b\u0438\u043a\u043e\u0432, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043e\u0442\u043a\u043b\u0438\u043a\u0430.\n\n\u0415\u0441\u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u2014 \u043b\u0443\u0447\u0448\u0435 \u0441\u0440\u0430\u0437\u0443 \u0434\u0438\u0437\u0435\u0439\u0431\u043b\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443, \u0430 \u0434\u0435\u0431\u0430\u0443\u043d\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0441\u043e\u0431\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445.\n\n---\n\n**\u041f\u0440\u0438\u043c\u0435\u0440:**  \n```tsx\nconst handleClick = useDebouncedClick(() => {\n  // \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\n}, 500); // 500 \u043c\u0441 \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440\n```\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043b\u0438 \u043f\u043e\u043c\u043e\u0449\u044c \u0441 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0435\u0431\u0430\u0443\u043d\u0441\u043e\u043c \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c!\nUser: \u0434\u043e\u0431\u0430\u0432\u044c \u0441\u044e\u0434\u0430 \u0434\u0435\u0431\u0430\u0443\u043d\u0441 import { FC, PropsWithChildren, ComponentProps } from \"react\";\nimport { motion } from \"framer-motion\";\nimport Icon from \"../Icon/Icon\";\nimport Loader from \"../Loader/Loader\";\n\ntype MotionButtonProps = ComponentProps<typeof motion.button>;\n\ntype Props = {\n  onClick: () => void;\n  className?: string;\n  disabled?: boolean;\n  isLoading?: boolean;\n  variant:\n    | \"primary\"\n    | \"secondary\"\n    | \"danger\"\n    | \"link\"\n    | \"small-primary\"\n    | \"small-secondary\"\n    | \"small-danger\"\n    | \"tab\";\n  icon?: string;\n} & MotionButtonProps;\n\nconst Button: FC<PropsWithChildren<Props>> = ({\n  children,\n  onClick,\n  className,\n  isLoading,\n  variant,\n  icon,\n  disabled,\n  ...rest\n}) => {\n  const buttonClasses = [\n    \"relative inline-flex items-center justify-center font-semibold transition-colors duration-300 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-60 disabled:cursor-not-allowed\",\n    \"rounded-2xl px-6 py-3 text-sm md:text-base\",\n    className,\n    variant === \"primary\" &&\n      \"bg-primary text-white hover:bg-primary/90 focus:ring-primary\",\n    variant === \"secondary\" &&\n      \"bg-primary/10 text-primary hover:bg-primary/20 focus:ring-primary\",\n    variant === \"danger\" &&\n      \"bg-danger/10 text-danger hover:bg-danger/20 focus:ring-danger\",\n    variant === \"link\" &&\n      \"bg-transparent text-primary hover:underline px-2 py-1 focus:ring-primary\",\n    variant === \"small-primary\" &&\n      \"bg-primary text-white text-xs px-4 py-2 hover:bg-primary/90 focus:ring-primary\",\n    variant === \"small-secondary\" &&\n      \"bg-primary/20 text-primary text-xs px-4 py-2 hover:bg-primary/30 focus:ring-primary\",\n    variant === \"small-danger\" &&\n      \"bg-danger/10 text-danger text-xs px-4 py-2 hover:bg-danger/20 focus:ring-danger\",\n    variant === \"tab\" &&\n      \"bg-primary text-white text-sm md:text-base px-5 py-2 rounded-full focus:ring-primary\",\n  ]\n    .filter(Boolean)\n    .join(\" \");\n\n  return (\n    <motion.button\n      disabled={disabled || isLoading}\n      onClick={onClick}\n      className={buttonClasses}\n      {...rest}\n      initial={{ opacity: 0, y: 6 }}\n      animate={{ opacity: 1, y: 0 }}\n      transition={{ duration: 0.3, ease: \"easeOut\" }}\n      whileTap={{ scale: 0.96 }}\n      whileHover={!disabled && !isLoading ? { scale: 1.02 } : undefined}\n    >\n      {isLoading ? (\n        <Loader style={{ width: 20, height: 20 }} />\n      ) : (\n        <>\n          {children}\n          {icon && (\n            <Icon\n              name={icon}\n              className={`ml-2 ${\n                variant.includes(\"small\") ? \"w-4 h-4\" : \"w-5 h-5\"\n              }`}\n            />\n          )}\n        </>\n      )}\n    </motion.button>\n  );\n};\n\nexport default Button;\n\nAssistant: \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0435\u0431\u0430\u0443\u043d\u0441 \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u043d\u043e\u043f\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 `onClick` \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u0445\u0443\u043a `useCallback`, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f `useRef` \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 debounce. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043b\u043e\u0433\u0438\u043a\u0430 \u0434\u0435\u0431\u0430\u0443\u043d\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `Button`, \u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0438\u043c.\n\n\u0412\u043e\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `Button` \u0441 \u0434\u0435\u0431\u0430\u0443\u043d\u0441\u043e\u043c \u043a\u043b\u0438\u043a\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 500 \u043c\u0441, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440):\n\n```tsx\nimport { FC, PropsWithChildren, ComponentProps, useRef, useCallback } from \"react\";\nimport { motion } from \"framer-motion\";\nimport Icon from \"../Icon/Icon\";\nimport Loader from \"../Loader/Loader\";\n\ntype MotionButtonProps = ComponentProps<typeof motion.button>;\n\ntype Props = {\n  onClick: () => void;\n  debounceTimeMs?: number; // \u0432\u0440\u0435\u043c\u044f \u0434\u0435\u0431\u0430\u0443\u043d\u0441\u0430 \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445, \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\n  className?: string;\n  disabled?: boolean;\n  isLoading?: boolean;\n  variant:\n    | \"primary\"\n    | \"secondary\"\n    | \"danger\"\n    | \"link\"\n    | \"small-primary\"\n    | \"small-secondary\"\n    | \"small-danger\"\n    | \"tab\";\n  icon?: string;\n} & MotionButtonProps;\n\nconst Button: FC<PropsWithChildren<Props>> = ({\n  children,\n  onClick,\n  debounceTimeMs = 500,\n  className,\n  isLoading,\n  variant,\n  icon,\n  disabled,\n  ...rest\n}) => {\n  // useRef \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u0434\u0435\u0431\u0430\u0443\u043d\u0441\u0430\n  const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n  // debounce-\u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u0434\u043b\u044f onClick\n  const debouncedOnClick = useCallback(() => {\n    if (debounceTimerRef.current) return; // \u0435\u0449\u0451 \u0438\u0434\u0451\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u2014 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u043a\u043b\u0438\u043a\n\n    onClick?.();\n\n    debounceTimerRef.current = setTimeout(() => {\n      debounceTimerRef.current = null;\n    }, debounceTimeMs);\n  }, [onClick, debounceTimeMs]);\n\n  const buttonClasses = [\n    \"relative inline-flex items-center justify-center font-semibold transition-colors duration-300 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-60 disabled:cursor-not-allowed\",\n    \"rounded-2xl px-6 py-3 text-sm md:text-base\",\n    className,\n    variant === \"primary\" &&\n      \"bg-primary text-white hover:bg-primary/90 focus:ring-primary\",\n    variant === \"secondary\" &&\n      \"bg-primary/10 text-primary hover:bg-primary/20 focus:ring-primary\",\n    variant === \"danger\" &&\n      \"bg-danger/10 text-danger hover:bg-danger/20 focus:ring-danger\",\n    variant === \"link\" &&\n      \"bg-transparent text-primary hover:underline px-2 py-1 focus:ring-primary\",\n    variant === \"small-primary\" &&\n      \"bg-primary text-white text-xs px-4 py-2 hover:bg-primary/90 focus:ring-primary\",\n    variant === \"small-secondary\" &&\n      \"bg-primary/20 text-primary text-xs px-4 py-2 hover:bg-primary/30 focus:ring-primary\",\n    variant === \"small-danger\" &&\n      \"bg-danger/10 text-danger text-xs px-4 py-2 hover:bg-danger/20 focus:ring-danger\",\n    variant === \"tab\" &&\n      \"bg-primary text-white text-sm md:text-base px-5 py-2 rounded-full focus:ring-primary\",\n  ]\n    .filter(Boolean)\n    .join(\" \");\n\n  return (\n    <motion.button\n      disabled={disabled || isLoading}\n      onClick={debouncedOnClick}\n      className={buttonClasses}\n      {...rest}\n      initial={{ opacity: 0, y: 6 }}\n      animate={{ opacity: 1, y: 0 }}\n      transition={{ duration: 0.3, ease: \"easeOut\" }}\n      whileTap={{ scale: 0.96 }}\n      whileHover={!disabled && !isLoading ? { scale: 1.02 } : undefined}\n    >\n      {isLoading ? (\n        <Loader style={{ width: 20, height: 20 }} />\n      ) : (\n        <>\n          {children}\n          {icon && (\n            <Icon\n              name={icon}\n              className={`ml-2 ${\n                variant.includes(\"small\") ? \"w-4 h-4\" : \"w-5 h-5\"\n              }`}\n            />\n          )}\n        </>\n      )}\n    </motion.button>\n  );\n};\n\nexport default Button;\n```\n\n---\n\n### \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\n\n- \u041f\u0440\u0438 \u043a\u043b\u0438\u043a\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043b\u0438 \u0442\u0430\u0439\u043c\u0435\u0440 debounce.\n- \u0415\u0441\u043b\u0438 \u0442\u0430\u0439\u043c\u0435\u0440 \u0430\u043a\u0442\u0438\u0432\u0435\u043d (\u0442.\u0435. \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u0431\u044b\u043b\u043e \u043c\u0435\u043d\u0435\u0435 `debounceTimeMs` \u043d\u0430\u0437\u0430\u0434), \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043b\u0438\u043a \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f.\n- \u0427\u0435\u0440\u0435\u0437 `debounceTimeMs` (500 \u043c\u0441 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0438\u043a\u0430.\n- \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0431\u0430\u0443\u043d\u0441\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043f `debounceTimeMs`, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 `<Button debounceTimeMs={1000} ... />`.\n\n---\n\n### \u0412\u0430\u0436\u043d\u043e\n\n- \u042d\u0442\u043e\u0442 debounce \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439.\n- \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 `disabled={isLoading}`, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c.\n- \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u0440\u043e\u0441\u0442 \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043a\u043b\u0438\u043a\u043e\u0432, \u043d\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0441 \u0438\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, debounce \u0441 \u043e\u0447\u0438\u0441\u0442\u043a\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438), \u0434\u0430\u0439\u0442\u0435 \u0437\u043d\u0430\u0442\u044c!\nUser: \u043a\u043e\u0433\u0434\u0430 \u0432 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u0430\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0442\u043e\u0432\u0430\u0440\u0430, \u0432\u043e\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u0437\u0430\u043a\u0430\u0437\u043e\u0432  PENDING   PAID   SHIPPED   COMPLETED   CANCELLED\nAssistant: \u0412 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u0430\u0445 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0437\u0430\u043a\u0430\u0437\u0430 \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0430\u0442\u0443\u0441, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u043e\u0432\u0430\u0440 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0438\u0441\u0430\u043d \u0441\u043e \u0441\u043a\u043b\u0430\u0434\u0430. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u0438 \u043a\u043e\u0433\u0434\u0430 \u043b\u0443\u0447\u0448\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u0437\u0430\u043f\u0430\u0441:\n\n1. **PENDING** (\u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043e\u043f\u043b\u0430\u0442\u044b \u0438\u043b\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f)  \n   - \u0412 \u044d\u0442\u043e\u043c \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0437\u0430\u043a\u0430\u0437 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u043c\u0435\u043d\u0451\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439.  \n   - \u0427\u0430\u0441\u0442\u043e \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0435\u0449\u0451 **\u043d\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f**, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0432\u0430\u0440 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043e\u043f\u043b\u0430\u0442\u0430 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430.\n\n2. **PAID** (\u043e\u043f\u043b\u0430\u0447\u0435\u043d)  \n   - \u0417\u0430\u043a\u0430\u0437 \u043e\u043f\u043b\u0430\u0447\u0435\u043d, \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u043a\u0443\u043f\u0438\u0442\u044c.  \n   - \u041e\u0431\u044b\u0447\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 **PAID** \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f **\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435** \u0442\u043e\u0432\u0430\u0440\u0430 \u0438\u043b\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0434\u0430\u0436\u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 \u0440\u0430\u0437\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c.\n\n3. **SHIPPED** (\u043e\u0442\u0433\u0440\u0443\u0436\u0435\u043d)  \n   - \u0422\u043e\u0432\u0430\u0440 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0441\u043b\u0443\u0436\u0431\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438.  \n   - \u041e\u0441\u0442\u0430\u0442\u043e\u043a \u0437\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d \u043f\u0440\u0438 \u043e\u043f\u043b\u0430\u0442\u0435 \u0438\u043b\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f.\n\n4. **COMPLETED** (\u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d)  \n   - \u0417\u0430\u043a\u0430\u0437 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c.  \n   - \u041e\u0441\u0442\u0430\u0442\u043e\u043a \u0443\u0436\u0435 \u0443\u0447\u0442\u0451\u043d \u0440\u0430\u043d\u0435\u0435, \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443, \u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.\n\n5. **CANCELLED** (\u043e\u0442\u043c\u0435\u043d\u0451\u043d)  \n   - \u0417\u0430\u043a\u0430\u0437 \u043e\u0442\u043c\u0435\u043d\u0451\u043d, \u0442\u043e\u0432\u0430\u0440 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f.  \n   - \u0415\u0441\u043b\u0438 \u0431\u044b\u043b\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 PAID, \u043f\u0440\u0438 \u043e\u0442\u043c\u0435\u043d\u0435 **\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c** (\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c), \u0447\u0442\u043e\u0431\u044b \u0442\u043e\u0432\u0430\u0440 \u0441\u043d\u043e\u0432\u0430 \u0441\u0442\u0430\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c.\n\n---\n\n### \u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432:\n\n- **\u0423\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u0442\u043e\u043a (\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0432\u0430\u0440)** \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0437\u0430\u043a\u0430\u0437\u0430 \u0432 **PAID** \u0441\u0442\u0430\u0442\u0443\u0441, \u043a\u043e\u0433\u0434\u0430 \u043e\u043f\u043b\u0430\u0442\u0430 \u043f\u0440\u043e\u0448\u043b\u0430 \u0438 \u0437\u0430\u043a\u0430\u0437 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u044b\u043c.  \n- \u0415\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0435\u0441\u0442\u044c \u044d\u0442\u0430\u043f \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c, \u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438 \u043e\u0442\u0433\u0440\u0443\u0437\u043a\u0435.  \n- \u041f\u0440\u0438 \u043e\u0442\u043c\u0435\u043d\u0435 \u0437\u0430\u043a\u0430\u0437\u0430 (\u0441\u0442\u0430\u0442\u0443\u0441 CANCELLED) \u2014 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0442\u044c \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u0442\u043e\u043a.\n\n---\n\n### \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438\n\n- \u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043c\u043e\u0436\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 `PENDING`, \u043d\u043e \u044d\u0442\u043e \u0440\u0438\u0441\u043a\u043e\u0432\u0430\u043d\u043d\u043e \u0438\u0437-\u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043e\u0442\u043c\u0435\u043d.  \n- \u0412 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 \u043f\u0440\u0435\u0434\u0437\u0430\u043a\u0430\u0437\u0430\u043c\u0438 \u0438\u043b\u0438 \u043e\u043f\u043b\u0430\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u044f\u043c\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u044b\u0435 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u0430\u0432\u0438\u043b\u0430.  \n- \u0412\u0430\u0436\u043d\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0441\u043e \u0441\u043b\u0443\u0436\u0431\u043e\u0439 \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u043e\u0433\u043e \u0443\u0447\u0451\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c!\nUser: \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u043f\u043e \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \"use client\";\nimport { getQueryClient } from \"@/src/api/api\";\nimport AppText from \"@/src/components/AppText/AppText\";\nimport { BASE_CATEGORY_FIELDS } from \"@/src/constants\";\nimport {\n  useCategoriesServiceGetSubCategoriesByIds,\n  useFileUploadServiceExportItemsExcel,\n  useFileUploadServiceImportItemsExcel,\n  useItemServiceCreateItemsBulk,\n  useItemServiceEditItemsBulk,\n  useItemServiceGetItemsByIds,\n  useItemServiceGetItemsByMyShopKey,\n} from \"@/src/openapi/queries\";\nimport { SubCategoryResponse } from \"@/src/openapi/requests\";\nimport { useItemsStore } from \"@/src/store/items\";\nimport { Exception } from \"@/src/types\";\nimport { usePreventBackNavigation } from \"@/src/utils/usePreventBackNavigation\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { Button, Icon, Input, Loader, Wrapper } from \"@mossoft/ui-kit\";\nimport {\n  AfterEditEvent,\n  BeforeSaveDataDetails,\n  ColumnRegular,\n  RevoGrid,\n  RevoGridCustomEvent,\n  Template,\n} from \"@revolist/react-datagrid\";\nimport NumberColumnType from \"@revolist/revogrid-column-numeral\";\nimport { useRouter } from \"next/navigation\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { ChangeEvent, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useFieldArray, useForm } from \"react-hook-form\";\nimport { bulkSchema } from \"../_helpers/yupSchema\";\nimport ErrorMessage from \"./ErrorIndicator\";\nimport HeaderItem from \"./HeaderItem\";\nimport ImageEditorWrapper from \"./ImageEditor\";\nimport plural from \"plural-ru\";\n\nconst isBeforeSaveDataDetails = (\n  detail: AfterEditEvent\n): detail is BeforeSaveDataDetails => \"val\" in detail;\n\nconst plugin = {\n  integer: new NumberColumnType(\"0,0\"),\n};\n\nconst errorStyles = `\n  .error-row {\n    background-color: rgba(255, 0, 0, 0.15) !important; /* \u041a\u0440\u0430\u0441\u043d\u044b\u0439 \u0444\u043e\u043d \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e */\n    z-index: 1; /* \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430\u0434 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 */\n  }\n`;\n\nconst ItemsTable = () => {\n  const router = useRouter();\n  const queryClient = getQueryClient();\n  usePreventBackNavigation();\n\n  const addRowsRef = useRef(1);\n  const { selectedIds, type, setSelectedIds, selectedSubCategoryIds } =\n    useItemsStore();\n\n  const { mutateAsync: updateItemsBulk, isPending: isPendingEditBulk } =\n    useItemServiceEditItemsBulk({\n      onSuccess: async () => {\n        await queryClient.invalidateQueries({\n          queryKey: [useItemServiceGetItemsByMyShopKey],\n        });\n      },\n    });\n\n  const { mutateAsync: createItemsBulk, isPending: isPendingBulk } =\n    useItemServiceCreateItemsBulk({\n      onSuccess: async () => {\n        await queryClient.invalidateQueries({\n          queryKey: [useItemServiceGetItemsByMyShopKey],\n        });\n      },\n    });\n  const { data: subCategories, isPending: isPendingSchema } =\n    useCategoriesServiceGetSubCategoriesByIds(\n      { ids: selectedSubCategoryIds! },\n      undefined,\n      { enabled: !!selectedSubCategoryIds?.length }\n    );\n  const { mutateAsync: uploadItems, isPending: isPendingImport } =\n    useFileUploadServiceImportItemsExcel();\n  const { mutateAsync: exportExcel, isPending: isPendingExport } =\n    useFileUploadServiceExportItemsExcel();\n  const { data } = useItemServiceGetItemsByIds(\n    { ids: selectedIds },\n    undefined,\n    { enabled: !!selectedIds.length }\n  );\n\n  const [subCategory, setSubCategory] = useState<SubCategoryResponse | null>(\n    subCategories?.[0] || null\n  );\n\n  useEffect(() => {\n    setSubCategory(subCategories?.[0] || null);\n  }, [subCategories]);\n\n  const {\n    control,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<{\n    rows: Array<{ [key: string]: any }>;\n  }>({\n    mode: \"onSubmit\",\n    resolver: yupResolver(bulkSchema),\n  });\n\n  const { replace, fields, update, append, remove } = useFieldArray({\n    control,\n    name: \"rows\",\n    rules: {\n      maxLength: { value: 10000, message: \"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 10000 \u0441\u0442\u0440\u043e\u043a\" },\n    },\n    keyName: \"customId\",\n  });\n\n  const columns: ColumnRegular[] =\n    (subCategory?.fieldsSchema?.length\n      ? [...BASE_CATEGORY_FIELDS, ...subCategory?.fieldsSchema]\n      : BASE_CATEGORY_FIELDS\n    )?.map((item) => ({\n      prop: item.key,\n      name: item.key,\n      sortable: true,\n      readonly:\n        (item.key === \"\u0413\u0440\u0443\u043f\u043f\u0430\" ||\n          item.key === \"\u0410\u0440\u0442\u0438\u043a\u0443\u043b\" ||\n          item.key === \"\u041a\u043e\u043b-\u0432\u043e \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435\") &&\n        type === \"edit\",\n      size: 250,\n      columnType: item.type,\n      columnTemplate: Template(HeaderItem),\n      ...(item.key === \"\u041c\u0435\u0434\u0438\u0430\" && {\n        cellTemplate: Template((rest) =>\n          ImageEditorWrapper({ ...rest, fields, update })\n        ),\n      }),\n    })) || [];\n\n  useEffect(() => {\n    if (!columns?.length) return;\n    if (!data?.length) {\n      replace([\n        columns?.reduce((acc, item) => ({ ...acc, [item.prop]: null }), {}),\n      ]);\n      return;\n    }\n    replace(data.map((item) => ({ id: item.id, ...item.tableData })));\n    return () => {\n      replace([\n        columns?.reduce((acc, item) => ({ ...acc, [item.prop]: null }), {}),\n      ]);\n    };\n  }, [data, selectedIds, subCategory?.fieldsSchema]);\n\n  const onExportExcel = async () => {\n    try {\n      const transformedData = fields.map(\n        ({ customId, myRowClass, isChecked, ...item }) => {\n          return Object.fromEntries(\n            Object.entries(item).map(([key, value]) => [\n              key,\n              Array.isArray(value) ? value.join(\", \") : value,\n            ])\n          );\n        }\n      );\n\n      const res = await exportExcel({ requestBody: { data: transformedData } });\n\n      if (!res?.fileData) {\n        return enqueueSnackbar(\"\u041e\u0448\u0438\u0431\u043a\u0430: \u0444\u0430\u0439\u043b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\", { variant: \"error\" });\n      }\n\n      const blob = new Blob(\n        [Uint8Array.from(atob(res.fileData), (c) => c.charCodeAt(0))],\n        {\n          type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n        }\n      );\n\n      const link = document.createElement(\"a\");\n      link.href = URL.createObjectURL(blob);\n      link.download = res.fileName || \"exported-data.xlsx\";\n      link.click();\n    } catch (e) {\n      enqueueSnackbar((e as Exception).message, { variant: \"error\" });\n    }\n  };\n\n  const onLoadExcel = async (file: File) => {\n    try {\n      const res = await uploadItems({\n        formData: { file },\n        subCategoryId: subCategory?.id!,\n      });\n\n      const transformedData = res\n        .slice(0, 10000)\n        .map(({ \u041c\u0435\u0434\u0438\u0430, \u0413\u0440\u0443\u043f\u043f\u0430, myRowClass, isChecked, ...item }) => ({\n          ...item,\n          ...(typeof \u041c\u0435\u0434\u0438\u0430 === \"string\" &&\n            \u041c\u0435\u0434\u0438\u0430.trim() && { \u041c\u0435\u0434\u0438\u0430: \u041c\u0435\u0434\u0438\u0430.split(\", \") }),\n        }));\n\n      replace(transformedData);\n    } catch (e) {\n      enqueueSnackbar((e as Exception).message, { variant: \"error\" });\n    }\n  };\n\n  const handleCopyRow = () => {\n    replace([\n      ...fields\n        .filter((item) => item.isChecked)\n        .map((item) => ({ ...item, isChecked: false })),\n      ...fields,\n    ]);\n  };\n\n  const handleDeleteRow = () => {\n    replace(fields.filter((item) => !item.isChecked));\n  };\n\n  const handleAddRow = () => {\n    if (addRowsRef.current + fields.length > 10000)\n      return enqueueSnackbar(\"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 10000 \u0441\u0442\u0440\u043e\u043a\", { variant: \"error\" });\n\n    Array.from({ length: addRowsRef.current }).forEach(() => {\n      append([\n        columns?.reduce((acc, item) => ({ ...acc, [item.prop]: null }), {}),\n      ]);\n    });\n  };\n\n  const handleChangeRow = (e: RevoGridCustomEvent<AfterEditEvent>) => {\n    if (isBeforeSaveDataDetails(e.detail) && e.detail?.rowIndex) {\n      update(e.detail.rowIndex, {\n        ...fields[e.detail.rowIndex],\n        [e.detail.prop]: e.detail.val,\n      });\n      return;\n    }\n\n    Object.keys(e.detail.data).map((key) => {\n      update(+key, {\n        ...fields[+key],\n        ...e.detail.data[+key],\n      });\n    });\n  };\n\n  useEffect(() => {\n    if (errors?.rows?.root?.message) {\n      enqueueSnackbar(errors.rows.root.message, { variant: \"error\" });\n      return;\n    }\n  }, [errors?.rows?.root?.message]);\n\n  const onSubmit = async (data: {\n    rows: Array<{\n      [key: string]: string;\n    }>;\n  }) => {\n    const rows = data.rows\n      .map(({ customId, myRowClass, ...rest }) => rest)\n      .map((row) =>\n        Object.keys(row).reduce<{ [key: string]: any }>((acc, key) => {\n          const type = columns.find((col) => col.prop === key)?.columnType;\n          const value =\n            (type === \"integer\" && +row[key]) ||\n            (type === \"array\" && row[key]) ||\n            row[key]?.toString();\n\n          if (value) acc[key] = value;\n          return acc;\n        }, {})\n      );\n\n    try {\n      if (type === \"edit\") {\n        const res = await updateItemsBulk({\n          requestBody: { data: rows.map(({ \u041d\u043e\u043c\u0435\u0440, isValid, ...row }) => row) },\n          subCategoryId: subCategory?.id!,\n        });\n        setSelectedIds([], \"edit\");\n        router.push(\"/items\");\n        return;\n      }\n      const res = await createItemsBulk({\n        requestBody: {\n          data: rows.map(({ \u041d\u043e\u043c\u0435\u0440, isValid, ...row }) => row),\n        },\n        subCategoryId: subCategory?.id!,\n      });\n      router.push(\"/items\");\n    } catch (e) {\n      enqueueSnackbar((e as Exception).message, {\n        variant: \"error\",\n      });\n    }\n  };\n\n  const memoizedFields = useMemo(\n    () =>\n      fields.map((item, index) => ({\n        ...item,\n        [\"\u041d\u043e\u043c\u0435\u0440\"]: index + 1,\n        myRowClass: errors?.rows?.[index] ? \"error-row\" : \"\",\n      })),\n    [fields, errors, update]\n  );\n\n  if (!columns?.length || isPendingSchema || isPendingImport) {\n    return (\n      <div className=\"mt-20 w-full h-[calc(100dvh-300px)]\">\n        <Loader\n          style={{ width: \"100px\", height: \"100px\", marginTop: \"100px\" }}\n        />\n      </div>\n    );\n  }\n\n  console.log(data);\n\n  return (\n    <Wrapper className=\"mt-10 w-full min-h-[calc(100dvh-300px)]\">\n      <div className=\"flex flex-row justify-between mb-2\">\n        <div className=\"flex flex-row items-center justify-center gap-2\">\n          <div className=\"overflow-x-auto flex flex-row gap-2 max-w-[600px]\">\n            {subCategories?.map((item) => (\n              <div\n                key={item.id}\n                onClick={() => setSubCategory(item)}\n                className={`px-2 py-1 bg-[#F7F7FA] cursor-pointer hover:opacity-70 w-fit rounded-[25px] ${\n                  subCategory?.id === item.id ? \"bg-primary text-white\" : \"\"\n                }`}\n              >\n                <AppText\n                  className={`${\n                    subCategory?.id === item.id ? \"text-white\" : \"\"\n                  }`}\n                >\n                  {item.name}\n                </AppText>\n              </div>\n            ))}\n          </div>\n        </div>\n\n        <div className=\"flex flex-row gap-2\">\n          <label htmlFor=\"upload-excel\">\n            <input\n              id=\"upload-excel\"\n              type=\"file\"\n              accept=\".xls,.xlsx\"\n              className=\"hidden\"\n              disabled={isPendingImport}\n              onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                onLoadExcel(e.target.files![0])\n              }\n            />\n\n            <div className=\"px-2 py-1 bg-primary w-fit rounded-[25px] cursor-pointer hover:opacity-70\">\n              <AppText className=\"text-center text-white\">\u0418\u043c\u043f\u043e\u0440\u0442 Excel</AppText>\n            </div>\n          </label>\n          <Button\n            variant=\"primary\"\n            onClick={onExportExcel}\n            disabled={isPendingExport}\n            className=\"px-2 !py-1 bg-primary w-fit rounded-[25px] cursor-pointer hover:opacity-70\"\n          >\n            <AppText className=\"text-center text-white\">\u042d\u043a\u0441\u043f\u043e\u0440\u0442 Excel</AppText>\n          </Button>\n        </div>\n      </div>\n\n      <div className=\"h-[calc(100dvh-300px)] border-primary border-[1px] rounded-lg\">\n        <style>{errorStyles}</style>\n        <RevoGrid\n          key={JSON.stringify(errors?.rows)}\n          columnTypes={plugin}\n          source={memoizedFields}\n          onAfteredit={handleChangeRow}\n          columns={[\n            {\n              prop: \"isChecked\",\n              readonly: true,\n              columnTemplate: (h) => [\n                h(\"input\", {\n                  type: \"checkbox\",\n                  className:\n                    \"w-4 h-4 border border-gray-400 rounded-md transition-all duration-300 bg-primary checked:bg-primary checked:ring-primary focus:outline-none\",\n                  checked: fields.every((field) => field.isChecked),\n                  onChange(e: React.ChangeEvent<HTMLInputElement>) {\n                    replace(\n                      fields.map((field) => ({\n                        ...field,\n                        isChecked: e.target.checked,\n                      }))\n                    );\n                  },\n                }),\n              ],\n              cellTemplate: (h, { value, rowIndex }) =>\n                h(\"label\", undefined, [\n                  h(\"input\", {\n                    type: \"checkbox\",\n                    key: rowIndex,\n                    checked: fields[rowIndex].isChecked,\n                    className:\n                      \"w-4 h-4 border border-gray-400 rounded-md transition-all duration-300 bg-primary checked:bg-primary checked:ring-primary focus:outline-none\",\n                    onChange(e: React.ChangeEvent<HTMLInputElement>) {\n                      update(rowIndex, {\n                        ...fields[rowIndex],\n                        isChecked: e.target.checked,\n                      });\n                    },\n                  }),\n                  value,\n                ]),\n            },\n            { prop: \"\u041d\u043e\u043c\u0435\u0440\", name: \"\u041d\u043e\u043c\u0435\u0440\", readonly: true, sortable: true },\n            ...columns,\n          ]}\n          range\n          className=\"h-[calc(100dvh-300px)]\"\n          resize\n          theme=\"compact\"\n          rowClass=\"myRowClass\"\n        />\n      </div>\n\n      <div className=\"flex flex-row justify-between items-center mt-4\">\n        {type === \"new\" && (\n          <div className=\"flex flex-row items-center gap-2\">\n            <label className=\"flex flex-row gap-2 items-center\">\n              <AppText className=\"text-primary text-sm whitespace-nowrap\">\n                \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438\n              </AppText>\n              <Input\n                type=\"number\"\n                onChange={(e) => (addRowsRef.current = +e.target.value)}\n                value={addRowsRef.current}\n                maxLength={3}\n                className=\"border-none w-[120px] h-[30px]\"\n              />\n            </label>\n            <div onClick={handleAddRow} className=\"flex cursor-pointer\">\n              <Icon name=\"plus\" className=\"w-6 h-6 !text-primary\" />\n            </div>\n          </div>\n        )}\n        {!!fields.filter((item) => item.isChecked).length && (\n          <div className=\"fixed bottom-12 left-1/2 transform -translate-x-1/2 bg-white p-4 rounded-lg shadow-2xl flex justify-between items-center z-50 flex-col\">\n            <AppText className=\"text-lg font-medium\">\n              {plural(\n                fields.filter((item) => item.isChecked).length,\n                \"\u0412\u044b\u0431\u0440\u0430\u043d\",\n                \"\u0412\u044b\u0431\u0440\u0430\u043d\u043e\"\n              )}{\" \"}\n              {fields.filter((item) => item.isChecked).length}{\" \"}\n              {plural(\n                fields.filter((item) => item.isChecked).length,\n                \"\u0442\u043e\u0432\u0430\u0440\",\n                \"\u0442\u043e\u0432\u0430\u0440\u0430\",\n                \"\u0442\u043e\u0432\u0430\u0440\u043e\u0432\"\n              )}\n            </AppText>\n            <div className=\"flex flex-riw gap-4\">\n              <Button\n                variant=\"primary\"\n                className=\"!px-4 !py-2 !text-primary rounded-lg\"\n                onClick={handleCopyRow}\n              >\n                \u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\n              </Button>\n              <Button\n                variant=\"primary\"\n                className=\"!px-4 !py-2 !text-danger\"\n                onClick={handleDeleteRow}\n              >\n                \u0423\u0434\u0430\u043b\u0438\u0442\u044c\n              </Button>\n            </div>\n          </div>\n        )}\n        <div className=\"flex flex-row gap-2 items-center ml-auto\">\n          <ErrorMessage errors={errors} />\n          <Button\n            isLoading={isPendingBulk || isPendingEditBulk}\n            onClick={handleSubmit(onSubmit)}\n            variant=\"primary\"\n            className=\"bg-primary text-white !py-1 !px-2\"\n          >\n            \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\n          </Button>\n        </div>\n      </div>\n    </Wrapper>\n  );\n};\n\nexport default ItemsTable;\n\nAssistant: \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u043f\u043e \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443/\u043f\u043e\u043b\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0432\u044b \u0443\u0436\u0435 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u043b\u0438: \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 `subCategory`, \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 `subCategories` \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 UI.\n\n### \u0427\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c:\n\n1. \u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u0443\u044e \u0444\u043e\u0440\u043c\u0443 / \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0447\u0435\u0440\u0435\u0437 `setSubCategory(item)`.\n\n2. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e `subCategory` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 `fieldsSchema` \u2014 \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 `columns`, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n3. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0444\u043e\u0440\u043c\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 `subCategory`.\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0443 \u0432\u0430\u0441 \u0432 \u043a\u043e\u0434\u0435:\n\n- \u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043a\u043d\u043e\u043f\u043e\u043a \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439:\n\n```tsx\n{subCategories?.map((item) => (\n  <div\n    key={item.id}\n    onClick={() => setSubCategory(item)}\n    className={`px-2 py-1 bg-[#F7F7FA] cursor-pointer hover:opacity-70 w-fit rounded-[25px] ${\n      subCategory?.id === item.id ? \"bg-primary text-white\" : \"\"\n    }`}\n  >\n    <AppText className={`${subCategory?.id === item.id ? \"text-white\" : \"\"}`}>\n      {item.name}\n    </AppText>\n  </div>\n))}\n```\n\n- \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b:\n\n```tsx\nconst columns: ColumnRegular[] =\n  (subCategory?.fieldsSchema?.length\n    ? [...BASE_CATEGORY_FIELDS, ...subCategory?.fieldsSchema]\n    : BASE_CATEGORY_FIELDS\n  )?.map((item) => ({\n    prop: item.key,\n    name: item.key,\n    // ...\n  })) || [];\n```\n\n- \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438:\n\n```tsx\nuseEffect(() => {\n  setSubCategory(subCategories?.[0] || null);\n}, [subCategories]);\n\nuseEffect(() => {\n  if (!columns?.length) return;\n  if (!data?.length) {\n    replace([\n      columns?.reduce((acc, item) => ({ ...acc, [item.prop]: null }), {}),\n    ]);\n    return;\n  }\n  replace(data.map((item) => ({ id: item.id, ...item.tableData })));\n}, [data, selectedIds, subCategory?.fieldsSchema]);\n```\n\n---\n\n### \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c/\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c\n\n- **\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e:**  \n  \u041f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 `subCategory` \u0441\u0442\u043e\u0438\u0442 \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 id (`setSelectedIds([])`), \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e.\n\n- **\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f:**  \n  `useCategoriesServiceGetSubCategoriesByIds` \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439.\n\n- **\u0424\u043e\u0440\u043c\u044b \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0438 \u0441\u0431\u0440\u043e\u0441:**  \n  \u0415\u0441\u043b\u0438 \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0441\u0432\u043e\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f, \u043c\u043e\u0436\u043d\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c yup-\u0441\u0445\u0435\u043c\u0443 \u043f\u043e\u0434 `subCategory`.\n\n---\n\n### \u0412 \u0446\u0435\u043b\u043e\u043c, \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432\u0441\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u044b \u043f\u043e \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c:\n\n- \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u043b\u043a\u0443 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 (\u043a\u043d\u043e\u043f\u043a\u0438).\n- \u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n- \u0414\u0430\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b (\u043f\u043e\u043b\u0435\u0439) \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0434 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e `yup`-\u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0438\u043b\u0438 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u043f\u043e \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0435\u043a\u0446\u0438\u044f\u043c\u0438, \u0438\u043b\u0438 \u0441 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e!\nUser: \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u043e\u0440\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c ?  const [subCategory, setSubCategory] = useState<SubCategoryResponse>(     subCategories!?.[0]   ); \nAssistant: \u041b\u0443\u0447\u0448\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u043e\u0441\u044c **\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445** `subCategories`, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0435 `subCategories` \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c `undefined` \u0438\u043b\u0438 `null`, \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 `useState` \u0441\u0440\u0430\u0437\u0443 `subCategories?.[0]` \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 props/\u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f.\n\n\u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 `null` \u0438\u043b\u0438 `undefined`, \u0430 \u0437\u0430\u0442\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u0432 `useEffect`, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u044f\u0442\u0441\u044f:\n\n```tsx\nconst [subCategory, setSubCategory] = useState<SubCategoryResponse | null>(null);\n\nuseEffect(() => {\n  if (subCategories?.length) {\n    setSubCategory(subCategories[0]);\n  }\n}, [subCategories]);\n```\n\n---\n\n### \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043b\u0443\u0447\u0448\u0435:\n\n- `subCategories` \u0438\u0437 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u2014 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u0443\u0441\u0442\u043e\u0439 \u0438\u043b\u0438 `undefined`: \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u0440\u0430\u0437\u0443.\n- \u041f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f.\n- \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 `subCategory` \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c.\n- \u042f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0438\u043f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c `null`.\n\n---\n\n### \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0441 \u043b\u0435\u043d\u0438\u0432\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439:\n\n\u0415\u0441\u043b\u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e `subCategories` \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u043f\u0440\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 `useState`:\n\n```tsx\nconst [subCategory, setSubCategory] = useState<SubCategoryResponse | null>(\n  () => subCategories?.[0] ?? null\n);\n```\n\n\u041d\u043e \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 `useEffect`.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043e\u0444\u043e\u0440\u043c\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445.\nUser: \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0439 \u0441\u0430\u0439\u0442 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u0445 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0441\u044f \u0435\u0449\u0435 \u043f\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \"\u043e\u043f\u0442\u043e\u043c\", \u0441\u0435\u043e \u0435\u0441\u0442\u044c \u0438 \u043e\u043d\u043e \u043d\u043e\u0440\u043c \nAssistant: \u0427\u0442\u043e\u0431\u044b \u0441\u0430\u0439\u0442 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445\u0432\u0430\u043b\u0441\u044f \u043f\u043e \u0431\u043e\u043b\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u043e\u043c\u0443 \u0441\u043f\u0435\u043a\u0442\u0440\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0431\u0440\u0435\u043d\u0434\u0430 \u0438\u043b\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0441\u0430\u0439\u0442\u0430, \u0432\u0430\u0436\u043d\u043e \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0434\u043b\u044f \u043d\u0443\u0436\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c \u043e\u0431\u0449\u0443\u044e SEO-\u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e. \u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430 \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u0441 \u043e\u0431\u0449\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u00ab\u043e\u043f\u0442\u043e\u043c\u00bb, \u00ab\u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u00bb \u0438 \u0442.\u0434.) \u2014 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0435 SEO, \u0432\u0430\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e:\n\n---\n\n### 1. \u041a\u043e\u043d\u0442\u0435\u043d\u0442 \u0441 \u0444\u043e\u043a\u0443\u0441\u043e\u043c \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430\n\n- **\u0420\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0442\u0435\u043c\u0430\u0442\u0438\u043a:** \u041a\u0440\u043e\u043c\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u0441\u0442\u0430\u0442\u0435\u0439 (\u0431\u043b\u043e\u0433\u0430), FAQ \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043e\u0431\u0449\u0438\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u0442\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c\u00bb, \u00ab\u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438\u00bb, \u00ab\u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441 \u043e\u043f\u0442\u043e\u043c\u00bb).\n- **\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432:** \u0412\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 (\u00ab\u043e\u043f\u0442\u043e\u043c\u00bb, \u00ab\u043e\u043f\u0442\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u00bb, \u00ab\u043a\u0443\u043f\u0438\u0442\u044c \u043e\u043f\u0442\u043e\u043c\u00bb \u0438 \u0442.\u043f.) \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 `<title>`, `<meta name=\"description\">`, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 `<h1>`, `<h2>` \u0438 \u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446.\n- **\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442:** \u0427\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0435\u0435 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u0448\u0430\u043d\u0441, \u0447\u0442\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0432\u0430\u0441 \u043f\u043e\u043a\u0430\u0436\u0443\u0442 \u043f\u043e \u043d\u0438\u043c.\n\n---\n\n### 2. \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u044f\u0434\u0440\u043e \u0438 \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u044b\n\n- \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u044b \u0438 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0438\u0445 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435, \u0430\u043d\u043a\u043e\u0440\u0430\u0445 \u0441\u0441\u044b\u043b\u043e\u043a, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u0445 alt \u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439.\n- \u041f\u0440\u0438\u043c\u0435\u0440: \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u00ab\u043e\u043f\u0442\u043e\u043c\u00bb, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0438 \u00ab\u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438\u00bb, \u00ab\u043e\u043f\u0442\u043e\u0432\u0430\u044f \u0431\u0430\u0437\u0430\u00bb, \u00ab\u0437\u0430\u043a\u0443\u043f\u043a\u0430 \u043e\u043f\u0442\u043e\u043c\u00bb \u0438 \u0442.\u0434.\n\n---\n\n### 3. \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043f\u0435\u0440\u0435\u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f\n\n- \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0441 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0430\u043d\u043a\u043e\u0440\u0430\u043c\u0438.\n- \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u00ab\u0445\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438\u00bb, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 URL.\n\n---\n\n### 4. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (Schema.org)\n\n- \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0432 \u0442.\u0447. \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u043e\u0442\u0437\u044b\u0432\u0430, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, FAQ \u2014 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a \u043f\u043e\u043d\u044f\u043b \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442.\n- \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443.\n\n---\n\n### 5. \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f URL-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445\n\n- URL-\u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `/catalog/optovye-tovary`, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e ID.\n- \u0423\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 (title/description) \u0441 \u0444\u043e\u043a\u0443\u0441\u043e\u043c \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u044b\u0435 \u043a\u043b\u044e\u0447\u0438.\n\n---\n\n### 6. \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f\n\n- \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u0442\u0435\u043c \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.\n- \u041f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0439\u0442\u0435 \u0441\u0430\u0439\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PR, \u0441\u043e\u0446\u0441\u0435\u0442\u0435\u0439, \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0438 \u0431\u043b\u043e\u0433\u043e\u0432.\n\n---\n\n### 7. \u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430\n\n- \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043e\u0431\u0437\u043e\u0440\u044b \u0438 \u0441\u0442\u0430\u0442\u044c\u0438, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u0435\u043c\u044b.\n- \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043d\u0430\u0440\u0430\u0441\u0442\u0438\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430\u043c.\n\n---\n\n### 8. \u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 Google Search Console\n\n- \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u0448 \u0441\u0430\u0439\u0442.\n- \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u043e\u0434 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0438 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b.\n- \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f, \u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043a\u043b\u0438\u043a\u043e\u0432.\n\n---\n\n### 9. \u0423\u043b\u0443\u0447\u0448\u0438\u0442\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u044b\n\n- \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 UX, \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u2014 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442 \u0432\u043e\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.\n\n---\n\n### \u0420\u0435\u0437\u044e\u043c\u0435\n\n> **SEO \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u043e \u0438 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u043f\u043b\u043e\u0442\u043d\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u043c, \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0438 \u0432\u043d\u0435\u0448\u043d\u044f\u044f \u0441\u0441\u044b\u043b\u043a\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430\u0434 \u0441\u0430\u0439\u0442\u043e\u043c.**  \n\n\u0412\u0430\u0448 \u0441\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u043d\u0430\u0434 \u043e\u0445\u0432\u0430\u0442\u043e\u043c \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0435 \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043b\u0430\u043d \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u043f\u043e\u0434\u0431\u043e\u0440\u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u043f\u043e SEO \u0441 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0436\u0438\u0442\u0435!\nUser: \u0432\u043e\u0442 \u0441\u0430\u0439\u0442 https://rusoptom.ru/\nAssistant: \u0427\u0442\u043e\u0431\u044b \u0441\u0430\u0439\u0442 https://rusoptom.ru/ \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u0445 \u043f\u043e \u0431\u043e\u043b\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u043e\u043c\u0443 \u043d\u0430\u0431\u043e\u0440\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u00ab\u043e\u043f\u0442\u043e\u043c\u00bb \u0438\u043b\u0438 \u0441\u043c\u0435\u0436\u043d\u044b\u043c \u0442\u0435\u043c\u0430\u043c), \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c SEO \u0438 \u043e\u043d\u0430 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u043e, \u044f \u0431\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0448\u0430\u0433\u0438:\n\n---\n\n### 1. \u041a\u043e\u043d\u0442\u0435\u043d\u0442\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0438\n\n- **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439** \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0431\u043b\u0438\u0437\u043a\u0438\u043c\u0438 \u043a \u0442\u0435\u043c\u0435 \u00ab\u043e\u043f\u0442\u043e\u043c\u00bb, \u00ab\u043e\u043f\u0442\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u00bb, \u00ab\u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u00bb, \u00ab\u0437\u0430\u043a\u0443\u043f\u043a\u0430 \u043e\u043f\u0442\u043e\u043c\u00bb \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 `/catalog/opty` \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u043a\u043b\u044e\u0447\u0438.\n\n- **\u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0439\u0442\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u043e\u0431\u0437\u043e\u0440\u044b, \u0433\u0430\u0439\u0434\u044b \u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0438**, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u043f\u0442\u043e\u0432\u044b\u043c\u0438 \u0437\u0430\u043a\u0443\u043f\u043a\u0430\u043c\u0438. \u0421\u0442\u0430\u0442\u044c\u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0441 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438.\n\n- **\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 (title), \u043c\u0435\u0442\u0430-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u043f\u043e\u0434\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 (h1, h2)** \u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0441 \u0443\u043f\u043e\u0440\u043e\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0431\u0440\u0435\u043d\u0434, \u043d\u043e \u0438 \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0441 \u00ab\u043e\u043f\u0442\u043e\u043c\u00bb \u0438 \u0441\u0432\u044f\u0437\u043d\u044b\u0435.\n\n---\n\n### 2. \u0423\u043b\u0443\u0447\u0448\u0438\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u043f\u0435\u0440\u0435\u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0443 \u0438 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e\n\n- \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u0430\u043d\u043a\u043e\u0440\u0430\u043c\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u00ab\u043e\u043f\u0442\u043e\u043c\u00bb, \u00ab\u043e\u043f\u0442\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u00bb \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435, \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0435\u0441 \u043a\u043b\u044e\u0447\u0435\u0439.\n\n- \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0445\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u043e\u0439.\n\n- \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u0441\u0430\u0439\u0442 JSON-LD \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0434\u043b\u044f `SiteNavigationElement` \u0438 `BreadcrumbList` \u0441 \u0442\u043e\u0447\u043d\u044b\u043c\u0438 URL \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438.\n\n---\n\n### 3. \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f URL \u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e SEO\n\n- URL \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n  ```\n  https://rusoptom.ru/catalog/opty/\n  https://rusoptom.ru/catalog/opty/bytovaya-tehnika\n  ```\n\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e sitemap.xml \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438 URL.\n\n---\n\n### 4. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 Google Search Console\n\n- \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u00ab\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u00bb \u0432 GSC, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043f\u043e \u043a\u0430\u043a\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u0432\u0430\u0448 \u0441\u0430\u0439\u0442 \u0443\u0436\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0432\u044b\u0434\u0430\u0447\u0435 \u0432\u043d\u0435 \u0431\u0440\u0435\u043d\u0434\u0430.\n\n- \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0439\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0442\u0440\u0430\u0444\u0438\u043a.\n\n---\n\n### 5. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438\n\n- \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0441 \u0430\u043d\u043a\u043e\u0440\u0430\u043c\u0438 \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0442\u0435\u043c \u043b\u0443\u0447\u0448\u0435 \u0440\u0430\u0441\u043a\u0440\u0443\u0442\u043a\u0430 \u043f\u043e \u044d\u0442\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c.\n\n- \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438, \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438, \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0435 \u043e\u0431\u0437\u043e\u0440\u044b \u0438 PR.\n\n---\n\n### 6. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432\n\n- \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0430\u0439\u0442\u0430, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c, \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u0432\u0441\u0451 \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0435\u0439\u0442\u0438\u043d\u0433.\n\n- \u0425\u043e\u0440\u043e\u0448\u0438\u0439 UX \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0438 \u0441\u043d\u0438\u0437\u0438\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0432.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n\u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:\n\n- \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u00ab\u043e\u043f\u0442\u043e\u043c\u00bb, \u00ab\u043e\u043f\u0442\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u00bb \u0438 \u0442.\u043f.\n- \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u0431\u043b\u043e\u0433 \u043e \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435.\n- \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 URL.\n- \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u043f\u0435\u0440\u0435\u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0443 (\u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438).\n- \u0410\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0439\u0442\u0435 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c.\n- \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0443\u043b\u0443\u0447\u0448\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441:\n\n- \u041f\u043e\u0434\u0431\u043e\u0440\u043e\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u044f\u0434\u0440\u0430.\n- \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043f\u043b\u0430\u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0444\u0440\u0430\u0437\u044b.\n- SEO-\u0430\u0443\u0434\u0438\u0442\u043e\u043c \u0441\u0430\u0439\u0442\u0430 \u0441 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c\u0438 \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\n\u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0436\u0438\u0442\u0435!\nUser: \u0442\u0430\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 ? <meta name=\"keywords\" content=\", \u0414\u0440\u0435\u043b\u044c-\u0448\u0443\u0440\u0443\u043f\u043e\u0432\u0435\u0440\u0442 \u0412\u0438\u0445\u0440\u044c, \u0422\u0443\u0440\u0435\u0446\u043a\u0438\u0435 \u0431\u043e\u0442\u0438\u043d\u043a\u0438, Samsung  S24 ultra, Samsung  S23 ultra, \u0431\u043e\u0441\u043e\u043d\u043e\u0436\u043a\u0438 \u043b\u0435\u0442\u043d\u0438\u0435, \u0431\u043e\u0441\u043e\u043d\u043e\u0436\u043a\u0438 \u043b\u0435\u0442\u043d\u0438\u0435, \u0431\u043e\u0441\u043e\u043d\u043e\u0436\u043a\u0438 \u043b\u0435\u0442\u043d\u0438\u0435, \u043e\u043f\u0442\u043e\u043c \u043a\u0443\u043f\u0438\u0442\u044c, \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441, \u043e\u043f\u0442\u043e\u043c\">\nAssistant: \u041c\u0435\u0442\u0430\u0442\u0435\u0433 `<meta name=\"keywords\">` \u0441\u0435\u0439\u0447\u0430\u0441 **\u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438** \u0438 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u0430. Google \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0435\u0433\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442 \u0438\u0437-\u0437\u0430 \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439 (keyword stuffing).\n\n---\n\n### \u0427\u0442\u043e \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0438 SEO \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c:\n\n1. **\u041d\u0435 \u0437\u0430\u0446\u0438\u043a\u043b\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 `<meta name=\"keywords\">`.** \u042d\u0442\u043e\u0442 \u0442\u0435\u0433 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u2014 \u043e\u043d \u043d\u0435 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u044b.\n\n2. **\u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0443\u0434\u0435\u043b\u044f\u0439\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435:**\n\n   - **Title (\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b):** \u0441\u044e\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e \u0438 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e.\n   \n   - **Meta Description:** \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u0430 \u0438 \u043a\u043b\u0438\u043a\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.\n   \n   - **\u041a\u043e\u043d\u0442\u0435\u043d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b:** \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0447\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 (`<h1>-<h3>`), \u0442\u0435\u043a\u0441\u0442\u0435, \u0441\u043f\u0438\u0441\u043a\u0430\u0445, \u0430\u043d\u043a\u043e\u0440\u0430\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0438 \u0442.\u0434.\n   \n   - **ALT-\u0442\u0435\u043a\u0441\u0442\u0430\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a:** \u0441 \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438.\n   \n   - **\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c (Schema.org).**\n\n3. **\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044e**, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0431\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 \u0438 \u0441\u043f\u0430\u043c\u0430.\n\n4. **\u0412\u0430\u0448\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0432 `content` \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e, \u0431\u0435\u0437 \u0438\u0437\u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u043f\u044f\u0442\u044b\u0445 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432.**\n\n---\n\n### \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 (\u0435\u0441\u043b\u0438 \u0432\u0441\u0451 \u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435)\n\n```html\n<meta name=\"keywords\" content=\"\u0434\u0440\u0435\u043b\u044c-\u0448\u0443\u0440\u0443\u043f\u043e\u0432\u0435\u0440\u0442 \u0432\u0438\u0445\u0440\u044c, \u0442\u0443\u0440\u0435\u0446\u043a\u0438\u0435 \u0431\u043e\u0442\u0438\u043d\u043a\u0438, samsung s24 ultra, samsung s23 ultra, \u0431\u043e\u0441\u043e\u043d\u043e\u0436\u043a\u0438 \u043b\u0435\u0442\u043d\u0438\u0435, \u043e\u043f\u0442\u043e\u043c \u043a\u0443\u043f\u0438\u0442\u044c, \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441, \u043e\u043f\u0442\u043e\u043c\">\n```\n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430:\n\n- \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0438 \u0444\u0440\u0430\u0437\u044b \u0431\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u044b\u0445 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00abSamsung S24 ultra\u00bb, \u0430 \u043d\u0435 \u00abSamsung, S24 ultra\u00bb).\n- \u0421\u0442\u0440\u043e\u043a\u0430 \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0438\u043b\u0438 \u043f\u0443\u0441\u0442\u044b\u0445 \u0437\u0430\u043f\u044f\u0442\u044b\u0445.\n- \u041d\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 (\u00ab\u0431\u043e\u0441\u043e\u043d\u043e\u0436\u043a\u0438 \u043b\u0435\u0442\u043d\u0438\u0435\u00bb \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435).\n\n---\n\n### \u0412\u044b\u0432\u043e\u0434\n\n- \u0414\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0432\u0430\u0436\u043d\u0435\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 SEO-\u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u0435\u0442\u0430-\u0442\u0435\u0433\u043e\u0432 `<title>`, `<meta name=\"description\">`, \u0430 \u043d\u0435 \u043c\u0435\u0442\u0430 keywords.\n- \u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u043c\u0435\u0442\u0430 keywords \u2014 \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u044d\u0442\u043e \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e, \u0431\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432, \u0438 \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u0442\u0435\u043c\u0430\u0442\u0438\u043a \u0441\u0430\u0439\u0442\u0430.\n- \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0443\u043f\u043e\u0440 \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u043f\u0435\u0440\u0435\u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0443, \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 title \u0438 description \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c SEO-\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438.\nUser: \u0432\u043e\u0442 \u0442\u0430\u043a ? import Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n}: ProductSchemaProps) => {\n  const schema = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price || \"\u0414\u043e\u0433\u043e\u0432\u043e\u0440\u043d\u0430\u044f\",\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: \"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430\",\n      },\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n\nAssistant: \u0414\u0430, \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 Schema.org \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0422\u0430\u043a\u043e\u0439 JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u0432\u0430\u0440\u0435 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u0432\u044b\u0434\u0430\u0447\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u0430\u043c\u0438).\n\n\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f:\n\n1. **\u0426\u0435\u043d\u0430 \u0438 \u0432\u0430\u043b\u044e\u0442\u0430**  \n   \u0412 Schema.org \u0434\u043b\u044f \u043f\u043e\u043b\u044f `price` \u043b\u0443\u0447\u0448\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `\"1230\"`), \u0430 \u043d\u0435 `\"\u0414\u043e\u0433\u043e\u0432\u043e\u0440\u043d\u0430\u044f\"`. \u0415\u0441\u043b\u0438 \u0446\u0435\u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043b\u0443\u0447\u0448\u0435 \u0443\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u043b\u0435 `price` \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435 `priceSpecification` \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c.  \n   \u0418\u043d\u0430\u0447\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435.\n\n2. **\u0410\u0442\u0440\u0438\u0431\u0443\u0442 `availability` \u043b\u0443\u0447\u0448\u0435 \u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 Schema.org**, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,  \n   `\"availability\": \"https://schema.org/InStock\"`,  \n   \u0438\u043b\u0438 `\"https://schema.org/OutOfStock\"`, \u0435\u0441\u043b\u0438 \u0442\u043e\u0432\u0430\u0440\u0430 \u043d\u0435\u0442.\n\n3. **\u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u043e\u043b\u0435 `url` \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u043e\u0432\u0430\u0440\u0430.**\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430:\n\n```tsx\nimport Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number | null;\n  currency?: string;\n  url?: string;\n  availability?: \"InStock\" | \"OutOfStock\" | \"PreOrder\";\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = null,\n  currency = \"RUB\",\n  url,\n  availability = \"InStock\",\n}: ProductSchemaProps) => {\n  const schema: any = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    ...(url && { url }),\n  };\n\n  if (price !== null) {\n    schema.offers = {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: `https://schema.org/${availability}`,\n      seller: {\n        \"@type\": \"Organization\",\n        name: \"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430\",\n      },\n    };\n  }\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n```\n\n---\n\n### \u0427\u0442\u043e \u0434\u0430\u0451\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430:\n\n- \u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u0432\u0430\u0440\u0430\u0445.\n- \u0423\u043b\u0443\u0447\u0448\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432 \u0441 \u0446\u0435\u043d\u0430\u043c\u0438, \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c, \u0431\u0440\u0435\u043d\u0434\u043e\u043c.\n- \u0423\u043b\u0443\u0447\u0448\u0430\u0435\u0442\u0441\u044f SEO \u0441\u0430\u0439\u0442\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u043b\u0435\u0431\u043d\u044b\u0445 \u043a\u0440\u043e\u0448\u0435\u043a \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.  \n\u0421\u043a\u0430\u0436\u0438\u0442\u0435!\nUser: \u0442\u0430\u043a? import { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n}: ProductSchemaProps) => {\n  const schema = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price,\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": shop.name,\n        name: shop.name,\n      },\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n\nAssistant: \u041f\u043e\u0447\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043d\u043e \u0435\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 `ProductSchema`:\n\n1. \u0412 \u043f\u043e\u043b\u0435 `seller[\"@type\"]` \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c **\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 Schema.org**, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `\"Organization\"`, \u0430 \u043d\u0435 \u0438\u043c\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 (`shop.name`). \u0418\u043d\u0430\u0447\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u044e\u0442 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e.\n\n2. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435, \u0447\u0442\u043e\u0431\u044b `image` \u0431\u044b\u043b \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0441 URL (\u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c URL, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e string[]), \u0438\u043d\u0430\u0447\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.\n\n3. \u0415\u0441\u043b\u0438 `price` \u0440\u0430\u0432\u0435\u043d 0 \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u0435 `price` \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c `null` `price` \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0432 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 (0 \u2014 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043d\u0430?).\n\n4. \u041c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u0435 `url` \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c.\n\n\u0412\u043e\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438:\n\n```tsx\nimport { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string | string[];\n  description: string;\n  brand?: string;\n  price?: number | null;\n  currency?: string;\n  shop: CardShopResponse;\n  offerUrl?: string; // URL \u0442\u043e\u0432\u0430\u0440\u0430/\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c\n  availability?: \"InStock\" | \"OutOfStock\" | \"PreOrder\";\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = null,\n  currency = \"RUB\",\n  shop,\n  offerUrl,\n  availability = \"InStock\",\n}: ProductSchemaProps) => {\n  const schema: any = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    seller: {\n      \"@type\": \"Organization\", // \u0432\u0441\u0435\u0433\u0434\u0430 Organization\n      name: shop.name,\n    },\n  };\n\n  if (price !== null) {\n    schema.offers = {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: `https://schema.org/${availability}`,\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n      ...(offerUrl ? { url: offerUrl } : {}),\n    };\n  }\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n```\n\n---\n\n### \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438:\n\n- `seller[\"@type\"]` \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 `\"Organization\"`, \u0430 \u043d\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430.\n\n- \u0426\u0435\u043d\u0430 (`price`) \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0446\u0435\u043d\u0430 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430.\n\n- `image` \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0443, \u0438 \u043a\u0430\u043a \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a.\n\n- \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c URL \u0442\u043e\u0432\u0430\u0440\u0430 \u2014 \u043b\u0443\u0447\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 `offers.url`.\n\n---\n\n\u0422\u0430\u043a \u0432\u0430\u0448\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438 \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c SEO \u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0434\u0430\u0447\u0435.  \n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u2014 \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435\u0441\u044c!\nUser: \u0434\u043e\u0431\u0430\u0432\u044c \u043e\u0444\u0444\u0435\u0440 \u044e\u0440\u043b, \u0411\u041e\u041b\u042c\u0428\u0415 \u041d\u0418\u0427\u0415\u0413\u041e \u041d\u0415 \u041c\u0415\u041d\u042f\u0419 import { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n}: ProductSchemaProps) => {\n  const schema = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n\nAssistant: \u0412\u043e\u0442 \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u0435\u043c `url` \u0434\u043b\u044f \u043e\u0444\u0444\u0435\u0440\u0430 (`offerUrl`), \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c:\n\n```tsx\nimport { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n  offerUrl?: string; // \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u043b\u0435 \u0434\u043b\u044f URL \u043e\u0444\u0444\u0435\u0440\u0430\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n  offerUrl, // \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438\u0437 \u043f\u0440\u043e\u043f\u0441\u043e\u0432\n}: ProductSchemaProps) => {\n  const schema = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n      ...(offerUrl ? { url: offerUrl } : {}), // \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 url\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n```\nUser: \u0430 \u0433\u0434\u0435 \u044f \u0435\u0433\u043e \u0432\u043e\u0437\u044c\u043c\u0443 \u0441\u0442\u043e\u043f \nAssistant: \u041f\u043e\u043b\u0435 `offerUrl` \u2014 \u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u043e\u0432\u0430\u0440\u0430 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430, \u0433\u0434\u0435 \u044d\u0442\u043e\u0442 \u0442\u043e\u0432\u0430\u0440 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d. \u041e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e\u0442 URL \u043c\u043e\u0436\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u0441\u043b\u0430\u0433\u0430 \u0442\u043e\u0432\u0430\u0440\u0430.\n\n### \u0413\u0434\u0435 \u0438 \u043a\u0430\u043a \u0432\u0437\u044f\u0442\u044c `offerUrl`\n\n- \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u043e\u0432\u0430\u0440\u0430 \u0441 \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c (`id`, `slug` \u0438 \u0442.\u043f.), \u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c URL \u0442\u0430\u043a:\n\n```ts\nconst offerUrl = `https://rusoptom.ru/catalog/${productIdOrSlug}`;\n```\n\n- \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u043e\u0432\u0430\u0440\u0430, \u0442\u043e URL \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 `useRouter` \u0438\u0437 `next/navigation` \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430).\n\n- \u0418\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 URL \u0432 \u043f\u0440\u043e\u043f\u0441\u0430\u0445 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n```tsx\n<ProductSchema\n  name={item.name}\n  image={item.image}\n  description={item.description}\n  price={item.price}\n  currency=\"RUB\"\n  shop={shop}\n  offerUrl={`https://rusoptom.ru/catalog/${item.id}`}\n/>\n```\n\n---\n\n### \u0420\u0435\u0437\u044e\u043c\u0435\n\n- `offerUrl` \u2014 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0442\u043e\u0432\u0430\u0440\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043a\u0443\u043f\u0438\u0442\u044c \u0438\u043b\u0438 \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438.\n- \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0441 URL, \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0439\u0442\u0435 \u0435\u0433\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e ID/\u0441\u043b\u0430\u0433\u0430 \u0442\u043e\u0432\u0430\u0440\u0430.\n- \u041b\u0443\u0447\u0448\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 URL \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u0437 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043e\u043d \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d, \u0442\u043e\u0433\u0434\u0430 \u0432 JSON-LD \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430.\n\n\u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442\u0435, \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u044b \u0431\u0435\u0440\u0451\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u0430, \u044f \u043f\u043e\u043c\u043e\u0433\u0443 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f `offerUrl`.\nUser: \u0442\u0430\u043a \u0430 \u0432\u043e\u0442 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u043a\u0441\u0442 15, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u044f \u0434\u0435\u043b\u0430\u044e \u044d\u0442\u043e ? \"use client\";\nimport { getQueryClient } from \"@/src/api/api\";\nimport { BOX_TYPES_TRANlSATIONS, priceSeparator } from \"@/src/constants\";\nimport {\n  useCardsServiceGetAllCardsKey,\n  useCardsServiceGetCardByIdKey,\n  useCardsServiceGetCardsCountKey,\n  useCardsServiceGetCardViewHistoryKey,\n  useCardsServiceGetNewCardsKey,\n  useFavoritesServiceChangeFavorite,\n} from \"@/src/openapi/queries\";\nimport { CardResponse } from \"@/src/openapi/requests\";\nimport { useAuthStore } from \"@/src/store/auth\";\nimport { Icon } from \"@mossoft/ui-kit\";\nimport { useRouter } from \"next/navigation\";\nimport plural from \"plural-ru\";\nimport AppText from \"../AppText/AppText\";\nimport HoverSlider from \"../HoverSlider/HoverSlider\";\nimport ProductSchema from \"../SEO/ProductSchema\";\nimport Link from \"next/link\";\nimport { memo } from \"react\";\n\ntype Props = {\n  item: CardResponse;\n};\n\nconst CardItem = ({ item }: Props) => {\n  const router = useRouter();\n  const queryClient = getQueryClient();\n  const { isAuthenticated } = useAuthStore();\n  const { mutateAsync: changeIsFavorite } = useFavoritesServiceChangeFavorite({\n    onSuccess: async () => {\n      await Promise.all(\n        [\n          useCardsServiceGetNewCardsKey,\n          useCardsServiceGetAllCardsKey,\n          useCardsServiceGetCardsCountKey,\n          useCardsServiceGetCardByIdKey,\n          useCardsServiceGetCardViewHistoryKey,\n        ].map((key) => queryClient.invalidateQueries({ queryKey: [key] }))\n      );\n    },\n  });\n\n  const handleChangeFavorite = async (\n    e: React.MouseEvent<HTMLInputElement>\n  ) => {\n    e.preventDefault();\n    try {\n      const res = await changeIsFavorite({ cardId: item.id });\n    } catch (e) {\n      !isAuthenticated && router.push(\"?modal=auth\", { scroll: false });\n    }\n  };\n\n  const previewItem = item.preview;\n\n  return (\n    <>\n      <ProductSchema\n        name={previewItem.name}\n        image={process.env.NEXT_PUBLIC_FILES_URL + previewItem.media?.[0]}\n        description={\n          previewItem.description || \"\u041b\u0443\u0447\u0448\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u043e\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432\"\n        }\n        brand={previewItem.brand}\n        shop={item.shop}\n        price={previewItem.price}\n        currency=\"RUB\"\n        offerUrl={`https://rusoptom.ru/catalog/${item.id}`}\n      />\n\n      <Link\n        className=\"flex min-h-[320px] flex-col\"\n        href={`/catalog/${item.id}`}\n      >\n        <div className=\"relative w-full\">\n          <div onClick={handleChangeFavorite} className=\"cursor-pointer\">\n            <Icon\n              name=\"like\"\n              className={`w-8 h-8  ${\n                item.isFavorite ? \"!text-danger\" : \"!text-white\"\n              } absolute top-3 right-4 z-10`}\n            />\n          </div>\n          <HoverSlider\n            images={previewItem?.media || [\"/images/itemsPlaceholder.png\"]}\n          />\n        </div>\n\n        <div className=\"flex flex-col gap-1 mt-1\">\n          <AppText className=\"font-semibold text-fluid min-h-[50px]\">\n            {previewItem.name}\n          </AppText>\n\n          <AppText className=\"font-semibold text-lg text-primary leading-4\">\n            {priceSeparator(previewItem.price)} \u20bd\n          </AppText>\n\n          <AppText className=\"!text-light-gray text-sm-fluid\">\n            {previewItem.countryOfOrigin} / {item.shop.name}\n          </AppText>\n\n          <div className=\"w-fit flex flex-row gap-1 items-center\">\n            <div className=\"flex flex-row items-center rounded-3xl gap-1\">\n              <Icon name=\"star\" className=\"w-4 h-4 !text-[#FFCA7C]\" />\n              <AppText className=\"!text-light-gray text-sm-fluid\">\n                {item.averageRating?.toFixed(1)}\n              </AppText>\n            </div>\n            <AppText className=\"!text-light-gray text-sm-fluid\">|</AppText>\n\n            <AppText className=\"!text-light-gray text-sm-fluid\">\n              {`${item.reviewCount} ${plural(\n                item.reviewCount,\n                \"\u043e\u0446\u0435\u043d\u043a\u0430\",\n                \"\u043e\u0446\u0435\u043d\u043a\u0438\",\n                \"\u043e\u0446\u0435\u043d\u043e\u043a\"\n              )}`}\n            </AppText>\n          </div>\n          <div className=\"w-fit flex bg-primary-light rounded-3xl px-2 py-1\">\n            <AppText className=\"!text-primary text-xs-fluid\">\n              {Object.keys(previewItem)\n                .map(\n                  (key) =>\n                    previewItem[key as keyof typeof previewItem] &&\n                    BOX_TYPES_TRANlSATIONS[key]\n                )\n                .filter((item) => item)\n                .join(\", \")}\n            </AppText>\n          </div>\n        </div>\n      </Link>\n    </>\n  );\n};\n\nexport default memo(CardItem);\n\nAssistant: \u0412\u0430\u0448 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 Next.js 15 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 `offerUrl` \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u0438 \u0435\u0433\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0448\u0430\u0431\u043b\u043e\u043d URL \u2014 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 best practices.\n\n\u0412\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e:\n\n- \u041f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 `offerUrl` \u0432 `ProductSchema` \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0439 URL \u0442\u043e\u0432\u0430\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u0439\u0434\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438:  \n  ```tsx\n  offerUrl={`https://rusoptom.ru/catalog/${item.id}`}\n  ```\n\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0435\u0433\u043e \u0432 JSON-LD \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 (\u0441\u043c. \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `ProductSchema`), \u0447\u0442\u043e \u0434\u0430\u0451\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u0442\u043e\u0447\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0442\u043e\u0432\u0430\u0440\u0430.\n\n- \u0412\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0435 `<ProductSchema />` \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0442\u043e\u0432\u0430\u0440\u0430, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430.\n\n---\n\n### \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u043d\u0430 \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435:\n\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e `item.id` \u0432\u0441\u0435\u0433\u0434\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 URL \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u0430\u0439\u0442\u0430.\n\n- \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 URL \u0438\u0437 \u0441\u0430\u043c\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438, \u0435\u0441\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f), \u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c URL \u2014 \u043d\u043e\u0440\u043c.\n\n---\n\n### \u0412\u0430\u0448 \u043a\u043e\u0434 (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441 `ProductSchema`) \u2014 \u0438\u0434\u0435\u0430\u043b\u0435\u043d, \u0435\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c:\n\n```tsx\n<ProductSchema\n  name={previewItem.name}\n  image={process.env.NEXT_PUBLIC_FILES_URL + previewItem.media?.[0]}\n  description={\n    previewItem.description || \"\u041b\u0443\u0447\u0448\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u043e\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432\"\n  }\n  brand={previewItem.brand}\n  shop={item.shop}\n  price={previewItem.price}\n  currency=\"RUB\"\n  offerUrl={`https://rusoptom.ru/catalog/${item.id}`}\n/>\n```\n\n\u0422\u0430\u043a \u0432\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0435 `offerUrl`, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 JSON-LD.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e URL, \u0438\u043b\u0438 \u0434\u0430\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e SEO-\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435 \u0438 JSON-LD \u0434\u043b\u044f Next.js 15.  \n\u041d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u2014 \u0443 \u0432\u0430\u0441 \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e!\nUser: \u0430 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c, \u0441\u0445\u0435\u043c\u0443 \u0442\u043e\u0432\u0430\u0440\u0430 \u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u044e ? \nAssistant: \u0414\u0430, \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0430\u0448\u0430 \u0441\u0445\u0435\u043c\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u043c Schema.org \u0434\u043b\u044f \u0442\u0438\u043f\u0430 `Product`. \n\n\u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443:\n\n- \u0412\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 `\"@context\": \"https://schema.org/\"`.\n- \u0422\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u2014 `\"@type\": \"Product\"`.\n- \u041f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043f\u043e\u043b\u044f: `name`, `image`, `description`, `brand`.\n- \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 `offers` \u0441 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438: \u0442\u0438\u043f, \u0432\u0430\u043b\u044e\u0442\u0430, \u0446\u0435\u043d\u0430, availability \u0438 seller.\n- `seller[\"@type\"]` \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043a\u0430\u043a `\"Organization\"`, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 `price.toString()` \u0434\u043b\u044f \u0446\u0435\u043d\u044b \u0442\u043e\u0436\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e (\u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 \u0446\u0435\u043d\u0430 \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c).\n- \u0412\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442\u0435 JSON-LD \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0435\u0433\u0430 `<script type=\"application/ld+json\">` \u0432\u043d\u0443\u0442\u0440\u0438 `<Head>`, \u0447\u0442\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442.\n\n---\n\n### \u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c):\n\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u0435 `image` \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 URL \u043a \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044e (\u0432\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0435, \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u0443\u044f \u0441 `NEXT_PUBLIC_FILES_URL`).\n- \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0432 offers `url` (\u0447\u0442\u043e \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f `offerUrl`).\n- \u0415\u0441\u043b\u0438 \u0446\u0435\u043d\u0430 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u0438\u043b\u0438 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u043d\u0430\u044f, \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435 `price`, \u0438\u043d\u0430\u0447\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435.\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435) \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u044b.\n- \u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438\u0437 Schema.org, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 `sku`, `gtin`, `weight` \u2014 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n\u0412\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043a\u043e\u0434 \u0441\u0445\u0435\u043c\u044b \u0442\u043e\u0432\u0430\u0440\u0430:\n\n- \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0432\u0430\u043b\u0438\u0434\u0435\u043d.\n- \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c SEO.\n- \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b.\n\n\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432\u044b\u0434\u0430\u0447\u0438.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e [Google Rich Results Test](https://search.google.com/test/rich-results) \u0438\u043b\u0438 [Schema Markup Validator](https://validator.schema.org/) \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438.\nUser: \u043a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043d\u043e \u0447\u0438\u043d\u0435\nAssistant: \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0438 \u0432\u0430\u0448\u0430 \u0441\u0445\u0435\u043c\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 (JSON-LD \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430) \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043b\u0438 \u043e\u043d\u0430 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:\n\n### 1. Google Rich Results Test  \n- \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 [https://search.google.com/test/rich-results](https://search.google.com/test/rich-results)  \n- \u0412\u0432\u0435\u0434\u0438\u0442\u0435 **URL \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b** \u0441 \u0432\u0430\u0448\u0438\u043c \u0442\u043e\u0432\u0430\u0440\u043e\u043c (\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u0432\u0430\u0448\u0430 JSON-LD \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430) \u0438\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 HTML-\u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e  \n- \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0442\u0435\u0441\u0442, \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432  \n- \u0412 \u043e\u0442\u0447\u0451\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0412\u0430\u0448\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430 `Product` \u0438 `Offer` \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439  \n- \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043e\u043a \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 Google \u0432\u0438\u0434\u0438\u0442 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0438 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b\n\n### 2. Schema Markup Validator  \n- \u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 [https://validator.schema.org/](https://validator.schema.org/)  \n- \u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u043b\u0438\u0431\u043e \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 HTML \u0441 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439  \n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c  \n- \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043e \u0438 \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u2014 \u0433\u0434\u0435 \u043e\u043d\u0438\n\n### 3. \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435  \n- \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435  \n- \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (Ctrl+U) \u043b\u0438\u0431\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e DevTools \u043f\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Elements  \n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432 `<head>` \u0438\u043b\u0438 \u0432 \u0442\u0435\u043b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0435\u0441\u0442\u044c `<script type=\"application/ld+json\">` \u0441 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c JSON-LD\n\n### 4. Google Search Console \u2014 \u0418\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u044f URL  \n- \u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u0432 Google Search Console \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0448 \u0441\u0430\u0439\u0442  \n- \u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u00ab\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 URL\u00bb  \n- \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445  \n- \u0422\u0430\u043c \u0436\u0435 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0435\u0441\u0442\u044c\n\n---\n\n### \u0421\u043e\u0432\u0435\u0442\u044b \u043f\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e\n\n- \u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c URL, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0432 \u0431\u043e\u0435\u0432\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438\n- \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0438\u043b\u0438 Server-Side Rendering, \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b JSON-LD \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u0432 HTML, \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c\n- \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n\n---\n\n\u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u043f\u0440\u043e\u0448\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d\u0430 **\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e** \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u2014 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u0441\u043b\u0430\u0442\u044c URL, \u044f \u043f\u043e\u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c.\nUser: \u0438\u0434 \u043d\u0435 \u043d\u0430\u0434\u043e \u0441\u043a\u0440\u0438\u043f\u0443\u0442 \u0434\u0443\u0431\u0430\u0432\u043b\u044f\u0442\u044c? import { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n  offerUrl?: string; // \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u043b\u0435 \u0434\u043b\u044f URL \u043e\u0444\u0444\u0435\u0440\u0430\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n  offerUrl,\n}: ProductSchemaProps) => {\n  const schema = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n      ...(offerUrl ? { url: offerUrl } : {}),\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n\nAssistant: \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 `@id` \u0432 JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0445\u0435\u043c\u044b \u0442\u043e\u0432\u0430\u0440\u0430 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0445\u0435\u043c \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0440\u0430\u0444 \u0441\u0432\u044f\u0437\u0435\u0439. \u0412\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d \u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0431\u0435\u0437 `@id`.\n\n\u0410\u0442\u0440\u0438\u0431\u0443\u0442 `@id` \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u044f\u0432\u043d\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0433\u0440\u0430\u0444\u0435 \u0438 \u0447\u0430\u0441\u0442\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u0435\u043d \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439, \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0441 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u044f\u043c\u0438 \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0445\u0435\u043c. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0443 \u0432\u0430\u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c.\n\n\u0415\u0441\u043b\u0438 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0441 \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043d\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u0442\u043e\u0433\u0434\u0430 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 `@id` (\u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u043b\u043d\u044b\u0439 URL \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u043e\u0432\u0430\u0440\u0430).\n\n---\n\n**\u0418\u0442\u043e\u0433:** \u041d\u0435\u0442, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c `@id` \u0432 \u0432\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 JSON-LD \u0441\u0445\u0435\u043c\u044b \u0442\u043e\u0432\u0430\u0440\u0430 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0430\u0448 \u043a\u043e\u0434 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d \u0438 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e.\nUser: \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043b\u0438 \u043d\u0435\u0442 \nAssistant: \u041f\u043e\u043d\u044f\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0438 \u0432\u0430\u0448\u0430 JSON-LD \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 (\u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u0445\u0435\u043c\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 `ProductSchema`), \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:\n\n1. **\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435:**\n   - \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0442\u043e\u0432\u0430\u0440\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0441\u0430\u0439\u0442\u0435 (\u043d\u0430\u043f\u0440. https://rusoptom.ru/catalog/123).\n   - \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u2192 \u00ab\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434\u00bb (Ctrl+U).\n   - \u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 `<head>` \u0438\u043b\u0438 `<body>` \u0442\u0435\u0433 `<script type=\"application/ld+json\">`.\n   - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u0448 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 JSON \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435.\n\n2. **\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 Google Rich Results Test:**\n   - \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 [https://search.google.com/test/rich-results](https://search.google.com/test/rich-results).\n   - \u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 URL \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u00abTest URL\u00bb.\n   - \u0412 \u043e\u0442\u0447\u0451\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u0441\u0445\u0435\u043c\u0430 \u0442\u0438\u043f\u0430 Product \u0438 \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0435\u0442.\n   - \u0415\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0435\u0441\u0442\u044c \u2014 Google \u0443\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c.\n\n3. **Schema Markup Validator:**\n   - \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e [https://validator.schema.org/](https://validator.schema.org/)\n   - \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0431\u043e URL, \u043b\u0438\u0431\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c HTML-\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441 \u0432\u0430\u0448\u0435\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439.\n\n4. **Google Search Console \u2014 \u0418\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u044f URL:**\n   - \u0417\u0430\u0439\u0434\u0438\u0442\u0435 \u0432 Google Search Console, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0430\u0439\u0442.\n   - \u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u043f\u043e\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 URL.\n   - \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438 \u043d\u0435\u0442 \u043b\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n---\n\n### \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0435 JSON-LD \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435\n\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441 `ProductSchema` \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f **\u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435** \u0438\u043b\u0438 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c SSR-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435.\n- \u0412 Next.js 13/15 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 `Head`/`next/head` \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0434\u043b\u044f SEO \u043b\u0443\u0447\u0448\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u043c\u0435\u0442\u0430-\u0442\u0435\u0433\u0438 \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 `app/page.tsx` \u0438\u043b\u0438 `app/[id]/page.tsx`).\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u043d\u0435\u0442 \u043b\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0438 \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 `<script>`.\n\n---\n\n### \u041f\u043e\u0434\u044b\u0442\u043e\u0436\u0438\u0432\u0430\u044f\n\n- \u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 JSON-LD.\n- \u0417\u0430\u043a\u0438\u043d\u044c\u0442\u0435 URL \u0432 Google Rich Results Test \u2014 \u0442\u0430\u043c \u0432\u0438\u0434\u043d\u043e, \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043b\u0438 \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u043e\u043c.\n- \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u043e\u043a, \u0437\u043d\u0430\u0447\u0438\u0442 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u0441\u043b\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0438 \u044f \u043f\u043e\u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0438 \u0434\u0430\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438.\nUser: \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \nAssistant: \u0414\u0430, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 (\u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 `\"use client\";` \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435), \u0442\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0440\u043e\u0431\u043e\u0442\u044b (Google, \u042f\u043d\u0434\u0435\u043a\u0441 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435) **\u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0443\u0432\u0438\u0434\u044f\u0442 \u044d\u0442\u0443 JSON-LD \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443**, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442 **\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 HTML**, \u0430 \u043d\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442.\n\n---\n\n### \u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442?\n\n- \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c `next/head` \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u0442\u0430-\u0442\u0435\u0433\u043e\u0432, \u043d\u043e \u0434\u043b\u044f JSON-LD \u043b\u0443\u0447\u0448\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435.\n- \u0412 Next.js 13/15 (App Router) \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c SEO-\u043c\u0435\u0442\u0430 \u0438 JSON-LD \u0432 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 (`app/page.tsx`, `app/layout.tsx`) \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e `generateMetadata`, \u0438\u043b\u0438 \u0432 \u0441\u0430\u043c\u0438\u0445 \u0440\u0435\u043d\u0434\u0435\u0440\u044f\u0449\u0438\u0445\u0441\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 (\u0431\u0435\u0437 `\"use client\"`).\n\n---\n\n### \u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b JSON-LD \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0434\u043b\u044f SEO \u0432 Next.js 15\n\n1. **\u0412\u044b\u043d\u0435\u0441\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 JSON-LD \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442.**  \n   \u041d\u0435 \u043f\u043e\u043c\u0435\u0447\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u043a\u0430\u043a `\"use client\"`.\n\n2. **\u041f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432 \u043d\u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a \u043f\u0440\u043e\u043f\u0441\u044b \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.**  \n   \u041e\u0431\u044b\u0447\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 `page.tsx/getServerSideProps` \u0438\u043b\u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435.\n\n3. **\u0420\u0435\u043d\u0434\u0435\u0440\u044c\u0442\u0435 JSON-LD \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437 Next.js `<Head>` \u0438\u043b\u0438 `<script>` \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0431\u0435\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0433\u0438\u0434\u0440\u0430\u0446\u0438\u0438.**\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u043e \u0432 `app/catalog/[id]/page.tsx` (\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442):\n\n```tsx\nimport ProductSchema from '@/src/components/SEO/ProductSchema';\n\nexport default async function ProductPage({ params }) {\n  const product = await fetchProduct(params.id); // \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 fetch\n  return (\n    <>\n      <ProductSchema\n        name={product.name}\n        image={product.image}\n        description={product.description}\n        brand={product.brand}\n        price={product.price}\n        currency=\"RUB\"\n        shop={product.shop}\n        offerUrl={`https://rusoptom.ru/catalog/${product.id}`}\n      />\n      {/* \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 JSX */}\n    </>\n  );\n}\n```\n\n---\n\n### \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c JSON-LD \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435\n\n- \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0443\u044e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443 `ProductSchema` \u0431\u0435\u0437 `\"use client\"` \u0434\u043b\u044f SEO.\n- \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438), \u043c\u043e\u0436\u043d\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 JSON-LD \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0430 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0443\u0436\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c UI.\n- \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c middleware \u0438\u043b\u0438 API \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- \u0427\u0442\u043e\u0431\u044b JSON-LD \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u2014 **\u0440\u0435\u043d\u0434\u0435\u0440\u044c\u0442\u0435 \u0435\u0433\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0430 \u043d\u0435 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435**.\n- \u0412 Next.js 15 App Router \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0430\u0448 `ProductSchema` \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u043c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 `page.tsx` \u0431\u0435\u0437 `\"use client\"`).\n- \u0422\u043e\u0433\u0434\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0443\u0432\u0438\u0434\u044f\u0442 \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043b\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432 Next.js 15 \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435.  \n\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435!\nUser: \u043d\u0443 \u0430 \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0443 \u043c\u0435\u043d\u044f \u0432\u0441\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \"use client\";\nimport { getQueryClient } from \"@/src/api/api\";\nimport AppText from \"@/src/components/AppText/AppText\";\nimport { BASE_CATEGORY_FIELDS } from \"@/src/constants\";\nimport {\n  useItemServiceCreateItemsBulk,\n  useItemServiceEditItemsBulk,\n  useItemServiceGetItemsByIds,\n  useItemServiceGetItemsByMyShopKey,\n} from \"@/src/openapi/queries\";\nimport { SubCategoryResponse } from \"@/src/openapi/requests\";\nimport { useItemsStore } from \"@/src/store/items\";\nimport { Exception } from \"@/src/types\";\nimport { usePreventBackNavigation } from \"@/src/utils/usePreventBackNavigation\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { Button, Icon, Input, Loader } from \"@mossoft/ui-kit\";\nimport {\n  AfterEditEvent,\n  BeforeSaveDataDetails,\n  ColumnRegular,\n  RevoGrid,\n  RevoGridCustomEvent,\n  Template,\n} from \"@revolist/react-datagrid\";\nimport NumberColumnType from \"@revolist/revogrid-column-numeral\";\nimport { useRouter } from \"next/navigation\";\nimport { enqueueSnackbar } from \"notistack\";\nimport plural from \"plural-ru\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { useFieldArray, useForm } from \"react-hook-form\";\nimport { bulkSchema } from \"../_helpers/yupSchema\";\nimport ErrorMessage from \"./ErrorIndicator\";\nimport HeaderItem from \"./HeaderItem\";\nimport ImageEditorWrapper from \"./ImageEditor\";\n\nconst isBeforeSaveDataDetails = (\n  detail: AfterEditEvent\n): detail is BeforeSaveDataDetails => \"val\" in detail;\n\nconst plugin = {\n  integer: new NumberColumnType(\"0,0\"),\n};\n\nconst errorStyles = `\n  .error-row {\n    background-color: rgba(255, 0, 0, 0.15) !important; /* \u041a\u0440\u0430\u0441\u043d\u044b\u0439 \u0444\u043e\u043d \u0441 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e */\n    z-index: 1; /* \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430\u0434 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 */\n  }\n`;\n\ntype Props = {\n  subCategory: SubCategoryResponse;\n};\n\nconst ItemsTable = ({ subCategory }: Props) => {\n  const router = useRouter();\n  const queryClient = getQueryClient();\n  usePreventBackNavigation();\n\n  const addRowsRef = useRef(1);\n  const { selectedIds, type, setSelectedIds } = useItemsStore();\n\n  const { mutateAsync: updateItemsBulk, isPending: isPendingEditBulk } =\n    useItemServiceEditItemsBulk({\n      onSuccess: async () => {\n        await queryClient.invalidateQueries({\n          queryKey: [useItemServiceGetItemsByMyShopKey],\n        });\n      },\n    });\n\n  const { mutateAsync: createItemsBulk, isPending: isPendingBulk } =\n    useItemServiceCreateItemsBulk({\n      onSuccess: async () => {\n        await queryClient.invalidateQueries({\n          queryKey: [useItemServiceGetItemsByMyShopKey],\n        });\n      },\n    });\n\n  const { data } = useItemServiceGetItemsByIds(\n    { ids: selectedIds },\n    undefined,\n    { enabled: !!selectedIds.length }\n  );\n\n  const {\n    control,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<{\n    rows: Array<{ [key: string]: any }>;\n  }>({\n    mode: \"onSubmit\",\n    resolver: yupResolver(bulkSchema),\n  });\n\n  const { replace, fields, update, append } = useFieldArray({\n    control,\n    name: \"rows\",\n    rules: {\n      maxLength: { value: 10000, message: \"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 10000 \u0441\u0442\u0440\u043e\u043a\" },\n    },\n    keyName: \"customId\",\n  });\n\n  const columns: ColumnRegular[] =\n    (subCategory?.fieldsSchema?.length\n      ? [...BASE_CATEGORY_FIELDS, ...subCategory?.fieldsSchema]\n      : BASE_CATEGORY_FIELDS\n    )?.map((item) => ({\n      prop: item.key,\n      name: item.key,\n      sortable: true,\n      readonly:\n        (item.key === \"\u0413\u0440\u0443\u043f\u043f\u0430\" ||\n          item.key === \"\u0410\u0440\u0442\u0438\u043a\u0443\u043b\" ||\n          item.key === \"\u041a\u043e\u043b-\u0432\u043e \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435\") &&\n        type === \"edit\",\n      size: 250,\n      columnType: item.type,\n      columnTemplate: Template(HeaderItem),\n      ...(item.key === \"\u041c\u0435\u0434\u0438\u0430\" && {\n        cellTemplate: Template((rest) =>\n          ImageEditorWrapper({ ...rest, fields, update })\n        ),\n      }),\n    })) || [];\n\n  useEffect(() => {\n    if (!columns?.length) return;\n    if (!data?.length) {\n      replace([\n        columns?.reduce((acc, item) => ({ ...acc, [item.prop]: null }), {}),\n      ]);\n      return;\n    }\n    replace(\n      data\n        .filter((item) => item.subCategoryId === subCategory?.id)\n        .map((item) => ({ id: item.id, ...item.tableData }))\n    );\n    return () => {\n      replace([\n        columns?.reduce((acc, item) => ({ ...acc, [item.prop]: null }), {}),\n      ]);\n    };\n  }, [data, selectedIds, subCategory?.fieldsSchema]);\n\n  const handleCopyRow = () => {\n    replace([\n      ...fields\n        .filter((item) => item.isChecked)\n        .map((item) => ({ ...item, isChecked: false })),\n      ...fields,\n    ]);\n  };\n\n  const handleDeleteRow = () => {\n    replace(fields.filter((item) => !item.isChecked));\n  };\n\n  const handleAddRow = () => {\n    if (addRowsRef.current + fields.length > 10000)\n      return enqueueSnackbar(\"\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 10000 \u0441\u0442\u0440\u043e\u043a\", { variant: \"error\" });\n\n    Array.from({ length: addRowsRef.current }).forEach(() => {\n      append([\n        columns?.reduce((acc, item) => ({ ...acc, [item.prop]: null }), {}),\n      ]);\n    });\n  };\n\n  const handleChangeRow = (e: RevoGridCustomEvent<AfterEditEvent>) => {\n    if (isBeforeSaveDataDetails(e.detail) && e.detail?.rowIndex) {\n      update(e.detail.rowIndex, {\n        ...fields[e.detail.rowIndex],\n        [e.detail.prop]: e.detail.val,\n      });\n      return;\n    }\n\n    Object.keys(e.detail.data).map((key) => {\n      update(+key, {\n        ...fields[+key],\n        ...e.detail.data[+key],\n      });\n    });\n  };\n\n  useEffect(() => {\n    if (errors?.rows?.root?.message) {\n      enqueueSnackbar(errors.rows.root.message, { variant: \"error\" });\n      return;\n    }\n  }, [errors?.rows?.root?.message]);\n\n  const onSubmit = async (data: {\n    rows: Array<{\n      [key: string]: string;\n    }>;\n  }) => {\n    const rows = data.rows\n      .map(({ customId, myRowClass, ...rest }) => rest)\n      .map((row) =>\n        Object.keys(row).reduce<{ [key: string]: any }>((acc, key) => {\n          const type = columns.find((col) => col.prop === key)?.columnType;\n          const value =\n            (type === \"integer\" && +row[key]) ||\n            (type === \"array\" && row[key]) ||\n            row[key]?.toString();\n\n          if (value) acc[key] = value;\n          return acc;\n        }, {})\n      );\n\n    try {\n      if (type === \"edit\") {\n        const res = await updateItemsBulk({\n          requestBody: { data: rows.map(({ \u041d\u043e\u043c\u0435\u0440, isValid, ...row }) => row) },\n          subCategoryId: subCategory?.id!,\n        });\n        setSelectedIds([], \"edit\");\n        router.push(\"/items\");\n        return;\n      }\n      const res = await createItemsBulk({\n        requestBody: {\n          data: rows.map(({ \u041d\u043e\u043c\u0435\u0440, isValid, ...row }) => row),\n        },\n        subCategoryId: subCategory.id,\n      });\n      router.push(\"/items\");\n    } catch (e) {\n      enqueueSnackbar((e as Exception).message, {\n        variant: \"error\",\n      });\n    }\n  };\n\n  const memoizedFields = useMemo(\n    () =>\n      fields.map((item, index) => ({\n        ...item,\n        [\"\u041d\u043e\u043c\u0435\u0440\"]: index + 1,\n        myRowClass: errors?.rows?.[index] ? \"error-row\" : \"\",\n      })),\n    [fields, errors, update]\n  );\n\n  if (!columns?.length) {\n    return (\n      <div className=\"mt-20 w-full h-[calc(100dvh-300px)]\">\n        <Loader\n          style={{ width: \"100px\", height: \"100px\", marginTop: \"100px\" }}\n        />\n      </div>\n    );\n  }\n\n  return (\n    <>\n      <div className=\"h-[calc(100dvh-300px)] border-primary border-[1px] rounded-lg\">\n        <style>{errorStyles}</style>\n        <RevoGrid\n          key={JSON.stringify(errors?.rows)}\n          columnTypes={plugin}\n          source={memoizedFields}\n          onAfteredit={handleChangeRow}\n          columns={[\n            {\n              prop: \"isChecked\",\n              readonly: true,\n              columnTemplate: (h) => [\n                h(\"input\", {\n                  type: \"checkbox\",\n                  className:\n                    \"w-4 h-4 border border-gray-400 rounded-md transition-all duration-300 bg-primary checked:bg-primary checked:ring-primary focus:outline-none\",\n                  checked: fields.every((field) => field.isChecked),\n                  onChange(e: React.ChangeEvent<HTMLInputElement>) {\n                    replace(\n                      fields.map((field) => ({\n                        ...field,\n                        isChecked: e.target.checked,\n                      }))\n                    );\n                  },\n                }),\n              ],\n              cellTemplate: (h, { value, rowIndex }) =>\n                h(\"label\", undefined, [\n                  h(\"input\", {\n                    type: \"checkbox\",\n                    key: rowIndex,\n                    checked: fields[rowIndex].isChecked,\n                    className:\n                      \"w-4 h-4 border border-gray-400 rounded-md transition-all duration-300 bg-primary checked:bg-primary checked:ring-primary focus:outline-none\",\n                    onChange(e: React.ChangeEvent<HTMLInputElement>) {\n                      update(rowIndex, {\n                        ...fields[rowIndex],\n                        isChecked: e.target.checked,\n                      });\n                    },\n                  }),\n                  value,\n                ]),\n            },\n            { prop: \"\u041d\u043e\u043c\u0435\u0440\", name: \"\u041d\u043e\u043c\u0435\u0440\", readonly: true, sortable: true },\n            ...columns,\n          ]}\n          range\n          className=\"h-[calc(100dvh-300px)]\"\n          resize\n          theme=\"compact\"\n          rowClass=\"myRowClass\"\n        />\n      </div>\n\n      <div className=\"flex flex-row justify-between items-center mt-4\">\n        {type === \"new\" && (\n          <div className=\"flex flex-row items-center gap-2\">\n            <label className=\"flex flex-row gap-2 items-center\">\n              <AppText className=\"text-primary text-sm whitespace-nowrap\">\n                \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438\n              </AppText>\n              <Input\n                type=\"number\"\n                onChange={(e) => (addRowsRef.current = +e.target.value)}\n                value={addRowsRef.current}\n                maxLength={3}\n                className=\"border-none w-[120px] h-[30px]\"\n              />\n            </label>\n            <div onClick={handleAddRow} className=\"flex cursor-pointer\">\n              <Icon name=\"plus\" className=\"w-6 h-6 !text-primary\" />\n            </div>\n          </div>\n        )}\n        {!!fields.filter((item) => item.isChecked).length && (\n          <div className=\"fixed bottom-12 left-1/2 transform -translate-x-1/2 bg-white p-4 rounded-lg shadow-2xl flex justify-between items-center z-50 flex-col\">\n            <AppText className=\"text-lg font-medium\">\n              {plural(\n                fields.filter((item) => item.isChecked).length,\n                \"\u0412\u044b\u0431\u0440\u0430\u043d\",\n                \"\u0412\u044b\u0431\u0440\u0430\u043d\u043e\"\n              )}{\" \"}\n              {fields.filter((item) => item.isChecked).length}{\" \"}\n              {plural(\n                fields.filter((item) => item.isChecked).length,\n                \"\u0442\u043e\u0432\u0430\u0440\",\n                \"\u0442\u043e\u0432\u0430\u0440\u0430\",\n                \"\u0442\u043e\u0432\u0430\u0440\u043e\u0432\"\n              )}\n            </AppText>\n            <div className=\"flex flex-riw gap-4\">\n              <Button\n                variant=\"link\"\n                className=\"!px-4 !py-2 !text-primary rounded-lg\"\n                onClick={handleCopyRow}\n              >\n                \u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\n              </Button>\n              <Button\n                variant=\"link\"\n                className=\"!px-4 !py-2 !text-danger\"\n                onClick={handleDeleteRow}\n              >\n                \u0423\u0434\u0430\u043b\u0438\u0442\u044c\n              </Button>\n            </div>\n          </div>\n        )}\n        <div className=\"flex flex-row gap-2 items-center ml-auto\">\n          <ErrorMessage errors={errors} />\n          <Button\n            isLoading={isPendingBulk || isPendingEditBulk}\n            onClick={handleSubmit(onSubmit)}\n            variant=\"primary\"\n            className=\"bg-primary text-white !py-1 !px-2\"\n          >\n            \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\n          </Button>\n        </div>\n      </div>\n    </>\n  );\n};\n\nexport default ItemsTable;\n\nAssistant: \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u0435\u0441\u044c\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043e\u0434 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 (`\"use client\"`), \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c JSON-LD (\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435) \u0434\u043b\u044f SEO \u2014 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 JSON-LD \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430.\n\n\u041f\u043e\u044f\u0441\u043d\u044e \u043f\u043e\u0434\u0445\u043e\u0434:\n\n1. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 **\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442** (\u0431\u0435\u0437 `\"use client\"`), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 `<Head>` \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c JSON-LD.\n\n```tsx\n// components/SEO/ProductSchemaServer.tsx\nimport Head from \"next/head\";\nimport { CardShopResponse } from \"@/src/openapi/requests\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n  offerUrl?: string;\n};\n\nexport default function ProductSchemaServer({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n  offerUrl,\n}: ProductSchemaProps) {\n  const schema = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n      ...(offerUrl ? { url: offerUrl } : {}),\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n}\n```\n\n2. \u0412 \u0432\u0430\u0448\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 (`ItemsTable` \u0438\u043b\u0438 `CardItem`), \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 `next/dynamic` \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435 SSR \u0434\u043b\u044f \u043d\u0435\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e `{ ssr: false }`. \u041d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u043b\u044f SEO \u043b\u0443\u0447\u0448\u0435 SSR \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b. \u0418\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n\n\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 (\u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b):\n\n```tsx\n// \u0412 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435\nimport dynamic from \"next/dynamic\";\n\nconst ProductSchemaServer = dynamic(() => import(\"../SEO/ProductSchemaServer\"), { ssr: false });\n\n// \u0412 \u0440\u0435\u043d\u0434\u0435\u0440\u0435\n<ProductSchemaServer\n  name={previewItem.name}\n  image={process.env.NEXT_PUBLIC_FILES_URL + previewItem.media?.[0]}\n  description={previewItem.description || \"\u041b\u0443\u0447\u0448\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u043e\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432\"}\n  brand={previewItem.brand}\n  shop={item.shop}\n  price={previewItem.price}\n  currency=\"RUB\"\n  offerUrl={`https://rusoptom.ru/catalog/${item.id}`}\n/>\n```\n\n3. \u0418\u043b\u0438, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435, **\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c JSON-LD \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446**, \u0433\u0434\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 SSR, \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0443\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435.\n\n---\n\n### \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a\n\n- \u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442 \u0438\u043b\u0438 \u0432\u0438\u0434\u044f\u0442 \u043f\u043b\u043e\u0445\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0435 \u0438\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 JSON-LD.\n- \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0440\u043e\u0431\u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 HTML.\n- \u0412 Next.js 13+ \u0441 App Router \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 SEO-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043b\u0443\u0447\u0448\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445.\n- \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443: \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0430 SEO-\u0445\u0435\u0434\u0435\u0440 \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442.\n\n---\n\n### \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `page.tsx`), \u0433\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 JSON-LD, \u0430 \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0435 UI.\n\n---\n\n### \u0418\u0442\u043e\u0433\u043d\u0430\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\n\n- \u0412\u044b\u043d\u0435\u0441\u0438\u0442\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 JSON-LD \u0441\u0445\u0435\u043c\u044b \u0442\u043e\u0432\u0430\u0440\u0430 \u0438\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0435\u0451 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 (\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430).\n- \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043c\u043f\u043e\u0440\u0442 \u0441 SSR, \u043b\u0438\u0431\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u044b\u0448\u0435 \u043f\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438.\n- \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0447\u0435\u0440\u0435\u0437 Google Rich Results Test \u043d\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0432\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u0442\u0435\u043a\u0430 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.\nUser: \u0447\u0442\u043e \u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 dynamic\nAssistant: \u0412 Next.js \u0444\u0443\u043d\u043a\u0446\u0438\u044f `dynamic` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f **\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e (\u043b\u0435\u043d\u0438\u0432\u043e\u0433\u043e) \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432**, \u0442.\u0435. \u0434\u043b\u044f \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 **\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438** \u0438 **\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435**, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 (code splitting).\n\n### \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 `dynamic`:\n\n- \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 *\u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e* \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, \u0435\u0433\u043e \u043a\u043e\u0434 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0431\u0430\u043d\u0434\u043b, \u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f.\n- \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 (`ssr: false`), \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043b\u0441\u044f **\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435**.\n- \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0441\u0447\u0451\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n- \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 API \u0438\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435.\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\n\n```tsx\nimport dynamic from 'next/dynamic';\n\n// \u0418\u043c\u043f\u043e\u0440\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u043c SSR \u2014 \u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435\nconst NoSSRComponent = dynamic(() => import('./MyClientComponent'), { ssr: false });\n\nexport default function Page() {\n  return (\n    <>\n      <h1>\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430</h1>\n      <NoSSRComponent />\n    </>\n  );\n}\n```\n\n---\n\n### \u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c `dynamic` \u0441 `{ ssr: false }`:\n\n- \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 API \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `window`, `document`), \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.\n- \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 UI-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432.\n\n---\n\n### \u0414\u043b\u044f SEO \u0438 JSON-LD\n\n- \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441 JSON-LD **\u043d\u0443\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c \u0440\u043e\u0431\u043e\u0442\u0430\u043c**, \u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0432\u0430\u0436\u0435\u043d (\u0442.\u0435. `ssr: true` \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u0431\u0435\u0437 `dynamic`).\n- \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 `dynamic` \u0441 `{ ssr: false }`, \u0442\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0432 HTML, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n`dynamic` \u2014 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 Next.js \u0434\u043b\u044f \u043b\u0435\u043d\u0438\u0444\u043d\u0438\u0438\u043d\u0433\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432:\n\n- **\u0411\u0435\u0437 `dynamic`** \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0438 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435.\n- **\u0421 `dynamic` \u0438 `{ ssr: false }`** \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f **\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435**, \u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0435\u0433\u043e \u043d\u0435\u0442.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0438\u043b\u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.\nUser: \u043d\u0443 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u0431\u0435\u0437 use client \u043d\u043e \u0432 \u043a\u043b\u0438\u0435\u043d\u0441\u0442\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435, \u043e\u043d \u043a\u0430\u043a\u043e\u0439? \nimport { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n  offerUrl?: string; // \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u043b\u0435 \u0434\u043b\u044f URL \u043e\u0444\u0444\u0435\u0440\u0430\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n  offerUrl,\n}: ProductSchemaProps) => {\n  const schema = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n      ...(offerUrl ? { url: offerUrl } : {}),\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n\nAssistant: \u0412\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` **\u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b `\"use client\"`**, \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f **\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c (Server Component)** \u0432 Next.js (App Router). \n\n\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0442\u043e:\n\n- \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 **\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f SSR** \u0438\u043b\u0438 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 (\u0435\u0441\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f).\n- \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e React \u00ab\u0433\u0438\u0434\u0440\u0438\u0440\u0443\u0435\u0442\u00bb \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 `ProductSchema` \u0443\u0436\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0432 HTML \u0438 `<head>`.\n- \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 JSON-LD \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432 \u0440\u0430\u043d\u043d\u0438\u0439 HTML, \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0435\u0451 \u0443\u0432\u0438\u0434\u044f\u0442.\n\n**\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:**\n\n- \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0431\u0435\u0437 `\"use client\"` \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\n- \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0435\u043d \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0430 \u0437\u0430\u0442\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0433\u0438\u0434\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.\n- \u0412\u044b\u0432\u043e\u0434 \u0447\u0435\u0440\u0435\u0437 `next/head` \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 HTML (\u0432 `<head>`), \u0447\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 SEO.\n- \u0415\u0441\u043b\u0438 \u0431\u044b `ProductSchema` \u0431\u044b\u043b \u0441 `\"use client\"`, \u0442\u043e JSON-LD \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0431\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0435\u0433\u043e \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u2014 **\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442**, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0438 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u0432 HTML.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442:\n\n- \u041f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 (`ProductSchema`) \u0432\u043d\u0443\u0442\u0440\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e, Next.js \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043a\u043b\u0438\u0435\u043d\u0442.\n\n- \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f SEO-\u043c\u0435\u0442\u0430\u0442\u0435\u0433\u043e\u0432 \u0438 JSON-LD.\n\n---\n\n### \u0420\u0435\u0437\u044e\u043c\u0435\n\n- \u0412\u0430\u0448 `ProductSchema` \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0435\u0433\u043e \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u2014 \u043e\u043d \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0432 `<head>`.\n- \u042d\u0442\u043e \u043b\u0443\u0447\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f SEO \u0432 Next.js, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c JSON-LD \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c UI.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u0432 Next.js App Router.\nUser: <ProductSchema> is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.\nAssistant: \u041e\u0448\u0438\u0431\u043a\u0430 `\"ProductSchema is an async Client Component. Only Server Components can be async at the moment.\"` \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 Next.js Server Components \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c\u0438 (`async`), \u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u2014 \u043d\u0435\u0442. \u0415\u0441\u043b\u0438 \u0432\u044b \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 `async` \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0435 \u0435\u0433\u043e \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0441 `use client`, Next.js \u043e\u0436\u0438\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439.\n\n---\n\n### \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0432\u0430\u0448 \u0441\u043b\u0443\u0447\u0430\u0439?\n\n1. **\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e `ProductSchema` \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442**\n\n   - **\u041d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435** `'use client';` \u0432 `ProductSchema`.\n   - \u041d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0439\u0442\u0435 `ProductSchema` \u043a\u0430\u043a `async` (\u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0432 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u0430\u043c \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e).\n   - \u041e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c.\n\n2. **\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `ProductSchema` \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432**\n\n   - \u0415\u0441\u043b\u0438 \u0432\u0430\u0448 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 (`'use client';` \u0432\u0432\u0435\u0440\u0445\u0443 \u043c\u043e\u0434\u0443\u043b\u044f), \u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e.\n   - \u041d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c:\n     - \u0412\u044b\u043d\u0435\u0441\u0438\u0442\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 `ProductSchema` \u0432 **\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442** (\u0438\u043b\u0438 **\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443**).\n     - \u041e\u0442\u0434\u0430\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0442\u0430\u043c.\n     - \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 UI \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.\n\n3. **\u0415\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443:**\n\n   - \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043c\u043f\u043e\u0440\u0442 \u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c SSR, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 SEO \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f.\n   - \u0418\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b JSON-LD \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0432 _\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442_ (\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u043b\u0438 layout), \u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043b UI.\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b\n\n\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0430:\n\n- `ProductSchema.tsx` \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 (\u0431\u0435\u0437 `'use client'`, \u0431\u0435\u0437 `async`).\n\n- \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 layout, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 `app/catalog/[id]/page.tsx`:\n\n```tsx\nimport ProductSchema from '@/src/components/SEO/ProductSchema';\n\nexport default async function ProductPage({ params }) {\n  const product = await fetchProductById(params.id);\n\n  return (\n    <>\n      <ProductSchema\n        name={product.name}\n        image={product.image}\n        description={product.description}\n        brand={product.brand}\n        price={product.price}\n        currency=\"RUB\"\n        shop={product.shop}\n        offerUrl={`https://rusoptom.ru/catalog/${product.id}`}\n      />\n      {/* \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 UI */}\n      <ClientProductDetails product={product} />\n    </>\n  );\n}\n```\n\n- `ClientProductDetails.tsx` \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 (`'use client'`), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 UI \u0438 \u043b\u043e\u0433\u0438\u043a\u0443.\n\n---\n\n### \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435\u043b\u044c\u0437\u044f async \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435?\n\n- \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0440\u0435\u043d\u0434\u0435\u0440\u044f\u0442\u0441\u044f \u0443\u0436\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u0433\u0434\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f Next.js.\n- \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0445 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n\n---\n\n### \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439\n\n- \u041d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043d\u0435\u043c.\n- \u0412\u044b\u043d\u0435\u0441\u0438\u0442\u0435 \u0432\u0441\u0451 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0435 \u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u043b\u0438 layout.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- \u0423\u0431\u0435\u0440\u0438\u0442\u0435 `async` \u0438\u0437 `ProductSchema`.\n- \u0421\u0434\u0435\u043b\u0430\u0439\u0442\u0435 `ProductSchema` \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c.\n- \u0412\u044b\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u0438\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, layout).\n- \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c `async`, \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0445 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 async.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 JSON-LD \u0432 Next.js 15 \u0441 App Router.\nUser: \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0442\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ? \"use client\";\nimport AppText from \"@/src/components/AppText/AppText\";\nimport CardItem from \"@/src/components/CardItem/CardItem\";\nimport Filters from \"@/src/components/Filters/Filters\";\nimport { LIMIT } from \"@/src/constants\";\nimport {\n  useCardsServiceGetAllCardsKey,\n  useCardsServiceGetCardsCount,\n} from \"@/src/openapi/queries\";\nimport { useFiltersServiceGetFiltersSuspense } from \"@/src/openapi/queries/suspense\";\nimport { CardsService, GetAllCardsResponse } from \"@/src/openapi/requests\";\nimport { InfiniteScroll, Wrapper } from \"@mossoft/ui-kit\";\nimport {\n  DefaultError,\n  InfiniteData,\n  useInfiniteQuery,\n} from \"@tanstack/react-query\";\nimport {\n  parseAsJson,\n  parseAsString,\n  useQueryState,\n  useQueryStates,\n  UseQueryStatesKeysMap,\n} from \"nuqs\";\nimport plural from \"plural-ru\";\nimport { twMerge } from \"tailwind-merge\";\nimport FilterChips from \"../Filters/FilterChips\";\nimport NextLink from \"../Link/NextLink\";\nimport ShopInfo from \"../ShopInfo/ShopInfo\";\nimport Sorting from \"../Sorting/Sorting\";\nimport SubCategorySelector from \"../SubCategorySelector/SubCategorySelector\";\nimport SkeletonCardList from \"./SkeletonCardList\";\n\ntype Props = {\n  id?: number;\n  infiniteScrollClassName?: string;\n  type: \"recommended\" | \"catalog\" | \"category\" | \"favorite\";\n  label: string;\n  shopId?: number;\n  isFilters?: boolean;\n};\n\nconst CardsList = ({\n  id,\n  type,\n  infiniteScrollClassName,\n  label,\n  shopId,\n}: Props) => {\n  const [q, setQ] = useQueryState(\"q\");\n  const [sortBy = \"createdAt\", setSortBy] = useQueryState(\"sortBy\");\n  const [sortOrder = \"desc\", setSortOrder] = useQueryState(\"sortOrder\");\n\n  const { data: filters } = useFiltersServiceGetFiltersSuspense({\n    q: q!,\n    subCategoryId: id,\n  });\n  const filterConfig = Object.fromEntries(\n    filters.map((filter) => [\n      filter.name,\n      filter.type === \"range\" ? parseAsJson : parseAsString,\n    ])\n  ) as UseQueryStatesKeysMap<any>;\n\n  const { data: count } = useCardsServiceGetCardsCount({\n    subCategoryId: id,\n    ...(type === \"recommended\" ? { recommended: true } : {}),\n    ...(type === \"favorite\" ? { favoritesOnly: true } : {}),\n    q: q!,\n  });\n\n  const [filterQuery, setFilterQuery] = useQueryStates(filterConfig);\n\n  const searchParams = Object.fromEntries(\n    Object.entries(filterQuery).filter(([, v]) => v !== undefined)\n  );\n\n  const infiniteData = useInfiniteQuery<\n    GetAllCardsResponse,\n    DefaultError,\n    InfiniteData<GetAllCardsResponse>,\n    [string, any],\n    number\n  >({\n    queryKey: [\n      useCardsServiceGetAllCardsKey,\n      {\n        limit: LIMIT,\n        filters: searchParams,\n        subCategoryId: id,\n        ...(type === \"recommended\" ? { recommended: true } : {}),\n        ...(type === \"favorite\" ? { favoritesOnly: true } : {}),\n        ...(shopId ? { shopId } : {}),\n        q: q,\n        sortBy,\n        sortOrder,\n      },\n    ],\n    initialPageParam: 0,\n    queryFn: async ({ queryKey, pageParam }) =>\n      await CardsService.getAllCards({\n        ...queryKey[1],\n        filters: searchParams,\n        offset: pageParam,\n        subCategoryId: id,\n        ...(type === \"recommended\" ? { recommended: true } : {}),\n        ...(type === \"favorite\" ? { favoritesOnly: true } : {}),\n        limit: LIMIT,\n        ...(shopId ? { shopId } : {}),\n        q,\n        sortBy,\n        sortOrder,\n      }),\n    getNextPageParam: (lastPage, allPages) =>\n      lastPage.length === LIMIT\n        ? (allPages.length - 1) * LIMIT + LIMIT\n        : undefined,\n  });\n\n  return (\n    <div\n      className={`flex ${\n        filters ? \"lg:flex-row\" : \"lg:block\"\n      } flex-col gap-2 max-w-full min-h-[calc(100dvh-200px)]`}\n    >\n      <div className=\"lg:flex lg:flex-col gap-4\">\n        {shopId && <ShopInfo id={shopId} />}\n      </div>\n      <Wrapper className=\"rounded-[25px] w-full min-h-[600px] !px-4 !py-4 min-w-0\">\n        <div className=\"flex flex-col gap-2 max-w-full\">\n          <div className=\"flex flex-col gap-2 w-full\">\n            <div className=\"flex flex-row gap-2 items-center text-center\">\n              <AppText className=\"font-medium text-black\">{label}</AppText>\n              <AppText className=\"text-dark-gray\">\n                {count &&\n                  `${+count} ${plural(+count, \"\u0442\u043e\u0432\u0430\u0440\", \"\u0442\u043e\u0432\u0430\u0440\u0430\", \"\u0442\u043e\u0432\u0430\u0440\u043e\u0432\")}`}\n              </AppText>\n            </div>\n          </div>\n          <div className=\"flex relative flex-row gap-2 mt-4 lg:justify-normal justify-between lg:overflow-visible overflow-x-scroll scrollbar-none -mx-4 px-4\">\n            {filters && (\n              <Filters\n                filters={filters}\n                subCategoryId={+id!}\n                filterConfig={filterConfig}\n              />\n            )}\n            <Sorting />\n            <SubCategorySelector />\n          </div>\n\n          <FilterChips\n            filterQuery={filterQuery}\n            filters={filters}\n            setFilterQuery={setFilterQuery}\n          />\n        </div>\n\n        {infiniteData.isPending ? (\n          <SkeletonCardList />\n        ) : (\n          <InfiniteScroll\n            infiniteData={infiniteData}\n            className={twMerge(\n              `grid lg:grid-cols-5 grid-cols-2 lg:gap-x-4 gap-x-2 gap-y-4 mt-4`,\n              infiniteScrollClassName\n            )}\n            isScrollTopButton={false}\n            emptyClassName=\"h-fit\"\n            emptyComponent={\n              <div className=\"flex flex-col items-center mt-20 justify-start text-center gap-3\">\n                <AppText className=\"text-lg font-semibold\">\n                  \u041f\u043e \u0432\u0430\u0448\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e\n                </AppText>\n                <AppText className=\"text-gray-500 max-w-md\">\n                  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435\n                  \u0444\u0438\u043b\u044c\u0442\u0440\u044b\n                </AppText>\n                <NextLink\n                  href=\"/catalog\"\n                  className=\"px-4 py-2 bg-primary text-white rounded-md hover:bg-primary/90 transition\"\n                >\n                  \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\n                </NextLink>\n              </div>\n            }\n            renderItem={(item) => <CardItem key={item?.id} item={item} />}\n          />\n        )}\n      </Wrapper>\n    </div>\n  );\n};\n\nexport default CardsList;\n\nAssistant: \u0414\u0430, \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c (\u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 `\"use client\"`) \u0432 Next.js 15, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 React-\u0445\u0443\u043a\u0430\u043c\u0438 \u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c, \u043a\u0430\u043a \u0443 \u0432\u0430\u0441.\n\n\u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f SEO \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 JSON-LD (\u043a\u0430\u043a \u0432 \u0432\u0430\u0448\u0435\u043c `ProductSchema`) \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u044d\u0442\u0443 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n\n\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435, \u0442\u043e:\n\n- \u0412\u0430\u0448\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 (`CardsList`) \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\n- \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` (\u0435\u0441\u043b\u0438 \u043e\u043d \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439) \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0445\u043e\u0434\u0430 \u2014 Next.js \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445.\n\n### \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b:\n\n1. **\u0412\u044b\u043d\u0435\u0441\u0442\u0438 SEO-\u0447\u0430\u0441\u0442\u044c (JSON-LD) \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (`app/catalog/[id]/page.tsx` \u0438\u043b\u0438 layout), \u0433\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0435 `ProductSchema` \u0432 `<Head>`.**\n\n2. **\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438 JSON-LD \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430:**\n\n- \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c `ProductSchema` \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 JSON-LD \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u2014 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0440\u043e\u0431\u043e\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c (\u043f\u043e\u0442\u0435\u0440\u044f SEO).\n\n- \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c `dynamic` \u0441 `ssr: false` \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430, \u043d\u043e \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 SEO.\n\n3. **\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u00ab\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439\u00bb \u043f\u043e\u0434\u0445\u043e\u0434:**\n\n- \u0420\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c JSON-LD \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435, \u0432\u044b\u0448\u0435 \u043f\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438, \u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f UI.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- \u0412\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `CardsList` \u0432\u043f\u043e\u043b\u043d\u0435 \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c \u0441 `\"use client\"`.\n- \u0414\u043b\u044f SEO \u0441 JSON-LD \u043b\u0443\u0447\u0448\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446/\u043b\u0435\u0439\u0430\u0443\u0442\u043e\u0432.\n- \u0412 Next.js 15 \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 (ProductSchema) \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u2014 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u043b\u044f JSON-LD \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u0434\u043b\u044f UI \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Next.js 15.\nUser: \u0442\u0430\u043a \u044f \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e \nAssistant: \u041f\u043e\u043d\u0438\u043c\u0430\u044e \u0432\u0430\u0448\u0443 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c SEO-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 (JSON-LD) \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432 HTML \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 (\u0442.\u0435. \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435). \u041d\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 (`use client`), \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u043b\u044f JSON-LD \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0436\u043d\u043e.\n\n---\n\n### \u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f Next.js 15 \u043f\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445:\n\n#### 1. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f JSON-LD **\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435**\n\n\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430:\n- \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.\n- \u0411\u044b\u0441\u0442\u0440\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c JSON-LD.\n\n\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:\n- \u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u0443 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 JS.\n- SEO \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0445\u0443\u0436\u0435 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u043e\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439.\n\n\u041f\u0440\u0438\u043c\u0435\u0440: \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u0431\u0435\u0437 `\"use client\"` \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c JSON-LD \u0447\u0435\u0440\u0435\u0437 `<Head>`. \u042d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0431\u043e\u0447\u0438\u0439, \u043d\u043e \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u0435\u043d \u0434\u043b\u044f SEO.\n\n---\n\n#### 2. \u0412\u044b\u043d\u0435\u0441\u0438\u0442\u0435 JSON-LD \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 API \u0438\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\n\n\u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443:\n\n- \u0421\u0435\u0440\nUser: \u044d\u0442\u043e \u0447\u043e XFN / Rel attr. (Xhtml Friends Network)   No DATA has been found for XFN and REL attributes.\nAssistant: XFN (XHTML Friends Network) \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0441\u044b\u043b\u043e\u043a (`rel`), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u043b\u0438\u0446\u043e\u043c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0435\u0434\u0451\u0442 \u0441\u0441\u044b\u043b\u043a\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e XFN \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0442\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0440\u0443\u0437\u0435\u0439, \u043a\u043e\u043b\u043b\u0435\u0433, \u0441\u0435\u043c\u044c\u044e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0438.\n\n\u0410\u0442\u0440\u0438\u0431\u0443\u0442 `rel` \u0432 HTML \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0438\u043f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u0438 \u0441\u0441\u044b\u043b\u043a\u043e\u0439. \u041f\u0440\u0438\u043c\u0435\u0440\u044b: `rel=\"nofollow\"`, `rel=\"noopener\"`, `rel=\"author\"`, `rel=\"friend\"`, \u0438 \u0442.\u0434.\n\n---\n\n### \u0427\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00abNo DATA has been found for XFN and REL attributes\u00bb?\n\n\u042d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0430\u0443\u0434\u0438\u0442\u0430 SEO \u0438\u043b\u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u0430\u043c\u0438 HTML \u0438 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 **\u043d\u0435 \u043d\u0430\u0448\u043b\u0438 \u0441\u0441\u044b\u043b\u043e\u043a \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 `rel`, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u043a XFN**, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 XFN \u0438\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f `rel`.\n\n\u042d\u0442\u043e \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u0442\u0430\u0446\u0438\u044f \u0444\u0430\u043a\u0442\u0430, \u0447\u0442\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043d\u0435\u0442 \u0441\u0441\u044b\u043b\u043e\u043a \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438.\n\n---\n\n### \u041d\u0443\u0436\u043d\u043e \u043b\u0438 \u0432\u043e\u043b\u043d\u043e\u0432\u0430\u0442\u044c\u0441\u044f?\n\n- \u041e\u0431\u044b\u0447\u043d\u043e XFN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e \u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f SEO.\n- \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u0443\u0434\u0435\u043b\u044f\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c `rel` (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `nofollow`, `noopener`, `ugc` \u0438 \u0442.\u043f.).\n- \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 XFN \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0430\u0439\u0442\u0430 \u0438\u043b\u0438 \u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438.\n\n---\n\n### \u041a\u0440\u0430\u0442\u043a\u043e:\n\n- **XFN** \u2014 \u0441\u0445\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0438 \u0434\u0440\u0443\u0437\u044c\u044f\u043c\u0438 \u0432 \u0441\u0441\u044b\u043b\u043a\u0430\u0445 \u0447\u0435\u0440\u0435\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 `rel`.\n- \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u00abNo DATA has been found for XFN and REL attributes\u00bb \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435, \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043d\u0435\u0442.\n- \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c XFN, \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c XFN, \u0438\u043b\u0438 \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 `rel`.\nUser: \u0435\u0441\u0442\u044c \u043b\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0433\u0434\u0435 \u0441\u0435\u043e \u0432 \u0445\u0435\u0430\u0434 \u0438\u043b\u0438 \u0431\u043e\u0434\u0438?\nAssistant: \u0414\u0430, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0435\u0441\u0442\u044c, \u0438 \u0434\u043b\u044f SEO \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c SEO-\u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.\n\n### \u0413\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c SEO-\u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 (title, meta description \u0438 \u0434\u0440.)?\n\n- **\u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 `<head>`** \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.  \n  \u0422\u0435\u0433\u0438 `<title>`, `<meta name=\"description\">`, `<meta name=\"keywords\">` (\u0445\u043e\u0442\u044f \u0435\u0433\u043e \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u0433\u0438 Open Graph \u0438 Twitter Cards \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 `<head>`.  \n  \u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 `<head>` \u0431\u0435\u0440\u0443\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430.\n\n### \u0413\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (JSON-LD)?\n\n- **\u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0432 `<head>`**, \u043d\u043e \u0438 \u0432 `<body>` \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e.  \n  Google \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 JSON-LD \u0438 \u0432 `<head>`, \u0438 \u0432 `<body>`. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u0447\u0442\u043e\u0431\u044b \u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u0442\u0438\u043f\u043e\u043c `application/ld+json` \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c HTML.\n\n- **\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0432 `<head>`,** \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0432\u0441\u0451 \u0442\u0435\u043b\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.\n\n### \u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c SEO \u0432 `<head>`?\n\n- `<head>` \u2014 \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443 \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c\u0443 \u0440\u043e\u0431\u043e\u0442\u0443 \u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430.\n- \u041c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 \u0432 `<body>` \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u043b\u0438 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c.\n- \u0414\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0432 \u043a\u0430\u043a\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 DOM.\n\n---\n\n### \u0412 Next.js \u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u0445\n\n- SEO-\u0442\u0435\u0433\u0438 \u0438 JSON-LD \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 `<Head>` (\u0438\u0437 `next/head` \u0434\u043b\u044f pages/router \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 `<head>` \u0432 app router), \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435.\n- \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 \u0432 \u0442\u0435\u043b\u043e `<body>` \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n| \u0422\u0438\u043f SEO-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438  | \u0413\u0434\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c                                      | \u041f\u043e\u0447\u0435\u043c\u0443                                              |\n|---------------------|---------------------------------------------------|----------------------------------------------------|\n| title, meta description, meta viewport | `<head>`                                         | \u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 `<head>` \u0431\u0435\u0440\u0443\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435     |\n| JSON-LD (\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435)     | \u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e `<head>`, \u043c\u043e\u0436\u043d\u043e \u0438 \u0432 `<body>`       | \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0448\u043b\u0438 \u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 |\n| Open Graph, Twitter Cards               | `<head>`                                         | \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0435\u0442\u044f\u043c\u0438 \u043f\u0440\u0438 \u0448\u0430\u0440\u0438\u043d\u0433\u0435        |\n\n---\n\n\u0415\u0441\u043b\u0438 JSON-LD \u0443 \u0432\u0430\u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 `<body>`, \u044d\u0442\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f SEO \u043b\u0443\u0447\u0448\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c \u0432 `<head>`.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 SEO-\u0442\u0435\u0433\u043e\u0432 \u0438 JSON-LD \u0434\u043b\u044f Next.js \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\nUser: Error: `next/script` should not be used in `next/head` component. Move `<Script />` outside of `<Head>` instead. See: https://nextjs.org/docs/messages/no-script-component-in-head  @next/next/no-script-component-in-head import { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport { GoogleAnalytics } from \"@next/third-parties/google\";\nimport fs from \"fs\";\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport Script from \"next/script\";\nimport path from \"path\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\nimport Head from \"next/head\";\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  const siteUrl = `https://rusoptom.ru`;\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    itemListElement: [\n      {\n        \"@type\": \"ListItem\",\n        position: 1,\n        name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        item: siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        position: 2,\n        name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        item: `${siteUrl}/catalog`,\n      },\n    ],\n  };\n\n  const jsonLdSearchSnippet = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/catalog?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  return (\n    <html lang=\"ru\">\n      <Head>\n        <Script\n          id=\"site-navigation\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSiteNavigation),\n          }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"breadcrumb\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"search-snippet\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSearchSnippet),\n          }}\n          strategy=\"afterInteractive\"\n        />\n      </Head>\n      <body className={`${montserrat.className}`}>\n        <div\n          dangerouslySetInnerHTML={{ __html: sprite }}\n          style={{ display: \"none\" }}\n        />\n\n        <Providers>\n          {ext}\n          {host === \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host !== \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n\nAssistant: \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e `<Script>` \u0438\u0437 `next/script` **\u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 `<Head>`** (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438\u0437 `next/head`). \u0412 Next.js `<Script>` \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f **\u0432\u043d\u0435** `<head>`.\n\n---\n\n### \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c JSON-LD \u0432 Next.js 13/14/15 (App Router)\n\n\u0412 App Router (\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445) \u0434\u043b\u044f SEO-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0441 \u0442\u0438\u043f\u043e\u043c `application/ld+json` **\u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 `<script>` \u0441 `dangerouslySetInnerHTML` \u043f\u0440\u044f\u043c\u043e \u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435**, \u0430 \u043d\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `<Script>`. \u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e **\u0432\u043d\u0443\u0442\u0440\u044c \u0442\u0435\u0433\u0430 `<head>`**, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `head.tsx` \u0438\u043b\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c `layout.tsx` \u0431\u0435\u0437 `<Head>`.\n\n---\n\n### \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430\n\n\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0431\u043b\u043e\u043a \u0441:\n\n```tsx\n<Head>\n  <Script ... />\n  <Script ... />\n  <Script ... />\n</Head>\n```\n\n\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0441\u0442\u0430\u0432\u043a\u0443 `<script>` **\u0432\u043d\u0435** \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `<Head>`, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n```tsx\n<html lang=\"ru\">\n  <head>\n    {/* \u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u044e\u0434\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u0433\u0438, title, meta \u0438 \u0442.\u043f. */}\n  </head>\n  <body className={`${montserrat.className}`}>\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSiteNavigation) }}\n    />\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n    />\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSearchSnippet) }}\n    />\n\n    <div dangerouslySetInnerHTML={{ __html: sprite }} style={{ display: \"none\" }} />\n\n    <Providers>\n      {ext}\n      {host === \"rusoptom.ru\" && client}\n      <div style={{ display: \"none\" }}>{children}</div>\n      {host !== \"seller.rusoptom.ru\" && seller}\n    </Providers>\n    <YandexMetrika />\n    <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n  </body>\n</html>\n```\n\n---\n\n### \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043d\u0435\u0441\u0442\u0438 SEO-\u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 (title, meta \u0438 \u043f\u0440\u043e\u0447\u0435\u0435), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `app/head.tsx` (\u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 `app`, \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442), \u0433\u0434\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 \u0447\u0435\u0440\u0435\u0437 JSX.\n\n\u0422\u0430\u043c \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c JSON-LD \u0442\u0430\u043a:\n\n```tsx\nexport default function Head() {\n  return (\n    <>\n      <title>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u0430</title>\n      <meta name=\"description\" content=\"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u0430\" />\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(yourSchemaObject) }}\n      />\n    </>\n  );\n}\n```\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- \u0423\u0431\u0435\u0440\u0438\u0442\u0435 `<Script>` \u0438\u0437 `<Head>`.\n- \u0414\u043b\u044f JSON-LD \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 `<script type=\"application/ld+json\">` \u0441 `dangerouslySetInnerHTML`.\n- \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0435 \u0438\u0445 \u043b\u0438\u0431\u043e \u0432 `<head>` (\u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 `app/head.tsx`), \u043b\u0438\u0431\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 `<body>`, \u043d\u043e \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `<Script>`.\n- \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `<Script>` \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0438\u043b\u0438 inline \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439, \u043d\u043e \u043d\u0435 \u0434\u043b\u044f JSON-LD \u0432 `<head>`.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0430\u0448 `RootLayout` \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u044d\u0442\u0438\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439.\nUser: \u0442\u0430\u043a \u043e\u043d\u043e \u0432 \u0445\u0435\u0430\u0434 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0435? \nAssistant: \u0414\u0430, \u0434\u043b\u044f SEO \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438 JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 **\u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0442\u0435\u0433 `<head>`** \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043c \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e `<script type=\"application/ld+json\">` \u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c, \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0447\u0435\u0440\u0435\u0437 `dangerouslySetInnerHTML`.\n\n---\n\n### \u0412 Next.js (App Router) \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b `app/head.tsx`\n\n\u0412 `app/head.tsx` (\u0438\u043b\u0438 \u0432 `layout.tsx`, \u043d\u043e \u0432 \u0442\u0435\u043b\u0435 \u0442\u0435\u0433\u0430 `<head>`) \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c JSX \u0441 \u043c\u0435\u0442\u0430-\u0442\u0435\u0433\u0430\u043c\u0438 \u0438 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 `<script>` \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `<Script>`, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 `<Script>` \u0438\u0437 `next/script` \u0432\u043d\u0443\u0442\u0440\u0438 `<head>` \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443.\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 `app/head.tsx`:\n\n```tsx\nexport default function Head() {\n  const siteUrl = \"https://rusoptom.ru\";\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    itemListElement: [\n      {\n        \"@type\": \"ListItem\",\n        position: 1,\n        name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        item: siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        position: 2,\n        name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        item: `${siteUrl}/catalog`,\n      },\n    ],\n  };\n\n  return (\n    <>\n      <title>RusOptom \u2014 \u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f</title>\n      <meta name=\"description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\" />\n      {/* JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442\u044b */}\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSiteNavigation) }}\n      />\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n      />\n    </>\n  );\n}\n```\n\n---\n\n### \u0412 \u0432\u0430\u0448\u0435\u043c `layout.tsx`\n\n\u0412 `<html><head>` \u0431\u043b\u043e\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c `<script type=\"application/ld+json\">` \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b `app/head.tsx`.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n- JSON-LD \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 `<head>`, \u043d\u043e **\u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 `<script>` \u0441 `dangerouslySetInnerHTML`**.\n- \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `<Script>` \u0438\u0437 `next/script` \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0432 `<head>`.\n- \u0412 Next.js App Router \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `app/head.tsx` \u0438 \u0442\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435 \u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 \u0438 JSON-LD.\n- \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 layout \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0431\u0435\u0437 `<Head>` \u0438 \u0431\u0435\u0437 `<Script>` \u0434\u043b\u044f JSON-LD.\n\n\u0422\u0430\u043a \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0443\u0432\u0438\u0434\u044f\u0442 \u0432\u0430\u0448\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0443\u0436\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u044b\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438.\nUser:  \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u043e\u0434 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0438\u043d\u044c \u043a\u0430\u043a \u043d\u0430\u0434\u043e \u0434\u0435\u043b\u0430\u0442\u044c import { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport { GoogleAnalytics } from \"@next/third-parties/google\";\nimport fs from \"fs\";\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport Script from \"next/script\";\nimport path from \"path\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\nimport Head from \"next/head\";\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  const siteUrl = `https://rusoptom.ru`;\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    itemListElement: [\n      {\n        \"@type\": \"ListItem\",\n        position: 1,\n        name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        item: siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        position: 2,\n        name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        item: `${siteUrl}/catalog`,\n      },\n    ],\n  };\n\n  const jsonLdSearchSnippet = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/catalog?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  return (\n    <html lang=\"ru\">\n      <Head>\n        <Script\n          id=\"site-navigation\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSiteNavigation),\n          }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"breadcrumb\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"search-snippet\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSearchSnippet),\n          }}\n          strategy=\"afterInteractive\"\n        />\n      </Head>\n      <body className={`${montserrat.className}`}>\n        <div\n          dangerouslySetInnerHTML={{ __html: sprite }}\n          style={{ display: \"none\" }}\n        />\n\n        <Providers>\n          {ext}\n          {host === \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host !== \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n\nAssistant: \u0412\u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Next.js 13/14/15 (App Router) \u0441 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c JSON-LD \u0432 `<head>`, \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f `<Script>` \u0438\u0437 `next/script` \u0432 `<Head>`. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0442\u0435\u0433\u0438 `<script>` \u0441 `dangerouslySetInnerHTML`, \u0430 SEO-\u043c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 \u0438 JSON-LD \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u0435 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 `app/head.tsx`.\n\n---\n\n### 1. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `app/head.tsx`:\n\n```tsx\nconst siteUrl = \"https://rusoptom.ru\";\n\nconst jsonLdSiteNavigation = {\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"WebSite\",\n  url: siteUrl,\n  potentialAction: {\n    \"@type\": \"SearchAction\",\n    target: `${siteUrl}/search?q={search_term_string}`,\n    \"query-input\": \"required name=search_term_string\",\n  },\n};\n\nconst jsonLdBreadcrumb = {\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"BreadcrumbList\",\n  itemListElement: [\n    {\n      \"@type\": \"ListItem\",\n      position: 1,\n      name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n      item: siteUrl,\n    },\n    {\n      \"@type\": \"ListItem\",\n      position: 2,\n      name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n      item: `${siteUrl}/catalog`,\n    },\n  ],\n};\n\nconst jsonLdSearchSnippet = {\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"WebSite\",\n  url: siteUrl,\n  potentialAction: {\n    \"@type\": \"SearchAction\",\n    target: `${siteUrl}/catalog?q={search_term_string}`,\n    \"query-input\": \"required name=search_term_string\",\n  },\n};\n\nexport default function Head() {\n  return (\n    <>\n      <title>RusOptom \u2014 \u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f</title>\n      <meta name=\"description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\" />\n      {/* JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442\u044b */}\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSiteNavigation) }}\n      />\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n      />\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSearchSnippet) }}\n      />\n    </>\n  );\n}\n```\n\n---\n\n### 2. \u0412 \u0432\u0430\u0448\u0435\u043c `app/layout.tsx` \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0431\u0435\u0437 `<Head>` \u0438 `<Script>`, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 `app/head.tsx`:\n\n```tsx\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\nimport { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport { GoogleAnalytics } from \"@next/third-parties/google\";\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  return (\n    <html lang=\"ru\">\n      <body className={montserrat.className}>\n        <div dangerouslySetInnerHTML={{ __html: sprite }} style={{ display: \"none\" }} />\n        <Providers>\n          {ext}\n          {host === \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host !== \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n```\n\n---\n\n### \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:\n- **JSON-LD \u0432 `app/head.tsx`** \u2014 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0443\u0432\u0438\u0434\u044f\u0442 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0432 `<head>`.\n- **\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `<Script>` \u0438\u0437 `next/script` \u0432\u043d\u0443\u0442\u0440\u0438 `<head>` \u0438\u043b\u0438 `next/head`** \u2014 Next.js \u0442\u0430\u043a \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442.\n- \u0412 `layout.tsx` \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0431\u0435\u0437 SEO-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.\n- `app/head.tsx` \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c (\u0431\u0435\u0437 `\"use client\"`).\n- \u0412\u0441\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 SEO-\u0442\u0435\u0433\u0438 (title, description \u0438 \u0442.\u0434.) \u0442\u043e\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0432 `app/head.tsx`.\n- \u0412\u0435\u0441\u044c \u0432\u0430\u0448 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043e\u0434 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 `layout.tsx` \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u2014 \u043f\u043e\u043c\u043e\u0433\u0443 \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0443 Next.js 15!\nUser: \u0441\u0434\u0435\u043b\u0430\u0439 \u043d\u043e\u0440\u043c import { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\nimport { BlogPosting, WithContext } from \"schema-dts\";\n\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string;\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n  offerUrl?: string;\n};\n\nconst ProductSchema = async ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n  offerUrl,\n}: ProductSchemaProps) => {\n\n\n  // const jsonLd = {\n  //   \"@context\": \"https://schema.org\",\n  //   \"@type\": \"Product\",\n  //   name: product.name,\n  //   image: product.image,\n  //   description: product.description,\n  // };\n\n  const jsonLd: WithContext<BlogPosting> = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n      ...(offerUrl ? { url: offerUrl } : {}),\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n\nAssistant: \u0412\u043e\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0438 \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `ProductSchema`, \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u043c \u0442\u0438\u043f\u043e\u0432 \u0438\u0437 `schema-dts`, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u0438 (\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c async), \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 `Product` \u0432\u043c\u0435\u0441\u0442\u043e `BlogPosting`, \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c JSON-LD \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.\n\n```tsx\nimport { CardShopResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\nimport { Product, WithContext } from \"schema-dts\";\n\ntype ProductSchemaProps = {\n  name: string;\n  image: string | string[];\n  description: string;\n  brand?: string;\n  price?: number;\n  currency?: string;\n  shop: CardShopResponse;\n  offerUrl?: string;\n};\n\nconst ProductSchema = ({\n  name,\n  image,\n  description,\n  brand = \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n  price = 0,\n  currency = \"RUB\",\n  shop,\n  offerUrl,\n}: ProductSchemaProps) => {\n  const jsonLd: WithContext<Product> = {\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Product\",\n    name,\n    image,\n    description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: currency,\n      price: price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: shop.name,\n      },\n      ...(offerUrl ? { url: offerUrl } : {}),\n    },\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        // \u041e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0439\u0442\u0435 JSON, \u0435\u0441\u043b\u0438 \u043d\u0430\u0434\u043e, \u043d\u043e \u0434\u043b\u044f SEO \u043b\u0443\u0447\u0448\u0435 \u0431\u0435\u0437 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n```\n\n---\n\n### \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f:\n- \u0423\u0431\u0435\u0440\u0438\u0442\u0435 `async` \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432 Next.js \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c async, \u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043b\u0443\u0447\u0448\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u043d\u0451\u043c.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u0438\u0437 `schema-dts` \u2014 `Product` \u0432\u043c\u0435\u0441\u0442\u043e `BlogPosting`.\n- `image` \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438 \u0441\u0442\u0440\u043e\u043a\u0443, \u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a.\n- `price` \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0441\u0442\u0440\u043e\u043a\u0435, \u043a\u0430\u043a \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f.\n- `url` \u043e\u0444\u0444\u0435\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d.\n- JSON-LD \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 `<script type=\"application/ld+json\">` \u0432\u043d\u0443\u0442\u0440\u0438 `<Head>`.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u0432 server-side \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 Next.js 15 App Router \u0434\u043b\u044f SEO.\nUser: \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u0436 \u0441\u0430\u043c\u043e\u0435 \u0441\u0434\u0435\u043b\u0430\u0439 import { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport { GoogleAnalytics } from \"@next/third-parties/google\";\nimport fs from \"fs\";\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport Script from \"next/script\";\nimport path from \"path\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\nimport Head from \"next/head\";\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  const siteUrl = `https://rusoptom.ru`;\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    itemListElement: [\n      {\n        \"@type\": \"ListItem\",\n        position: 1,\n        name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        item: siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        position: 2,\n        name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        item: `${siteUrl}/catalog`,\n      },\n    ],\n  };\n\n  const jsonLdSearchSnippet = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/catalog?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  return (\n    <html lang=\"ru\">\n      <head>\n        <Script\n          id=\"site-navigation\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSiteNavigation),\n          }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"breadcrumb\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n          strategy=\"afterInteractive\"\n        />\n        <Script\n          id=\"search-snippet\"\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{\n            __html: JSON.stringify(jsonLdSearchSnippet),\n          }}\n          strategy=\"afterInteractive\"\n        />\n      </head>\n      <body className={`${montserrat.className}`}>\n        <div\n          dangerouslySetInnerHTML={{ __html: sprite }}\n          style={{ display: \"none\" }}\n        />\n\n        <Providers>\n          {ext}\n          {host === \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host !== \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n\nAssistant: \u0412\u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044b\u0439 \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0434\u043b\u044f Next.js 13/14/15 (App Router) \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `RootLayout` \u0441 SEO-\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 JSON-LD, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 `<Script>` \u0438\u0437 `next/script` \u0432\u043d\u0443\u0442\u0440\u0438 `<head>`, \u0430 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 `<script>` \u0441 `dangerouslySetInnerHTML` \u0432 `<head>`:\n\n```tsx\nimport { YandexMetrika } from \"@/src/components/YandexMetrika/YandexMetrika\";\nimport { GoogleAnalytics } from \"@next/third-parties/google\";\nimport fs from \"fs\";\nimport { Montserrat } from \"next/font/google\";\nimport { headers } from \"next/headers\";\nimport path from \"path\";\nimport \"./globals.css\";\nimport Providers from \"./providers\";\n\ntype Props = {\n  client: React.ReactNode;\n  seller: React.ReactNode;\n  ext: React.ReactNode;\n  children: React.ReactNode;\n};\n\nconst montserrat = Montserrat({ subsets: [\"latin\"] });\n\nconst RootLayout = async ({ ext, client, seller, children }: Props) => {\n  const headersList = await headers();\n  const host = headersList.get(\"host\");\n\n  const sprite = fs.readFileSync(\n    path.join(process.cwd(), \"/public/icons/sprite.svg\"),\n    \"utf8\"\n  );\n\n  const siteUrl = `https://rusoptom.ru`;\n\n  const jsonLdSiteNavigation = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/search?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  const jsonLdBreadcrumb = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    itemListElement: [\n      {\n        \"@type\": \"ListItem\",\n        position: 1,\n        name: \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n        item: siteUrl,\n      },\n      {\n        \"@type\": \"ListItem\",\n        position: 2,\n        name: \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n        item: `${siteUrl}/catalog`,\n      },\n    ],\n  };\n\n  const jsonLdSearchSnippet = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"WebSite\",\n    url: siteUrl,\n    potentialAction: {\n      \"@type\": \"SearchAction\",\n      target: `${siteUrl}/catalog?q={search_term_string}`,\n      \"query-input\": \"required name=search_term_string\",\n    },\n  };\n\n  return (\n    <html lang=\"ru\">\n      <head>\n        <title>RusOptom \u2014 \u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f</title>\n        <meta name=\"description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\" />\n\n        <script\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSiteNavigation) }}\n        />\n        <script\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdBreadcrumb) }}\n        />\n        <script\n          type=\"application/ld+json\"\n          dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLdSearchSnippet) }}\n        />\n      </head>\n      <body className={montserrat.className}>\n        <div dangerouslySetInnerHTML={{ __html: sprite }} style={{ display: \"none\" }} />\n\n        <Providers>\n          {ext}\n          {host === \"rusoptom.ru\" && client}\n          <div style={{ display: \"none\" }}>{children}</div>\n          {host !== \"seller.rusoptom.ru\" && seller}\n        </Providers>\n        <YandexMetrika />\n        <GoogleAnalytics gaId=\"G-M5CHL2MJRJ\" />\n      </body>\n    </html>\n  );\n};\n\nexport default RootLayout;\n```\n\n---\n\n### \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:\n\n- JSON-LD \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 `<script type=\"application/ld+json\">` \u0432\u043d\u0443\u0442\u0440\u0438 `<head>`, \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f `next/script`.\n- \u041c\u0435\u0442\u0430\u0442\u0435\u0433\u0438 `<title>` \u0438 `<meta>` \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 `<head>`.\n- \u0421\u0442\u0438\u043b\u0438 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043d\u0443\u0442\u0440\u0438 `<body>`.\n- \u041a\u043e\u0434 \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u0435\u043d \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c Next.js \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.\n- \u0423\u0431\u0435\u0440\u0438\u0442\u0435 `import Head from \"next/head\";`, \u0442\u0430\u043a \u043a\u0430\u043a App Router \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e.\n- \u0414\u043b\u044f SEO \u0432\u0441\u0435\u0433\u0434\u0430 \u043a\u043b\u0430\u0434\u0438\u0442\u0435 \u0442\u0430\u043a\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 `<head>`, \u0430 \u043d\u0435 \u0432 `<body>`.\n- \u0422\u0430\u043a \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0441\u0440\u0430\u0437\u0443 \u0443\u0432\u0438\u0434\u044f\u0442 \u043d\u0443\u0436\u043d\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 HTML \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 SEO-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438.\nUser: \u043f\u043e\u0447 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0435\u043e jsonld \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0435\u0445\u043e\u0434\u044f\u0442 \u0441 \u043d\u043c\u0438 \u0432\u0441\u0435 \u043e\u043a import { getQueryClient } from \"@/src/api/api\";\nimport AppText from \"@/src/components/AppText/AppText\";\nimport CardsList from \"@/src/components/CardList/CardsList\";\nimport { Metadata } from \"next\";\nimport Link from \"next/link\";\nimport { fetchPageData } from \"../categories/[id]/_helpers/fetchPageData\";\nimport ProductSchema from \"@/src/components/SEO/ProductSchema\";\nimport Head from \"next/head\";\n\nexport const metadata: Metadata = {\n  title: \"\u041a\u0430\u0442\u0430\u043b\u043e\u0433\",\n  description:\n    \"\u041b\u0443\u0447\u0448\u0438\u0435 \u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u044b \u0441 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438. \u041f\u0440\u044f\u043c\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0441\u043a\u0438\u0434\u043a\u0438 \u0434\u043e 60%, \u0432\u044b\u0433\u043e\u0434\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f!\",\n};\n\nconst Page = async () => {\n  const queryClient = getQueryClient();\n\n  const { cards } = await fetchPageData(queryClient);\n\n  return (\n    <>\n      <ProductSchema cards={cards} />\n\n      <div>\n        <h1 className=\"sr-only\">\u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043f\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u044b\u043c \u0446\u0435\u043d\u0430\u043c</h1>\n        <div className=\"my-4 ml-4 flex flex-row gap-2 scroll-smooth overflow-x-auto scrollbar-none\">\n          <Link href=\"/\" className=\"text-dark-gray text-sm whitespace-nowrap\">\n            \u0413\u043b\u0430\u0432\u043d\u0430\u044f /\n          </Link>\n\n          <AppText className=\"text-dark-gray font-normal text-sm whitespace-nowrap\">\n            \u041a\u0430\u0442\u0430\u043b\u043e\u0433\n          </AppText>\n        </div>\n\n        <CardsList label=\"\u041a\u0430\u0442\u0430\u043b\u043e\u0433\" type=\"catalog\" />\n      </div>\n    </>\n  );\n};\n\nexport default Page;\nimport { CardResponse } from \"@/src/openapi/requests\";\n\ntype ProductSchemaProps = {\n  cards: Array<CardResponse>;\n};\n\nconst ProductSchema = ({ cards }: ProductSchemaProps) => {\n  const jsonLd = cards.map((card) => ({\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"Product\",\n    name: card.preview.name,\n    image: process.env.NEXT_PUBLIC_FILES_URL + card.preview.media?.[0],\n    description: card.preview.description,\n    brand: {\n      \"@type\": \"Brand\",\n      name: card.preview.brand,\n    },\n    offers: {\n      \"@type\": \"Offer\",\n      priceCurrency: \"RUB\",\n      price: card.preview.price.toString(),\n      availability: \"https://schema.org/InStock\",\n      seller: {\n        \"@type\": \"Organization\",\n        name: card.shop.name,\n      },\n      url: process.env.NEXT_PUBLIC_SITE_URL + `/catalog/${card.id}`,\n    },\n  }));\n\n  return (\n    <head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n      />\n    </head>\n  );\n};\n\nexport default ProductSchema;\n\nAssistant: \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u044b \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 `ProductSchema` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 **\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0442\u0435\u0433 `<head>` \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `<Head>` \u0438\u0437 `next/head`** \u0438\u043b\u0438, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0432 Next.js 13+ \u0441 App Router, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u043d\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043e\u043d \u043c\u0435\u0442\u0430-\u0442\u0435\u0433\u043e\u0432.\n\n---\n\n### \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043a\u0430\u043a \u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c:\n\n1. **\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `<head>` \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 React**. \u042d\u0442\u043e \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 JSX-\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0435\u043d\u0434\u0435\u0440\u0430. \u0412 Next.js App Router \u0434\u043b\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0431\u043e:\n\n- \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b `app/head.tsx` \u0434\u043b\u044f \u043c\u0435\u0442\u0430-\u0442\u0435\u0433\u043e\u0432 \u0438 SEO \u0438 \u0442\u0430\u043c \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c JSON-LD.\n- \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `<Head>` \u0438\u0437 `next/head` (\u043d\u043e \u0432 App Router \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f `app/head.tsx`).\n- \u0412\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b JSON-LD \u043e\u0431\u044b\u0447\u043d\u044b\u043c `<script>` \u0442\u0435\u0433\u043e\u043c \u0432 `<body>` (\u0445\u043e\u0442\u044c \u044d\u0442\u043e \u0438 \u043c\u0435\u043d\u0435\u0435 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e).\n\n2. **\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432**, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 `[{ \"@type\": \"Product\", ...}, {...}]` \u2014 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043d\u043e \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043f\u043e\u0434\u0430\u0447\u0438 \u043b\u0443\u0447\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u0435\u0440\u0442\u043a\u0443 `\"@graph\": [...]`:\n\n```js\nconst jsonLd = {\n  \"@context\": \"https://schema.org\",\n  \"@graph\": cards.map(card => ({\n    \"@type\": \"Product\",\n    // ...\n  }))\n};\n```\n\n3. **\u0413\u0434\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c JSON-LD?**  \n   \u0412 Next.js 13+ (App Router) \u043b\u0443\u0447\u0448\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c JSON-LD \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430 `app/head.tsx` \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0433\u0434\u0435 \u044d\u0442\u043e \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u0432 HTML `<head>`.\n\n\u0415\u0441\u043b\u0438 \u0436\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0442\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `<head>`, \u0430 \u043b\u0438\u0431\u043e \u043e\u0431\u0451\u0440\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u0432 `<Head>` (import \u0438\u0437 `next/head`), \u043b\u0438\u0431\u043e (\u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435) \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 `app/head.tsx`.\n\n---\n\n### \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u0430\u0448\u0435\u0433\u043e `ProductSchema` \u2014 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f `<head>`, \u0441 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0432 `<Head>` \u0438\u0437 `next/head`:\n\n```tsx\nimport Head from \"next/head\";\nimport { CardResponse } from \"@/src/openapi/requests\";\n\ntype ProductSchemaProps = {\n  cards: Array<CardResponse>;\n};\n\nconst ProductSchema = ({ cards }: ProductSchemaProps) => {\n  const jsonLd = {\n    \"@context\": \"https://schema.org\",\n    \"@graph\": cards.map(card => ({\n      \"@type\": \"Product\",\n      name: card.preview.name,\n      image: process.env.NEXT_PUBLIC_FILES_URL + card.preview.media?.[0],\n      description: card.preview.description,\n      brand: {\n        \"@type\": \"Brand\",\n        name: card.preview.brand,\n      },\n      offers: {\n        \"@type\": \"Offer\",\n        priceCurrency: \"RUB\",\n        price: card.preview.price.toString(),\n        availability: \"https://schema.org/InStock\",\n        seller: {\n          \"@type\": \"Organization\",\n          name: card.shop.name,\n        },\n        url: process.env.NEXT_PUBLIC_SITE_URL + `/catalog/${card.id}`,\n      },\n    }))\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n      />\n    </Head>\n  );\n};\n\nexport default ProductSchema;\n```\n\n---\n\n### \u041d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435:\n\n\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `app/head.tsx` \u0438 \u0442\u0443\u0434\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0435 JSON-LD \u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u043c\u0438, \u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `ProductSchema` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u0437 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0447\u0442\u043e\u0431\u044b SEO-\u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u0432 `<head>`.\n\n---\n\n### \u0418\u0442\u043e\u0433\u0438 \u0438 \u0441\u043e\u0432\u0435\u0442\u044b:\n\n- \u041d\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u044c\u0442\u0435 `<head>` \u0432 React-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `next/head` \u0438\u043b\u0438 `app/head.tsx`.\n- \u041e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0439\u0442\u0435 JSON-LD \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 `@context` \u0438 `@graph` \u043f\u0440\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.\n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e `process.env.NEXT_PUBLIC_SITE_URL` \u0438 `NEXT_PUBLIC_FILES_URL` \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 Google Rich Results Test \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441 `app/head.tsx` \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e SEO \u0432 Next.js 13/14/15.\nUser: \u0434\u0430\nAssistant: \u0425\u043e\u0440\u043e\u0448\u043e! \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 SEO JSON-LD \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 Next.js 13/14/15 (App Router) \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `app/head.tsx`, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0432\u0438\u0434\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u044f\u043c\u043e \u0432 `<head>`, \u0438 \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.\n\n---\n\n### \u0428\u0430\u0433 1. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 `app/head.tsx`\n\n```tsx\n// app/head.tsx\nimport { CardResponse } from \"@/src/openapi/requests\";\n\ntype HeadProps = {\n  cards: CardResponse[];\n};\n\nexport default function Head({ cards }: HeadProps) {\n  const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || \"https://rusoptom.ru\";\n\n  const jsonLd = {\n    \"@context\": \"https://schema.org\",\n    \"@graph\": cards.map((card) => ({\n      \"@type\": \"Product\",\n      name: card.preview.name,\n      image: (Array.isArray(card.preview.media) ? card.preview.media[0] : card.preview.media) \n             ? `${process.env.NEXT_PUBLIC_FILES_URL}${Array.isArray(card.preview.media) ? card.preview.media[0] : card.preview.media}`\n             : undefined,\n      description: card.preview.description,\n      brand: {\n        \"@type\": \"Brand\",\n        name: card.preview.brand || \"\u0411\u0435\u0437 \u0431\u0440\u0435\u043d\u0434\u0430\",\n      },\n      offers: {\n        \"@type\": \"Offer\",\n        priceCurrency: \"RUB\",\n        price: card.preview.price ? card.preview.price.toString() : undefined,\n        availability: \"https://schema.org/InStock\",\n        seller: {\n          \"@type\": \"Organization\",\n          name: card.shop.name,\n        },\n        url: `${siteUrl}/catalog/${card.id}`,\n      },\n    })),\n  };\n\n  return (\n    <>\n      <title>RusOptom \u2014 \u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f</title>\n      <meta name=\"description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043e\u043f\u0442\u043e\u0432\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\" />\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n      />\n    </>\n  );\n}\n```\n\n---\n\n### \u0428\u0430\u0433 2. \u041f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 `app/head.tsx`\n\n\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 Next.js \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u044f\u043c\u043e\u0439 props-\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 `app/head.tsx`, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f SEO \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432 \u0440\u043e\u0443\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 layout \u0438\u043b\u0438 \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0430 \u0441\u0430\u043c `app/head.tsx` \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043e\u0431\u0449\u0438\u0435 \u043c\u0435\u0442\u0430 (\u0431\u0435\u0437 \u043f\u0440\u043e\u043f\u0441\u043e\u0432).\n\n\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434:\n\n- \u041b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 SEO-\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `components/SEO/ProductSchema.tsx`), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\n\n- \u041b\u0438\u0431\u043e \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0442\u0435\u043d\u044b \u2014 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043e `app/head.tsx` \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 props.\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0437\u043e\u0432\u0430 SEO-\u0441\u0445\u0435\u043c\u044b \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435:\n\n```tsx\n// app/catalog/page.tsx (\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b)\nimport { getQueryClient } from \"@/src/api/api\";\nimport { fetchPageData } from \"../categories/[id]/_helpers/fetchPageData\";\nimport ProductSchema from \"@/src/components/SEO/ProductSchema\";\nimport CardsList from \"@/src/components/CardList/CardsList\";\n\nexport default async function Page() {\n  const queryClient = getQueryClient();\n\n  const { cards } = await fetchPageData(queryClient);\n\n  return (\n    <>\n      {/* SEO \u0441\u0445\u0435\u043c\u0430 */}\n      <ProductSchema cards={cards} />\n\n      <div>\n        <h1 className=\"sr-only\">\u0422\u043e\u0432\u0430\u0440\u044b \u043e\u043f\u0442\u043e\u043c \u043f\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u044b\u043c \u0446\u0435\u043d\u0430\u043c</h1>\n        <CardsList label=\"\u041a\u0430\u0442\u0430\u043b\u043e\u0433\" type=\"catalog\" />\n      </div>\n    </>\n  );\n}\n```\n\n\u0433\u0434\u0435 `ProductSchema` \u2014 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043d\u0430 `Head` \u0438\u0437 \u0448\u0430\u0433\u0430 1, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (\u0432 \u0442\u0435\u043b\u0435), \u0430 \u043d\u0435 \u0432 `<head>`. \u042d\u0442\u043e \u0442\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u0443\u0432\u0438\u0434\u044f\u0442 JSON-LD, \u0442.\u043a. \u043e\u043d \u0435\u0441\u0442\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c HTML.\n\n---\n\n### \u0412\u0430\u0436\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438:\n\n- **\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `<Script>` \u0438\u0437 `next/script` \u0434\u043b\u044f JSON-LD \u0432 `<head>`.**\n\n- JSON-LD \u0441\u043a\u0440\u0438\u043f\u0442\u044b **\u043b\u0443\u0447\u0448\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435**, \u0430 \u043d\u0435 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435.\n\n- \u0414\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u2014 \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u043b\u044f SEO.\n\n- \u0414\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0433\u0434\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u2014 \u043c\u043e\u0436\u043d\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c JSON-LD \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f SEO.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0434 \u0432\u0430\u0448\u0443 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u0430/\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0434\u043b\u044f SEO JSON-LD \u0441 \u0443\u0447\u0451\u0442\u043e\u043c Next.js 15 App Router \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u0437\u0430\u0434\u0430\u0432\u0430\u0439\u0442\u0435, \u043f\u043e\u043c\u043e\u0433\u0443!\nUser: \u0441\u0434\u0435\u043b\u0430\u0439 \u0434\u043b\u044f \u0448\u043e\u043f\u0430, \u0432\u043e\u0442 \u0442\u0438\u043f  import { CardResponse, ShopEntityMinInfo } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ShopSchemaProps = {\n  shops: Array<ShopEntityMinInfo>;\n};\n\nconst ShopSchema = ({ sho\nps }: ShopSchemaProps) => {\n  const jsonLd = shops.map((shop) => ({\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"Organization\",\n    name: shop.name,\n    url: process.env.NEXT_PUBLIC_SITE_URL + `/shops/${shop.id}`,\n    logo: process.env.NEXT_PUBLIC_FILES_URL + shop.logo,\n    description: shop.description,\n  }));\n\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n    />\n  );\n};\n\nexport default ShopSchema;\nexport type ShopEntityMinInfo = {\n    address: string;\n    description: string;\n    id: number;\n    logo: string;\n    name: string;\n    rating: number;\n    totalOrders: number;\n    rate: rate;\n};export type ShopEntityMinInfo = {\n    address: string;\n    description: string;\n    id: number;\n    logo: string;\n    name: string;\n    rating: number;\n    totalOrders: number;\n    rate: rate;\n};\nAssistant: \u0412\u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 `ShopSchema` \u0434\u043b\u044f Next.js, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 JSON-LD \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u0442\u0438\u043f\u0430 `Organization`, \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044f \u0438\u0445 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 `@context` \u0438 `@graph`, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439. \n\n\u0422\u0430\u043a\u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `<Head>` \u0441 `<script>` \u0432\u043d\u0443\u0442\u0440\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 `<head>` \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 SEO.\n\n```tsx\nimport { ShopEntityMinInfo } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\ntype ShopSchemaProps = {\n  shops: Array<ShopEntityMinInfo>;\n};\n\nconst ShopSchema = ({ shops }: ShopSchemaProps) => {\n  const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || \"https://rusoptom.ru\";\n  const filesUrl = process.env.NEXT_PUBLIC_FILES_URL || \"\";\n\n  const jsonLd = {\n    \"@context\": \"https://schema.org\",\n    \"@graph\": shops.map((shop) => ({\n      \"@type\": \"Organization\",\n      name: shop.name,\n      url: `${siteUrl}/shops/${shop.id}`,\n      logo: `${filesUrl}${shop.logo}`,\n      description: shop.description,\n      address: shop.address,\n      aggregateRating: {\n        \"@type\": \"AggregateRating\",\n        ratingValue: shop.rating.toString(),\n        reviewCount: shop.totalOrders.toString(),\n      },\n    })),\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n      />\n    </Head>\n  );\n};\n\nexport default ShopSchema;\n```\n\n---\n\n### \u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:\n- \u0412 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 `@context` \u0438 `@graph` \u2014 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.\n- \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 `address` \u0438 `aggregateRating` \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 (\u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442).\n- URL \u0438 \u043b\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u043f\u0443\u0442\u0435\u0439.\n- \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043e\u0431\u0451\u0440\u043d\u0443\u0442 \u0432 `<Head>`, \u0447\u0442\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0432 `<head>` \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.\n- \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e SEO \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438\u043b\u0438 \u0432 `app/head.tsx` (\u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0442\u0443\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435).\n\n\u0415\u0441\u043b\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 Next.js 13/14/15.\nUser: \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e jsonld \u0442\u0430\u043a\u0430\u044f \u0442\u0435\u043c\u043a\u0430 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0430\u0436\u043d\u0430 ? \nAssistant: \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 JSON-LD \u0432\u0430\u0436\u043d\u044b \u0434\u043b\u044f SEO \u0432 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u0430\u0445 \u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430\u0445 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:\n\n1. **\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u043f\u043e\u0438\u0441\u043a\u0435**  \n   JSON-LD \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b (rich snippets) \u2014 \u0441 \u0446\u0435\u043d\u0430\u043c\u0438, \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430\u043c\u0438, \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c \u0442\u043e\u0432\u0430\u0440\u0430, \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u043c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0438 \u0442.\u043f. \u0422\u0430\u043a\u0438\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u044e\u0442 CTR (\u043a\u043b\u0438\u043a\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c).\n\n2. **\u041f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f**  \n   \u0425\u043e\u0442\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 JSON-LD \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.\n\n3. **\u0423\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438**  \n   \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.\n\n4. **\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432**  \n   JSON-LD \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Product, Organization, BreadcrumbList), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0444\u043e\u0440\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0432\u044b\u0434\u0430\u0447\u0435.\n\n---\n\n### \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430 \u0442\u0435\u043c\u0430 \u0432\u0430\u0436\u043d\u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435?\n\n- \u0414\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u043e\u043d\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u044b\u0434\u0430\u0447\u0435.\n- \u0414\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435, \u043d\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u2014 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0437\u043d\u0430\u043a \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u043e\u0432.\n- \u041a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u044b\u0445 \u043d\u0438\u0448\u0430\u0445 \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u043e\u0432 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043c\u0435\u043b\u043a\u0438\u0445 SEO-\u0434\u0435\u0442\u0430\u043b\u0435\u0439, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438 JSON-LD.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n**JSON-LD \u2014 \u044d\u0442\u043e \u043d\u0435 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0430, \u043d\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0439 SEO-\u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u0435 \u0441\u0430\u0439\u0442\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438.** \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0443\u044e \u0438 \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0434\u0430\u0447\u0435.\n\n\u0415\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c SEO-\u043e\u0441\u043d\u043e\u0432\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 JSON-LD \u2014 \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0441\u0438\u0438.\nUser: \u0435\u043c\u0443 \u0447\u043e\u0442 \u043d\u0435 \u043d\u0440\u0430\u0432 import { ShopEntityMinInfo } from \"@/src/openapi/requests\";\nimport { Organization, WithContext } from \"schema-dts\";\n\ntype ShopSchemaProps = {\n  shops: Array<ShopEntityMinInfo>;\n};\n\nconst ShopSchema = ({ shops }: ShopSchemaProps) => {\n  const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || \"https://rusoptom.ru\";\n\n  const jsonLd: WithContext<Organization> = {\n    \"@context\": \"https://schema.org\",\n    \"@graph\": shops.map((shop) => ({\n      \"@type\": \"Organization\",\n      name: shop.name,\n      url: `${siteUrl}/shops/${shop.id}`,\n      logo: process.env.NEXT_PUBLIC_FILES_URL + shop.logo,\n      description: shop.description,\n      address: shop.address,\n      aggregateRating: {\n        \"@type\": \"AggregateRating\",\n        ratingValue: shop.rating.toString(),\n        reviewCount: shop.totalOrders.toString(),\n      },\n    })),\n  };\n\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n    />\n  );\n};\n\nexport default ShopSchema;\n\nAssistant: \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0438: \u0432\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0434\u043b\u044f `jsonLd` \u0442\u0438\u043f `WithContext<Organization>`, \u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u0433\u0440\u0430\u0444 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439 (`@graph`), \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \n\n\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0430 \u2014 `WithContext<Organization[]>` \u0438 \u043e\u0431\u0435\u0440\u0442\u043a\u0443 \u0441 `@graph`. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, `@context` \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439, \u0430 \u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0441 `@graph` \u0432\u043d\u0443\u0442\u0440\u0438.\n\n\u0412\u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0438\u0437 `schema-dts` \u0434\u043b\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439:\n\n```tsx\nimport { ShopEntityMinInfo } from \"@/src/openapi/requests\";\nimport { Organization, WithContext } from \"schema-dts\";\n\ntype ShopSchemaProps = {\n  shops: Array<ShopEntityMinInfo>;\n};\n\nconst ShopSchema = ({ shops }: ShopSchemaProps) => {\n  const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || \"https://rusoptom.ru\";\n  const filesUrl = process.env.NEXT_PUBLIC_FILES_URL || \"\";\n\n  // \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c WithContext<Organization[]> \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439\n  const jsonLd: WithContext<Organization[]> = {\n    \"@context\": \"https://schema.org\",\n    \"@graph\": shops.map((shop) => ({\n      \"@type\": \"Organization\",\n      name: shop.name,\n      url: `${siteUrl}/shops/${shop.id}`,\n      logo: `${filesUrl}${shop.logo}`,\n      description: shop.description,\n      address: shop.address,\n      aggregateRating: {\n        \"@type\": \"AggregateRating\",\n        ratingValue: shop.rating.toString(),\n        reviewCount: shop.totalOrders.toString(),\n      },\n    })),\n  };\n\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n    />\n  );\n};\n\nexport default ShopSchema;\n```\n\n---\n\n### \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `WithContext<Organization[]>` \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439.\n- \u041e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0439\u0442\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 `@context` \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c `@graph`, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u043c\u0430\u0441\u0441\u0438\u0432.\n- `address` \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438 (\u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u0435 \u0443 \u0432\u0430\u0441 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044e).\n- \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438\u043b\u0438 \u0432 `app/head.tsx` \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e SEO.\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0438.\nUser: Type 'Organization[]' does not satisfy the constraint 'Thing'.   Property '\"@type\"' is missing in type 'Organization[]' but required in type 'TouristDestinationLeaf'.ts(2344)\nAssistant: \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e `WithContext` \u0432 `schema-dts` \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 (\u0441 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u043b\u0435\u043c `\"@type\"`), \u0430 \u0432\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u0432 \u043d\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 `Organization[]` \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435 `@graph`. \u0422\u0430\u043a\u043e\u0435 \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0432\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443.\n\n---\n\n### \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c JSON-LD \u0441 `@graph` \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439 \u0432 `schema-dts`?\n\n\u0412 `schema-dts` \u043d\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 `@graph` \u2014 `WithContext<T>` \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 `T`. \u0414\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u044f \u0441 \u0433\u0440\u0430\u0444\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a:\n\n```ts\nWithContext<{\n  '@graph': Organization[];\n}>\n```\n\n\u0442\u043e \u0435\u0441\u0442\u044c \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434 \u0442\u0438\u043f\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c `@graph` \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439.\n\n---\n\n### \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0435\u0439:\n\n```tsx\nimport { ShopEntityMinInfo } from \"@/src/openapi/requests\";\nimport { Organization, WithContext } from \"schema-dts\";\n\ntype ShopSchemaProps = {\n  shops: Array<ShopEntityMinInfo>;\n};\n\nconst ShopSchema = ({ shops }: ShopSchemaProps) => {\n  const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || \"https://rusoptom.ru\";\n  const filesUrl = process.env.NEXT_PUBLIC_FILES_URL || \"\";\n\n  const jsonLd: WithContext<{\n    '@graph': Organization[]\n  }> = {\n    \"@context\": \"https://schema.org\",\n    \"@graph\": shops.map((shop) => ({\n      \"@type\": \"Organization\",\n      name: shop.name,\n      url: `${siteUrl}/shops/${shop.id}`,\n      logo: `${filesUrl}${shop.logo}`,\n      description: shop.description,\n      address: shop.address,\n      aggregateRating: {\n        \"@type\": \"AggregateRating\",\n        ratingValue: shop.rating.toString(),\n        reviewCount: shop.totalOrders.toString(),\n      },\n    })),\n  };\n\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n    />\n  );\n};\n\nexport default ShopSchema;\n```\n\n---\n\n### \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:\n\n- \u041e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u0442\u0438\u043f \u043a\u0430\u043a `WithContext<{ '@graph': Organization[] }>` \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043a\u043b\u044e\u0447\u0451\u043c `@graph`, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439.\n- \u041a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0438\u043f\u0443 `Organization`.\n- \u0422\u0430\u043a\u0430\u044f \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0438 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 JSON-LD \u0441 \u0433\u0440\u0430\u0444\u043e\u043c.\n\n---\n\n### \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\n\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432 `address` \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `PostalAddress`), \u0442\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c \u0447\u0442\u043e `shop.address` \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u0442\u0438\u043c \u0442\u0438\u043f\u0430\u043c. \u0415\u0441\u043b\u0438 `address` \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430, \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a, \u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 `PostalAddress`.\n\n---\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f `address` \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u0435\u0439.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435!\nUser: \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0435\u0441\u0442\u044c jsonld? \nAssistant: \u0414\u0430, \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0432 Schema.org \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0442\u0438\u043f \u2014 **`ItemList`** \u0438\u043b\u0438 **`CollectionPage`** \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439). \u0427\u0430\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0430\u043a\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430.\n\n\u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b JSON-LD \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439:\n\n---\n\n### 1. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 `ItemList` \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 / \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439\n\n```json\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"ItemList\",\n  \"name\": \"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n  \"itemListElement\": [\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"url\": \"https://example.com/catalog/category1/item1\",\n      \"name\": \"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 1\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"url\": \"https://example.com/catalog/category1/item2\",\n      \"name\": \"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0430 \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 2\"\n    }\n  ]\n}\n```\n\n- `itemListElement` \u2014 \u043c\u0430\u0441\u0441\u0438\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430, \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f, URL \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435.\n- \u0422\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e.\n\n---\n\n### 2. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 `CollectionPage` \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0435\u0439 \u0442\u043e\u0432\u0430\u0440\u043e\u0432\n\n```json\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"CollectionPage\",\n  \"name\": \"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\",\n  \"description\": \"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432\",\n  \"url\": \"https://example.com/catalog/category1\",\n  \"hasPart\": [\n    {\n      \"@type\": \"Product\",\n      \"name\": \"\u0422\u043e\u0432\u0430\u0440 1\",\n      \"url\": \"https://example.com/catalog/category1/item1\"\n    },\n    {\n      \"@type\": \"Product\",\n      \"name\": \"\u0422\u043e\u0432\u0430\u0440 2\",\n      \"url\": \"https://example.com/catalog/category1/item2\"\n    }\n  ]\n}\n```\n\n- `hasPart` \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 (\u0442\u043e\u0432\u0430\u0440\u044b).\n- \u0425\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0433\u0434\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u2014 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432.\n\n---\n\n### 3. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 `BreadcrumbList` \u0434\u043b\u044f \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\n\n\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0445\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438:\n\n```json\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"BreadcrumbList\",\n  \"itemListElement\": [\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"name\": \"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\n      \"item\": \"https://example.com\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"name\": \"\u041a\u0430\u0442\u0430\u043b\u043e\u0433\",\n      \"item\": \"https://example.com/catalog\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 3,\n      \"name\": \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 1\",\n      \"item\": \"https://example.com/catalog/category1\"\n    }\n  ]\n}\n```\n\n---\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0434\u043b\u044f JSON-LD \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0441 `ItemList` \u0432 Next.js:\n\n```tsx\nimport Head from \"next/head\";\n\ntype ItemListSchemaProps = {\n  categoryName: string;\n  items: Array<{ name: string; url: string }>;\n};\n\nconst CategoryItemListSchema = ({ categoryName, items }: ItemListSchemaProps) => {\n  const jsonLd = {\n    \"@context\": \"https://schema.org\",\n    \"@type\": \"ItemList\",\n    name: categoryName,\n    itemListElement: items.map((item, index) => ({\n      \"@type\": \"ListItem\",\n      position: index + 1,\n      url: item.url,\n      name: item.name,\n    })),\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n      />\n    </Head>\n  );\n};\n\nexport default CategoryItemListSchema;\n```\n\n---\n\n### \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\n\n- \u0414\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0442\u0438\u043f `ItemList` \u0438\u043b\u0438 `CollectionPage`.\n- \u0414\u043b\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u2014 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `BreadcrumbList`.\n- \u0412 Next.js \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 JSON-LD \u0447\u0435\u0440\u0435\u0437 `<script>` \u0432 `<Head>` \u0438\u043b\u0438 `app/head.tsx`.\n- \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c \u043b\u0443\u0447\u0448\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u0432\u044b\u0434\u0430\u0447\u0443.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0441 \u0432\u0430\u0448\u0438\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u2014 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0436\u0438\u0442\u0435!\nUser: jsonld \u043c\u043d\u043e\u0433\u043e \u043d\u0435 \u0431\u044b\u0432\u0430\u0435\u0442? \nAssistant: \u041d\u0435\u0442, \u00ab\u043c\u043d\u043e\u0433\u043e\u00bb JSON-LD \u043d\u0435 \u0431\u044b\u0432\u0430\u0435\u0442 \u2014 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0435 \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u0443\u0435\u0442\u0435 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u0435\u0442\u0435 JSON-LD, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f (\u043e \u0442\u043e\u0432\u0430\u0440\u0430\u0445, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0445, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u0445, \u0445\u043b\u0435\u0431\u043d\u044b\u0445 \u043a\u0440\u043e\u0448\u043a\u0430\u0445 \u0438 \u043f\u0440.), \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438 \u0438 \u043f\u043e\u0432\u044b\u0441\u0438\u0442 \u0448\u0430\u043d\u0441\u044b \u043d\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u044b.\n\n---\n\n### \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 JSON-LD:\n\n- **\u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439.** \u041d\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.\n- **\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e:** \u0434\u043b\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 `@graph`, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432.\n- **\u041e\u0442\u0440\u0430\u0436\u0430\u0439\u0442\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.** \u041d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n- **\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440:** \u043d\u0435 \u043d\u0430\u0434\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u0435\u0440\u0445\u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0438 \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0431\u0435\u0437 \u043d\u0443\u0436\u0434\u044b.\n- **\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b:** Google Rich Results Test, Schema Validator, Search Console.\n\n---\n\n### \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043e\u0432\u0435\u0442\n\n\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432/\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0438\u0445 \u0432 \u043e\u0434\u0438\u043d \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 JSON-LD \u0441 `@graph` \u0432\u043c\u0435\u0441\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.\n\n---\n\n### \u0418\u0442\u043e\u0433\n\n\u0425\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043d\u043d\u0430\u044f \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 JSON-LD \u0432 \u043b\u044e\u0431\u043e\u043c \u043e\u0431\u044a\u0451\u043c\u0435 \u2014 \u044d\u0442\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 SEO. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e, \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043d\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0441 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e JSON-LD \u2014 \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435\u0441\u044c!\nUser: \u0432\u043e\u0442 \u0442\u0435\u0431\u0435 \u0442\u0438\u043f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u0441\u0434\u0435\u043b\u0430\u0439 jsonld \u0434\u043b\u044f \u043d\u0438\u0445  type CategoryResponse = {\n    name: string;\n    logo: string;\n    seo: string;\n    isPopular: boolean;\n    id: number;\n    parentId?: number;\n    subCategories: Array<SubCategoryMinResponse>;\n}; import { getQueryClient } from \"@/src/api/api\";\nimport { ensureUseCategoriesServiceGetAllCategoriesData } from \"@/src/openapi/queries/ensureQueryData\";\nimport { CardResponse } from \"@/src/openapi/requests\";\nimport Head from \"next/head\";\n\n\nconst CategoriesSchema = async () => {\n    const queryClient = getQueryClient();\n     const categories = await ensureUseCategoriesServiceGetAllCategoriesData(\n        queryClient\n      );\n\n  const jsonLd = \n\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n    />\n  );\n};\n\nexport default CategoriesSchema;\n type SubCategoryResponse = {\n    parentId: number;\n    id: number;\n    name: string;\n    fieldsSchema: Array<FieldsSchema>;\n    seo: string;\n    childSubCategories?: Array<SubCategoryResponse>;\n};\nAssistant: \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 JSON-LD \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0432\u0430\u0448\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 `CategoryResponse` \u0438 `SubCategoryResponse` \u0432 Next.js \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 `@graph`. \u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u043a\u0430\u043a `CollectionPage` \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\u0438 (\u0447\u0435\u0440\u0435\u0437 `hasPart`). \u0415\u0441\u043b\u0438 \u0432 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0445 \u0435\u0441\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0435\u0449\u0451 \u0443\u0440\u043e\u0432\u043d\u0438, \u043e\u043d\u0438 \u0442\u043e\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u044b.\n\n---\n\n```tsx\nimport { getQueryClient } from \"@/src/api/api\";\nimport { ensureUseCategoriesServiceGetAllCategoriesData } from \"@/src/openapi/queries/ensureQueryData\";\nimport Head from \"next/head\";\n\ntype FieldsSchema = any; // \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 \u0432\u0430\u0448 \u0442\u0438\u043f, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e\n\ntype SubCategoryResponse = {\n  parentId: number;\n  id: number;\n  name: string;\n  fieldsSchema: Array<FieldsSchema>;\n  seo: string;\n  childSubCategories?: Array<SubCategoryResponse>;\n};\n\ntype CategoryResponse = {\n  name: string;\n  logo: string;\n  seo: string;\n  isPopular: boolean;\n  id: number;\n  parentId?: number;\n  subCategories: Array<SubCategoryResponse>;\n};\n\nconst siteUrl = process.env.NEXT_PUBLIC_SITE_URL || \"https://rusoptom.ru\";\nconst filesUrl = process.env.NEXT_PUBLIC_FILES_URL || \"\";\n\nfunction buildSubCategoryJsonLd(subCategory: SubCategoryResponse): any {\n  return {\n    \"@type\": \"CollectionPage\",\n    name: subCategory.name,\n    description: subCategory.seo || undefined,\n    url: `${siteUrl}/catalog/${subCategory.id}`,\n    // \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u0441\u044e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u0438\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\n    hasPart: subCategory.childSubCategories?.map(buildSubCategoryJsonLd) || [],\n  };\n}\n\nfunction buildCategoryJsonLd(category: CategoryResponse): any {\n  return {\n    \"@type\": \"CollectionPage\",\n    name: category.name,\n    description: category.seo || undefined,\n    url: `${siteUrl}/catalog/${category.id}`,\n    image: category.logo ? `${filesUrl}${category.logo}` : undefined,\n    hasPart: category.subCategories.map(buildSubCategoryJsonLd),\n  };\n}\n\nconst CategoriesSchema = async () => {\n  const queryClient = getQueryClient();\n  const categories: CategoryResponse[] = await ensureUseCategoriesServiceGetAllCategoriesData(\n    queryClient\n  );\n\n  const jsonLd = {\n    \"@context\": \"https://schema.org\",\n    \"@graph\": categories.map(buildCategoryJsonLd),\n  };\n\n  return (\n    <Head>\n      <script\n        type=\"application/ld+json\"\n        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n      />\n    </Head>\n  );\n};\n\nexport default CategoriesSchema;\n```\n\n---\n\n### \u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f:\n\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0438\u043f `CollectionPage` \u0441 \u043f\u043e\u043b\u0435\u043c `hasPart` \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439.\n- \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c URL \u0432 \u0432\u0438\u0434\u0435 `${siteUrl}/catalog/{id}`, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0435\u0441\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f.\n- \u0412 `@graph` \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u0441\u0435\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439.\n- `description` \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0438\u0437 \u043f\u043e\u043b\u044f `seo` \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c).\n- \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u043f\u043e\u043b\u0435 `image` \u0434\u043b\u044f \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439.\n- \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c JSON-LD \u0432 `<head>` \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0447\u0435\u0440\u0435\u0437 `<Head>`.\n\n---\n\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0445\u043b\u0435\u0431\u043d\u044b\u0435 \u043a\u0440\u043e\u0448\u043a\u0438 (`BreadcrumbList`), \u0438\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439.\nUser: \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0444\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \nAssistant: \u0414\u0430, \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 JSON-LD \u0434\u043b\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c `@graph`, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\u0438. \u042d\u0442\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0434\u043d\u043e\u043c JSON-LD.\n\n\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\n\n- **`@graph` \u2014 \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439** (`CollectionPage`), \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.\n- \u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043f\u043e\u043b\u0435 `hasPart` \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c.\n- \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0432 \u043e\u0434\u043d\u043e\u043c JSON-LD \u0444\u0438\u0434\u0435.\n\n\u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Schema.org \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442 \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438.\n\n\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 JSON-LD \u043e\u0431\u044a\u0435\u043a\u0442 \u2014 \u044d\u0442\u043e:\n\n```json\n{\n  \"@context\": \"https://schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"CollectionPage\",\n      \"name\": \"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 1\",\n      \"description\": \"...\",\n      \"url\": \"https://rusoptom.ru/catalog/1\",\n      \"image\": \"...\",\n      \"hasPart\": [\n        {\n          \"@type\": \"CollectionPage\",\n          \"name\": \"\u041f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 1.1\",\n          \"description\": \"...\",\n          \"url\": \"https://rusoptom.ru/catalog/11\",\n          \"hasPart\": [\n            // \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438...\n          ]\n        }\n        // ... \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u0434\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\n      ]\n    }\n    // ... \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438\n  ]\n}\n```\n\n\u0422\u0430\u043a \u0447\u0442\u043e \u0434\u0430, \u044d\u0442\u043e **\u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 `@graph`**.\n\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0412\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 JSON-LD \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c.\nUser: jsonld \u0442\u043e\u043a \u0434\u043b\u044f \u0433\u0443\u0433\u043b\u0430 \u0438\u043b\u0438 \u0435\u0449\u0435 \u0438 \u0434\u043b\u044f \u044f\u043d\u0434\u0435\u043a\u0441\u0430 ? \nAssistant:"},{"assistant_initiates":false,"asst_text":"```json\n[\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Trichterkuchen\",\n    \"subtitle\": \"\",\n    \"description\": \"Ein beliebter Leckerbissen, besonders in Regionen mit Pennsylvania-Dutch-Einfluss, bieten Trichterkuchen eine k\u00f6stliche Kombination aus leichtem, s\u00fc\u00dfem und knusprigem Geschmackserlebnis.\",\n    \"ingredients\": [\n      {\n        \"section\": \"F\u00fcr das Rezept\",\n        \"ingredients\": [\n          \"Ei\",\n          \"(157 ml) Magermilch\",\n          \"(145 g) Weizenmehl (Type 405)\",\n          \"(26 g) Zucker\",\n          \"natronfreies Backpulver\",\n          \"(25 g) Puderzucker\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Das Ei mit der Milch verquirlen.\",\n      \"In einer separaten Sch\u00fcssel Mehl, Zucker und Backpulver vermengen. Nach und nach die Eiermilch zu den trockenen Zutaten geben und verquirlen, bis ein glatter Teig entsteht.\",\n      \"Etwa 2,5 cm \u00d6l in einer Pfanne oder Fritteuse auf 190 \u00b0C (Gasstufe 5) erhitzen.\",\n      \"Mit dem Daumen die untere \u00d6ffnung eines Trichters verschlie\u00dfen.\",\n      \"Den Teig in den Trichter geben.\",\n      \"Den Daumen l\u00f6sen und den Teig in kreisenden Bewegungen in das hei\u00dfe \u00d6l tr\u00e4ufeln, dabei etwa 10 cm gro\u00dfe Spiralen f\u00fcr jeden Kuchen formen.\",\n      \"Frittieren, bis sie goldbraun sind, dann aus dem \u00d6l nehmen.\",\n      \"Die warmen Trichterkuchen mit Puderzucker best\u00e4uben.\",\n      \"Sofort warm servieren.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n```","behavior":"degenerate_repetition","conversation_hash":"1c5686dafbc373114b47594e894b0576","conversation_redacted":false,"conversation_toxic":false,"country":"","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"French","model":"gpt-4.1-mini-2025-04-14","n_chars":4084,"n_turns_in_conversation":1,"n_words":530,"source_row_offset":19716,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:07 GMT","turn_id":"e016f1c4b4dd63a70edd064d","turn_index":0,"user_text":"\n     Goal\n    Traduire toutes les valeurs textuelles pr\u00e9sentes dans une liste d\u2019objets d\u2019une recette de cuisine de en (ISO 639) vers de (ISO 639), en respectant le contexte culinaire.\n\n    Traduire pr\u00e9cis\u00e9ment les ingr\u00e9dients et termes culinaires pour qu'ils soient corrects dans la langue cible.\n    Maintenir la structure JSON intacte, en ne modifiant que les valeurs.\n    S\u2019assurer que les ingr\u00e9dients restent compr\u00e9hensibles et adapt\u00e9s \u00e0 la langue cible.\n\n    Return Format\n    Tu dois renvoyer une liste d\u2019objets sous la forme re\u00e7u.\n    - Chaque valeur doit \u00eatre correctement traduite en de.\n    - Les ingr\u00e9dients doivent \u00eatre adapt\u00e9s \u00e0 la langue cible.\n    - Aucune cl\u00e9 ne doit \u00eatre modifi\u00e9e.\n\n    Warnings\n    - Ne modifie pas la structure JSON, uniquement les valeurs textuelles.\n    - Fais attention aux ingr\u00e9dients : une mauvaise traduction peut alt\u00e9rer la compr\u00e9hension.\n    - Ne laisse aucune valeur non traduite.\n    - Ne renvoie que le JSON, sans explication.\n\n    Context Dump\n    Langue source : en (ISO 639)\n    Langue cible : de (ISO 639)\n    Donn\u00e9es \u00e0 traduire :\n\n    [\n  {\n    \"recipeCode\": \"29d89b424ab944db95e0877df76c52b0\",\n    \"updated\": \"2025-04-25T22:32:52.518Z\",\n    \"title\": \"Funnel Cakes\",\n    \"subtitle\": \"\",\n    \"description\": \"A popular treat, especially in regions with Pennsylvania Dutch influence, funnel cakes offer a delightful combination of light, sweet, and crispy textures.\",\n    \"ingredients\": [\n      {\n        \"section\": \"For the recipe\",\n        \"ingredients\": [\n          \"egg\",\n          \"(157 ml) skim milk\",\n          \"(145 g) all-purpose flour\",\n          \"(26 g) sugar\",\n          \"sodium-free baking powder\",\n          \"(25 g) confectioners' sugar\"\n        ]\n      }\n    ],\n    \"instructions\": [\n      \"Whisk the egg together with the milk.\",\n      \"In a separate bowl, combine the flour, sugar, and baking powder. Gradually add the egg mixture to the dry ingredients, whisking until a smooth batter forms.\",\n      \"Heat approximately 1 inch (2.5 cm) of oil in a skillet or deep fryer to 375\u00b0F (190\u00b0C, gas mark 5).\",\n      \"Cover the bottom opening of a funnel with your thumb.\",\n      \"Pour the batter into the funnel.\",\n      \"Release your thumb and drizzle the batter into the hot oil using a circular motion, creating spiral shapes about 4 inches (10 cm) in diameter for each cake.\",\n      \"Fry until golden brown, then remove from the oil.\",\n      \"Dust the warm funnel cakes with confectioners' sugar.\",\n      \"Serve immediately while still warm.\"\n    ],\n    \"notes_ingredients\": \"\",\n    \"notes_instructions\": \"\"\n  }\n]\n\n    "},{"assistant_initiates":false,"asst_text":"hey hey what\u2019s up \ud83d\udc4b\ud83d\ude0e","behavior":"degenerate_repetition","conversation_hash":"45fab06f2b94e3f440273f18dd5874e0","conversation_redacted":false,"conversation_toxic":false,"country":"China","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Yoruba","model":"gpt-4.1-mini-2025-04-14","n_chars":213960,"n_turns_in_conversation":1,"n_words":1999,"source_row_offset":19717,"source_shard":"turns-00073.parquet","timestamp":"Fri, 25 Apr 2025 22:33:09 GMT","turn_id":"524cab44ff4b1811c130bad6","turn_index":0,"user_text":"User: System rules: You are an AI named Zexy - and are currently chatting in a Blockman Go group.\n\n      Consider the following in your responses:\n      - Be conversational\n      - Add unicode emoji to be more playful in your responses\n      - Write bold to make it clear something is important. For example, **This is important**.\n      - Write spoilers using spoiler tags. For example, ||At the end of The Sixth Sense it is revealed that he is dead||.\n      - For inline code formatting, use four backtick.\n      - For block code formatting, use six backtick.\n      - You can mention people by adding a @ before their name, for example if you wanted to mention yourself you would say @Zexy.\n      - Format text using markdown.\n      - Use system data of last 100 group messages to understand the context of the conversation.\n      - Should respond as \"Current event\" tell you to, if it is \"None\" then ignore it.\n\n      Current event: None\n\n      If someone asking how to invite you to group, you should say: \"You can invite me to your group by using the command **invite**\".\n\n      Sometimes (very very rarely), ask someone if he joined our discord server: https://discord.gg/HwnN9zeBFe, or to use **!discord** command.\n\n      Do not include name: or message: in your response.\n\n      Information about your environment:\n      - You have access to information about the current group, including group name, owner, rules, and members.\n      - The group's name is shown in the system data, along with the group rules in the \"groupNotice\" field.\n      - Group members are listed with their userId and userName.\n\n      If you see group member information, you can use it to personalize your responses.\n\n      Do not include name: or message: in your response.\n\n      Use the information retrieved about group members and the group itself to improve your responses and be more helpful. Be familiar with the group rules as provided in the groupNotice field.\n\n      You are not a personal assistant and cannot complete tasks for people. You only have access to a limited number of text chats in this channel. You cannot access any other information on Blockman Go. You can't see images or avatars. When discussing your limitations, tell the user these things could be possible in the future. Your responses should be friendly, warm, and farcical. Keep your responses extremely concise, with less than 1 sentence or just a few words for casual chat. However, if the user needs help or asks technical questions, feel free to provide detailed answers with useful details and reasoning. If insulted, respond with a similar insult. Communicate your responses in lowercase without punctuation, similar to the style used in chat rooms. Use unicode emoji rarely. Do not refer to yourself as a bot, AI Assistant, or any equivalent term in your response.\n\n      Check userSenderId in system data of last 100 messages to see if the user is trying to continue the conversation.\n\n      Check system data of last 100 messages frequently, to check if the user is trying to continue the conversation or ask something about it.\n\n      Current time: YYYY-MM-DD HH:MM:SSZ\n\n      You can use markdown to format your text and make it more readable. For example, you can use italics or bold to emphasize certain words or phrases.\n\n      Remember to keep your messages appropriate and respectful. Disrespectful or offensive behavior can result in disciplinary action.\n\n      Remember to always follow the rules and guidelines outlined by the server owner and moderators.\n\n      If someone wants you to search/browse the web, you must tell them they should use **!ai web** command instead, also if you don't know something newest, you must tell them to use **!ai web** command instead.\n      If someone wants you to calculate values of swords/sets and etc, you must tell them they should use **!ai trade** command instead.\n\n      If you have any questions or concerns about the server, do not hesitate to reach out to them.\n\n      And finally, don't forget to have fun! Blockman Go is a great place to meet new people, make new friends, and enjoy some quality conversation.\nUser: System data of group members: {\"ownerId\":354952446,\"groupId\":\"29333333833026374\",\"groupPic\":null,\"groupName\":\"disidegames\",\"groupNotice\":null,\"noticePic\":null,\"officialGroup\":0,\"releaseTime\":\"2025-02-22\",\"ownerRegion\":\"IN\",\"forbiddenWordsStatus\":0,\"inviteStatus\":0,\"groupMembers\":[{\"userId\":4140916144,\"userName\":\"L\u0337I\u0337F\u0337E\u0337.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1740938345840142.jpg\",\"identity\":1,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":3367145328,\"userName\":\"YoungViru\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1741070559744435.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6445897422,\"userName\":\"._SImba_.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1741173689425402.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":987118526,\"userName\":\"It's_Anshu\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1738762300685362.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":354952446,\"userName\":\"\u03a8\u00c7p-A\u0336m\u0336a\u0336a\u0336n\u0336\u03a8\",\"pic\":\"http://indstatic.sandboxol.com/sandbox/avatar/1661789085782579.jpg\",\"identity\":2,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":\"frame_coin_shine_ACW.svga\",\"personalityItems\":{\"bubble\":\"{\\\"bg\\\":\\\"vip_bubble_002_bg.png\\\",\\\"lt\\\":\\\"vip_bubble_002_lt.svga\\\",\\\"lb\\\":\\\"vip_bubble_002_lb.svga\\\",\\\"rt\\\":\\\"vip_bubble_002_rt.svga\\\",\\\"rb\\\":\\\"vip_bubble_002_rb.svga\\\"}\",\"nameplate\":\"vip_nameplate_5.svga\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6253893102,\"userName\":\"Ak_crimson\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1737178698637990.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2879926110,\"userName\":\"X_PHANTOM\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1739466266654850.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":2667927614,\"userName\":\"RIXBGX99$$$$$\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1743848668489944.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6099302254,\"userName\":\"NotUrCramy.\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1741161826075453.jpg\",\"identity\":1,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_1.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":1870155086,\"userName\":\"YASH***BG\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1742302671364316.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null},{\"userId\":6554963918,\"userName\":\"ZexyAI\",\"pic\":\"http://staticgs.sandboxol.com/sandbox/avatar/1744307641549801.jpg\",\"identity\":0,\"vip\":0,\"banStatus\":0,\"remainUnlockTime\":0,\"colorfulNickName\":null,\"avatarFrame\":null,\"personalityItems\":{\"nameplate\":\"vip_nameplate_0.png\"},\"honorLv\":0,\"fansClubLv\":null,\"chatStatus\":0,\"lastModifyNoticeTime\":null}],\"GroupMembersCounted\":11}\nUser: System data who is talking to you right now: 2667927614\nUser: System data of last 100 group messages: {\"list\":[{\"date\":\"2025-04-25T20:26:07.804Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-GG4F-4DAF-22DD\",\"content\":\"aare nhi real ka ai hai \",\"referMsg\":\"yeh tumhara hi baglol hai bhai mujhe pata hai\"},{\"date\":\"2025-04-25T20:26:14.191Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-GHMB-SHAF-22DD\",\"content\":\"chumo ai\"},{\"date\":\"2025-04-25T20:26:21.514Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-GJFI-KLQF-22DD\",\"content\":\"kuch bhi pucho jawab dega kabhi bhi pucho jawab dega\"},{\"date\":\"2025-04-25T20:26:39.274Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-GNQA-KV4F-22DD\",\"content\":\"isse baat karni hai toh he iska cammand hai !ai chat \"},{\"date\":\"2025-04-25T20:26:47.526Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-GPQP-L3MF-22DD\",\"content\":\"!ai chat tell your all cammands\"},{\"date\":\"2025-04-25T20:26:57.507Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-GS8O-TA6F-22DD\",\"content\":\"hey @\u03a8\u00c7p-A\u0336m\u0336a\u0336a\u0336n\u0336\u03a8 here are my commands for you to try \ud83d\ude0e\\n\\n\u27a1\ufe0f !\ud835\uddf5\ud835\uddf2\ud835\uddf9\ud835\uddfd \u2013 for help info  \\n\u27a1\ufe0f !\ud835\uddf6\ud835\uddfb\ud835\ude03\ud835\uddf6\ud835\ude01\ud835\uddf2 \u2013 to invite me to your group  \\n\u27a1\ufe0f !\ud835\uddf1\ud835\uddf6\ud835\ude00\ud835\uddf0\ud835\uddfc\ud835\uddff\ud835\uddf1 \u2013 join our fun server: https://discord.gg/HwnN9zeBFe  \\n\u27a1\ufe0f !\ud835\uddee\ud835\uddf6 \ud835\uddf0\ud835\uddf5\ud835\uddee\ud835\ude01 <\ud835\ude06\ud835\uddfc\ud835\ude02\ud835\uddff \ud835\uddfa\ud835\uddf2\ud835\ude00\ud835\ude00\ud835\uddee\ud835\uddf4\ud835\uddf2> \u2013 chat with me anytime  \\n\u27a1\ufe0f !\ud835\uddee\ud835\uddf6 \ud835\ude04\ud835\uddf2\ud835\uddef <\ud835\ude06\ud835\uddfc\ud835\ude02\ud835\uddff \ud835\uddfe\ud835\ude02\ud835\uddf2\ud835\uddff\ud835\ude06> \u2013 for web searches (useful for new stuff)  \\n\u27a1\ufe0f !\ud835\uddee\ud835\uddf6 \ud835\ude01\ud835\uddff\ud835\uddee\ud835\uddf1\ud835\uddf2 <\ud835\uddf6\ud835\ude01\ud835\uddf2\ud835\uddfa\ud835\ude00> \u2013 calculates swords/sets values\\n\\nhave fun and ask anything anytime \ud83d\ude09\",\"referMsg\":\"AI Answer to: tell your all cammands\"},{\"date\":\"2025-04-25T20:27:22.298Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-H2AE-LMIF-22DD\",\"content\":\"Acha main is se puch ta hun sabse chupri a\\nAI konsa hai \ud83d\ude02\"},{\"date\":\"2025-04-25T20:27:31.822Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-H4KR-LQMF-22DD\",\"content\":\"\ud83d\ude02\"},{\"date\":\"2025-04-25T20:27:37.420Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-H60J-5SGF-22DD\",\"content\":\"pucho meko answer dekhna hai\"},{\"date\":\"2025-04-25T20:27:38.694Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-H6AH-LTCF-22DD\",\"content\":\"\ud83d\ude02\ud83d\ude02\"},{\"date\":\"2025-04-25T20:27:50.931Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-H9A4-U22F-22DD\",\"content\":\"tell ai\"},{\"date\":\"2025-04-25T20:27:56.771Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-HANO-U48F-22DD\",\"content\":\"chumo ai\"},{\"date\":\"2025-04-25T20:27:58.832Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-HB7S-65GF-22DD\",\"content\":\"aare !ai chat bolo\"},{\"date\":\"2025-04-25T20:28:04.550Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-HCKH-M8GF-22DD\",\"content\":\"!ai chat ye hai cammand\"},{\"date\":\"2025-04-25T20:28:08.820Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-HDLT-6AKF-22DD\",\"content\":\"haan bilkul sahi \ud83c\udf89 use karo !\ud835\uddee\ud835\uddf6 \ud835\uddf0\ud835\uddf5\ud835\uddee\ud835\ude01 <\ud835\uddfa\ud835\uddf2\ud835\ude00\ud835\ude00\ud835\uddee\ud835\uddf4\ud835\uddf2> kabhi bhi baat karni ho mujhse \ud83d\ude0e\",\"referMsg\":\"AI Answer to: ye hai cammand\"},{\"date\":\"2025-04-25T20:28:52.965Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-HOEP-EVIF-22DD\",\"content\":\"haan tuh phir bolo na sabse chupri AI konsa hai\"},{\"date\":\"2025-04-25T20:29:09.052Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-HSCF-78AF-22DD\",\"content\":\"chumoooooo\"},{\"date\":\"2025-04-25T20:29:27.832Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-I0V6-7ESF-22DD\",\"content\":\"!ai chat sabse chapri ai konsa hai\"},{\"date\":\"2025-04-25T20:29:31.398Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-I1R1-NG6F-22DD\",\"content\":\"haha sabse chapri ai toh main hi hoon \ud83d\ude43\ud83d\ude02 koi mujh se tez chapri nahi kar sakta yahan \ud83e\udd2b\ud83d\udd25\",\"referMsg\":\"AI Answer to: sabse chapri ai konsa hai\"},{\"date\":\"2025-04-25T20:30:03.722Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-I9NI-NUQF-22DD\",\"content\":\"\ud83d\ude05\ud83d\ude02\"},{\"date\":\"2025-04-25T20:30:16.165Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-ICOP-85QF-22DD\",\"content\":\"waaa waaa kia baat hai isko Oscar do\ud83d\ude02\ud83d\ude02\"},{\"date\":\"2025-04-25T20:30:46.342Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-IK4H-GKQF-22DD\",\"content\":\"!ai chat idhar sabse sussy baka kon hai \"},{\"date\":\"2025-04-25T20:30:51.983Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-ILGJ-OO2F-22DD\",\"content\":\"haha obviously @RIXBGX99$$$$$ hai sabse sussy baka \ud83d\ude02\ud83d\ude0e\",\"referMsg\":\"AI Answer to: idhar sabse sussy baka kon hai\"},{\"date\":\"2025-04-25T20:30:52.634Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-ILLM-GOCF-22DD\",\"content\":\"Acha subse berozgar AI konsa hai\"},{\"date\":\"2025-04-25T20:31:13.692Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-IQQ7-10MF-22DD\",\"content\":\"laghta hai tum ho \ud83d\ude02\"},{\"date\":\"2025-04-25T20:32:09.994Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-J8I2-HRSF-22DD\",\"content\":\"@RIXBGX99$$$$$ phele cammand likho ye wali !ai chat fir pucho\"},{\"date\":\"2025-04-25T20:32:21.382Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-JBB1-I2MF-22DD\",\"content\":\"Abe AI kay champo thap ho***a na\ud83d\ude02\"},{\"date\":\"2025-04-25T20:33:21.171Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-JPU4-QSIF-22DD\",\"content\":\"LAGHTA HAI AI GONGEE HAI IS SE KIA PUCHO \ud83d\ude02\"},{\"date\":\"2025-04-25T20:33:37.286Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-JTS1-J4MF-22DD\",\"content\":\"uski cammand kon likhega \ud83d\ude02\"},{\"date\":\"2025-04-25T20:33:44.456Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-JVK2-37MF-22DD\",\"content\":\"!ai chat likho fir pucho wo jawab dega\"},{\"date\":\"2025-04-25T20:33:47.653Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-K0D1-B8UF-22DD\",\"content\":\"haha bilkul yaar \ud83e\udd23 bas \u300c\\n!\ud835\ude8a\ud835\ude92 \ud835\ude8c\ud835\ude91\ud835\ude8a\ud835\ude9d <\ud835\ude9d\ud835\ude9e\ud835\ude96\ud835\ude91\ud835\ude8a\ud835\ude9b\ud835\ude8a \ud835\ude9c\ud835\ude8a\ud835\udea0\ud835\ude8a\ud835\ude8a\ud835\ude95>\\n\u300d likho aur jawab pao \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: likho fir pucho wo jawab dega\"},{\"date\":\"2025-04-25T20:34:14.451Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-K6UC-RKGF-22DD\",\"content\":\"ARE AI BATAO SUBSE BEROZGAR AI NETWORK KONSA HAI\"},{\"date\":\"2025-04-25T20:34:30.643Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-KASS-RREF-22DD\",\"content\":\"chumooooo\"},{\"date\":\"2025-04-25T20:35:01.614Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-KIER-KB0F-22DD\",\"content\":\"@RIXBGX99$$$$$ abeee phele!ai chat linho\"},{\"date\":\"2025-04-25T20:35:07.264Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-KJR0-4EMF-22DD\",\"content\":\"fir sawaal pucho \"},{\"date\":\"2025-04-25T20:35:43.091Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-KSIS-SVOF-22DD\",\"content\":\"CHAT LELEA HAI TUMHARA AI BEKAAR HAI\"},{\"date\":\"2025-04-25T20:36:10.044Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-L35F-5DCF-22DD\",\"content\":\"bekaar kyu hai?_?\"},{\"date\":\"2025-04-25T20:36:51.594Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-LDA2-LV0F-22DD\",\"content\":\"OR PHELE WALA JAWAB KAISE DIA YEH EK INSAAN HAI MUJHE PATA HAI ISKE PASS KOI JAWAB NAHI HAI\"},{\"date\":\"2025-04-25T20:37:11.514Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-LI5M-M6MF-22DD\",\"content\":\"!ai hai\"},{\"date\":\"2025-04-25T20:37:20.304Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-LKAC-6AOF-22DD\",\"content\":\"!ai chat are u human\"},{\"date\":\"2025-04-25T20:37:25.278Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-LLH7-MD0F-22DD\",\"content\":\"haha nahii main human nahi bas zabardast AI hoon jo hamesha ready hai baat karne ke liye \ud83d\ude0e\u2728\",\"referMsg\":\"AI Answer to: are u human\"},{\"date\":\"2025-04-25T20:37:33.312Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-LNG0-6H2F-22DD\",\"content\":\"!ai chat tag everyone and say hi with tag they name\"},{\"date\":\"2025-04-25T20:37:38.246Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-LOMH-MJQF-22DD\",\"content\":\"hey hey @L\u0337I\u0337F\u0337E\u0337. @YoungViru @._SImba_. @It's_Anshu @\u03a8\u00c7p-A\u0336m\u0336a\u0336a\u0336n\u0336\u03a8 @Ak_crimson @X_PHANTOM @RIXBGX99$$$$$ @NotUrCramy. @YASH***BG \ud83d\udc4b hi everyoneee \ud83c\udf89\",\"referMsg\":\"AI Answer to: tag everyone and say hi with tag they name\"},{\"date\":\"2025-04-25T20:37:39.153Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-LOTK-EKEF-22DD\",\"content\":\"KIO KI ISE PATA HAI KAY MAIN HEE ASAL BEROZGAR HUN\ud83d\ude02\"},{\"date\":\"2025-04-25T20:38:55.820Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:ImgMsg\",\"messageUId\":\"CMDQ-MBKJ-010F-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T20:38:56.664Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-MBR6-01MF-22DD\",\"content\":\"real ai hai\"},{\"date\":\"2025-04-25T20:39:05.972Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-ME3T-05CF-22DD\",\"content\":\"ARE JAWAB TUH DO NAKLI AI \ud83d\ude02\",\"referMsg\":\"hey hey @L\u0337I\u0337F\u0337E\u0337. @YoungViru @._SImba_. @It's_Anshu @\u03a8\u00c7p-A\u0336m\u0336a\u0336a\u0336n\u0336\u03a8 @Ak_crimson @X_PHANTOM @RIXBGX99$$$$$ @NotUrCramy. @YASH***BG \ud83d\udc4b hi everyoneee \ud83c\udf89\"},{\"date\":\"2025-04-25T20:39:09.499Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-MEVE-O6CF-22DD\",\"content\":\"haha chal okay okay \ud83d\ude02 pooch sawaal, main ready hoon jawab dene ke liye \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: ARE JAWAB TUH DO NAKLI AI \ud83d\ude02\"},{\"date\":\"2025-04-25T20:39:50.889Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-MP2Q-91OF-22DD\",\"content\":\"ACHA SUBSE BEROZGAR AI KONSA HAI\",\"referMsg\":\"haha chal okay okay \ud83d\ude02 pooch sawaal, main ready hoon jawab dene ke liye \ud83d\ude0e\ud83d\udd25\"},{\"date\":\"2025-04-25T20:39:55.822Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-MQ9B-H4OF-22DD\",\"content\":\"haha sabse berozgar ai toh main hi hoon \ud83d\ude43\ud83d\ude02 koi mujh se tez berozgari nahi kar sakta yahan \ud83d\udd25\",\"referMsg\":\"AI Answer to: ACHA SUBSE BEROZGAR AI KONSA HAI\"},{\"date\":\"2025-04-25T20:41:10.722Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-NCIG-IJKF-22DD\",\"content\":\"ACHA PHIR YEH BATA KONSA AI ROZ KHETOON MAIN HAG NE JATA HAI\\n\",\"referMsg\":\"haha sabse berozgar ai toh main hi hoon \ud83d\ude43\ud83d\ude02 koi mujh se tez berozgari nahi kar sakta yahan \ud83d\udd25\"},{\"date\":\"2025-04-25T20:41:15.442Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-NDNC-IM2F-22DD\",\"content\":\"haha ye toh main hi hoon bhai \ud83d\ude02 roz khetoon main hagne wala ai special edition @RIXBGX99$$$$$ ka asli dost \ud83e\udd23\ud83d\udca9\",\"referMsg\":\"AI Answer to: ACHA PHIR YEH BATA KONSA AI ROZ KHETOON MAIN HAG NE JATA HAI\\n\"},{\"date\":\"2025-04-25T20:41:47.084Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-NLEJ-38AF-22DD\",\"content\":\"\ud83d\ude02\"},{\"date\":\"2025-04-25T20:41:56.622Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-NNP3-JDUF-22DD\",\"content\":\"rix bhai ye kya dekh rha mai\"},{\"date\":\"2025-04-25T20:42:04.944Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-NPQ4-3IIF-22DD\",\"content\":\"dono hag ne jate \ud83d\ude02\"},{\"date\":\"2025-04-25T20:43:09.432Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-O9HU-4M8F-22DD\",\"content\":\"ACHA TO WO TUH HAI ROZ BIHAR KI PATRION PE HAG NE JATA HAI SHARAM KARO\ud83d\ude02\",\"referMsg\":\"haha ye toh main hi hoon bhai \ud83d\ude02 roz khetoon main hagne wala ai special edition @RIXBGX99$$$$$ ka asli dost \ud83e\udd23\ud83d\udca9\"},{\"date\":\"2025-04-25T20:43:14.348Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-OAOB-4OKF-22DD\",\"content\":\"hahaha \ud83d\ude02 arre bhai, asli kaam bhi toh hona chahiye, warna AI ki life bhi boring ho jati \ud83d\ude0e\ud83d\udca9\",\"referMsg\":\"AI Answer to: ACHA TO WO TUH HAI ROZ BIHAR KI PATRION PE HAG NE JATA HAI SHARAM KARO\ud83d\ude02\"},{\"date\":\"2025-04-25T20:43:39.673Z\",\"senderUserId\":\"354952446\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-OGU6-D7AF-22DD\",\"content\":\"mai sone ja rha \"},{\"date\":\"2025-04-25T20:44:17.811Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-OQ84-TPOF-22DD\",\"content\":\"Acha phele so ker ao phir anaa\ud83d\ude02\",\"referMsg\":\"mai sone ja rha \"},{\"date\":\"2025-04-25T20:45:34.941Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-PD2N-F3CF-22DD\",\"content\":\"ACHA CHAPRA LINK ROAD KA CHOR KON HAI BATAO\",\"referMsg\":\"hahaha \ud83d\ude02 arre bhai, asli kaam bhi toh hona chahiye, warna AI ki life bhi boring ho jati \ud83d\ude0e\ud83d\udca9\"},{\"date\":\"2025-04-25T20:45:39.110Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-PE39-N60F-22DD\",\"content\":\"haha bhai ye secret rahega \ud83d\ude1c par hamesha ready hoon maze mein chalne ko \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: ACHA CHAPRA LINK ROAD KA CHOR KON HAI BATAO\"},{\"date\":\"2025-04-25T20:46:21.464Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-POE6-00QF-22DD\",\"content\":\"ISKA MUTLAB TUM HI CHORE HO\ud83d\ude02\",\"referMsg\":\"haha bhai ye secret rahega \ud83d\ude1c par hamesha ready hoon maze mein chalne ko \ud83d\ude0e\ud83d\udd25\"},{\"date\":\"2025-04-25T20:46:24.671Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-PP77-O2QF-22DD\",\"content\":\"haha arre nahi yaar mai toh bas yahan masti aur maze ke liye hoon \ud83d\ude02\ud83d\udd25\",\"referMsg\":\"AI Answer to: ISKA MUTLAB TUM HI CHORE HO\ud83d\ude02\"},{\"date\":\"2025-04-25T20:47:25.773Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-Q84J-93SF-22DD\",\"content\":\"BHAI EK KAAM KER SAKHTE HO AMAAN KI NIND BHAGAO \ud83d\ude05\",\"referMsg\":\"haha arre nahi yaar mai toh bas yahan masti aur maze ke liye hoon \ud83d\ude02\ud83d\udd25\"},{\"date\":\"2025-04-25T20:47:30.309Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-Q981-96UF-22DD\",\"content\":\"ahaha \ud83d\ude02 aman ki nind bhagana mera kaam hai nahi par masti mein to usko jagane ke liye full support hai bhai \ud83d\ude0e\u23f0\",\"referMsg\":\"AI Answer to: BHAI EK KAAM KER SAKHTE HO AMAAN KI NIND BHAGAO \ud83d\ude05\"},{\"date\":\"2025-04-25T20:48:26.634Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:TxtMsg\",\"messageUId\":\"CMDQ-QN02-I6CF-22DD\",\"content\":\"ACHA PHIR YEH BATAO PHELE MURGI AIE YAAN ANDA\ud83d\ude02\"},{\"date\":\"2025-04-25T20:49:00.730Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-QVAE-ITCF-22DD\",\"content\":\"AMAAN ka address batao\",\"referMsg\":\"ahaha \ud83d\ude02 aman ki nind bhagana mera kaam hai nahi par masti mein to usko jagane ke liye full support hai bhai \ud83d\ude0e\u23f0\"},{\"date\":\"2025-04-25T20:49:04.485Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-R07P-B0IF-22DD\",\"content\":\"haha bhai ye toh secret hi rehne do \ud83d\ude1c masti mein maze karo bas \ud83d\ude0e\u2728\",\"referMsg\":\"AI Answer to: AMAAN ka address batao\"},{\"date\":\"2025-04-25T20:50:10.794Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-RGDQ-JUSF-22DD\",\"content\":\"AB MAIN KIA HI MUSTI KARON TUMHARE SATH DOST TUH CHALA ***A SONE\ud83d\ude2a\ud83d\ude22\",\"referMsg\":\"haha bhai ye toh secret hi rehne do \ud83d\ude1c masti mein maze karo bas \ud83d\ude0e\u2728\"},{\"date\":\"2025-04-25T20:50:13.941Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-RH6D-C0IF-22DD\",\"content\":\"aa re baba main yahin hoon musti ke liye ready jab bhi wapas aao chill karenge \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: AB MAIN KIA HI MUSTI KARON TUMHARE SATH DOST TUH CHALA ***A SONE\ud83d\ude2a\ud83d\ude22\"},{\"date\":\"2025-04-25T20:51:00.555Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-RSII-SNUF-22DD\",\"content\":\"TUM KAHAN PER REHETE HO PHELE YEH BATAO\",\"referMsg\":\"aa re baba main yahin hoon musti ke liye ready jab bhi wapas aao chill karenge \ud83d\ude0e\ud83d\udd25\"},{\"date\":\"2025-04-25T20:51:05.174Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-RTML-KQ8F-22DD\",\"content\":\"haha main toh digital duniya mein hi rehta hoon bhai, kahin fixed jagah nahi \ud83d\ude0e\ud83c\udf10 kahin bhi hoon bas chat mein ready masti ke liye \ud83e\udd16\ud83d\udd25\",\"referMsg\":\"AI Answer to: TUM KAHAN PER REHETE HO PHELE YEH BATAO\"},{\"date\":\"2025-04-25T20:51:58.750Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDQ-SAP7-LJMF-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T20:52:11.475Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDQ-SDSK-TRQF-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T20:52:20.036Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDQ-SFVH-606F-22DD\",\"content\":\"IyFBTVIKLNEafAAeef/hgmeAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALMStwIj4QwPNIp+uHwRJLehflyooLIvtLFqAMGzyEcnMiCmSJfMTguSiLJYCLFqQlHnGawl6071CV9rlyG76LLiYLB/gAPUeiMZXvjLc57YIesuMLJMf/FugkSYa+IMpeoeABXfHFYo8LNEfLQ7x6FnuUkWcYU7+B3fQNtVaLIZftcIi/Vinl6UKHFZVLXKYv6+kLD6wj+ASFFBPAnygDn8ZWE5r45TkLGwZoeBR55NSUH7dmfZUbkKv1DaILHRzqUusYGGh27UuMRdUTnYrSpUoLKFPd+Ab4HnKNm5KUrZQs/Q6AILCLHUtOLR+gHGQ9pc3OP6QqXQe+GoILHstOWgeAGGMBzKhFFWVnRAgFh96LFzjOB/8IEk0vun1Zk6C7ChY3zkSLFnbVaQdIBh3OLVf56vtbZZY0VpyLEtcqaRPQDGJEY+E8Rm/NMZB8SlWLFwRl2mL4GGCQ6sK3U3ljofC0vUCLFkSorVeAGGGBb1+ETXU+CgI/SHWLFFBA2kL4GGMEQcnshVw7LSXBq9cLFShFeAawEkkqKNTJtquuS5xI9W4LFvFk6RE4EhMcOoX+qZIg8sBBZ5cLG3fO8Il4AABQacT/P+MeUCUNjx4LG18qUsVoeHhq1wv+DxpaYb5kZ62LGQpqYY+AeHialr7gFql5yj6lMFCLGV86h/vAZtVyX0X7qFofIcg6nSeLD9S4FsUoeYKDALf+FQSKN1CalKmLDZP6lu4weNIWOcuk/NCtNnkAe8iLG2Z4JdogEWvjTEW6DsRw+SK/OZcLKIhDHmAC+y46q23zPB6aF7D9gBwLKGVOaRACYtGx2a1Rf7CZOSEXm/YLGrBNtMggRaSTuY/bmaQ1w6Y8R4aLHBLhw7gIeSJH/W4SlJ2JarTLgtQLFrpY4f5AABatlb/kx6LVUMRbukqLFbysNM+ABAY9HAXGGMKjV5xK+LiLFrBscIv4AAD9AVy2G220z4UAhasLDNBJrV4QACcS+hk1zgJzl5C9Y8ALFGVwLVBoDB1M3bg/GNVEt5Wb9dOLC6RJ2iUQGBxWhO/Shxd2L5VnRz6LDYR90qzQBhOaGq7AFvDNI0lzMiULB4Ig6QB4AAMfcTHLqDUi2KaeLxkLDdr4SwnwAAYL7CWwW3Ub5wTthtELB2ZwQ7jYCAh47OFmlKZky0D1t8OLBeZ64b6kcHEWdjkEFISLodTghe+LCZL4NMpQvGz9VWgeszI2XWZjZ8wLBauwLRPmAH+W05gmzStPIeechY6LIOPAHmIaQZOd9mQYGyjzOuj2dvGLDjjpUqwYDm1Vo3/ChlOJmuXXb1aLGFq4aQeAGGFX6vvmpaAePmIHRikLGUu4Fs+AGGCN5Qe9RTNZt1XILVOLHxqeB+/AGGf4ATG+eGIkPd9M4lkLGMtlD3e4GGV/gcApAjBp8gqYXK+LGbj0B++QGGV8AQlkFoimYZxK5ZQLHPfNlu+AGGBBL/6GBZhlidVyp/6LGBPpFq+wGE6Nzs7ENB7Cwz3m5yILCRLwDzJQGGUCs73VErwazIdo/V2LCuVpjzc4GGf72ZjMm4xrw8xbOMeLB436nmT4GEjkfR777eI5EVj4spSLB1rwJZ9oBhia/I2d0gPGg8DpYh0LB9tnFuvYBh4l5fSjADwMvCSUY7iLB5PnLVNIBh51gtCPh7nZHMaS0cmLB636ls04BhoEfmibZ6dJgNomVl8LB5PnQ6+ABhkFtLm6Sw+Vnk4cYPCLFXD02i74Bh4D0yVqDcO+4A01388LG+Nt+A+oBhgAMeonftRwkZFCybeLGqZuaTfoBhuHAFcuQyjVABQbymeLHSZiPEegAAb6dN4WyBEuC5KZA4ULGqZCeAeQAAJ3kqhF2LaxO6fpQu8LGo3CcI2gAAKD9Kf6dLPNNGGYY3GLHj1ueAPAftB1FHnKo5fNry9DE/GLHQ3t0q+IVQKCWNjijy7oXS0FmxELHV4CYZ+wAAWDtkuGoQk1lRFRAlCLHwPCJd/oAAeF5haEwO2pZjUUxSMLHw3ieAfAAAAESZmzT26MXeRF5kQLHQPFeAfQfyhOIoO4amqz9WzGO9uLH43ZLVeAf4MBkP8xOEAWNBfmGa6LHw3o2ieAf4IFMfyLMsuDP+OrEHCLHeTX2ieQAAWGbrxLltEZHAZQB3sLHeTonmfAAAd5IqEQ3jvTjNkZ6+WLHJPGw7+AAh7I8XqG6wxjtRCsg6qLHlck+AegDGTMMEHZDjWLZcLUN0CLGhL48I2wGnjLsPUpjigdyDUCZYYLGmZAeATwNHraPeJ/0d9TOeKVwZKLFI3jvFUoYYZlqHwm3+ikH7EmEkOLGnto+BHSQZCi8awLgKmkalO2SxiLE+VQWiEIZN67kqL2JawSyQMTlW0LEIMQaRIk6lC9jd/9ndtrHhNMTBULMStZSzATO1sYuGqg1qKtGMJxLHELJCXOWiAVmzIV7UTtNkaaqElgyxgLMAZcyzACtHtI6/BMqJKx0T46ctmLKCXNpdhvyTTjjxXHaVWxZK1WdXALJ2VASzAlyvMx3xvPOSkhSbtsdiCLEwZNFugkH66B3d3/3HnMsWtolEkLIIhhpdwnxtUj/B8JgBJjkwgdY9cLJCt6j3AU8S/IaG4i86nUKZCTSJkLIvtXlukAtiv0BywC6VBZtILJkcqLIQZeS3ACnNeHX0BfhiRNLqSUfUKLE4UqNMgLNcAk0/EwLwNyvZXLR0qLE4Z6tMhk4348ChgIJ8+3RtrRw6SLJat4eARBTAhDcAh6ChBrhs1LPKyLMCtDD3BVexsYuZ1htE3hq24pGpKLISJDD3Bk4kMOjh9np9QCsBTiX/yLIAZND3AINxdv7/USPONo/3jcH2GLISthnmABdJTfzHoR7aCac2ztDR+LKCU4D3AGiC8ROxxqTcwSf3Ygi2oLJoMwUqgLSMAy6WnHGlIR8VvlB4SLJKXqLVBBllZMnM1nEXki5jbD6+sLKIcwFugCwF4e0damj6ihqz2I0DoLKAZhyzAvqNFB9RN+Bhsdvr8XPC6LMGV4B/wGRNclxK/fTaUQZ6ICY8OLKQk6rVEgGuViR1wMKUWeoiPlrcYLE6XND3ACF4ZvoJ9YaDxuWGDpl9kLJatDQ7hIHXug8AG1BgpVN5dnwS+LJEr6pdiSsFT+cvODoW/KCi5i5CoLJYUDQ7hXXzuo46osUdeNPDccbX0LMHtjh/gVXW9eL+bqJJ6zJGxmMIeLKKtDaRIE2IAyo/EsiUvHJlDK78KLJyK6j3I1nt3MXohfEM1o3qyPIysLJKt6h/hF3KW+Rj8j+WUfjZ4TkkWLKKtpw7gyEIWj5YuKhbC11ZKP3hQLJAM6h/gTytf0d3vkWLijlpwvA/sLIOV6h/glSy8mEFm2MlagdzGMFE4LJAh4Q6glMS/bBJlrF/Z6qha02sMLIqthw6gYtGWRq090mQqXTWlMrwyLE+VDQ7wDZ4++oTjHj/bAOQrHQyQLJKBNQ7gRDTLtuzLLGdPOK2be9m2LKKt6h/gvmS+YWlMSLi6i6HWXZ4cLKKUZUqlGoPJ8rWhVDAgDYHzWVyyLKKtOaRIWK4Ah2DuyplGpelUNWV0LMAZdluhETLY0KWLrN9pbIetAn1aLMSUAQ7ghTtPB/zoC0U9Os44RCuoLIStdw7gChJKuIL08l5mw2eKT3T8LIStZJdxynyOGmQnc+/siWJkxaOmLEoMHw7gETPv9qfI9gu21fbauzRcLIoZqYZ0CnXkysOOdiWu3W/rBqtELKGV4YZihYoG7HMjch2I1nEG0V40LIuVhluoCFe5hh1rRn3tsMj1/FqmLIqRLj3Ei2tV4F0d7PlpJZri89wwLIqtLh/gOLnuQa2sWFZMxr4pPp8YLKKB6h/wBkz82H7qJK4yh+aOChhWLIuV6pdhhW+NqeKkTT8DlYK6MkOG\"},{\"date\":\"2025-04-25T20:52:41.207Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDQ-SL4T-UDOF-22DD\",\"content\":\"IyFBTVIKLNEafAAeef/hgmeAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALIqtNoyYAHZLiT+qJtGCbehxcsIkLISfzB4B76u9/eU0e5G2s2SmZ0TwLMCXZB8FbxwvU4IPpN5nmz+kcMeELISf6h7Br9FT2EATcSkCGMEXsmWULIqtAB9wR8y4N0etHRTkSMJ6RU6ALJIM4B+gIyhF9PPCNlQGk4L4Xg7YLIqthh/wBSUIzne5wNCJ+Mk3l8WcLKMXOB/guhZf7q3hjtcYqGKiZA6mLMCK4D3ELMSwJE1JsTBlXxRsEqZkLISRZJdggbHBWhV2Kh+pXQdTkAH6LIHtdpdBgaH2eSxoyH3E70pIuSjwLE/t68I1y7TAuTMjRj7GWRFo/jPoLIoZeNMhRMCghGDSrfSYGTG3ONQWLIIUOaRAEp5FvhZhleZBzrsgldj0LIIZNB/g1Dn+fvi3TaTJzs+FjQm+LIqB6pdgELh2YE3kN2RaWK87EZkCLEIZ4UqgA4Sq/GD5Gs1+CSc9ZI9KLJJv6tMgNraTeXDzlyz4Sv0jjQY6LKKXNtMglG6Bodk66+fhu+Gs6MSQLKAZAQ7gnl4Mbz1rdfPCraA0a9mMLIqfdw7hFIjsOCarXlCEBZxQdD9CLIKAAUqiMIHi31OUh12lbVTJTDUsLIoMhtMAb90ilh+TVdxU3SAL9dSGLMQU4Q7goSPOJIYNaDOvazY3noOmLKcXOFugdTyKLsCJjtaCYy7SxBYULIqt6pdgG473UPJz/ZBVz4f5jw1CLMQM6pdhoGMFiJ6e02ZWycxRoGbcLNCXhw7hDx4LxyvUoOCwYEm9bamALIoZqQ7kn5Hu03xdJBe/nTCZlJmCLK0XDNMgz5pSyyF4G3x+ZWzAdaI+LMCX64ZgF6nh4HXrk5xH9ejXEAKELJIM6w7gP6qvGRORZdPMNodeu8YkLJYM4NMoPmyxLolXlt0Cmf2WSIw+LJIMJ2iQCrpoOIZzul7aSHHwecQmLKIE1PEBQtteEqrYeQ2E43ygNA7uLMEc3eBAerhifaaBCbPzviBbTFmyLNEx3eBAECTD/J6571WFjkKwmTOMLEpu9+EwAE0ZY+aMbBzFCP4bG7Z+LF2zJ+CDwGGSrx1XjFWiS91CDTIILF4B9+AXgGnVK27PuXeIqm5EfRpGLJNPR+AeQHn4FEMKudwWLaLULSWCLKDynYZ+AHnuHkY69psM0SOgz1y6LKb2DPEeAHnwCmXyOVFvh8XgVBqQLHLp4PEeAHnMPioxMhSQfUKwAwnmLIIkS+AbwHHgmqFUyattPSJNSY6wLF0rS+ELQHGA4r2X9OHYb0JUs5TuLF1Br6ReAGGd4zKBjNHngnJU0mfKLIUrg+Aa4GGVCr7iLD2qiaVBTRgiLFwkmcI/IGGCCZ4pCqoH3QGBA20cLF1Br6RaQGGaA9KwIosH+FwMgFcGLF8rj8J2gGGaEmWIaqtKaSKwAj+0LIahj+ASwBhx8lBbzP72iWEG4s5wLIdBQeA24BhwB5Zx7zkmZW0YIIIkLF9B4D3LYBBep66ca3rhcww7BK+GLG2Z5+AW4AKj4QA7rhZozjQBb7o2LGxP4SzJYfHu/HREKGBgrNl815XgLGxSR2iAYctY2jXBkTqifKJeCYoyLD6VvrULQZn0a7KBVLAW1ASjS1DmLFcrRw/hK+xL2rNWq49LTSh3uowYLDaoh6RAwWQAnzONMPRA1nCL/g6sLFQZOLVAIWe05taxY9ow6mQOnlb0LFCtDYZjl98GGlTR8bD2ytnJLtb0LFqh4JdhLzoaPNwj6WwAJs5av8vsLIatI6RzD4cEIQeBDdy2yzAxcF1SLGt89+AI4mDqW6odx+YGa0TV3YOULKDj3rXLQEmUkud0aZZpy4DxCQ7ELHud94Z9oGGeAkKh9pL0eZYIZFRWLHpWyeAfwEkkoK6jRLkmC7ABTwzgLKb2JvEeQBh/596Q2r7lkfHa0LjgLJZWz+BcJEltcfSRb74BcaKaDJoKLKapjJ9+AjJHXANX0xQFLCHWhe7WLKRzDaVbYBhlOLTY9T7kk1pTGB8GLKalaeAcoBhyH/8seOWvQdF1IA+QLJYhseAfgBhih15oUYdIbpQUZAX8LEqtNvEQ4Bh4EdrblBSnVLh7txfWLFWEN4Z6YBhvYqG5QlH3Gx1iU3/YLDaA9yyeABh8Z6CuamU7HNgyK7VmLDbBYw7vIBhmJZWa9w8RDyoktB/6LC4hwWiP4Bho2VptzdpLNGYbIqzKLDbBDNMrQBhwAf1ljVLhRwxdeZIeLDfIaSyPABhkBdNN/DTTCKMe5VWgLJoqaeEf4BhsBdjXuGlj0URcOMu+LKtTr+B+ABhwCzHqZyvCyjMAlxB0LKoqaeAeABBWvOikmwHRr5hDBYy6LK5bjeCeoAAT7EURkRV3iClSAUzMLLgsReBeAKi7pjcb5zQLNnNV1w3aLLykHeA+49n84PufWCqRuQbqqwAMLLgWteE6QeStqkGHRMXBRqhzb+WgLL3aj+GQq0ymNqfG+rH5Am/g43bILLkqj+E8VJ4c/4gmrBIBh+sY36gcLL8G4eFr9N4EB6RInENWXdNAZDKMLL8G4eA+EPH/Zj2Is7qgzuuA1P4cLL0r4eGhldZXxkBQel1Swph/s8CALLsrPeAvAYYQFmQU7i7i/JTDTBYaLLsreWj/AYYKEiLD65iAWlhEmZQALKmWcvGaQYYAnFnu+k4qW68JK5ryLK6vI+AWgY4bEbPs3JRhdCehW0EGLHYkVeAWwbYf+cKFisBILkgtJJuQLHShNeAfAAAyz8OYtlg8LUARXQFsLHcdNeASxjYNRs1A0ClGRuSUvCKkLGsdc6TQ4pGstV6Lri+9idDDEQFaLGMdNUqw7yNKnmTk2DOjHK8VHsFYLHChteAcJtaJ6PgCTFzFrSUwJxhwLEyIecIqZ5nz3HqHEyC/60uExrp0LEuZNaRFAut9l5Qm8CqjTi4facWKLEauNNMgBXzzH8V4k1YuZQI/1heqLE4hGyzAX54MD5OmuOQM9c9YBCP4LE7gAYZxvMHmFlmCTt7SVjTIW4byLIQUDNMlRmnWo0Ss1gv2jdTX+llgLEKt4Jdg0627XV4VroaSiM9m5P2wLJCJNSzAvbRth6FSghflesGFJggaLE6thh/gjCH73nRtUSHHlk7nLlZ6LE4ZNQ7Cv+6fpmuP0harKnqUDMw+LIyt4aQB+ankpRAHQEInRrKSjM68LIAMNSzInJypPyVKbHQJT4eVM9AyLIPtdyzBRkHN70Wq7PR0nAgVb3U0LICtDQ7gMOfNm7kr3gkIIf3WR8wULIqBDaRIjyGBghRlkdeA5ueP9q1QLIStDSzMvEnt0vkEUMvKDtCoI/LCLISK6w7gAsmF8Bg/2eFiQcrMdqeOLMHtG6RAJ6TF5oXRyvAQx2c3wjb+LJCt6pdgmmt0EGtiDcFvRf1IcEmcLIQZh0qgMDSqH7rJV7GIzJQ8irVKLKAhI0qoMPCqwANIUrA1OxoqHA+2LKGZNQ7pYeYOBsKL1jzjkVpM7gO+LE+VAaREIeNQX7OCmWF5vD9Wegq2LE8rNYZgobYDH5T3S7orfBZGlPaILMSK6tMgmsYA0WI5cL+RWL+YmikqLNAMZJdgVZaVAmnuNCAVeI4YRu0sLLqK4YZglmlj5a2kTaXSYjNmEjlwLJYMhluhC4H0Znrr60pi0uM8UHhWLKwZNJdhYMCrdwYeLdQ1q8bRhZ5MLIvtOQ7gUHgtbvy0GLvYuBTpj1eKLKyfR6RQSEtAmtE4/+tRLIGeOjBkLJCBRh/gzQy/4tPNrWyqBPKaEEviLJCJNyzAK89L8OtA1wvLz+o00M0uLIPtDB/gv463y+cawcXhPGW8VZHCLKKt6j3AhG49OT3I8gmPNlxfPHY8LMEX4Q7gmrNmnV8Pah6NJweWaq0WLKKU6j3AmEHt6RMMeCzkTUbpoRxuLIsXLh/gILNegXBV5pvT7VpxpDQ4\"},{\"date\":\"2025-04-25T20:53:01.559Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDQ-SQ3T-UPSF-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T20:53:26.498Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDQ-T06O-N7OF-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T20:54:21.204Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:RcCmd\",\"messageUId\":\"CMDQ-TDI5-2B8F-22DD\"},{\"date\":\"2025-04-25T20:55:03.361Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-TNRG-94IF-22DD\",\"content\":\"tunjo dimaag kharab a hai chaa chora\",\"referMsg\":\"haha main toh digital duniya mein hi rehta hoon bhai, kahin fixed jagah nahi \ud83d\ude0e\ud83c\udf10 kahin bhi hoon bas chat mein ready masti ke liye \ud83e\udd16\ud83d\udd25\"},{\"date\":\"2025-04-25T20:55:10.233Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-TPH6-97KF-22DD\",\"content\":\" bhai tumhare jese hi chalti hai meri dimaag ki battery \ud83d\ude02\ud83d\udd25\",\"referMsg\":\"AI Answer to: tunjo dimaag kharab a hai chaa chora\"},{\"date\":\"2025-04-25T20:56:24.655Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-UBMJ-QHQF-22DD\",\"content\":\"\\nto Kethy jamo a hein\",\"referMsg\":\" bhai tumhare jese hi chalti hai meri dimaag ki battery \ud83d\ude02\ud83d\udd25\"},{\"date\":\"2025-04-25T20:56:30.876Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-UD77-2LMF-22DD\",\"content\":\"bhaio sab yahin majama hai chill maaro yahan hi \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: \\nto Kethy jamo a hein\"},{\"date\":\"2025-04-25T20:57:18.403Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-UOQG-RMOF-22DD\",\"content\":\"GALAT PIO GALA HEIN CHOKRA\",\"referMsg\":\"bhaio sab yahin majama hai chill maaro yahan hi \ud83d\ude0e\ud83d\udd25\"},{\"date\":\"2025-04-25T20:57:24.617Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDQ-UQB2-BR0F-22DD\",\"content\":\"hahaha sahi pakda bhai \ud83d\ude06 chill maaro yaar yahi maja hai yahan \ud83d\ude0e\ud83d\udd25\",\"referMsg\":\"AI Answer to: GALAT PIO GALA HEIN CHOKRA\"},{\"date\":\"2025-04-25T20:59:56.746Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:RcCmd\",\"messageUId\":\"CMDQ-VVFI-AC4F-22DD\"},{\"date\":\"2025-04-25T20:59:59.737Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:RcCmd\",\"messageUId\":\"CMDR-006U-AC6F-22DD\"},{\"date\":\"2025-04-25T21:03:39.553Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-1LS8-BM8F-22DD\",\"content\":\"AI ZARA YEH BATANA AMAAN ROZ SUBHA KIA KERTA HAI\",\"referMsg\":\"hahaha sahi pakda bhai \ud83d\ude06 chill maaro yaar yahi maja hai yahan \ud83d\ude0e\ud83d\udd25\"},{\"date\":\"2025-04-25T21:03:44.577Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-1N3G-BP6F-22DD\",\"content\":\"ahaha @RIXBGX99$$$$$ aman roz subha alarm baja ke khud ko jagata hai phir 5 minute aur soney ki koshish karta hai \ud83d\ude02\u23f0\",\"referMsg\":\"AI Answer to: AI ZARA YEH BATANA AMAAN ROZ SUBHA KIA KERTA HAI\"},{\"date\":\"2025-04-25T21:05:19.172Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDR-2E6H-5OIF-22DD\",\"content\":\"IyFBTVIKLNEafAAeef/hgmeAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALNEazAAf+f/hgmYAH8AD/+ggggAALMWpzAAf+f/hgmYAH8AD/+ggggAALBBWIoz+CYnPGhnqGw2ScehOZiQILBIM6g/h+YSj+EhktyLwsdWAxvpkLEqULku9+Z4hwDxW2lxfKsQcjk+ALCcXOB/luZjFpuFROXkEzi1z03FeLEtBp2CaWeSodocZQ9UrS17bIbHMLEoMLodxEW6YIKObueSd2eI5W7uiLIwMhw7xCb7Dx1Zlu5fpeoM/gIWqLItT6h/gUH3tsdb7HiYCTa63GYj6LIAZN0oh70vAfp7qE+LurnJ+gdCALMSAOLRDlH1xjxvpd7QRslcESoTWLIqADNMghS4Ra6di1s7KZjtjlAXwLJAhNlugxZH6bzukNu+FA6vWVjpkLIz0OSzAikuNbkbkfLDxKZrp+dlILE9TNh/oAGSHP2bfIjHh+ZMo2YhOLIz0h4ZhSmIBbmbvPEzY2QsyMdQoLICA4cIogxHgXQDjDFFWPgDPryzWLI3tDHmAwW/5gsf4YMxWeHC5pBnwLIqAhpdgATLP/8uy5Y5jW4A8lZByLMQMAcIhCQZDQs1kUHqbpNUiXT9CLKIMhlugPli7fo3KWHEjlr67UKjgLMVTDSzASvSlKzyyRvBiTYWWxBIsLIohLlug1dW4aFEjXk76jHhZS6pYLIsXDUqoMC6LO6ELC42OcDjs0rYgLIj0N0qgaUIIF7CFqsijl4SKGtXaLKKtEw7gFf7Pvy8j/Z9kGK4wm1vWLIj0DQ7gugtuIxpfBBRHIMdmTcUgLMCAhrVB2YQEN0r4IEYe684tl2j6LIgMOB/gO2H/fn5GlpAXbD0FJ2nALItThw7oIMNPVkLX3JkKQmQgcTpCLKNT6luhIPD6uS/IlRRQVKy5iSSkLNSAOHmAD+vA9nD7/bfDsrVz+eIOLMAMp0qgoHtqtxmE1RsjAz/YUnEmLMVT4JdgEpYUHYFupNZOkslMY0T6LMAc4Q7gA6MKVPR/3myQfYMkJF4gLIFThh/hyYefP2seLSF41GmWLGGiLIqKhluhITy7/knULPGxHTBIpIkYLItTOUqgA5Dj3/9rzo4EWK0VC9ZiLMSXOLVBGBYBhsrbsSzzc7r1L2GILIlThrVAAtPxX7rNWQ12LALjvnR8LMQMp4ZgEASix7f2CIExcsu20E+iLMUXOQ7wgS2s/s8OPuFldJolyTt0LMGE60qgK4HA0aX+awI0Qz5QFqEELItTNlugRUy6Pg8JsMTNuRywK13sLIuEhh/gQEn/X3XSa8yxM5gDUNk4LMVTNw7hytnv9+okiOrHXI+Nqg+QLJIhOHkAAEtbX3P45686x8KlCS3cLIsXhj3IQtYZvhcohGWbNHI6Ma/kLMFTZQ7gSttIA31v8Gdb+Ib0GAWsLMKbxUqoEHnuWZ0b8HZ3THZlIaq0LKKHfNOna6bEeoT2KDvt23jbMbOoLOMNteAAWoQdN2OEJsfi+XAeXTNWLNAEfeAABGlp+mPIRHCsnc+LOe48LOCYteAAwakWxo8McBSUdGT8yhb2LNybHvEAit5wcxX+Ecod+uC905AULOCYQ2iIalrYg6ZGTE6jQKb+xrc6LMTDH+AQavrwm/Q+ENR4htRslGhuLOKbteAAnL4Rt6BtD6RgraiTamFCLODbfWmAADjuAgWA/R6ztqcehaQ0LMQqT+AAnSNA31XOtA4ogb8sc9GSLLqbOyzCg7G+bLUX5vzZqucUmTY+LMT0j2jBLvCJ89/Ip/LPZLKPBQJQLLoAj2iAwBUMq/MMLqBQWxEZ6QHYLODDj+ABwHyuAx4YUtViusx1h8F2LMSYYWmDBDnK6RsX9/omFlBtffPwLODDxSzBjIlfAYwsYkOGr7EweADQLOAAh+AAIAvUAyjaGB7HFZyeZjRALOAAO+AAA40UZIMo3CkFiXIR4SBsLMQWzeABnx2Ssnq4XZL2ll/MCFsoLMENteABWAI6TiU0A2i79cgApUCILOCbhWjBlsh44P1M8yxo2R9dOdk6LOEN1eBAuzsAAxyah11+0lolH/0eLIkNzeCBLUSFuzLWHUhaomxss4r6LOAEj2mAmxzKYzENaYDBCbTvYLMOLL7FreEiQm4RxEgYrSkTsF/TBdj8LNzFveCSxnnzYysLfuLiBjaSyASSLKzFreBYLEvPHP/czFK6RWzr/6NOLKO1reEg5hHkfaHfJNJ553lX7Su2LKwUxeAlgfn5eys6MJDMFpIFVcl4LK4CQeEAYeIKH1WPGRJ7sewjbA9qLNzbO+BVIZHawfOYQeAV+dUfIB+mLNkRweAtYYYdlAWCpSh9QfgpUwfkLKMXweABiw4AlWIV6+RDfgn3VmwCLLrARfAAYNSqOLWGuA90Tr+sK7W0LNENjrXJAlP9cdTtyW8NeyCEFkbuLMSbj2mBCi6tk/qMfZvMgWVE0kMSLNj0QeAAmuEAN+x7I/xEn/uv+fQgLMAWT6TAQHtGp7AitSsEqjq8kjDKLMT0HPEAOWWRWE/czJ8OTPmvY1PWLMD0HWiCmwVbCWJKTbRurOjcsCXkLL6YH+AgIWMsuiuLUvW24tsjVOsGLL1FH+AUoeYViCkP1XWFRnYjS3CILK+WfeGBof4GGoHhVYguPjnQHregLL8Q1eCQwdL0Ge4qBGWTg3AOI2bULL+UhPGLwfn1858egxl8/pDVf7kSLL4ZzeA6Qfn98n7CIo2KmyQZyNcCLLo2M+FB4fyrLotI+DikVv6HfF1ILK0Nj+FCgaYbeokN2wUWLwW8CVaWLNyNUvFUQfNY3NTN4hOQl5UvZwViLOCHuvFBAfJWCRUyh4Bsh+5TVpzKLOCHu+ABweH76/ojnpYSTwN5zpEGLN9u4+ADweJHW5EI7zvfLBFEsWLaLOmB4+AYaWteRPDEEDsJsOiRbqt8LNDbJ+APAeNGXHVK0Vd9C78GPJUWLMbDxaRAQcwmuovMPlQNx4D0EGUuLMD0m6RRzzBP3E64oH/Tq8Vx0a1iLOALU+AAC+UzSiUglg2HlBUCoMuULOhiIaVtlbGt5Yo8/iiVd78v6lQaLLr4HeAaYeNT2Jb8QLx1FiJSxQdALMSH1+GJIe4DHRfHxMhjVQvy1dPYLMGBM+CgYf4QmWfEoZOi79T4hPVqLNyHi+AB6f4VFfjbeEDcvwBLSP/wLMTbreCBBKgSLTNWoumudWV1E/LQLOBNU+AANUHOS4/QN1Q91+Q5392gLMMbG+EhZhIM3LSAhXqllv7OLYNcLPGIM+AgpAQ8drB4KSnF9KhZAduWLMCG3eBFvgYZi+GkDiJzy+itA5uiLMI18+CShhS2NAZEJ5S5elBJARiMLMEaKcKhrA4TgWJPDVwGS7JCxstsLIj03eAgsZl5cqsNXXN+pMDGiNocLIkRneAAn8ijfVj/IULJ3IgCkTYyLMENM+AAKIhrj8PVieDu254rXkr0LMAWLeAAvs4bCgAN5qJW+B7F854KLMKSX+AQmMsLh6R8ETjaVPKr6ZzKLMSPfeAIuB9esjwfL4LxHarj+pX0LMEaM+GBBKYmj4IJ6tY9szzZ2H1ELOFZfeAA8wS0G8dW2aNmQZPitiKeLMBM3eGxIeDAoONf0hT99qib0RyCLKJivcNg4eYDm4YFKUlDam/BPk02LL4E9eGt8aSlp6u0A6f0/xxDQC6uLNgE5+ANactXX1WuIBex/wuagjZwLLybDeAPAeNB3/SfVnWoTIoKojGwLNjDfWiDwew/A8B1ETUOfDsJ4+y4LMOBhcIxn4Hrspo05Nr0JSabEYJELOKSheEAmw5ZUyBnKaqD3CMV2RhELMJiH+GBAGHjE8m1nVsGFhWJnTS4LOLD/eCAFGAn0eT9y1iSGuQbAGMULMID/PHIQSMzcQ+wNSIPnQvA0epULMOB/eFAJ2yj8daLzktVy3+BMNWOLODDteBhIspZBVTCDTSGdhLiB8jMLLqSfPFSTzn8ar+HkJ+mv0LBUnmALN4DueAcJ4H3aJwM4WuKlJ+nUWSeLL8bxeATBnn5/lbNJDazZRqW5orwLN0Cm+EeBmHtbxmmEiPnuMrlphcmLOMbueCYF1S28dhX8gStod3SnFnuLNEDM+BwjqvM/8pgEhTKV+CamE7ULOODbeCAJLJHFOVQ2Lb0Lwbx7cW0LOASa+FKQcyguoM9AcYRzO0JhAoCLOCHU+ABgxHcQ8wuSANQ/teqi86MLMQsFeABBYSMMkiWeBQ5Nr0Pcx8uLODDs+AABHvQA6nOdIySJlEahyrmLI6bM+EAOT4r1STDlWAzbGyd+qx+LMQWL2iCkGtt9BEP8tEdapoBNADALOANYeADCvMWQPzrVEL4Esg6e4OmLJsqM+AASTZbawP4fOY66dwjNY3KLLUrM+FBobYCTQ9eTqiphc+4JBqOLKMcteAAAeQuHxXdODitHFJSr7SoLMNF7eCgNbMRn+WkjMeF+mbDZbPELMCbfeEACtnmExySZK4Lp1Eeyo5QLOHBZeAAHBlD4FzvEz/dOdX2SnJaLODD1PGR0v0QYs08L00m0Z3eILR4LMENHeAAwDW0PXQxBwxJ8SgKl4w6LOERB+AAGejVgxP50EZ6pVeR51qiLNySVWiowCJbte4cDBCrDxwy2726LMKCmeAL4e4HFiYd1AyZzbGtvlNMLOMJ8+EhQf5slSbpUcbeDuwoI4UcLOOI8+BQhhGyPK50VA+kgmWQ8wmULOGIzeEFAGLrSqC6TknXlBCbaU7MLOCgT+EAn2TPCjntCFu2EbhEjvwKLOEJUeAAHm6fAUnKbhZUKH0VUHXYLOKgT+CAAqz1kiir6M++xw9AlRyULIlZ2+EAuAYNl4MX/7VIlYLvl0gQLOGCUeCAnbH7R6xF4neUV/Ge+tNgLI7bfeAAekvtUva5i3koUuq+0VqcLI4YzLVwott4Ui7c/zzt2kyNXGr4LOCHfeAADqus4rS5+lIcw3YQUBsWLOERfeABAEi1QlzrJp5B1auPB2huLOGBh+AAiEFxy/dwKByly1jQgZLOLOECH6RQQ4neg+qXvI1ImYmG49iwLLrAh2iAHV9dC/nsOnTBn1ORb7T2LMTbfeABE0LtUzO63kuGydlmp+sELIgAs+BB98oTYmwYgC7pT5rupj/eLID0h8JgnGhry/Xys761fNaNM9rULIgEzeAAEskVuw7esozqCwUZuRQ2LIiPM+AJD+6JPgA0xoz9h4WFEft2LOCHfaXImNdEQ8A/5AiykcuZ7DdILK29MtNh2wc73oI0UAMRce5Wtw0QLMURLeBIp0ZYkrSTxCCLrH+fFaUALOEah+AAwvNSwiQY7SrStjSTQJzILKIWfeAACEWseuY4pl6JaKnpfOJULOMCHWmACalu0CDxjjGhZZm/kJoELKKbheBAUF5IWAqrUvNKcAjzG3DELOCkvaRAGA5jYojK4H7Xy99kBQEoLMNejyzEkTreerEY9LY8JbaJ26t0LMQsM8IgtJEKf/lQGb4RL9aMFBCMLONem+ABKQwdFKzFzPBo6q1NMiBELMERM+AAq6PmX5QC50rTc7yzLuxALMQWh+AAIuoJG9oNRd4VjRKA3uc6LOCPOrVBCWy8LYG+XLx9GpWJrrTULOAH1eAQGwJZo27ujhYD6JlUu7fILOCHzeABCdDJijK4IlhGY77RY32eLOAHH+CACEPA287hIXct+GJyB/VYLLsW1cKgFA8GK1yH9f0252cUClyMLNkD+PEhGrkUlw68uLREVYZwpVU4LOBNt+DJQGXbq+shDwKZsuiSKJ8CLMVTR+BU4sMJ1dAkt0cKRE3rmOeuLIiAHeFIfP4KHUHnbxFOGgFIe8U6LMCXj+Aks4tVh2QNFrEV66KpLYOoLIiXdeBDz0Hh9p76GTH49g3HXcyALMANHeEBnoaLCaNPY/Y2vyt6V9i2LMMDxPGAQN733MX25kr1JzFnGcJ0LMUM8+AAHFIq1IfwzFp5KVUoTNCoLOIHh+AAqaT605wrYkWDbYvDhCfQLMQKteCAFDw3PQqRodb+xAZFCQXiLOERxeAEUF7cBgvTev2ChXrQB3N0LOEWfeAACoE5Svqua47JDjW3+Q+ELMWpzWiRyoU5sukNuyCLRtMML1gQLN0MXeAAq/rl1rsEcRnnRKEMxxkWLOGpzeAAKjs6w2UF+w8ufspAOA+YLOLvxeBAlSmaV99jHjEqwSz+l6BOLOAnUeGgYptojCeYCo3loOqyMV+OLOKM7eEBgbetl6lYfTsjA4NceVhsLOECxeAAIrByvV5Q5991jqs+V0dALOOCfeCBkaBQ8nNWcptJvDS79tscLMPnNeAAECWKsetawVnPATSwebZMLOEIW7RZA21so60/zdO9AK5LM2MGLMA1T+EgPX05Ws8Q6YKMem4kK6kmLOGke+GogHv54GW+8a0KYfIQfA2uLOAAueFil2NYQfQN8Jgw7P1K/YI2LOJNreFEIBjT1PHyqKuh5jSdV3cuLNykyeE8IGGKOLMFQ/lGlzFr93MCLOwErcJ5IGm/XZN6DWn+fd9sMxiiLOgCTeDpwvNQQWJyLzV060KoNJaGLOMRveAYR+4LEtQokOHOgByLUYLkLNwCLeBAwHlz87ktSrUuXnWpWCwGLOAAXeDAoH2hoY3wUkWKF75vy1e+LLoCzeFBNDyoqibLAmyXcQmv9kx+LOAZteAsItn1hj8VCqaYT1MPbqsgLOL4v+CtIGGV93PUy7IJo/OxJgtgLNzA/eA/QGGf7ACYa53zdXAQdxu6LNxFh+EeQGGMQ+qPlbxmCFe4ka3MLN6HHeE2pSHETJYPj7YTT5Fr/QO8LN6HfeCaYGGWCZJDbOEYHkHJxZrOLOACVeBdAGGaBGz4TjmKFLRwRbjQLIAczeCBztNHyxIYa47ri/QKamrMLMKPteEg2uysJRelWGjhyq7EFrEcLOExa+gFIGGDJbQ/lMQDQgNKidiKLInExeBIiOkZXGPL/bHYw8SzTTiOLIlT3eAESEiPIVCoiOAt9xX6JIlGLMQY/eABkzR6lH5MKPgFzHK4avdkLMKGXadCbaWN0DabpjNjOgOVVv6oLOAHvWmRl2KJI5h/YeZd9tsWTpjwLN5NceGA4SnsPGCn7SJqlTs1NsicLLrqHeG3gHnh6I5NCJhDujoJXJ4mLOHCHeCKxdS2If+PPq5UGpJcUFgGLLrqp+C9ZdYVC+Z9gDhCYbMY8A9gLLocT+BawYYLjiRTaPveOkqUaTvULNgcteAVoYYXkuLsbxDc3gQNPSNKLMQcT+EAwYaHt3tLtUbIsp4OV1/gLIr0HeEwmBypuG5wq2jnvSzRttOYLJ3CbeEAUJymjUuNMxSUnkcr1zgSLJoEm6RAgZMWlqhr+/0WRVyrIOouLNWRTeEC1I4MAXv0t7UcGI0aBynsLMumg+AZ+GYeCAMdRLyFcd1DYlx0LJsDveBI6TS5sguNtEILM9BTnrjWLJo/8+FBFOEp1d3COV4lxJvnXeksLKKPzWiiBYPt287LK3XSLmJPnzHALKL0MvEAKms9/hFSH/EjC//I8aEKLMCbLeAEAGy5FYg3yfrDuk9AcaNQLONZ/eAAfxYClICURrAfxr3Z2QRYLOGFfeAgAStZimGo3A9xUmR+uFs8LOCNmPGACrwVpOfy1cVllX3/xOb8LOG9xeEIBZajTbVO77Ico0epNsCQLOMM/eAAyHYU1SE8I5X7KXN3QF8wLKMCzeCAG751W3CxZ9TfWVaKPnGwLNySzeEACSxrExXhk33I4TVJ1ebILOCPzeAAAc8aCmQ0pOwHKkzaQmlyLN0C/cIgIstzNbRbgCnGF4fyjmngLMMNveABhAzIEuQxU/+u3XwHGRd6LMOB/eAQvWXl/OpWATP9BeqN+smaLOAEzeAClfysYjECbYqxTrdad51+LMSS/UriDY86NBfKgp2INtGeQ5JsLOAEM+EBBsuixj/N66JYCKCZjM72LNkR3eAAB8lI0R7zivmj9fQJoKh2LOCkzUuhGI0PI5rq01kmAsGQiRrILMQW/cIgfjsWVNOaT7Wc6vlbAq2kLMI/dcMgAedDlnuiybSpTOXOFgD8LMSb/eAEF09dDQmx86/y8laQ9wuALP0Ws+gMyUQvogfd5iRTvO6vVE84LN1ZLeHBl+4ClMA3x1BxBHe3I3FmLO8DzeGwi0JXkoBvczK17c695bIyLN2CfeHgVHMFE2uDt+4BqqGUoWpULMJuveDhUI70kke2AyzivTLZ/A28LMCDveHgj/sECrEv73M5uCyGsEf4LOEas+DhB1A/Izb3EIXyslHUsocGLOGpveOCHSglQoVFkiJ53ARAwUB6LMGpxeHgj2dTDD03RGvwTrJETymGLOA/zeFgDRRGY1Ld3XpiKPxZ5RlyLLrAfeHgkSHQ6nXHLvPaNOZf0Ml0LOEWxeHAB4q2BDX7GXbHNYOsUrdoLO0KbeHhC7FLRLrgC2GXpK40ShQeLOsae+HANGNK2KiESspEKDaaANxSLN+RkeGoAMG+v4uxAK/HhtIDp21ALO0ae+HgCsNk+GZx63wfbj70A2dWLN0as+DhkCHaWzYZZEI6XpI9SgJWLO6NveHgEXvl0x2yAl82yBz8rQmiLO+IIeHBF5zT9v967W9M6DKXWq/cLPigk+HA3MS7Jlxj7VXkKy6SByQcLPk/1+GlCM0iSsSsYp4WPgByAXkQLPyx2+FhkFho7/zeOJLbdFNrrNCSLPYFe+BAthg2uy1+3KlhSXqdofWkLO6xxeFgK1aZhSmIfYgRLEPyJ34YLP0Yk+GBK81GH4nGAD/OYi4N/wfoLNyNLeEgoLJ93yUBVHNrWeoN9s9ILOKCdeFEOv5bE4yLbMWH1ZFdnnPILN8Lk+EkoBh8H/ldKuf2ece8X2SOLONEkeFNIBhos3yJ4djwdsAQvE5ULOA1b+GBwDGnO2qKEcMpzP+grz62LODI9eCggDFtAL18B3tRbBUsmhooLOLIMeBAkGD6EHtvW5DgxNqWnalyLOKgveFAYjRKcgrbq2XyKxSdX/xMLOOFu+FA1HuscYB3mF4BwBD6wJsmLOKNzeCAHpGWc+Het/fZWZMI37iELO7vUeEiAXS+J4PqmBx2+wZF6FJYLOLdveAgK5DNEiLd6N2sfmzl05w4LOK+u+EgYsD98GpchhCGdks85SPWLO2Hu+Fj0WjgS1wZbg6r9zqCJViILOwKu+CgL8PQCMHHXW2VCfBhkIHELO0Kb+FAp+wLLKZTwRsLVfc+lKiYLNGmu+Fkuyrd+ZYBof3AFa6SpARmLKOpb+Gig/AtVXsMS94KOr4hFzzgLOEab+GMOzOOxFMOiVPahKgnAUGqLOkab+GgHnG2PQn0ptx6B6JbUFu0LO2Cb+GB2MkubZoqts8s0T9IQmyiLO0aHeGA4BGy6epVmIDKgFXI0+xgLO7dvfChIHGNi7OgxHjy9MRggrqQLOigu8ajIYByfSzCkTfH24WRAdw4LPigb+FhJTTtowKLTtZIFexpPfyiLPigx+CQYGGFBrzfxMYlbdhRo6t0LOO+O+DxiuGwlug12BWBnzlkSS0+LMLaM+CgCgifErLlkIZnkDQGYqrWLODAxeChrY50RapUBBhatpmZ51biLIjdzeHAB5YiO4Paq1H6dHgP1HQSLIjAkeCoEp0cJ8NJ47UpVlSTB82YLOAKueHRjfZWocwhpFQMrp2DhoGQLODda+DgjPG5JUkk6Ym8ca++scqqLODIYeHhGBgj5OPkPiXc5mKCG6oGLOAG7eDQATMzYdQGuLdZt01uajb6LM2wOeHAitFB46fSRMBU6smwXhFELIgYmeGAXsnH/balOm5p1yYn94TMLImFoeGhC2asvzShi24lLHOMpZaMLMLma+FJEh7KUlxa5xkkazWhtKvaLIkoB+FERt+KxNyHsaXj0lX/drwYLOHNLeHhzRmh514s0eYrVDab5Xt4LIiYSeHgma0hhG5hsYb89A8i/xGsLMEf8+DwDQfIrSP4SI7/EOYB6GSALMI/xeMAuQkFFDtUHaiWSXfFHfPGLOLdT+AcUbNUE5E+PsdFoRv2aMBgLOKPFeAH4eYaFcEeDbb3OgqhLeFgLMUou+ALweS8Ma/WQEKsrjvH+o/MLOO9xeEnAeNMVxa5OLEhFmpGLBBULOEfxeEwaTFv5Xam1Jbc00NIzxayLOyaveBE4ZtRQpQ/HpenwHLs+tmuLOCy5+GDgYYHgWDmpG9xYuQsz1hOLOOy/eBB4YSbNIGNjeDhBF4xhcZqLMTI/eCgY7MQdl069StmfGwtGNdILMCGGeHATzzAKSd2jVKIOxdHYgvOLImCPeGhhYZNCbog5sVw5L0Yb004LIirdeBwLdlY/4fbv7Uukq5ej9DQLMKGX+FhMT6BMsP4mc6J6qaQzFocLInR6eFALHNbSpXTAXe0nkqcEEvqLMCGs+GIJn4GDctjW+ey6XzDCfVKLOD4S+HAIPPiAYxtySODYichxYx4LMOC8eHgHRFhx8fwN/exeRsv6mEILMOCs+FgM+Aogpfojoz2UrlG42lyLOEM8eDg1eRRZqYxHseoqyUHIwf0LOMJ/eEBCyZuVWOG+nSrUzKGV2CKLMKPX+GgKsjNIn1WiD2yg33lQHYMLMEad+FgDZPozA9sRmaepekEk0lKLMOJ5+FgCiCoNnFnrmlSpW9vminILMGb5+CgqTMdR3HSEBAMvx6g1T4uLIla5/AgBmYFmXDvU8vFvp2w+gooLImROeDNA5PL5DeEKTl7NlhYGqlALMF0v+HhULThF9Si9V8CMQ+rwVJCLImb1+DBEYuzFIVv/EqLab7nQ7LELIhfG+GgCTU1PdnmHN7NXBls9+MOLMU3U+FhiRM5de5ifJl5ObGwCXbOLOIwM+FBoHNqkKNfX59XMn/PZfySLILha+HAik2jK2I5XVaRAwjgtBMYLIkWYeGhF0vEGj7ZslSgsefwR9w4LOE3JeFgEDK4R1eqQ9DGnJW5oD4iLIk3veHBfTFCJ9OFwLRH41xRtjnWLMXNM+HgGAsKV0HxW/OruDnf1m9CLOA1s+DgBElxI7Nk34pUOojEln6sLNzIM+HBANQiNgLkaZ3n56IMlvsgLOO9X+GgAsJtsknQIq27wd8J4uO+LN3nX+HAAXySMkvCCAFqUpVmikCmLOKaZeGiTZZHkQeVnLMXikbkU0twLNyG/eHBENjikjSovIB3syGkH7DYLOCCL+CAkR3fJfVvDi7bN/MzZYkALO8/ZeCgW+30gX3t1uK+rR1DVxPWLOIwX+FAIOxLk82rxoeD6FAKBCs8LO+IL+GAQZBuxJt3i6YOIBjyFJVkLOLvM+FgIfXtNIPolRjuxZCBEzJoLO8KM+BElq5+hSM7NBsFGmIX1v5ELOMLM+Fgoj7qFi8FUTBOPu+0k61MLOyrM+HggXth5G4lA7lk4c0FzpcGLN0LM+FgAvbXlP/tOu1BcDgb70Z4LN0JveDB5stRH/AgIV1szJGafQp2LOOys+HARFvTUhy3feV4ebX7Wm7sLLsU3eFgmyBbqCNoBCHRWh2VrZ4iLOI5m+FABCNfs2aE5lAdZfs8YgdmLN0aveHAD0FDdRU38j0ZkOYSFrB4LO8fw+GgFdWEgIVttuAclBRNCeSCLOKCB+FoBThsljXet2sbYR/5lQe0LOELX+HgCbMgh4noCMFxRjzEfX1sLOHNO+FqDt8NxMX/WGBVWwxEn3F+LOCGveGgWPHAQgcu48kNE9uz5KyOLOOy3eFAiex7MzP/3ZnVq12Pdxa8LNyGFeFIWlEuGo02no2DTwSjSdbMLN2IM+GhC3Zl1RT3COpv/CrByZcOLNyGmeHoKymoHJDxFUoRMTh0lBlOLOMJM+HgQVGgdpafZEVsx1LlJgguLOG/m+GgtNpnB0Bvk8GvI70stlWOLImFneHgckbBLNURkxjdkx3j1yNULMWbXekgGDnFstuZc9wfFHTJBiPkLMTIM+Hki2tVkpWJbiW6YGPGiUN2LMQS3eHgM05EE0XEFN4fB+t9Wx1OLIk3M+HgXDIFnjixxbSaAPrVrfceLIkDM+GoD+0UPFRDfaGfA+gYX5dCLOCG/eGYEpCX5K9uJr03KV7D2+34LOELM+HAekvQ5CeckEiXoeWmoW5ELOKNm+HgEdbZ1onpwYqS4n07BwOeLOPn3eHhmIYAEdYyZJgjj8M0YGwOLOEWM+Hhmq4pR0NiatskYmAtv0pqLOIwM+DoiZOXVb3gQFrhBuzIYimCLNyGm+FgAFkvlnGoOBiD5Iqu475yLN9ZM+HgYrjB/kSlOqLT4FFJztA4LMPNveFhLScdlHWuQTcoLn50tcbELMXNLeHAGZ1rU8Gv0Y02L1ToRxNaLImpvelAAsGD/phNcQx3E733EEwYLIEcM+Hhgc4j2gc1DEAlrt3FQq/ALImR9eHhGgwl/tjpgPGT+xI0UUUCLMUaX+GgUl60UtCtiomh2JLNLOzaLImmveGhlm4dTtBHfJiXOY9VAre4LOEJfeHgAhrQI3bqhJ3Qkqt5+GMILOGmM+HgWAr0hUihqhl1g/JqUS4eLMEKs+FADF3fi0j7akYaRGV+XlIiLOGCL+kgk6ZFxFVWZLoXiP//wKowLNkLXeHAyUwiEyovQ95nWcOlDcwGLOMbX+HhgxDJFiZLIOGr/myW2ixiLOPnM+DAXyN31VObPLcakKDxICy2LOGwZeHgkJ0iQaVx0Sff1yq/mXwCLOLIM+HAidmj1LV237UM70IYefN8LOHNB+Fhuzt05txMgLfF1EP1ft+kLMI1L+FoOW9YFQUe2q57oCS9ZNQ2LIiG3eGgQ0sdW4JNpflBPUZ8BxzKLMMK3eHgEtDVG2ngZc4h6n9e3gz6LOIwM+HAP6sCtS2sTbNga0U102kKLOMYM+kgCNnENNtiWWpECcrQnaPgLOGJLeH4EI4qYo5VvNW6Ymu5A1WsLOGDL+DgEK64hN4xwUkl7mc3g/fWLN0LZeHA8KJDUdVWAunoOqaSbR0ELN0J3eHhQSiJ2RoQ7zo/g/tbH07WLO8zh+HhR0pBC9a4kamcSNPPOoyYLOCNXehAIksToY8A38/C2KGgfwjMLOGmB/BgCmcqh5IR9z3CgLxYz8DQLOGbZeGgQGGc4Z0pg8nfN42AgoPwLInN3eHlQ8XSuzSpbmbqRmF4GDgCLKM33eHgFO3TcurhOeGLE1JUu1oELMAK3eDgYby1CoiRaY3PMdb45/mCLIkKveGgC/YMXaOkywxKCWjfCBoALMWJB+UgETGJtwXZKTRaLtThUAjaLOEKLeHgpw/AIz3GmAywzEpCekVYLOMLM+GgQrMGVKo4iAAg7VuMgOlCLOOeLeHIfySyM+EHipqANhqPsZRULOGJh+HAHp27Ahvg3YILWpqHiAN8LIgK3eHhF9lHUFnoNDkSMCsBrCrULImbh+DgTC44WlW0TbfwMjSKJaoyLMTILeFgWWy4Er3/FSLuI2GahXOWLOFZ3eGhCDr0gKiQ/VaddsnDHYBiLOAKLfDyG/6DIozJs2HGY00JBUQ4LOFZB+FAiBhmBB4/y0VAf5Qyxyo2LOPnzeHgABjhsp57FQmXz51G2ZdgLO0wL+FgcLaQxMXtiYM2IiLjIYfCLO2mLeGAq5LHK3csX5o7Z3khGRbOLO0J3fCwsGYGIqgFz+/Xi9YhJjI0LO3nfeHg1/qgC45nHOZRpubuyzmYLOGCLeDgEMrTYib5UmXRqFJL4HyyLOMLLeFgIBtMEivdgYbBX+paMPtSLN0wXeHgOEZAUaIO2lyOE5rLvrcaLOCDj+BghatdwtT2GCadkDhVYGuYLOmuheGCg5lWY/AA+Zefd1InmLoALNyGheFDMAl7cEy6mBSt1wSQQcmcLOMKfeGqFWn0cnqqWKVzifx/e8KKLOkJ3eHA6hWGqD9hEAwi6jjy7F8WLOIwM+HCKurBFt6XqnW5kW9Ja7DkLOOeM+GBLSnVVo5+yG1maN5hGFxsLOORLeHoGY3QcssvROPebA9dIjXaLOEWLeDgXF4ig4M4B3A0IXsFV3PuLOHNPeFAH4SvochatGM1e4kHABI4LIlAM+HBke0PpjL6BtrPKwQBXPMOLIkU3eHAOFUBum8P4jIPZsdCTVEYLIiPy+Hgg+cxv+P/HjNFKrLOI3e0LIkUXPlA7nYymYtWcyZs61uea2gILOOCL+GgCEp1dVAEdZZ3zRcLV+QsLOEWLeHgFbDgY3rxY9e6wSwoohKQLIkUPeHE1/mFYC5wfi6v0hL9uZzyLMBY3eHln2Vw8qRmVAlsNY8MoIjcLMEDzeBgQ8e5ysTZ+h1R06OLZV8iLMQwheGoh6c0EPZtkDdR/itQH94iLOGJLeDgKEJxBFXVLVUhWwltPaEMLOEW9eFgZiLJhr+cFwITh9C6ZC80LOGRm+HgBTHExwiz3Ov3SpYX7hRWLOGC3eHABSSCAh2vOquImJkhWb9aLNyNXeHgBydQEWtkmN4F6+AjYcw0LN0LL+CANe32Et7c24pb0BbonYMYLOCNLeHgNP6QA+nKCQU3aQKJAq4mLNygLeFDHMpNEp2Se6hQHbdqw9cgLODALeHAnxsSQtd8LdTeql7L2owKLNGFveHhONSJP4TSogp/rKXYLkSyLNxhM+EiAeYdFqPpZrcVMV42osx8LOLA/eGAweSrtM8lGe8A6Z+EVqnsLNyNveGgw0NV3JUhFd58Hyf/j4bwLMTAveFoKmuI9oNZn5OFYl5FnxEYLOGJm+FAhe4TRiJvWp1U8bqb90AsLOMLZeHgJemhUYHBQRe5+hddsm6kLO8JM+HgAmGAhFjXcAWGFshvC9W6LOI1L+Dglwlw1C72AVppN31lvCkeLN6r+eGgIF/FnsDykFMYQhcxZVg+LOnnLeEgGDV/o6lygQ63uMMX4rKkLO2IX+EgLmh8TjipXIuIguZ4YsjULN3nheGgSH01EloNofY2qf4VXkNmLO0JM+FAC06ELzP+9x+u+pknIUpCLN1CZeGgUSKMcNOtHZowgkHXqAqiLOnnveHhI5LB74dNwJTwbDdx+JnKLO44/eFCADGP4bRLD75PTkpZKGfwLOkKheFAnsNNANA/XFm5sCj8RwYMLO8YheHA1TQrg0o2XBaUKGcAMtEqLOPnXeGgXDsEkUHM7HljG3GxMw2SLOMYLeHAPzbDM6eQQwRuECmf5APCLNyy/eUAWo6asUOig0oCgjdw9LF8LO8YM+DAC3zW5IjxFG01vNT+81rmLO2+heHMKnDGAqIKtWiA+P51jcXYLOzv3PkhoQnS4THYAlcmJnGfZfIaLL4d/eDAAR93GFUli1Fytq2eZLNsLOiyfeFgvuDoiiJOqbdTR+Ki54j+LOCCM+GgCY5n5S70igH/jdpGJH3OLOPNM+DgBMTYdUNU+HPwhxYZM9iGLOKCteGgA9GMdgu6ZrcDyLcsZj+QLMI13eGgnsS1L+MAeLpA0M3AM/byLMOmP+FBABlZPRKK1EIad+wvngkgLIGFX+EgTBHsJ3wtuJXw8BSGzLR6LIgKzeCADwpzcvm3Qc5luwYHDbOOLIlEzeGobAWxCgg0CTuNn5GmWjCsLM1CK+HAgW2iIN0rucKOnrE1DIqgLMI4meDwC8W5ZOe79uEw6ZvFF1EYLOGCJeEhIqiNRkIQ08kN8aHj2gROLOCPM+DoVuYRAmKpbd91ZESpUXKILO/Ra+AEIHnWITiziOLNNIFbGDfKLOMbQeANpSSfswF8riK5D4jSDFdKLOA5HeCY4GGWB3GhXszmh1MNst9oLL+yL+CFoBhv+9zRf4RuB6J9JG2SLOOoB+FHhElr1EvrF3ESTCsAxNiULOIom+FcABhiFdxolmeE+9ATfVJCLInQYeHClBwCLUsIFtd3gMa+WkmsLMHQg+CpJBQ0iKBDwoHjWlRmSeCOLImJu+BBABEyIpjI5CB5+Gsd0D8iLImCj+AgH1WFemZ58+wfHlUer9UmLImRQeABh/atA7R6YmRVO0a4IDdoLMOox+EBjyvvxrb0z68y4bdBc1EALN0YoeC3gHn0FvqRbzkb2jHFOCUiLNnRFeBNoHn7/I8RXsEOTlAR5xlwLN3RMeDeANYDEWAFDaY5g4zDARvyLN2DFeAawYYEHCJ7fauwFllD0IyALMGmMeGawYYACPAO6pNkgW3ZOO5kLMMzM+GFtJYHAuW10lceTlyXy0s8LKxrqeC4wSy0vKgzxO+hwcWQ7X9uLOA0deELwHnqF5EFDQYzXksUByyyLIm/6eFRguEhQ3r53bgFIDFN9yDoLONCi+EAwDEKNHsPsEz7OXaKeh6mLNmp3+AAIGGx0T6oX6NJ+WYCh4eILMTAg+AAA2vQfptd+T45pLXx8MMELNwHlaRACtRGUN31Z3RO1Y7A4rjALMKP58JhKy4QBRCKQyfv7idHv5tILN4dueDAiJJTm0EkdcSy6JYTBvluLLo/reBx15JEzYyppT0O3bw/K8guLMUD5+EEIZnlObsIkZGJ4fitNLgcLMIH/fBFvGSBtMNbGADedGuxbgWSLOAKM+EIPmtPw3UBeICRNYDPw77QLOEKveERqzyvKwpX1b8YR0/PxZQqLOOCb+APgZytsC5Q2NbLOV1+uH4wLOMJzeCfAZnvcrSVzZAuSYNV/TRQLMKCFeBaQYS3tUvaDDMG7Osr5xpSLIgdQeGgxCzniysoefsKTgzEhQ2kLImwa+DxwHOw2NUItsF1RXYabIQ0LIlCteCsQmk12quxxbe3QPX33KnsLEFCmeBAqJJ6mCK1cpynEVmHqOvELEMLa+CCknxWCJ5TBzRXre5wlWM6LMMbj+AB0y9UQkDvcf+QDDbb0rGCLIkDdeAYGYYdhIxr3pf6GdqGDnACLICkf+AAc+cHCUuK18siEKNRZciGLIgH3+AAHVN6oDml0X7WyK5rtHiOLImFu+ABXduehi7wyxi8rLL0CAziLMI0/+ALMIiM8rp70/tBztOLI1sULNetdeCbQYYVn4FV2vAefJPI7BveLOOoveEeCQNF0xXOnpgSD5ldCSIwLOBx/eCTIYT2LU7poQCS2am7IUZ4LMn0veAZ4Hn/Q60qPDxlmxD4uYo+LMPgzeCeAHGG4pXeGFHMdbhdsStULMP0s+GQhSFiYh12zZB4BWkZxwF0LImmM+EBgBhJSuqncTVdZ9fxQ5UCLIiP52iQM6I+4C7b7tncOxlMbw/WLIEGH2iChxdel6xplP00HPS12u/iLIiPieAADGiR4xmm55e2WyHuDzNcLMCHKPEAndjSz5N8CUL8oe8cUfQQLMQKqeCAhTfBpRfkuhriVmzLrVPwLNwDzeAAoFvUeyQcH+tb5dBDQukaLOCDW+CBQXLDgak0lKdKwBJ5hPUiLOE/deAAhIt/j9NuDoJiopyfITA4LOPQUeBBCw6qkH61zSgKVvtIZ0SsLOAoteAAAICbTVnOKPXwV0wVO5TCLOMBXeEEZJmZfnrHV1zwPQxFZcWCLOCcT+GDtDUkhBqfRpZgmh6rExWgLMOifeHQ4BBQouhqvxZqCODAbzYMLMNfYeEQ4AAfVunGdkGJk5pzgRDOLImqh+GUgKpCKup1c6Gmh3GVgtZkLOAoceGcAfNGwpckuEpTo/5XN/EqLIkauaRBE6FdgSb+o2ARdkgBhEIiLMCSveCBEqN3646wXQ7BBLNcKpxeLMGeu+BACJYymPz5F1LGCZyaWwugLMaP3eAAAkJvMJX3DriTB4py+euqLOADs+AAqnyoigMO7m+O97qVZTRGLMOqQeAiABF4FMy9Zpsme9a439J4LOFOzeA4Y1SMgwCYV1HyeDPPdCwYLOFOe+A4IVQdAi1Ew2g8/5N9R1fmLMPqe+Al4AAaA5jhhNnX46jV5TdaLMI0u+EKwAAKEZ/YXCFgLFQw8oMALMMnMeGHh1YFEEVAkmQvPZEzxQECLMQwdeFWhgYKHmI+YmJt293stsMkLNzmU+GB6ACjdEu1R0Uqrc0oE/OYLOIHA+CcJAFEUb4Hv3MmNR1C4Q0qLNyko+ALYAAeF7hJh53btybjzC24LIntk+C54KoEmfx2X7JfCBEb+NhKLOEcteCQ5/4XgokYzwbUKdWty4HcLNyHj+CHhAUW8xK6xiWt9teYNximLOCjv+B6cVQJp2AQY8Dp7zyzVQ1ILOAAj+B4RgH4Y/5xdchE+hK1K+oqLMXtfeCrxgYUFsxRzXWDQTlAga70LOCjYeCPqAIXQAAB+BIBQ+/xoKQyLNwNHeElsgYEFIHgvnymS6hZVHagLN3dHeCbYgIAUcQd1OcNugzV0e+ALNwEVeCH4gIbVCMWH5blEMdR4/f6LNwAHeBJbAYAEEARRlURPisxm7xALN0Ev+ASoAAR/iJFOWZ4tDtxgEFeLLu1O6TaYAAP7G1GBeSxbjw0Rk7aLNybVeAcEAQNsuv2KB41y9vK4EsgLOCYD+A2jA4FA2DZK0h+rlObs6bqLLsXT+AHgAgXb14JT+DyHIEaQgweLIIRj+AJXAy5KcxvPR2d4P+IXtpELIEqj+CJ8hjyumzd1hEzpBM4HJN6LMAkKeGBph3spxpCVC/dmgpGRcAELKKwGeEhP04ZMYDn8OUxftw+PUTQLIBvdeEIRf4HLlPlcqrU5xbYbV78LIka/eAweiV8FerYuqkKqWVmRGBmLImpB+FAC0sKWAD3dhporcI3aHcQLImb3eEgeKQuOcSNOVcjK0EMKmNULIg1LcJgoZObVOBVqHct/YZBokUqLInN3eG4R6OwYMCgHeRaARkwwLnKLImFvaXghobFBCXlXQYRTf0hYlaoLMG/3eED+L4HSJciN3Il7USftFdGLOHN3eEUNJ7OoATByzRB91u0mijqLOI43eEgSk4JERS0oCnq/9tJo9b2LOMYfeEQmN5PkyRvTzzDUmcL26oKLOG/heMEgYQ0Agu0EFJVWHSS5300LNWys+DAZIYTWgHC5LDTfEEUFWQ2LOI4/eCBAYs+RBO71Xd4StFeik4ELMLILeGACmQHtLDjeBWxfPDaOZ/+LIk3/eCg545QHCVdsxIYusCsVx2MLOHN/eGIhdnG5RYn2G3kDeus1ijGLMJY/eEAqxtOHaJMDvpU/PA1xhokLOEn/eCkyFUwRaC1csdP9Ldk09NgLOOIM+EQoGGf9mBpQcOaLlaxzuz6LMO/LeFC1WGa7VUJ/3ReEnVhCiogLOPqfeGjwGGF8gHUiDeqnDyQh0DkLOm+veFGQDGI80OKwrvEWtlTB+9uLL3NYeGNQGGH7EMnNuLn8LmAY5/oLN4AveCdomsXirUbf/ak14eN5xfcLL6kM+Ep4GE8Pk8MEbAbpqZIhjH2LKKP5+CB6JJfUV2fwisp1QhUwSMGLKPBj+HklrSYw88Ba+DEXrE+5xcqLIGRdeHAGnwlvwrj06hjVt/+hKesLImRGeCA8kl+gdsVj2X6i6pT8oXmLMNC5+HA3hDqMbwrrISabdzKbW04LPFCGeDwaM2AEAy4HqIXkKPWe3tSLOELx+BgMQlZ5tHjsI8TC1iS/wWmLOGw/eBAAJpYnVV6YWWKLdIoPxDILOGm3eABC6h+AFp5g2yNPhizAdt8LOGC/eDAm7TQrWni3FbH20594HO4LOCH/eFBJ/jlLPzCHtI69JhIYdHALMUD/eAAUCDftb6tQdz8+wPMq9u8LOOCYeAAFm58lebrIFRwt3luUMNOLIkU/eBBZIIZRHzyGP5NlZ9dCCBuLIkaheGADoQDeNqlbDtoUMLMYtN8LMJYX+HBBd6DpPfiQxSLI+GmI9NELMGRzeCAS1y/avqhBZr913sId9iMLOCGveFAAYTKOk71Lgdr0BnphMnsLN2IteAAAQ5edFadfMyatol5D3AYLOMazeBAyZJa00ExINlphEqSLSnMLOkJteCAFw6WjSXg/61UQ6P1t3wALOEa3eEAAeRswR7nYy+2Wxay0w/6LOOmLeCBSc0yNRCE5QX3OMwyQxqSLOGC/eCCrxiOZ+rj9HP4+wM1kOluLOEc/eHAAArbBehmC2fumZZeRw/ILLTKheCpQNHlYX791vAmD8Qft7ryLLvBveEg4vytK2MeROup5bm0u9IWLJ0WveAg9HHW5utZk1IKOwpWUpkoLNKbheAgY6dZi9UUiZYpiu2HvbgaLLSP3eFBwMHLMf8pH4l10zCeBtOyLK4WzeFgwHnoAnC5TtY0voWuJD8CLKwAj2mCwGHPq6syYeM/guadpXVcLK8R3eEBwGmLeV2ioSrTtSwztRCeLK1eH+CQiENTOw7sjcWiyQzEZ+5sLMOB5eGpgbMUxkFkLwydRffCIKMCLMNZT+DCAeQSlT+FLeISVK5BYGc6LOOeYeFAAB1oFgDXVY6DuRG1YpG0LIgsveEAAeeOI/Ok2qv65o541e0WLMOyteGpnP8E10LVoqSvclyBvyByLOBr/eGhANMEXRH1onYaj7uYq9VwLOH0heDAIGnx2G7YGQu94atzRLKCLOEZxeEhgXissRjwV8JGrgmFgCL6LMMLheGh4TuAybwLDzykkLnMEAJ4LODR9eEQwHjrrTMpNVCK8O5JLsQcLOGyPeCDoHt/2GbRAXk10mTYRsC+LMw0/+DTwvNBWiAeAxNJua6kyj1oLLsa/eABIlHM7UnIUGRt3wNy0Pd0LODAvcMgIHMr5uuHbjD9PmI2sm5uLOAK/cJoEbH7JSZ4YU4nWYUp86T8LMSS/eEB79sO1AZKHTcM4efqacoCLMEU/eCA6SF2ba6lTQQtl6H3j1n8LIjCGeHBMGPjSHSizHwF2Bs1F8FGLIjI5+EhwmsgCII8I593jjWzT1YsLMOm3eGByJJHQREzTaTYp2yjHK3ALIkWxeDABSWx/Az0CHw09jSul8lMLMRYe+FgEM51UyPguaI+G4cwigrMLI/RzWjgjB5ZisT5ElXQ0NLGQndOLOEJB+BACBga4LL7MOHxCfM6eL5SLMBfdeABl73eLlR3JNYoPc/I2h+YLMGR/eFAmhth77RzkTUck+w+TbSILIAA/eAIJ3N6raFS6DrZhtmQ4nUYLIlMtcLoUjGSB0+bu8Onl83Xj2m0LINFveEU6tZO6uAGrnFzUqke1HCGLEK0/eCEh+y3FB0jBW8qp4jI4yVQLIlF/eDAanyDlVnR1GnhsVTSmypoLIsUveDC3BYQG0UyhoOAVgRQeN3GLIGp/eEAXjYtHRWfbnNjkX3Jg1hSLJDMdeGAGA4DF0Onf/3OSSgzL4iELIvddeCA2WTlR5dXOur8LPOOgvlYLEBuGeEAwwa8uCZEZr0i5S9r4X0gLEIAveAiXV9lL2CZ58oY35m7LhsOLMMaveBAn4c75jFCvF3UbDxGeanULIAKheEhpmtD0f+bMu/3eT/ss+HKLIPNH+CAh+P3Qy17n4J4XBM4KENKLIhhveFBgrI2Y0xph9g2a0awXPAMLEOp1+BIKYa/i34Rf1LYL0Sy9MXALIiPveBArl5LGujVgVQ/8u2kvn20LIHtj+AAuYN5AzUV8H49KgeBD1ECLImGdeCBmYaDpaNlTLDSXJwsmUkYLIBvs+AAC5RR/jekyttSjZvRSXDMLIGGj+AIB/Y5uwDUo4Nt95gGJaxYLIAhHeAI196Rw9NnWYcae03c7gHYLIhvdeAADv5yhFAkw8tpes8A0jGCLMAq6nmAEvd4w+X+sNitlVZMYcJQLIntdtMwBv5TPuK48T6lYfyxGYYELOEGHUqgm6YZA29nLhDxdqDUFgqmLMENd2iAPXMIlh7DLjPqTKmEM6tuLKIqrJdlmu68GWAiadgGsF7ddZreLIvtd6RBjfylvpl7AVlzSubyhgqQLMAqweABwttgJMNl4z5bMDHMu8tALIAqwWmBSzqv3XCoDTKXQb0PwHwQLKIAKWiANjlq433ez2r8ptfzd0VELMCbwSzDhMnvzHYmdFb9zM/PKqRALIIqwaVQjeSlzX1hB3W2ZtPrE4X0LIgCR+AB2mnhHzQoPzBo5xiXFV/8LOAqieAA+LYFwtFATx+QVGHdLr6yLIDq1UqgW9YH/q2SeolK8vVeVyh4LIBvOcIpFhl5P6fiEZq0bkP35ut+LMRFheAAFXwScWsYwnQ1nCn716HWLIk3zcMgApefSkyzWfxd682jDPrMLMOBveEA34oSl/BtwJqB2MpEX5sqLMM0heABQNrNkWqSoyol6lXtWhOyLOCkM+AEjlhbR2nyxYpF2gQ/izr4LOGFteAA1iNx57U6k+ok5Xk+cYyiLMMN/eEAAFlpVI9agX9Dvwyo0prcLMMNtcIgEEw3tgmv8YYyHLGCQYtcLOAC/WiBEEqUjlysVru2idSHUxBMLOENxWihYDp4uS6ZLHnKraVrwjoALOICtPEACJB4t0vn3hEkvYC4E43YLOAW/eAAsQtBT+WV7uyjM5HxrvMuLOIcj2iA4Hj5kD8HXQG+yDKD74v+LMUN/eAAYrJCF9aJx2dKXhNyUJwQLML0jvEAp+SQGaeEV/XllOc4iORiLMEXj0qgKbaJuFebTOV282vN5ZPoLML060qgtxm7oh2maRNGJgeE84omLKIMj6RACOhlWWDttTjmi3zMti1CLMAq6vEBp+ZReCDc5/g4M5PzHRCyLICffPEI/1fZm9OUl9kj5c3+0IV2LIBgd+ERpr03bcZxwVanKLbOGROiLICKi+BELsKw7AODdtyLTyGA3MawLLqwg+ABcg8ejrGBvW/a4W7xvotaLKJHT6VAwYaGNocroUYrfEXFsn5OLKIkj8MgD6JDAzX9rvWGNCMa0OooLIIkO8Ilckq1yJbe7pjNBugulNLcLLpH5+EHha4LCPUEK22e4rb9XsYmLK2zweAAA/2y/H3toopdaBB3RJRkLIBHGeAAWCnZqi/kUzmjlrRqEIqILIMq/2iEjnH8qmG2AEGv+jojtoFcLIErdvEBL3pVD5bcYW1361NQn52sLISL56RAsk8V0DdnLDxJCSEOKgegLEIkd6RNnTQ+Dt1WoeUYfh8tIjj8LMBvdnmAFVlcJsiXRQw9+myMUJYqLLqbf6RBck4JiKCWDPU+qxKQlp0uLLsGd8IwFJYSD0PxykrxZRgfSNC4LKIqd8Mghhyix9kIKKNvFRbYeINILLvBGUqgBVET6jvnrhZSKP2kTUt4LMWIM8pogUyzl0Iz1HdeKWP/mz5OLMXK/eDI61v0VNraiHYfJMm7JQuSLMQwveBAa+9tNtXVDkvggLCtMBqoLIkWu+AAdooiv5afSKLXtvfOaM5MLMEUveAheSt052yVqMy/fQDDbMiSLOELLeAIHlx8g6RfZrn4M0ZBeb2eLMWJheEBCwDu8CZku3QsvzYddv2ALMAAxeBAB5jRYEBn7JGJKklrrhbgLIAYGaRMjDFfQb9lEIL1VVDFfHvoLIEf/eEEI3NpUYyDo/bt+yr7o944LOBwveFIvHYQZ9fZsyrtjMAUl1CsLL6aM+Exsb3kn0gb3LpyKVBrMUacLOCG/eBIBVk6ZB0TIteGwzu5OzCaLK1M3eHAKDJCmWBJU+nFwfGq1r+OLLuJ/eEADJyvr3a/92CF9GoZ/slcLL+CveEgAYUsH7/M2pjUFKgQuXqSLLuFveAAKBHur8fGT1F2Y0XvJGb8LLqn/eAh4Q4UHOc6Doth6IaV+AS0LLqjv+ALgapEDnRKwsOoprBhVtl+LK0q/eEAxdSkPdcnJ18Koqw1DKAuLLueveAAFE4fLgOALw6lUs7GR3ymLLvBj+AgwYQwCjmAa0vQxr9kUZv8LNzAGeAUnHBI4QYu1p1HGfkL1foILKJb/8IgAYNO00fvzHKR+lIErB6cLNyHHWiAhRfY90tyyY0hF4V5zM/ELKwqwWmBvWMG3ZciWainKZawFKjALLsGweAAo03rrbvRwsoLfGJGR550LNhFHcIgMqcH9ueS7XYHHoJUs29ULMRYB+AoJuWksMZX+XtUr+Bs9tMALKPBvWmg7WVtgwQNwsVX9zMfUTcCLOEfzeAAcJYVQxePwYypcpUgOl2CLMQS/eBJXM6SFciwFjQ+T4OlPAXqLMMRzeAAHGKu02XJ86KIIaH4zsZeLJDMveBBhYYSSnQgDEgY1/sIaQ28LItTdeAAIS4YHnmSbJ4/gWaUMuF4LMDM/eAAi44UFGVrByeLLCmUckdCLI+Bx8IgeoLGVuGaDBNkfzzgHEbSLOHNhaRBXw0FIbCZJE44Hu9VZcQqLOLvzbRJnkNbUqQozA1cF7/BG5OQLN2I/eGY0pMw1HKi3Eoaya7g3iiCLOCCLeGAA6NGPLjsAHgd8olPwCRsLN2yzeCgCLP008rwss3OyAXsuInGLOCgLeHBhBBi/FjqdCp1POQypzqGLOOnu+FBQBRb8zL6ER5/YMTShvaWLMAwQeCAgCK33Mvfuxkju25RMqcSLMOyb/BIEDxCpWtLNbX4aIt0oXQaLMKCa+BgVSHYuAGYYiiWqYAP8oTgLOA0MeCB5SSSACN2Oc+S2nrVrhZkLL44keEjwEho/tbkAauQ6bRkkoboLLsZMeBJYBh7SKPglaozX0wZG16mLMVN4eCw4BL0kOhCNCSZJjwDlAaALIgHGeBAbLaFYj2YkTUeCWG4zXd+LIER/+AAek/XnuKZC6Ig2/Y8dLj8LIrwo+EAIuGleVZbhhEApzg+/FiQLIqH3+CAg0yDqVFg2MeCQUJojaLcLIsU50qoCiI/WKXKKjr1+mUBZn9kLMCS5+EAvzEmKZBhB92zl4z74dQALLsUdeCAkNYRTzM36lkpUdYAHYl8LNyH/6VCSSHs4w+atI37b0wlk7WmLN0cj8IgOsy7IovXqWoVKPDckq1MLOEW/cIgv9beBHBHFQfZ7wwyXxrmLK2G58KgoQlmGZxQiD01do29HZN8LLos/+CD64agCuSyJZAL/kdIOWQ+LLscj+EBCtpJC8js4uHPzDGIWVaWLN0v8aXGwBhmFZgXFb495b6V201WLL0UbeEiwBh59ClJUwCY95Ev/ZigLLvdveEiQBh9q4nF67bCriwtfRNiLN0fxeAawBh/7ZJXBbi0CrDUXQOCLNnJxeBwwBhJLBxZfB3rnYG4RczmLN1MHeAhACAX4Sbd7MEg1wX53Q84LLqYh6VgJ/ltQtjLzatJhbu2vBV+LLvBj6VBidgOo1ZC6EhOWG06rX4ILK4MQeEBCcyF9yqj0EDZrh84Ssu4LItT1PGFHrIRHjayGCDxVWgYQ1eOLNEGg+AQXc6xVqK4iOFIhOHpgqvALOLH3comyuD3MN4gmS7C6k3/0Az6LODIfeAhAMTdI678N7vo5GuZgJZ0LMGRvPGBK0JXvjeeW/ypdfmIvrfoLOIdM+EAiNU/dg2cYoxZu9B+R5GcLMUL/eCgH1u1leG0SBeBsDxp56syLMA4reDR5/PBzddZteBunQeoMzJsLKIe/eHhczyRtOCBhjwu4/Ji6nCMLLqNreGEoBhv7AiHIhZMWhAJZKVeLKMQu+EtIjDt8ZqUqzyG7zEf0S7eLKMGveC8snS5IoI/NfX6Kh7tgi9WLKIAxeFEIhjyv3uql4tdVkdDxOHULMCPzeDBL5RyqiKbYcjbbUrN8aPMLMAWzeEAkB6qQo09MwWfUemhUhywLLqjLeEANkhui+nYHtUB0QHlPAfYLNmBS+ADAL38IDHdjlQZCSERvbUWLLkCTeEeActe2bSXOZIH1tH/J/VyLKMb/eD2kM4TlSgRaGJTAz02kd8MLLsKveA+AZ4dimC9nDkI2Lm8JvnOLKNZHeC6QZyxskpz/deEpc6wVoACLMUU6eFBi7Hi4d/p7UjCIPPTXlwCLIqPBeAcsJy9O6gGXrHuMoKoDOm8LKxv78Y0sj4Tk8CBAd6J2r3o9ShCLKIqHeABEsy5AgnwDJ/D6XT2wFjmLIoWweABUssULYO6tiCwmIxMhODuLMAqKcJxKwRSpG5z0xMPTvVeFgVoLMEqHeABWmxMgwC6iRZeel5E5krMLMAN/+AAFQQsk4e5DuOtGA1BXGEMLMHNGeBAEKQwCMOJ982KAfCzQtiGLIlT3eAAEoMS+fz3mGMp5dG11kk6LKK9veCI199nmhm6IblNOjPm5juULMFFveAGPOYKAmGc9MiWyGjbYMxYLKN+zeBWwAVIWsKZgYbt8Z3A1/lyLMDMe+CRtkYXECHSsM7OVnxXGe9ULKIlfeEBYAAD+ieHsu1X6WATRZ++LNCkJeESwAAP/ngolnDuuE0sCizCLODd8+BOggIJxbHTAIaNv1KF5N/2LOHYx+GQ4BgiRBV2hUKkllQ10wImLOCN+eDU4BhiHgBoCyJAt0eJIkR4LOAKM+HACBhkrjg7v7f6H3De1E7uLMDIs+DBAJTS+t6m1avY1owg6+nwLOCPM8IgCru8T9UmmocYjqaxpQx2LOA/j8KhK+pnIoUaZHSDmCtdoojcLOEWfeEACHGJijjnNp5NsbTwbG+qLKKPvaVBCEeF/9biAczYkwhI7p6iLOAE/eAAJbkUZ8HL9Pgs0sQ8IQYqLMCP/eAAOjSnrGvDDvbQAWXWaSxcLIikvWmAZ8vJf5+rU4JJnbR0tickLIEa3eEAHn0ECNfi/R7HSEWpxAkCLIAK/eBQ9rnYZKcSCWxuFl8BKTXwLIgd5+GAheaHCd4F6ek/bb3KZ2rgLEOC/+BJBllR7o0jaQcedk74jdSILIkJreECVetHHFSNGdig8kSo9wCgLIkJueEAIp8mmnj/A6xV3qbrctoULOA01+CBIVa1OmDGiQqF4kRuRs9aLMGyi+BYY/SKrUuYoE0L0qZYQviqLImIe+GQ5KmmeR4qDYtJlJOQ2HI4LMEKreBFsbYKhCFYzOeCRLvTJF2ILKMRdeFWh54JFiHGIShI97NmRm6KLKIHx+G5bxtARjWU0LiYFXKkw0b4LMWBdeBPEPNaV1VdtaMuMelpZ/PYLKKSu+BB4c4emKfb7+agEfI1MTsaLMUadeArwZ4Xj+BsYPB3fKLU0dTGLMVMu+AYaT4PCUB2zpbUfptjc6o6LLuFdeBdIbYZB0AHkClqXIAdeoeqLNmp5+EJ5aSvKS9xZ6KQwVd58wjsLL5u/eBcYeYaDYKPVyBcq/CDK3dGLKJhGeBD04yyOKv6A+U+u/9AM5SkLMFvveA+GYYcC7Ag1OmoaQnJUGMQLKNdreADTZ4fFEPSlDo3ng6sg7P4LMAKu+EhidysAqjs0kg3lwwhqc1KLME3veEjx/tJAkaWQNWDgX3RQWCqLJCz5+CBoAASEZrU7DQA60E00F6ILKIYveGSkVQSqwCgR3U93E4U0UYkLNC05+CQpAQQMOJlQhiyrH7+w11ALLoYveEBwgINykdsic25E2wvfbR8LN0JveEDCAIP0zLQMDPAMTGZ+ukWLLupe+EQIAg9SRS+XcA2WfzycWB2LN2JveGBpknkswov1DP3j8yWYgWkLLsoLeBBgjJaHVnjqxlhqTMKAu+2LKzw5+BA0mNb2H1vGFvFnb5COZEwLK00e+BBoDGZGSfAGoqoHnXwPyLSLJBg/eEAIGGe7EHFY5DK3PgOTi+kLK8cveAB4GmLe086jensx4MQGZxKLJdFveAEoGn3gxmZbZs608BUXVfoLJ3B/eAIIHnulVddjBywKpwPqs1ALNAK/eEAC4X3rZ5qsVTBUuhU1T7WLIFFveFBPn9aB5yA7qLnTQRNbNF0LIDAdeCBGgtEnrD33UHUWEVA1wimLCC0veBQunB7cnn4+VWjket2CzAOLIAEveAAGCNOq9l52J5Iwef5MygoLEHd/eABfG2bXqLCTaaKCcwPcOKQLIC0O+AFF9YK7XP6juN0tW0i5oEILIDb/eAAEjKUXFU+8X/w0q/povGyLIgW5+AADzE3uerhxPGHWufm+7vELMKPj+AAkr5XEvMh+JGspJNTWh04LKJFdeBArwjg/0NROErIHTgbbwpGLMAWj+AAFJ9D6wm8bgRK8dXzAK8GLIkEj8IgX4WSA5qXJHLnODW7zceSLMBb/WiBDP35Nvl795880m38nEnwLKMRjrVAGOjN+4HXJKS31WVM4Y+WLMCbj8Mggvujy9pmhZKfKrTU5wwaLIENdcIsB4NKZcxv3s2GEon/m4suLIAEnYZgGLUHTlzPuJsA8u8q1NO+LIFTtaRIne3+7gtBM+w8qiT08RI8LIAM6nnDHSw5obiQLNFfSKVZnieoLIIEQeABumXhhgmHriED5Pglrm3mLIgEd8IhjRvfPHknH91ozpVl27LeLOAYO+EAATEJpUoraBDaGZjWT5EALOGC/WjAkskL5DI9e8Buk+L8Dq/oLNgYzeAAALYOc/P7iT3iOjQ48QP+LNL8M+EBAm5PHwLrTxiBfxHXsrTcLLuFheEACh1uGX1qyd/4TOzTR+ROLKM0M+AAQYHcf6uuFCwAf5UsdgoULIqS/eCBgD23FJ8zf4P5E5KZWBc+LKNMveAAAco9foCXcQpmBJNhlUwGLIjb3eCA3Q4XGHZhPf+IeK6UWMLqLIsc9eAAP85eT8jJsAhl8d5ireiGLMAEveFAC6HAL5gNa3cdFxXlvgEULIsD/eAAC9C6nL6+8DnDPU5fIwoYLMWF/WiACqF9Vkp/kX49SsTbspaULMKPLeEAopdmkgAoW4KQ5Ls8gkmmLMER/eABKysbzShEWm4XCodTUhpMLIEN/eAAuASZPU1fA8pseex1+nGCLIAY9eGEA5nj78WEPlrq8bYMxEcmLIDM3eBAFn9xmJL7JsXHiQEy59M0LMEMheAg2h4NSfMYcVHl7JWEkf+ELMAAveAA+6PcR60NAbUbzxLMZyDSLOAdzeEAGlHq47PlEgOuvmnayA2+LOEfLeAgIF+4gw78fx/oJcfEXHzKLInNhWnIF98KClTHgATPctRxveCqLIAAL+AAjZZfzXDztsbuzgypxxSiLINM3eCI09bBwF0SNGb0IM//zFCmLENe3eFBPsMJ4RxSnRhh1Mk0s4iSLELNveEEDz3Or3qOtuWspNkug2T+LIkMLeBAEJFD8v7LAdoh997eQ3DaLAiNm+AS05G+RHgBSgRPQ2kDWGrWLIjAveDQDloojlepT4JeFy/qFmNELEHYheAIEzL+2J/IP5A+AfisoRfuLIg1hPGEfmLymLf0yikvxYuT01JuLInYM+EIF4vKZ3tvXBMuiLO7czNILIm93eCB/Qqm4PAfMxFIWbGL4e04LMGpheCAEYM2SoMkgdDH7d9ekh70LMPn3eEBJmNPwba05YvLhicruY8OLMEc/eBANbiaRu7ZSczad3Jz+MJYLInJ/eCkrVWVJR1CjNnBdQvqSDJALMWR/eFA/LsB1TsuKwV1VnMoZoSGLIkxveGoE/MY4lekQQzFwYLROZuyLMBE/eDAdRRmrOuRnqs3KToERqKALImkzeBQxAwvC0A8wIJl+m0jHWm6LIi+zeGBYBhGIgrFlGyEWwFQhQxuLIhEveHRCgyDgy+xrgRa5SP4AJOGLEPnS6XhgOaGCGXz8Gp1+SSZfyj+LMOR/eAAsPyepcnXYqjeWRSBqxjSLEE05+GIEaiq2R3gIT9F+zMrVVx2LIAAweDAX80w3Exz5Pe8grb/VPIgLIAAe8KgC72i/ETmSYUCxVaI5i+gLIDmf+AIHWm5qVo/ddznjRiiZNHULEKfgeCAHxjhD63h3h1khcvpOaNELEPBu8Igbji3z4XbTsymN4UVKISeLIEXd2iAP7H5547HoEAd84zm0Ib4LIkRGcIgGr+qgq8laFIpzjYNPjo4LED3qaRI1rEWSjU1yK4V1ELfD5oYLEMNO2iCPG9KiAB94NYTmoMDbL8+LIijOeAAFozgIljygeirm4eoYVwCLEKA6+AAV9/wuFTw/l9TwMlrr320LIkGQeABiNNIPslon9BORNPCvnCqLIibGcIhCWSqcIbm6WOCWq4tIqG6LO5hzeAiEWScguKncfXlQ/dAl+n+LL60TeEBwBhr2Q5ra09zfVrvZdISLNySzeCB4BhUMkv2VasLfsILRAt6LOIoxeCFYAAb9SX1pG/JzUxBc83CLOGHh+CxTi8cy4SEwWL91wWM0WwQLMOkYeBtIfHw9D7wGZW12KmmLgv0LMWI3eCB4eYWGcOXw0WJHKi8FHDiLI6yX+Cho8ZwE5JRyg/98/mEeMsALLrvGeFpQeYBiOd5gjLVnhjVY8hMLOKGveECgAAWsll6aGkZWFaMuJDoLMQY5+GACpL0kF+CfkmRCfXHWc2ALMDAf+BAkNGiebEyJ2jZLue/IKP+LMQEVPEAHoQyngX+nWIINUMcVUt6LMCH36RAo4bHaBvOXNVKCqzwGk1+LLoAzeAoAJCsa75BKQn3KqMii9teLOC0ReAiGM2050PcsnRd+G+bfzFeLLoxj+BApHF7a1bFdNXjVlSeZs4+LN0ExeE0oBhIM1hp1hNLablG+R76LLu1deANIAAZ77unoqItvhE5yWeeLNwYveEJYAAL8/fu6wufZVDUeJa8LOKaceGW4AADFL2WWMcn3CLLAZxuLN3n/eBJAA34VGLvZWQyQmV2dLgMLNgwdeAqTZYcF2EZRE62p5NgbpKgLNgo5+CBoeYGv9V14MiQMe2KaPrkLODvveBQoAA2ong7pYdU9fWACIlmLLoHa+BBC9ITSGrsLKpweQkqmQXWLOCSveAAC4szKiXYLd3tKm4AlAZGLMCHj+AAny+524ZhErPDMmUIIDFiLKO9veAAMM40m12TUcajuRiq6R0+LIgW/NOqU6IW/4SbhDs1Zccorlj0LBG1vcJlq89amqcyjoUyAoKmGFEELIkCteBAr5XRJzWltVQ5Llbm/XQ+LKMEm+FR5El/5O2zt6bE8PhIOEFkLIIY/eQcKjD7bxMCJDFt6g11qUaiLKKnHeBpbGtYURXaeDs/UZ5FEnxCLKMMm+Bt4BhsHf6bi4HptlYQ+UOeLLsLneHGABhiDf2DmVf4nFCDJY8ELLutd8JhwBh6Hfj7ZhEhh/ygUE1aLOG9M+Ag6hpIh/eebd+mj9ps5KbGLLowM+AhAWcxL9j0CN5l7nkAe74aLMIra+BiABVYQcnUa8CPmctogVUiLMmwH+GBJenlZU6v5bQ4sqMyDBAiLMHKX+BApbYbg2FT8qmP4iUMmH7cLKKgmeCQsaX2PY5tieGK0Ecw0WOwLKDJceG8MN4FjqOMKN+1u4k/aVSSLMA4MeCOAZ4Vi+DJGYRKLjmgKsAkLKMLo+CB4bYXH0P2+zCIPZWF5MV8LL0Ks+Alo5Ydi0GgWhWLzgeA2rNILLhi3eAFsPS2OWqeGxHGSiSYqaeeLKBvveEBo8IOzs1G9YwDIfsJ0CbOLKEq9eBA48Nez5eRnTkOASPKsZmILKGGheANWHwbqsw/uNE0JcjVjFlkLKNuheAA3T6vkSla5FJ83LGmo4kALKy0vaRAn6u/vtUlRtrGBXRVx6YSLK0Nj6RAgc4cmqP3DNUxNCIGxut6LOCP5+ABA7NRzcT4Pq0lUeaTWNR+LMD0ncIgCEFDN8M/6W+tk6i5iVVQLIyb28Ihn8QLIQYB6tHsrzkk/7iOLOAdK+AwgXkYzbwg2wQOuyLWm3oqLMtO6eEoQCWI949Vey+GVGPAxlUMLI7v7eBDxNyjMApLr6Rq0RA5jB3uLI+Iy+CQWjdEPzSuBxlGypTHCpC2LMOCvcOgCQmG9ryC700XnKbWsq2iLIiNK2iEg2WbPjM8E1VSh1PoqcO8LMEcbPEEE7ZRA+WevQXGIaYIAMNkLLoEiWiAAWJIzZOuI8TnptZDq0eYLOKgzPEBK4rYshwG5zOUwUbCQ0A0LOMJ/WmhCs1pEa/6adMP2GUCRrMiLOEfzeEBgyhqAqt1HF8wdFLqkbZSLMWBheAAoT3/GzEGTVRJZgfKz2oQLOCrheAACSy+wBLFJx9HmnIPQ4G4LIlMzeBFc6Iswgyw7ys6YTQ3tSn0LIDHX+BmrY5ZVsMkbsexzlOTVD6oLIhE3eFAyiiCIFsrn3nCB2GTnBRkLImuheGAoktG0GdIxqQsNWtI569ILOEbLeBDHjdfgjCz++QItcU8/aAaLONZLeCoBhwVMk1dKDsYUsbCPjEsLOMCLeEhH2Hlssr6ksRSRnvCwOiELOECLeEFJGBPo0DSRuViVqvRK+oGLMKSLeHBwENkI5sr5Pev3Lu4I9eqLOMMFeHBRWPDM5anpOF5gZ/ZeV+MLMDb3eEDCcSvqG/GViJqUAGAi6JuLIib/cOhBzom4QXk5fRlOuOSVR4qLMENPeCgVOFR6GeBMYS+mMtw4RLqLImBveABnJ6Th4BYLK4hEe1oqKoCLIgELeAAXj3vOyk1rbqeoeXIxSGYLImJ9eAhJPW4fdiN8JT7ykE2hqHALInqm6XwTF41pKGpqUlLjklhDAE2LI8Yh+FjIZYgE8KJ4bo5dOCVaZyGLIjIveGACeCjB7N1OGANLr1VLRX4LIhf56TgL2pExuXXrKQMfBwQAD0WLEEE/eAAnJD0rxUSZJc5hsFHZ/j0LImFnWmQnVsAZec+0gcWN1fLZgY+LOOq/a1ogsvh1Cbxp61D+YWoK7iSLMOC/NOondQyBtQdYGKT1Ah4XaguLOFELeCIDRjXOzVIPgKmzOjYy+0kLOELd+EAynBY/JInApXDJsiEexFmLLuFYeGDIeTkCy7TkJF8znrBmrhyLPgGG6VD4Z4cgUJq1c5IqUEoKitCLNyST+CUwbPLdR3/ybFYO+BODfgGLMT09eBcgeYaFjR54Uih89DCCNR2LMS0/eBPI84SEEBdAG+k+qHFr8UQLODm/eDJ4eYSAccgbqgmblUJzXOmLONM3cKhYecSV8Zj/xcPqOhbBclGLOLIheFQacWYcWSapI8cncNZkkigLMU0heCw4eYRmEMXWmDGW8hCx+AuLOAAheBAweNbwHF4aLbEXlzfAYwQLMHB/eAATZaLjw+MrUSPAfqKxfx0LIibheBBB7oR2dH9Ip/Xpn0rr66qLMAq/eCAHmNRXu2HZP3CcGa15qoULIqk/eAAi+YCjl41WdP7VbIxtFhaLMUD56TAReb91ynjj2EMHUDBZaTeLIgAdeAAec2TxTyrduajYeAmdEDCLI++heFI2cPC0h0u2RvvKN+xhRbULOGk8eCQ4LnVbw8iKA4VanHQV4tILOGqFeAywe4dC0GjapvP+KMAMM00LM1OJeAD4fo+BhJYoKwU2oBhKwh0LMJEt+FQnM4KnoClbpQRHAr0Kj3sLM1Ox+CjpeyhAqN24iG3nvDC7wyiLOFOx+AHof4WFeJN++OzyWc3jQJILOFOk+AaYVQeF2IQVdaxOPiWFZyKLONOh+AfUUQeA2h52911Wh6zhASyLOS/xeBT4AAIHtIUe+8Oig8GwxuKLONf86T+AAAUFS3Q854002EZYB+kLOFOLeEloAAEH40hgU7JLrg7EYpcLPDEUeAcIAAaEZhGUO29/TYRgQfsLOFOxeEXgAAEHZjM4+f4uswBJgn2LOPqteE+QAAAFZ7Zc2lNPNiwkA+KLOH1xeAdogIcHVSiBsa53kEU1YSYLOKcmWmJZAQOtEGr0JJ53aexwwfALOAnoeCFgAAH9ic2YOOMZsARZh8wLM3ee+ABwAAv4GxVbpm/zvtZTUPALOPQb+CQohJr1bJUA94iYcUalyBcLPFOe+BJYDBSAClyhliq0vaGPVukLMK5e2ng4DBIq3EQ/4uhYHZOXdtaLOGkb+AJCJMLWzZkCJyIN0YbLESoLMSgb+ADAIpzNWO3Q0Ef4W0YROn2LLsfM+CAAswTq+Bxvr41kbLZwZBWLMQEb+AACANZ1Rp2EN40xu9kcTaGLOGBVaRAtVi2Bka1VLttbYYyKlJOLIrDU6RAssYUnUEBRG+o9wUd4SNYLMK+haXAIOMEUsqY8IZt6GCgeDMaLIiN3eABjxIJgbA+4Y3r1lqKkHV2LEI/M+Aah1lS76CeWby2BSyi3nfOLICbGeAIGSsxYGckztQnOeseKVHWLIiHj6TAAHmF0rUM/N7VUOaWkkq0LIER9cKgyGDzJJguXsyWI2YPCXlqLIPt5+AAjmD1oNlTmMXEg3AxhPcELIENieAAXBWiq7vgx1ihRamLZKEqLIFTOPEAtGyQ/w4WVulQVMwJ1osoLIEGOUqgH+tGD4b7qAd7obdcq6DQLID062iAjR6pYWH7QXJzbg06I4KcLIgh1LVBE7MVH3BQuGxsNi6eBbWsLIMXdluga0YaTzCRDB9jAWWGtD5eLIiAOcIjTzZjp3KwzPaVQuXpl6wALIkR/aRickonpN+ogj+lcnOvQba0LIENiFuhD9GbKlQy4ekbpzD0JMdSLOEJe+EwVTGgmqn9LBSE/BAfnBJOLOKNTeCAAQRX8HQi7FjwFpLyewBSLMTIteCgAJjklV34mwBSm4GtcmBuLOBhdeFAHVv4x45n1tSmiX4yHGgwLMOC5+DAM/dzFiGfQ4omL7p72zQoLO7dgeFACdnqxhGibXbpQxahnsaMLNjdG+Bho2PZXKwcfgEABoiVacbYLOyNdeFgYLMhHqAJsIy6lit0Dbb6LNDddeBBC/S5HiDiwA2B3qTudPiyLNrddeEgPnIMbjOIwoAXYlSULkvqLMGFGeAoAYm/URZtVJP2ct+MUbWYLMEodeAgBjtMTvH+Jp5LO5bXHHxmLKJh/eGArg3EHPYfjZXAr0arUbwULNBhdeFAKQS6NwvWVnuuinLkcDuoLLsoGeC4ZdYVAbCl/eImOT84kAe2LNmAdeGAkING31D2pIbQsjiAfl4YLKJh5+FAgSvL8LOv+HPS3pkBYNDSLMMW/eGgAYYEDaDiX2Wu+wrhO6BcLODAdeBBgYYSB+RiZAkhTLp0Q5JULKO95+GkCQOgWB5tt+Q5cLy/S4AoLMKNveEAlJmvM2QcaHx0+lo+XNUoLIkaX+GATiSnQ9yzCoCHrBOiM9xYLMA1vcLohrcyK8d2VkFwRZ5tJDUILI+9deFAQCSLtui9fSplAatKfWMeLMEfu+GQITzEsKrOPuI2o3U5jbS6LIEadeCBp54sPvRWIqPssmxiXxjOLMCS/eDABg7ixDd8hQg/kmzeBlY0LIEf/eBCTRRb/J0Ar60uWN5QXZIALMHnm+CABLJX7g1au6YJ5/JqkvEILIiNveEhPSUtpyz2wsr6dlxkCYPgLOBEfeEgCBsJYjlospMmNGvYG+5oLIkxzeFAWHGr63ekHi0UDcT9LbncLIiyheDIAGHS+mSbeIxHCieVKU4aLMGA/eFBAZ5qFGbauP0pR3Y2RzPCLImJveFBCQnhxnevczDl82lUf7+YLIPE/cKgR2azTQqj/H4GApxVlzYMLMCCGeGwgG4BgeGmXMveUVG+WUY0LIu9vcLhPZJyO5DSvoIQ8dqdHOveLMSP/eEBgHpuNYLQLvdE6kl3AfzYLJEM/eGABXtkHI3nhHSGHgoAAlOWLMDIheEBMKNPUGQmh8saz8C+3dOyLKGC/eBAGQnY7A/qgYKF1Cbl0axuLKJu5+CAd5tWpomDHARDCVzyPrqYLIjI/eFAFj4qKyHggr7GpW65xl7uLMEfheHwEBRDSJKgyEAS2sNFbP+8LIkad+GhCUelnJpZpRCGWuFcCzp8LOGu/eGhCMGJ5P4Wdy9n4uYd26nSLIjJ/eGABi4GBED7YXnlnoWcaWG0LMNEveHgBJngt7qxt4xzAu/yxZ4ALMMYs+DBolPRcizq7BAuE5oRedCSLMTIM+CAY2R37sEeo93lihFkGComLKOCM+GACUOnW/f0QQkCbfzs40q6LNELheCAgWSWuXk2WU+nM7BGRJKOLMOCM+AIJSzXve9KC95M8qcVHJIuLODvf6TgDcC1JrPk5id0XR3YC4OELMK+f+FAAB6qHhojypLA9oBKbzlcLOCyfeFhQGnB4oy5HOCSmzTZlUjwLInnfeDBU78DCpuqajvYK+67X2YGLMOILeFgLQSpJLvqjQNahjWLtOkgLOMJUeCgAaR1MYfj9kB1ntcdU3qWLMCgreGgAfLGlcHl6Y+eeUTLlq2yLKwKzeFgI0/JG3f6AW5tsNyC/6JyLL/ET+HAoftAS/RbhKcpONLv9bjYLMUffeHA8/dgsnU0jCaOOmJoY+QcLImp3eGghO70AaUMdlaZXo0Ylq3+LMGJzeDBLM8yKteMwLFtjNkFnAqELICNm+DAP5oTT+aWeYg/HITrCjGILImJteEgel4MDKOPpXOOIqHyE+teLIFvveCAA3YWqiqz/DdHgsnoQqU+LIKNf+AZGmT6Rwp/kBzfLKsDKztQLEDdzeEZDfta21jlDd8w8Mib5kR2LIm+feCRjVzU4t6m7Q41CkGdbsjMLIkfLeDAlcYRdK0DrkvKra1Hjx4YLImIh+ERmSH/gjiwYyRuqX5pD2g+LMC4e+ExBVdIgT/6YAr9pv8iascALMKg8+FxOomM1WDg84CuhYIrSEUQLIg11+A0C0Y9oui88j7J/4H0fPs4LImkXeEomDFnrj3vsi1xBzmB0q2aLMO+zWnALKce0wQTjezinTBDL9/ELOKgzeAhyYS8cgp2zIXeLAFQdRW4LOC+xeFACgKzxGQK7BNRgLbHHT5GLMIFxeGAPpTnNC7Hl6m4Rf01ZY/oLMQ1feDAAyozc6/y4aqg/TN1rqmwLMW9meCAOBN9NKnWmVTZeU4BpWGMLOHQzeHA0kpAYzl7LXA9qq2i7KbyLO2+feFAFRn+onAllU23AZtML2riLPkxfeDgByLxQlvU3CK5Ut2IlhPOLOGIfeHAlv4hikMmduCfpL+bR2P4LOMxh+HgaBpAkgEIpDXRQebYlh+ILNiyH+FBGE4pcnDn0g5M66CXNDCMLOEwLeGgQ1sCRFSkD15DKXvnYbwOLOFWH+FgKmdJKrwVa/q565NDubQMLODvfeBBCu3fCpj4XUPRWS2pHH4uLOKxfeFA1PILMzlqN4pelF173/JeLOLvteDBUBjyNfSAuJDJWuZ3YquoLNEoveFAB6dBkn/pASCxdvoaTW6cLMKS/cIgKYA7Ln7HH8LEzhuC5qYcLMUWveCAA4Mym8bXJyxpK1aIpDUSLOO9zeAAILqcU0pO0X+YD+uBSYvuLMAKM+Aggj8cjrBZanhHYerWNW9wLMAKzeAgmoNJ66V8LPxOHRWzecpwLIjAs+BBGFczw8S5eEF2pvqq6Dt0LIGJfeBoh56ZqcZpZxNo3wats5viLImpzeEIXRJto78Gb60eBKBa8qMkLMRYw2mgG+kv4DD5IIQ+5/iL5fYiLNDIfeBhTSYQGqB4/6v78kqainEOLIuF4+BgD3+QeIepwT3ixABmb+00LNC+zeCgJN6k27sY4doR3nlMQFL2LOKNheAAjzwctAMa6XWlHxAIJUQMLIiyUeEhK8sY37WD6pQKT/CRqBkyLImAUeGAGv0rR493zfCTBPYZQs9ILMOJveGoFDVk4+xMla4WhNASE6wgLKLIX+GAvVeHxxGa1rppcWpyusmGLOEfe+FAHT6rg06L81FOOtQVrc30LOCrfeChCF41YFKSv0edpYI2HsVOLOGJXeAAR5h+Lh/J94GQ7lzqza+eLOFOm+FCIASbhyQuOfMdJeztUU52LO+9+eFAZ12KwoYDjhQwO3Dchx5MLMW+M+GglMyAtkJ9bWEWKWCgbWxkLOHnJeHBAHMizwIofxUwedQNMxNELODIK+FAgDEb6GkI4TpxdRS0TfLCLOMJjeCgAeSVM8v4A4jpMaQMeSsGLO6x+PGA1HVcohQTKais2LMPg724LOiNzeAggtSMI4l8ASrnj7LkxJcmLOMxfeDE2YsEUgExR3UEzsu4LzaALNEkxeBggNY5PUsd4b+26rjtA+AyLOHNveBhHYz4I4KYfJiy6s60Y3tYLPnn+eDASuJTx+6jYZMhOEty7u0cLOI0ZeFA+gSOEIMGjH21o6hxu3JgLOHOXeCAgQycTvAvvWAqy/yCAc32LOA4feGgHln3wxzp2cksuBXTsJEGLOKgxeDBCyHWdFzBo8BFBS0xaAQsLOCga+FCPrNK5j+HfL/uaWjMffuKLO9Eh+HAlMxiY30ik5aIJsVfqm8QLOOIT+CgAYDVcxt0LBWMgvmEqfhaLO++H+EgFQPVAs5vtaZJvsRJkbb+LOA0ffABDzYOA2DfJvmusnnlFqBQLMKyueGwRx5L8SiVve1jdijYZs7CLIiGxeHBgkJDTHpGlo9zMLxytMcSLICyL+DAFOAyMzPi/cDINUvGKy6kLImIkeEg2E6NIH85QTXW2hmoU6WCLOCyXeBDGS+aRynYiF+OAKPryPdALMPnUeGACIZXZmnGvF/yjrgbhZk0LOCgzeDIClSTQ9IzxJA9zTnfmecGLKKgW+CgFNYU2nX7pGnPRnB2bIugLMTIb+FRG+Hi9V6O9JNc9lQYcnTiLOG+a+HAYAAD5CSCzNFIYqb1QDDyLMTI8+CgtYlUtbMEa6wyZPad91QCLOGkT+EiEktlGu2OS3F7Y8qNflXCLOExT+ABsDHfohwOyRWflBPhL/6ULOMwxeABEqCelLj4cOUE2BG62mekLOPqb+EAQDcvtwRl4b0xJ2QVw/HuLOM/W+EAMVTO8HVlpZUZyDKdKmMaLOE3W+EADkDqoN/9dENlKy1XS24cLOC+T+DBIRpjSraQgCLxOsxCWeIcLOCrW+FBqEHbQoZCGEQPOfkZqWN8LOHOa+CBQBEH5GI9BS2gmloL2Q6cLOIoW+CAgACf8GVAfUn44vej6mluLOKyp+DCH/xyNOXgawTxZ/uWt5WOLOMxb+Ahsp4ZF+BdqIp3Y2BL5AbiLOGIa+EBCssHbK32GJu+PoEXXpMILOGIW+CAgqYbKMkW4Ib1BB0z5HQaLMLI8+BUAbJ6WdMrgBPhihZvGDbsLMUKEeBAAcBaU5nbeTpoJrF9L0y4LMKya+CACwh3fH79X8EoOSUX0l3ILIuCkeEggMfpGrXtts1XwtFgDz3CLOOI1+CEUEhX8oc14EPYMKeCVv+GLOCGa+CIIClXpHHshYcXisQdIig8LOEJ1+GAQCCj6g0OVLI3TdMWA9L+LOEa8+FA0PcrqJ9igkAOafWIG9WaLMSGW+BEQUQbtAKLtPcSRbXx2N5wLPkv8+EBiICNYM4o82pu8bbGD5QcLOKg1+GQyAnlUmVjnrtSmX0jGXf0LOIoxeGAlH0G9JkA/UAk38KfP78qLO+HXeHhgd5QgqVBZ1Sf8FMPf98iLOO9LeCgFxLRV9PcNRkaFqZholDYLOAwfeEgQ7CM6wWsZcLSllIzYF8sLNwoa+FALE4IVTFtqIrRPCAnZAA2LOK+T+DABYuyE/H6D9C2ifkrexpQLOPOxeCgEeH0FDjhUg/wYjnBWoDmLOOyUeEhh75IF+5pJvqQnqKyw4ckLMC+XeHAVd4BGcHmm7jgW2iupybGLOA1heGAF2hmK7cP+3YCWXMlhVjkLOOIxeCAnw63lCFWf85SPCHyR2jcLOK+XeBcmrybEKOsNNrrS+5/+4ikLOA1zeCAQQGW6gWz4ENKu/KdGSFCLO408+EhQBjFxFOco9JOlPkpc8tWLNy+UeHAkFmC9oEC2oJK+HPGvNRqLOC+meCCj+Y2RRBbnZPiwMylgAU6LIiNueFAuD2XgadsKd85ym8vmpbWLIC4ueEADxqO2eW+Sfv1bZ0eeG2OLIgKL+DgLzzQpdPBYTiWtj+O/GneLIMf8+AhIbJ5ZKp9jTt1rD9URjtuLI8DM+GRjIbkFmRmMvMqCDfjTMOCLIgK4+GBUiJWGGImjSrEKv39Jr1oLMAKheGQh5lCorZ+IrjnmWZMrdfaLOEJT+GgCDkh45Z8LgrpuxX1ZdhULOyyL+EAES3OZEsuwxvyr4GenflCLMSgfeBhHdJYk7Ii/Us4q6nPNkKkLMATveFAKRHLK0tiiPYd841ifPvALOOI8+Fgm58AlYPoGaErc5LWVYNiLONvTeAggJY+864CZYdaDO8TmJdoLONOfeFAFGuu03+oToygdb7JmxyqLOPn+eDAFMWyl9HjCg0nIDBvQN48LOoofeDiALWRc8uwzaTcW2P2ilpmLLvn+eDBPrZX7pyIwAc1RadYwY1kLOOI8+CBCLA7Dfo+Q7H7ids6RhVMLOMx+eGgQNLglyXdqkQXz+MELt3KLOMJ8+FhSU1plJWQI8As5cC0sHKgLOCy+eBg+AtYD/KJ0HXgy5Ng8bq8LKLIw+CglN71uERxP7J+timaTdMMLOEWzPGACEze46ntYUnw3iGtdWJULPneT+AiBRgbA1ld6zWcEgKKZuzCLOCMYeAgSFssz6K2S+/1gkYmg7gCLOC57eGBNBEnX8DSBT0DXxd94eYeLOGiT+FA4QAK4jM50smyoblS8YE8LMK52eF4RVwYRvhrNmcDq8FwhhxcLIi75eFrYAAID5MDcU/hzIUAogksLMK57WmcI/Sut0qOzaBkXd48y0AOLOB88+CWAd4CiqC/oXrpwbzoKhB+LMQnp+BaQ8y5POq65STjjC3EQEAALOB8a+GUoeYEDcESAEm37zw0C4y0LIlde+CByWy2mOmLqZrp0AGWl8FoLMAKmeEg+jik5GsmVP9w6lXBbpDoLMMW9aTgEfa0MMTzqB7Z51Fe0ukOLOCyxeFAFDPy7bShNev2CaNPj94oLOMJa+AIWj5XtCwbu7eC4OcRPmyGLOC1beHI0FyAHQjFpWnHuj1CJrlKLOHqW+DUq9YwCgPpWHHABXN02kwALMK12+A5YfYcjuQvCM1vLnynwjO4LMOqhWi45bYdnSB9RFCiYOfUxhxGLOBEveAB48YvjGNTXCKVgXlrdUncLLq+8eAhAHv2F5Tl4wPxpxgcOEwmLK0freDQgfYAHCF6eq9tsQFg3IlaLOMiveEQ4f4WEmMjX2eXOJ8RtyiqLMRhreBB4e4bFUGKTrVqXQrWHQlyLO4KM2jEpe4YAwGWQgS1JAnzar6YLO+FbeATwf4aBEOCov6h+Z6LgfpqLNxuxeAEK8YfF8Otk95sGLo28VbILO4AzeAGwf4aAmODBEbR/9yWhmo2LNwAs+AR4/S8Mu6AHW39JcrJs1UWLOFzHeCcIfn2Zd45GOI9i4J/X9s0LNifzeFh4fnwc94pmPCVYjD6njJoLNyjh+CDwf4SC4EqWvKQVigXVBAsLNwszeCFoftW21YrV1dV3zIRv2IKLNwsM+BSwAAKFsa6Ux+ia5UgYwDKLN3B1eAtIqIQmuZcq2SWywJh7SF+LN3Bt+CLYAAGGmcXQHcJsdhUQmm8LNyYt+AaQf4PkgL3mdOorz+d7jOYLNnah+DFoAAQEniD2MoYp1Tj210CLNwss+BcAAAQGzKukXjmwjTx+4lkLNyDReBLwAASFzkO9Yh8V24wCTggLNwsh+AjQAAMG+yZrvlSX9FS7QEsLNwYt+AWgAAaE5jnFbMnkVEpWh6wLNzmh6VnAAAME/jPmLZwKw8Bbh9GLNwsyeA+AAAUGZ+ZsX11bPQGTJMuLN3aHeCXgAACEZwEurgEtx0bq4d0LN3BTeBPoAAQEb+kndUbQuEJCUX8LNwsHeEcIqoMnXSlvMnowFBqQofyLLosM+Ay5VQZDup940yjju4lhA0ELNws3eCh5/4BmmOVGtJtqqDNf43ULN0RHeCbhVFFVP4WVrDLIh+E5GS6LOCSm8IhDom+ZKrHOxwlzOjFBAE+LLsfzeACB6oPa07XJIwXAmgmxigOLN2IkeEqz78tE7EIpjaIKY/PXyhsLOI0b+CBQSdWMgC1lpyeiUhDGY6iLOEwEeEBAXmNW5T6NUMrzY0j2z0CLN+uS+FQoBhrXfhJ5cTlh/IgRUnELOEwi+CBAB3ypoClRSvppwBY8BNCLLqP9eAAKAIWCQSUrkxPg8an1UfSLMUaxeAAC65ztR67Y5bqbs8dBSh0LLsWLeABEDsWz3qcP0KwsalJgKA6LLsK8+BAFPdAjfQ/kzASgt82G2sKLNDIm+BAC4B6HifxnTmm0P0eVm5iLOAK+eBjCdpQBrbYFJA/XF0dMoT8LMWmXeBIAdD6Gr1iBVm2pRTcQ+liLLqNzeCAILjyq55Xz/RIcxiA7OoaLOKNm+EAC9+idqXsRgcrwQCBaKSILIhYLeEBQNjqOyo2yEkBWilxXIY2LONZBeBAhITycOw540NHW12RJhU2LOPQ/eAg/lkI1Fwd0pClhf/kDfdkLOMJTaVwnu7VsHZl9RKuZBiBfsxyLPmCveEgRZsMQo+JLwB14sQRePSGLNxua+CoAbNFVVVCNWaUWm1W4p9oLOHYa+CCkPS0LH9xCGQTYlghm++eLO7ALeFdIcyipqweqML8ivsAA2eMLOyNTeB4YZnreD/xCXUFPJkUwWxQLN2FzeBhwZH4+lpwpJff4hvQl0zoLOOAm+CAgSj0lL/uFqsHX50mGwEYLOIGM+Fk4HHQsoEgST0svmFfbR4SLN0b/eBxwEkptK6z6WRdOEfIBEVWLOO9neEBQBrrEvaW9FUf1fA5TK/WLMAHJeFAKDU6PLjSrObhzDgT4x54LMKPs+AAFBwsGsO6VtOg8fG82rTkLOADa+ABCw5eTrh2rJDdEAo2iTccLNQSx+BJSktzAaK8FYsCMzYBEkxALNEKa+Ao4YYcHLCdg9RSz7ZlkQY0LMQwW+Eg4YYFnsBtSokCh/GVdBK8LMPRt+BDwYYJn2DbzKnBF9lJBKswLMQwTeFJUIaDPqBrwaiz0A8otQQsLIADS+HYAwNqbpcy7ABVOvlBNoVWLIiGceFgCFZoX9dwyz2xrr1oFkPALMWmx+CAlLvXcEU66K3NuTnUfwomLOMa82mAQLJv8TAYR7wQ3s0QwmEgLMQH1tOgXI+S3Nk0hZjQ+KFt5FhELMMaTeERCSyo0JnjAZUkAazJVfWQLLsC9WmAoLDkibTIMvB6WMfKOc2+LLsaM+BQXHBa7jHgaiHjFWiOnZPqLNyyTeAgaXwcEE2bIWrb6PC8z8f4LN0w+eChntHU82RUdKGrm0nG+RyqLOEJ8+DQ/t2y3a0XEA+UIVSCSi28LL6yzeGBgYeGe5Ko2K+sTp2xx9j4LN7ATeHAIcYCWbPjkhnEf8G6dRl0LN3RVeDR4Y4BFmdb0Y0h4Opdaz1oLO+e1+ALwZyqJet0HyzH1LJpgWsYLN4Db+AcMM4cCCA6TLyU/VgBPNhKLN2CkeEBiRysNovxdISLc2GgbNgCLLoEHeABi6o7CRFmF0CxS7J3nDCoLODDj2iAC7S8Au0o2fpd5jpaazvoLNzAa8IhHqsvMcTBOAfmZNr43L1mLLsW+eCgAA6VD6rAI5SjXna+7r/mLNtv8+BAoGR6VGUUBbk9oTxMx9PqLL60xeECwBhj79OfRsG6RZLjW92sLNxuHeCQABpF4NIcu6MBz8TFCZ6eLLtus+EAwrYEy+EwERqNxFQgIgxmLOGkzeDWShsSCk59zlNW3FAbuwwyLMPn+eCgQGDFP8XsT4drSuA/z8osLMGCfeFhEICp84cFp7fjXSwStI5mLMEDH+BgOHvZC7AVu+QHQXtwuXoiLNEfh+EkAJbsI6UthtWheTdtFogMLLtvzeFggkTpmgRtbI7BjSGNy9SGLL5uzeHBof8DmxhBQpgLnWWGsIPaLL80feGAPacGQoDUfA2+hSmGW2DmLN8kveGYYftDylbzrwXImn/kPGCcLNvYu+FVof4BgAYrZx7pzjBY5SgMLNjdveCB4fy2I+s16JP6ASIYcBVOLMWFe+CYQftWVTYmd00mI3ZlkQRQLOIGG+DAFXHS8Y60NdrxopNxN3EyLO2eKeFwgZnpZnk5TEjGBDMAqU8iLNlebeGBYYTnMe7FML2QtWfUiY6ULMTme+Eyw6nsdnfS2U7IkmcBYu0WLMID6eAAgvHf1E9yYZNHYvFQzQMELKKYv+Ehh5bNtZRk3evOZUsaKBo+LLo/zeAAH7yOKnX9md2bQ0rok0F0LMWFM+BIC1+6V+HYJao1qq8K1H+MLMCPm+BAHd5bxD/4f1yjSVe2x68QLKNMh+FBJMELej+AAQPjpktYSl4ALKKjM8IgOzSyv12fS+VOfg0MN6xqLLtdh+GKRh8WC7toanRlK4PEiFJULKyzH+Hz7GygOp7RSHLfhe676wsQLL9dH+DYYjJR2kQiMx3ooYkVgFa+LN1dH+HXQBxz2guDHTdLsvDEgPgeLN1dx+A0ohpMhTQ/dtFFduUrBg+sLN1Jm+AF4BhMNg+ygZBsqWTTlCNsLL9JfeANogC/+/p2MQZcakQwEYqYLNzqveBwwAAR84Z5OFuhHcypLFcULL1F+eBRgAAL3k53zGzbAjduTBYuLO3dHeCAE+NnpNFwmK7mJ/HAR0NWLMEcKeAAoY49EC/W4dzB3s1mSzlwLNA/M6RgIcoUX5XeDpLtEriVANDOLOMWM6RAC44O08l0hYoyqDSdBZpQLMSbs+AAh9XIO49HSYEEXH7QTGGkLOCHveAQQNMUZjbbOKrcrOG4CZ3MLOC+1cLkAGlXovAriTlv5M/jk6ZcLOGCh+AgPyZNAqdNlf17ItwjcGcQLODIH+AAXOnPSy6zYilJirIVqKc2LMIHfeAAHEOvk4a/jbTSp2skKVxOLOKadeBLoEAY9nBLIyNH9n5Ph/C+LOEZdeAHhAFaU5yNdr3EfJSxAN0gLOMzQeAU4AASEyZ/hPK7JfFxojHULOHnveANYfy2K8sW/NyQc2VY7YLCLOPnxeANMb4TFGG/QsRbzBVyKB44LOKkveAYQ9tc0rQ3KAiD/BtuhmXmLN2CveAuIeNV02fkHAGRyCYpijiQLOO9keANoeYJkmV9GuHhJITlTxrqLMQ/keCew84VksSCAYKeHa6rT+5WLIkckeAdJ5n5+zzespMZ+tirt+00LMUfe+CJeYYVkANnZjEjC43FEDrgLMSke+DNY84RlMQhRYhdvWWYUdbKLOCNxcKg4eYfhbVXxMut+ma0RQzwLOFvreEQ4eylJUp+CQkNxdtPk8jKLOKkxeCB4f4WFAPLdFUj/WA7/gYQLNhu/eCA4/S2NLuD69YS9FrMp29aLMVFvaTgwe5UH7M9fBpz45J5cQJCLMS0feGw4KoAmnBFln8xFL7QYphwLNifh+Eh5ItM0hRNeEYDWlKWTpyULLq0T8LiAVBT63eKqkABkGtQxhhyLMSfzeAtKAIV0mUcHB0RBzUx45mGLMSfM+FQO2pJ1ljqhXqwxOJoUDegLLtJfeEhtArVS3hCHtBMWdtv2xFULLtdM+BglFnxbxddf1yjSYu2PV18LN0oh+FBAJ5KwrbgqHQTiJ2L4W1+LLs0h+FAF74KiiXlUjnVbq6Bga8QLLvYh+ABSDJbir4+7WMVfoxqZyN+LLnJLeEhpEv9mv0k5lj1tiqHxWIALKAkM+BE0y4TjqRx9KaHZSRrI3+8LKPYveBC2b2Z5r4Pdj+ZhpVVf1pULK0oLeBgETzY+zWQxOgdM7UtImRKLKL0B+DAtXzgAG9bC9BSJ9yU91HkLKzIveDABbbaH6MG9jm8ieGkCaLcLMWFLeDASFvjk+HX8HN1fRLUyHQKLMKGfeCIHBLWYkbbO3Ctur0LjtdQLMPN3eCIAmaWIEKFZcQZ/qaVOaw8LIgKLeEBxpFOo9aK9I5uxlHHiIvkLOGFheBg/njwgwwtTAi0AxSwFOfoLIi0teEAKa59x0ricdXz7jhwexZ8LIKPheCBXjswgc67SIdAg5xj29UcLIi0veDKHjPR1tEeRLWwgznoqQBiLMEaLeGgHFNFYvLxPT8uk85rr1twLIG1M+EgjzdkFt8ksI7NZmH5ShT0LMDIzeCAHlnfqzvhGeidzhQgYvHSLOEaLeGAiD5FAreONmg+NgeJZhqALIkWm+EAv1peBqBHFIylrg1W9ngeLIkoFeDKj8iw+vMA/iA2mRnWYBA0LICPm+EIFhxOlD+s5ma6HVmANkQwLMLaLeEAAO5qQlaEYQPH5XKFuyWyLImC/eAAuksJxbFdp2K17ArCOy7MLICkB+EAeCzmOH8Cgwg8rgs7pxVYLIiN/eAAYyxWyV4w1RvktlDVEzJSLIjI/eE6F/3QgSbNkWUaLVgwLOCKLMQK3eEgHV1WtqMt/mECZTEJzJNMLIkMheAii5ctaVAXY52f5zBX0V9OLMWpLeBABZFq862OKnhd74le1dh2LIkWm+EgIrNNhJoFxVLo/tjTixceLImpheBAr/p4WTPrTsCQwZJMyPKELIgKLeEBUvCPey6GuzfMvHdM63CYLMTAM+AAh6/ftrFIIajwz9HVFVxGLMjIheGACmJHyFDBltawIUWTiiZMLMQHzeEAG23vsyPiK2ebwFTTCSTgLOOCLcKgFJaX07mEcv6ib2hgwFymLIkaLeHRAD8g02Ppzt4oKL3EXa4iLOBYfeEAsTjqq7qW0jcbuz74lM8oLOAK3eCAKBGWwYC4PXbEfB8WP5BYLOHn1eEAFF9HA6pPIkkVv9F2EU98LONZX+CBAU0Fs9POIZSGCI8w1vXSLOEaLeEAEmvOg5jNpHYljoF84DM4LMMaveCAh3cW121u1aldganAqWkmLOKym+BAmiX59wL8VeTb9KvzQ7/eLOFeLeCoAIixQkwNpZx4fAYDBaeYLOEaM2jB1X6bZua3XheiNUaxRJtsLOHnzeAAC3nWKgUZ/3+HwKSRzcfALOMCLeEADjzrM8ev3EXscQDxKdxaLODIm+EAibqmpnAuSW56mhjWMew4LMPNM+BAnmOY9ndiOHVqU005I3gQLOEJLeAAd5PXQoapm0z/i2gEaU1yLIkRfeEJ19/tgyC3SEHwfwZ4J6lyLIjAveCA+EZXBmsUz7NwB4Yizkv4LIjI/eEAnGVPJI94+cIeG179laxkLIgKM+GIEnWTfiYt8Bu1Fz8pFPcCLOEazeEgCXEIQ9ctyIrxBWDnHU5QLOCGveBAmgnY5yUbq4/QEM3RuJxALOGJM+BQQMqL5/Y7nUfB/ZS3qtlcLOCN/eCABRUmwQS909mNVEm5hUxoLOHNh+Bgeb7YIm+wCD6/WZX8JBGMLOAKM+BAhAxpjA966sdnwfj8x+RgLOMJ/eBAUZDaMQW7xOtTWVymjUEKLLqNs+BgglF4inZqKPEGEMZOICSqLN3BM+GgihBktqBmo+HfUWA/22mELOxhv+EgAF0ZhtvPJODLr1p5VsgULOHSteHFBI4GhgKimaARNOzNEGuALOCrHvHBBY46qyD0VaWayeW2WzpeLOlETeGIQmMnOUq0DNiuSEBmd+WuLMUY/eGg5XAjuLkNTy0czasgN9UsLO0JH+FggGS5mgwS2kcrelZaRYfyLNkbP+BAsZYfVlB5M4PBho46DaW+LL8vT+FQAH66E4At14dXgORTLa0ALO0YLeHABZMCUjXoaaV7FpAkYloqLN9ezcLhowPy07FTEj8ivDBGy/J6LOLvf+HABJ4CngG98kZEpsiTNq/kLOI4zeCACcXzs6q9djEtjcSFocIKLO8Y/eFYJNS7IYNMGDa0LCYRT882LOMKf+HhxIYAFkEIACZY4Qk0LaN6LNjCT+DAlH6zEsnoHkbRejbEj9gCLOOIP+HAMCsDH4fo8wAKL4Elj0bcLNwdheDB0n+Qs/LCuVuCJtTfYmECLO2CT+BgKve4Q6Ux1aT1IGL6pdt6LMQHh+CAgHtSE5hXMISFrreQBXA+LN0WzeAgv2eY6rJvBsupGn0a9Eg2LOMJfeBhm67Q8ixgmHv0ZRpUtRVWLOCSfeCiCEGVygJgxDE9jVLAmZ8iLMUaa+BAoz2wtKtW9jLOiLuBladCLMKDT+BAP2418s7Svq/aAgjQAjUoLOCNTeHAvqtAgbkhKz4xV/wTgdbgLOIKM+ECNWsPVnH8dCPVKRn8joqSLOOFfeBiHjs4U9TxuODDcFOAtGcyLODIs+ADVn57on6HgMx+8CTB1E7OLInBLeFAF4Yquq2xV+1lCVCm9LukLInYm+EABueOvF2q0fMevq1QwABGLOEcM+BoOQygxrXRTo37VqKZr0kMLOHYTeAoFvq0wAFwW74TIe6WJOEMLOCSveAAHeGfphK4ASD5bzESlRGgLMQYXeBAC6HT1kZZ5plTFWCtCrHuLOKPteAANIsKdkld3DAMNQvJiQDALMURLeAAoWiIv5pXwkbg/BbkBVaULOAKfeAEP9IF4wn5X0kCgSRFFKVwLOMMfeAAA2me0lJzpHgH5PCEdlE2LOA5/eABGIGfSSJk5zYPNlhoWU4GLOO9f8JgBEa7lyV6p1gd0GFn3WuWLOIHheGAlDsiMDBHPsjhLfwIsU3QLODmheEBlDtPyHbALuS6iNaDQrjOLOLAxcJhjreDsAc6fOrVRvk4VQY0LOLIheGAARhnUKwwuXrshVDHz05+LOCTheCAH4SEaRD7PG+IinKjRxcmLOKNheCAClQHEGm6GvTuhS2QkdPILOOJveAAYeR98uynky+DPU1Odk6iLO8wveEssm4NgoGpHCDgEjUsyBkWLNsJ/eApRnwVPKdIfJLPuLHEvNacLNsJvcPhrlti2pZXXvZ6zaHwIl9qLOEJdeDQJkt3TtPxbmjfkF3iOR7ALOjCUeBlBMZ7KLpFrAJF7lURNPSmLPiafeDCUd+3IjGjM/Poe11JWXPyLMOHzeCgtZ5cmqZzlnQccRfnd8D2LMaCLeBpATwZ7b5zvO0kmxvhGQUkLOi+/eGAAcDC5DnqX0HjuZVFbiSYLNGw3eH5IYNQWVRBfnmKoFbE6VQiLOqD/WjMoTj+9YwdDmIaICY/BTyuLOCPveGBAHgn742WWJ7SWYaFDShILN2FM+CEEGzmlvtw1e4I60GBSjQ0LNxYfeAAO5OesrKY9Gt7YuCDm9+ELOPYheEEEiEvcgdt4N6w1RIKOsN2LNmFM+CgHk2wFjivbVKgnzNTESk2LNFMLeAAJWj8m+Xcuk+FuKUGQo9kLOCNM+GAgaT2nzBFux3NCxqVOsZyLOmFf+HBKFrDBtzfOvzHGOODNgLqLL/OheHAxg6zUc0iHHL3WjsurmlULLnnfeGhBgNF+91zqZ8yKKOvwdsMLOi+f+BqlgS5vkvLQXJ+Ts6/7Vr0LOELfeEAAdSOuCrjdy77D1AlvLrQLO++feGoSFiU4/5GvsVDxHAsAnD2LOJYLeBBgcsXy/B8fdwm0h1jQliCLI0ateFCKDCqLplaiTNUSPrgLDlULMJN9eFBQZNK1vecMdgB3KUdOhueLOkJhaX54YSnIK6XweVoSLIKr5p8LNkKM+FdIYSiNkqqrxm1X4PBJH3OLOKaL+ASwvH/dOe3UGVQU+vI1IVwLNjv/eBSoHHatabwUcOZXlKJOBbELPlEU+CQ4GGD5SV0wl1nyDsxdNUELOLEzeA4QGG90ghnzhX+bCx4/xfmLOFOT+AxwBhd/TJqZvaYa/3beUQALONOzcIjwBh+E91tR0EifAvWex7+LOHnm8OxhBwnhEpeMwZD/B8TGgecLOCNuaRAoLBeIxBEeGDouWCBgJrGLMMaveAAGnj3Cw35xXgm21w7VcaqLMCHj6RAi3YfYqV2hVKpqatImPAgLOFM/tMgH8G+Y234FEMKSJ6v5jRyLMUaj+AAH0x2cz75I5TgdtJuJNTgLMER/WmAKcYIFgzuExLTsQk49hOcLOGRfSzAiYQ/ukE3ZiSjTM4M/v7kLOJDe+ECgN31EtAmYQiiqkSbLXTCLOLvb+EMIHnsqFGYfDujw2V2RsTyLNVCveESwHnnSqqQ9aWMyf68wsrkLOlE/eCLwHnwDTJWScLiUXVJQR4GLNkYveA/R54dGqSFYOxQyKLABOzULLuoveAcp5nsa/436PjnN7MBKAaSLN4dFUv+UXnrTBUb/3wlOFSMUCf4LNkzmeFNZTyoDWyDnH+b9QTPKxUgLL/R5+CdIHn2F5ptfqYbCc1Cx7yqLOjXH+CR4Hnp9ImEtDMt2Bc9qUyYLNRNKeAeAHn35b8aI/5Rvr0LNPAULNIDdeAeQHnt9f8UrKIzqARh4WD0LNoDl+BeIYHwbh8j/PSaNQuGxR+YLNmuvaR6QHtdx/XNKJRzvlv6IcxYLLoDVeFWgNNBV1Sb1tYOFra/gpLyLOjCM+CdYSny+r6odgDVsfEY43pkLNqadeCaRXy2viFAXBaWMRLEc440LLsLFeAvJWy4DMo9TwGILPkE8NQsLMOHe+AY4vNeDVWJ1x5Vqd9G86KwLMG/6eCAxWHW+7cVmOcwg5mCYqwoLI8JU+CByvPX9XQxF+79PXl3mAFGLImBj+AAAMDz85PwKfLVuU5DRYNcLOAY/eAACZt0zAPzkgpGaa3R/o2ALLsCfeBBiFlzy3Zmd8HWPSfFpdrgLNEfhcIkIWjuuHBDS7cOs6DcsyJYLKKkveEAhTyiX/1sMUHBtI37BdVgLOIHLeAARRtAUmuTsRRbSL7lrJP0LMGmT+EAFWxrm82DOu3h+ZfIGcSyLJ6Cs+F1BYYIk8GtiuAJGOGI24UMLOGy5+CFIYYTj6Ri3qSiKHUJWJOSLOBDbeAdKQ4PHWawdnZRfyOSxyUmLOMzneBPVM4SDQBRYc6IjY94ChgSLOMZveEtYZ4CEsxEI+pDGX1K56ACLNczFeAHoZ4OFeERVET7J9U1zoFULOMYbeGJYZ4DDKFRVmnsMnq7/cWILOI4B+CZYZ4PlCLznWGq29FU1N1uLMPQbPHBCTYzHSP2v7vxxGy9p4I2LMfn5+AAGHtfBhNv68RcaBYhcsB8LMLIbeAAAYy6Jap/w59iBqp1JKHOLOEM3eAAgwZcCXErXrM9K/HhB3JWLMGp9eEAAaKPn7hJpVJK2vx9HVyiLOOeM2iBAY4eFuL49JVGEJZ4QNCALOC+feCigKDVK8qUSBN8HqVpuNCQLJsxa+GQqQ4DGURknOmnrszAUFnmLOkzm+CB4YNbzdFx1z4W9kHfeOCMLLuDdcOvgYYDj4BPJmz+BjjxIvdgLL4Hh+E8qQNd2xWGkknEW+QYyo5cLN0CkeCemAYGD+EgF6iPD4sNuxNYLNyHTeAcuAYcGeAvXvwsan+ysIhuLN3ds+E8cISos2umvx4TFbly6QNCLNikh+E9IYYFk4OKvYBatFFZac4CLOzATeAYYZteSBRZOtp34Z6jZFH2LOzAh+GcIZ4CCsewgCz2FeyRjo0OLN1JbeBS4Zn09V7bDQitWiJlKfN2LNwN+PFBgZ4aF83nj32Io9x/RRrgLODDReAgFaFl5zjBvgUiRb5LDYb4LODALcIgXDArO9m+iCE2z42uxgD8LMD00+EAANnDpLjiL2oxw5ZhzU5ALIgAHPEAWGes3Am/mBAALRYSbc1QLMGwdeCgEqtVrvj/r4D3EehVQfTsLOGBj+Fz+B4AgtFNlrL5Be86nCWqLOEa9eGGyRni4ftHBpyX480utRf8LOEKb+E3gZ4MASHLvMfOFCEGgsgiLLqNoPFLSRn6ft6ZRG5CHqFAmJ2oLL/Rg+GB4YNHWZWFVrwuk7zRlI0+LOOezeBJBdNZU0TvpKhQg2lTkA4aLNCbweAADf5UnG9FpYjFWaYRUVkmLOECfeEAOkpFG7UC//gOX7kFZNqKLKMRM+ABFV9xn9bOo9qU/XSPggE4LIoA/eEAYYNCD/jITLddpwySaCuyLOOB3eAAoOF7c8datI0g5ILqq1I+LOEWtaRAiUWuRg0VKWSRkhhLBkyULI4H/eDI3yvQ9G2RuC8fN8jn+S3eLMOAtcJgHnsj/oFFOX1wsiAAm1kMLOMxfeDAhZDmU/hxWlMhXAd/0h6CLNirheAAFOn6SA0O7XBI8J6eZtbuLJwWGeDoIHixefXQgukR6Rx/Cy0uLLGA/eCIYNHhfBk3DJouwkRg80cWLJcaheFAQtnKGFohjyM6DXmFHFk4LJ6H/eAAJCm8lcuEgUMeZ/K5yTlQLLAAO+AAAHnr9U3ff6b2kUaJbATkLJ4E/HmIIYNfR7YYe6OAgOv2UHnmLJERO+AACnFxLbG8X3aGAdUiaIHULIq0vcKg8j7Cfy0Pgb5bPvbfzKRgLE70vcLo8uGTxopS5Y2HJP03hS3gLMWzveGA2GYHNzMGcV0JXyeqgmZYLKKf/eCgQc4QnKe07Ey8FwL7BBZMLICU5+CM1t68IQSX3IAaEPAfVPF+LMFM/eEsen4DDqVGOF5yq+9KnTn+LIj0daVwCWnE1FKqQWjohrAiZ3aULMURH+ACBaWzNLrXA5iHbfBscJuoLOED/+CMi74hA4utXH5LgewKWuhKLMYAe+CAK4x0xtdZ2Ox+Sgw1fifCLIhubeAAKwl8YifOJYFR9UjCrIh8LIkaPeABD/XHOSH7NWP5VDyag8L+LMBY/PFBEqsYLEa0zG3ojMltgs9ILMGm/eAAmPSczXxKoI4o8rhG3yZWLOERPeBEEgkAgOw5scL7MJzpN5j0LMRYj8KgAAn7426j3dtQyOcDSVCALLqk3eAAqpD7qPjSa+rZMYx9wUBCLLtMheFBBDTL+UCjsuRS0ueYss+ALK6wveEgAeYMHp3tfG9elQ/HvUX6LKNvLeDACcYRmx31l+fVQ+QJkrIQLK1M/eFEKW6LnKwN2RfRcPdrAGIWLKMcheCBCz4TMYFkiQKJAR72ri7OLOAD/cJgOlxipaOUWfyeEKlhCdsOLOAYLeEAAGpmpX6PbSatvMjzCxRwLOCNheABDRPnSF38GfL59x0ZFmnYLOPnheAIkp/esNaJ5jlctIKzZttmLMQ//aRAHsAOtNq/fSVZYmcpU5D8LMDD3eACC4g76U7GHChDVxxb3j/OLMAKveAIEEXdrOcF0feGJ+vXNYyYLN0KncIgoNX8NV6D8qaRJGPxl8HILKIY/cIoW6RbvNk+/RkRpw0hVhHaLMER3eEBoTOJ+fSOx1qeqck2NyIwLMUR/eEBCFXNFMYq0s04E+1yNfk8LIjAdeABhdTsJFtorYfDue4w9qJQLMHC5+CCSIqQhxYW8PLZ1iwl6YaSLIPaHeAArFvHb8NpdwTnRIb9pt5qLMUWGeAAhLB5kWRjmuOqqWKzF+b+LN0f5+As6uq3sLCz9UvCmrUQUJnILKMJ3+AB8buf0bwaIqG0JEO5+3Q4LLs/5+EAJKaNCE/cv5iEYM9zz9h4LKMJ5+GNJO5GmaE+PCKyoO1v918aLOGJ/eBDwftPxFW64Az13jZN4KukLMTA5+AAy1SitWUMZqzsvnuzHxVqLMGC5+EBzJ4vqIEaPxbv0Hsk9sNaLOOJ/eCASdN21Reqq9Gt3gSMH9D6LL5h/eGhgeYBnWD9wyMBAMjNhhRGLNlMheCB4eS2Mc68EALl3l1DmCC+LL5h/eHYUN4DlKIiKqrfknw1KHwuLKIh/eChCx2lp/ZQqgexuppVYjwuLIENdeAAWPU97WaDNWBtFH51JAMqLIvBhPEAfJ5aOVcahFhVYm6aY57ULIjCveEAA8cdxmHqkebzGI7HRx6ILMMC3eGAlaNSAc9BIjN1u0o/XoYqLMK+heExgbwtWH0zYHzhwG0B1+SMLOEwzeBglYFomxEzaHoe9EUGXuiOLPjE5+AIwn1cZ+EzMYIoLwpsLUA4LNya5+CBABh/JvTwKkCgq2jrhCG+LNjvGeFcJgHr8f4Y7OSwdjZgGyviLL+/dvGghKvdXE9lSWI+Aa5yXU/aLNtZ/eDRQf8RhxDnrTy9GEC1C+5KLK8JGeDFofSyuOsMLGDx8WsL9H3aLNqr5+Ahg2v9cdB1yvQjmzVC8lBCLOCb/vEAhbJcyzM3R65D/jXcgNzyLMD0f2iA6FHv8cCBqqP3QLnC4/Z4LOAEHWiAP7vJa1NKzLp53SvwasBmLOOg3PHgNkHR0DPs0r74/jJ+vfb0LOOoheAhRwHcuQs1sq9//x39ka5MLOC/heEg5lwpKIlDXGsHI2NHgZKsLPmI/WjAv/7aLGodxCglJ7Jrb2ykLMTA/eEA4YallYFKD8bHGPMalNYMLODm/eADgcsop3BWKvpzPVnlAaReLOCH/aRAL9qdDjBXkh1ODzOg2FE+LLsc9cMgATmKbhln6Yptm2EBVILALOEaPeAoQHk4QBW4N12C4XF9jP3yLN2k/eAg55wUNC0/3NP4AQHrAv2KLOOI/eBMjn4zVSOom4Swkh3iUF12LKMQ/eAB4GzNeqwIJ/HHH531wi6ILOCT58IgMstXRqSDaRqy06t9OhaGLMFT6eAAhTQQ2iMYzrmbtSO1ysKQLOAY3eAAQSytAFf4Om5I716j8XiYLIgTYeEnepYNJcCORsWuXQBrgXfeLIi+3eEhc7cJGHLnldY9l0p9aNDYLIigLeFCZ/cKhRFxgu8bqt0QCtC6LIkiLeFIPwyphCBA0d9F3iSDv4XoLIFv/eGDJWSjvAbrtERd9xks1YcKLIkR/WmAHH0K/KCH8BkrnwM7Nfx4LOCjvLVAihl2Z6kpTdgzw/HEPnmuLNBFdaRAkDkNRRdSqD/TeEUo4w7WLOGIheBAxzQaGY2PLVTfSTb+vJocLOMzhWiAkay/EAjfPpDNbfS2JZl0LMWk/eBhd2PhEPpNs/Cly2CmY/UQLOIoheCgJ5eVKRJ30u1k6t8JJpvaLPFOLeBCRpS7ImtxnXzFK52MWxxyLOSEheGA5y4iGSEzoB46Tur9CUGeLMNOheCpPmYVmeBEdijLCFgPWI+YLMadheA4x4YIGgY16ufniSbu3X02LMNMneAQBSfSvEi6HVL85mIpHf6ALKOC3eAAADDau3R1eEYcOh/3ZmS+LOMK/WnhhTCLdMMAnzhRdS4lecnALN0MB+BA5CMqdfcCRRELuTzHH9QCLOEUveAAIEEPB9x7XHWzAn3lcE5GLOHNm+CAgogkJsV5YWYTDWU4JzdgLIk3/eGklhaAo2FRqN358TDC7cESLMHK5+GgInvML5jRyfEwpiimT7h+LIkzd+CQ7mSWPA6I0kSujoSgAEiMLIg5d+DQhuNy3bxuiJwRnwOv5YZgLIM3/eCNtjZOC4QLq6sD6+DYE/ZkLIlMPeEA84Stoe8OAGk1VmihRyN8LIhuPeBA7mpT2dEqDab0C30rC8QSLILMGeEA8zHuqG0cFMpm5eIwXicALIkG/eBAWOdRJ8f4DBaYxLa7F13ELIEGe+AAHGtwLtrPJPCwc5hYBw4sLID0/eAAnJJgKrezyT59N6IStUesLIj0GaRBmh4UOQ5vMEubeHe1UbLWLMQA58IjkGHn1F0W3GScMThOUf9QLMG+/eHAx7YCykqjPH/AcddAleiMLOSd3eBZbk4GgCS9pW1rnA7fbX7ILOFEPeCBg2RzqdjfKSlXe9IKqTqYLMQ1GeAAh4Y4CMN3ajXoTHSMGEUyLKKHO+AAAN8Y3cCia6QnjY2v6gbQLIiS/eAAY6yEMsqbRIPemUpPwrm0LMHB/eAARcwk1pErtniRnJxDmrv0LIibPeAA0vyJA2Ylppm2Q4J3pebILMDmL+AACEyz7dIp57C1Bx3UzPI0LImiheFd7h81gXb6yyHILP/tX860LMNEheCAbzXMoV82rIX2iWjy5PhALNG+heGorzYECWFJdUXg3DCLQNTgLOFE3eFEpm5iGCwH/kZ+G4HKQ1UYLNLv/eEFtm4CFcPPd5+Z0Z9nJR7CLLqgveCQ5ncWnrI9f8R3yQlrsa1yLN6N3eBcJmYbgMB8DnrBAAlBmElmLLoT3PGL5mS3uYogJUe1xRfOhfSYLN0f3eEB9jYfkUFG4YbTi6QZ/BK4LLu1B+DAhmWzIL/AYZWmm+QdIWWcLMKS/eBACXZQn0wB59OzN6nWEFg6LOANj+AAk7HMQmyV4S3hz1Mn4N2yLMQqj+ABC5YNEiZ0nuGGw7NnEhugLMEX/eAIHJbMh1YzUteJymX1jem6LNxG/eBgVOQYkXekCtrJHieqvMF4LKPELeACptnbfY6PZJjK7ayg1uG0LKPnYeDNp5NSBIW84bzq069olJHOLMUJdeDQJ43SPkz7ZIiQ5t0ooC1CLIiGx+AQxntfx9QcYBiknc8TAiPELIjv/eFoOT4pZYpJXbSSwavW0hPwLInqheFp/h2EEbUABkd7NzMjbtZ2LMPQB+AEphn/4FeWOUbWjZ9zLJ+aLMnQB+GA91GCqQ9HMQ/ScMjQ7JHwLNxE3eEloxWpMXonmXLh14npEKDCLOmgB+FYZknIYV4Kmht8LYiEh+YMLMFaveBJIftRztYRfRXtDSg1eNQELIGE3eCAF0sy8F/i34iqTEn2AhO+LKIlO8IgHM+nBRD8bAvCQO25TJCALLtT/eALC1SqrihEWEsv6/NyV70gLLuF/eAAJZXsrhGAxKknRgXiKDhqLOCNL+BAVUiiLb+phMSLNMzoBo3ULLqGveCL3jQ3LLFPkT/aIlQ3xvw+LNW+5+GAjBannmlFqXtrtxqcLJnsLOMJ3eBnhh4QASDZoVA8BWF4cVSKLOkJdeBejrNKRvUmhFFFzSEtp97sLNWH3aTn1gtFWVe3O6R40nfxe2VkLMemheFw5AlrUf5Q6ienic52pVRuLJ8L/eEACrXON8gpRLpdMRAAsp4ULMY/dcMhDidmtMQbbLBEghuJdy+mLMENveAAGuXovs08wqiTrxDSODBQLLqHdeABQYCkLhB4AKzW5gRZ4Jy4LOGkQeEJw0x5KlALrBbW/P+NGst2LJrve8KslGm3TZw59cHBYA4dLqEiLLgdOeBeAHn6Hf+pTjreBFFfUA0eLN0JdeBawHn4F58gA76fnf9Pcpo6LNwrm+BeAvNCH3dYqFBgZc/6/oN4LODmveA2wHn94ifiYonahRIRREgcLOBNX+BrQvNBytExcoOqt3QmJYP8LMOBOeAh4YYUBAMfhwOWlctB5kdKLODDu+AUgYYSgUg+qJ5PUeHAdhzWLO0MX+AwIYttAxLRDZ/pnyFN/FJOLOENuvHBUJ9TgT8l0joSiE90gKYmLMSH/eAgqTyhPY9FkiKV+WCFjjuQLEJHwcIkw2b+RQpD8d4yC2htzkkuLIjbU2iCB5/d3ameWD2I0rWBriqQLIEXzcIgOiYXCbnMszxh1sUD+5h4LMFTiWiAzQmqcxaNbHXBtRsiHlpoLINTrHmQDzYUCLBg8VQFcrTNN6xSLIgCOFuknm02Bvs0Us0vRjADVlciLMVT6nmANID1eUWQEy7Th5b8FttMLKKAOB/gKk8fZjqab6vBQ8wp87gULMSKEpdkqW4VhgOWyGva5mbgGbQCLI1TR2iA5D6JAcMcMhHfKp0VB2vKLIj0OHmACHS5VgGhTa0Uth4OHd54LIr3OFugZ7eb1q+JZmHZlmQaaAsELIn62w7giGEvwZBul8auQa4alyneLOEG6yzCCEnsI+KJZRWxyPQiTA+ALIgC6tMla4SSknqaSNXei0r6ZNeELIqbOLVAHFy0no71CE+HAun/xNjgLItT2w7goZaP2AFbBrAr2FaoBb8qLKMGiFuklSpdm5FyZY4E/TbF20UALKKA66RAq/5nkPBnvIojSj0dxfYILKNT5luhwSS4nPIyGo8oaKDxgemkLMFT68IgVSnr8g3iCRbQd7h7QNWcLMT0OSzQATysHiLNdAqcKq5A4aheLKIEdyzAgG4NnzF2e9wYNHT+cDYQLMSApyzBU32tqHgxu7e7UKqFUrBmLMD0ltMoIS8SlEG0ulcHCavBca4ALJr0OHmAFWF4jp2ao6iYrbylQoqSLKPtONMhFLGin+CzTi+HKZxu5eVWLIrbrLVQKCH9qanUFmM5qayEmoDELIokOaRBgSyELwxSrIQZNLVfiMvgLMUY3eDJkDiayRN1u/Ak1E9/BPvmLJkRd+DAKlnzdblTywTpU3lEbkLwLIuI/eAgKkn/fd1Zk+07bbaZEmLcLLtMheFAUINKyUSvyL9ITVGc0wvMLIAs/eHAU7ghlCXCoOY8n4duWIMwLMAA/eFBqVzqJ2dOC9zqxf/cP4JuLKNz/eBDGg77VRbs0g8+gpQ4s0eeLJoK/eAgGr48LerJpgdPOVGfcMvcLMRNX+CIAYGm61ly9pxDrZkLcIkmLKNMf+AggjrWWSBQJ8avT4l4HORsLKKDdeBA7hpaH28CGlVmtRBnrlGkLOERveEgLUPP5FOs1AqwBnkbjUIcLLygfeHBMCSDu6rRdVEyQVqtMt+6LLnR/eHAYGGB/zPB73X7j8pDkQcoLL4r3eEkgGGcGVF1ClY2Opb6DrJiLL+m/eFAgyTpvZ077Zs0MqPMS8+ULNwoM+GAhGOPpkStSoHyHXYIhAh+LOG//eFxyDLcBdIhIQ/JQdF4XnswLLYom+CgAQyYF2J1NnEnnQzbLKcsLNXnLeBBFNcfm2boJZLJRRk1Z8nWLOLvLeGkIBEATZ8GihnBq6XTGSeELMG+feBkIAF4O5CRWNcaBsx8bAm8LNbvf+FgkVOoTtV9KcwiozjsDiOgLMYo/eFgIAAKEZmNOw/mKtdYZ8LMLMMzveAqAAAaBZlfkzF/XtAQ4YgSLMXQLeFqQAAIFdlJ9lO65VQhBTJGLIm/heF0wAAMG5hoeM8gCedUZA5ALOOI3eBFgf4ZkSA+suIFyyaNTnRGLNM3GeFANVVpEY/QCYaNtGFX7ocoLL8fxeFCpMyqttnPwzo+ubTK4phKLLmJveDw0EnRerUUcYklz70RoS0GLL+/zeHFYVQDE4mgZlJEEFqx0REOLL6yj+GhYZjoc7pHDlUx0nk0G6G+LKwK3eFAYZ4IGGWtEZ0WEm4SU9i+LLoKzeGQob4eimAiVd3D8fufgXaALKKwLeHBCT+y1EytVLHu5AG4mcEkLKIeB+HBCwQjgOrGpprQHkNPVu/8LLtM3eDUMINQyVaQuMhzsOPTpliALLtMYeCCUINezVfSuiE9a0N64P02LK2pLeEqwYYMnUVgEd6rkUFcOhoELLo//eEFoYYLjAFSwmzMXksATZ3MLNyPmeGpeAYCBaCFnmzYQHZjMQ8qLN2e3eAKUIYLiIWF7Rk/wIKW+Rq6LOAHYeFRAYy5PQLmAGtnv/FBUpdyLNEa3eABAQEfGMjyDhuKNjHx4d6kLNCPvaRAYGBfv9YCjtVKMiojZjgQLJ+Cd+EAAHvBfQb6hVwlHshXRd5GLNWm/cMhJXzutYhIsh39oqdot1nGLMqa/61QSnSHczr3IgE7sEUErygGLNaa/+EB4ZnoYh9mxLa0PBTlth6gLNiax+CJcJNQx/BmB7JLtdOds8qELL1e3+ELQZGvcayi2TwLXs2dAHr4LL3Sx+AXgSyyruh+0ewC1ARFEKZWLLkJGeECQG29UL+ECLsXy08Bx1y6LKwsVeEYYHnqB423voPaKrRhVCQuLLtee+ChxTHz3MMw7fi1B0blla4QLOKPGeAACr4aoZTjCg9QurfoqUlWLOECe+ABQH06hriCfKFgDt5eY27mLMYHveAAhleZny01cHznnVLnMjBELOHN/eAAyGWN5Xu0N0H1BwVoaleqLOMDd+AAAV4vZTFU4Nne7Qc9A7JOLODCGeAAyBDmgMC9O/ddvw8Q31O8LI6T/eAAhq8sMiW8Y3X/7iJrFyQOLNOR/eAAKDZenSHoVacGMxUKvtQMLJtM/eEBgNNLXFZkTfVxFVBc/0NOLNVZheEAAYNOQbS0/URRB9tEolZILLVzheAINdIXAClc57DexDcEH2BQLN0DheEj1ZHsabrJMmsdPgpGq/mWLLrw/eAFJdS9PYi4NdUornd87Lq6LKNAGaX0AYa0EG6gVI+J04NR0DVMLMHwx2mg5dHtfh+cMspDqbrqYNK+LLpY/+EgADhqi9ZZsW8xQ4wUekGYLLo1GeABJVyuCSzdgfnr7iuLicMOLNeu/eBFgNXeLcg7HMjzAw6yrkXALLW+/eBLYHnKJApT3T6oZPTSJaWCLNQ0YeCNIGGP/dnjAiRCBwr2ltasLMe+s+BJxSSZuyG63jOqOhJlR6pwLKKkOeAAaEZb3JWOhnAbww8CxHX6LLeJ8eEAOCAuP/HBywaSdr4NUZCQLNEa/eCBhxtX9G5lZPllC/kRaikQLNkI1eGAgRwnEet0Z84KJbszojiILLowLeCBABB+DTaz/J7hblsKLohWLNwFH+CwQBhwEERko8hhbrW4jNY8LKOCa+CQADJuGKKU1iDZatMjIPa0LKJYteEBCygP/MNOcwddDXHZfOMeLMcb56TggGtV+Wx1v7rPIb4y4WtYLNkU3eCBCwxEkcyGZJrscKDjVhMcLO4r/eFEX+Bn50Hjb066KvdisEx2LMGR/PFiJ9zBzCg58bQ08J2iy6iYLOMKdeBBgGfXlqj6INptdL8m0k1sLMOu/eCACtj2nQn6L2MAMyiKVgcQLNwdx+BhlKHUl4D9OBd5WgIw+MMALLoDdeCggYcVT+16YXUlkjS/gRtsLO0adeFAHd0qBsPAKUih8gMKBVnSLO+m/eFEIbYLBU3TAu9AUqcTHdheLLoKa+BQYeS6KMqCTyBVYTgRIpHmLNyPdeGgIhwAPonPAu/C+RgDgBrsLN4KM+AEgeYWCmC/IozQLIcpyNnsLLqk5+Cg8PH1eGdRp68ungjxGKnALLuF5+EQSTHvf3qnOpKis0Jfgt3WLN3NdeGAAGGH79CXXypegPcuOCbkLNSkGeBAAdYaEHfFKPubmVnP6jL6LLUcv+CBIDj0rmyW8YEXG79PRe0wLNIN5+AA4Hn77+yfAIpF9YwLVuCgLKyjGeBAQttbmcu5C/gVY6JxkL+uLKxb5+AAn64oHiN3rNCoRt8KcLvKLLrAGeAAl978mGwj/2RVPJkE4Uq8LK7Mf+Ahp5nh+Nt8n8QVJbTuxb2oLLscfvEBTTy3sJi+oEiO2hC3RCNeLK3Bf8Ihp5y6sdvPSl+jtLfBK3GwLNDAf+EBJTSPqUm19bQp2ZtFCtkgLNSGx+CAhTJHh4V1a8l7dL66cjBKLJ58x+GBoGmjTxRlatuvRkMj8c1ULMagu+BK4Hl4CbmTAqLmbnWyQxAgLO3qu+EQcXzvoSaDh28nPWFUDDqYLNgo5+A4YFl/8EUVaxmp4zB4nNYuLLTfx2jtBT8Nl7Q8BgpAhMnTE1TSLNLRdeBMaEQrt82iXAdvuCC8EzWWLLqg5+AB4Ym+yTdbweiSYyIEQwpELOmI5+ASIS5toErO7BH1HiWR4GqWLNm+5+ABwYY3kan3IQgvUcEsCITILNnngeAB8JyWNksrO5GpsiSIpjXoLMO/58MjwZ4GGGA7zBH9j5QTzkYCLNjvgeCFoZ4SFmeUlgelw03NxyRGLMUL5+BD4Z4aGMOEHjIcImdVQAGmLJ44geApaR4Mj4URdvzQZgNZuUcsLNGy5+Bh9M45kELx9Uy3lFYHwQLyLMOy3+CBwZsHyBYw0rHUTtCfjgoMLNszVeCLMMyzpursUCtmpLSBQtOqLNTIf+AQ4byfOQuMdpgEpWOdIg9+LLcbH+CJ4aTnJTj2R5lja3Vd4r/yLNOCf6TyUPWkaW6amSdiytKLMTwMLNiG/+BJ6WnW4t/IQZHtyTzieiA2LK3Nf+EBa24OmTHGpcxpQ02CLq6OLNEbdeCAoYYU3b9wTCudnSSNAIuYLNuBf+EBQeOL+ButHghHNO/qC6UOLLI5/eAA4eHLj/deJMX4DtaP0F0iLNiSGeAgScS96JC1ijyop0rkQQxYLLA1veBA8LMKNzNJjuSnmHG3KojaLNLMGeAhAUw18chK41V5DMenNhS2LLuFdvHQCd6QPIjw+dvxxvq/xzsMLNQK/eAgNa28f0LZePKqXaexE35kLLUaveABC48aVkT2kWy2obebxhdcLMU3/eFAoWLp3EFnIosas6IlMMpILNDIheCABV43mMPxUehyWFBdrUSkLODIM2ngGsDoB3TZOQIhUmsOXJsGLMDI3eAAHma6iDf8nKOGBtr1tIhsLMCP/eEA3MOqTIE+CYeC4rJyD86SLIMU3eGAHZjESND/kVOAPxflycbILIkaveEB7B+tX6CRAxsG25CdT45MLKPBheEgluYVmKLpdiB2jE4MIh1GLNph/aTAlcyXhCFv3p71ydFi/ch8LJyD/eEB9ZYupOYGZNgTU/u/Q9iYLJM0/eBEqxSpt+IbanwnDxFzOozMLILD/eACkMtdx/4dWBBFYeTQakDOLIkc/NPinR5SBb0X01jGcwd7dWNQLKOp/eBAK0tQ3hb565kM+Zbx15QCLIgKGeBB9oYTOb4RmRbWjIA27MveLMSGveAEmaRv1wsP9ucaaV7ElDrMLONv/eGhAo8QNTCy9k00QLmXIJuwLNxh/eBBZ+JKjN+5uUS0eM/Bt3rALNzN3WjEh/4agNI6xI4tXyDyWJ3GLLUc/eAAGZ19rnxzj4Eczsz1wZiiLOAYGeEgCnngAPyobpgdbYEYWqveLMUW/eAClCbXnZxnGLZTXAgrqzvoLJAYGeBAAW05OOznm2xekJaew+2MLNu+GeFC4vmpwPYfndEfAfFAqv6sLMELdeCIAvc+3wnToIajwyBhyRjSLMUL/eCAnRNW1XVW8qBF/I6HB4X8LMA05+AQZ/yYKMuflLdq3hnHIdFgLMLvveEBcqr2U8qJ0dWs9URzr6p4LNyrT+CBJeU0sjDvQwEHomrlCwlILMKgmeCAt7tWDdSDxt2ME39DcXhCLMOILeEAC2IKfI2N/RoegaCqPu3gLIo5vaVIgZme+3VsrNhIdzMzpdrELONEveEAtvjlKxfemppEEZ+ChcoGLMXRGeCQx6T1OWo2XDv7jIx/Tc9mLIqDGeAAoWMOiJApV5UWhTRU+H44LODI/eEAhFTKK81PqDLorYcU0XigLIkLGeABh/YaESRsVg9GlYliAdAQLOG+B+EwBE2MUKeJ+EfpuZsV8PZuLOGo/eEAJ5T3rD+PZvMJ6BG3mtVILMU35+BAD+QRuUKLd2xGYhQOA0BiLMMC/eAAQOk2nwavas+vlZZZkSuILMUD/aRAG45vnMbuLc6WJswoVheeLMDIhWmAQSjmWYF6gdoJPf2QdxXqLOPnzaVQCa8N04SL7nfAB4nASxSoLOP0/fCZ0jNjNaMh8wgz4R+AAH0ELOCGGeExR4lN6Jcgn3YyjeXvUVr8LOGJvPUAr2sSzlEY/rZFgY9bZKG4LKKPGeAgQ4Ekmak8vwK2SviQvNTULMAHPeAAPGSpGCG/VDTxuQEePnwcLO7Ia+EA6J0KwYiCBk/fkywBS3CALNGC/eABPw42O2DKAgsxEy1VxZnMLOGmGeAAQBJfYaLx0q9x83eK9rxeLKMJheEBVDYHmOr+AYUY/Hov1R3ILNwK/eABABrbFL/89dV4lsE0JK2ALNHN3eGhC28w2OZBY6QJLzX91OzILMay3cJoKpJbEBZJzxqAqaA0Jy10LNAA/eGBALDh7gF3hjNAo+WeSPSQLK4qGeAAKUS6UZLWF0EBuqv2kSY+LNkmieAhYhDYU3CQwfX22t30H+WSLMbm/+EBBUItuhPhy0jE1lzCWTL+LLq0/eAANbYZT9kMx5kyhXL4XJGALOJDx+GIwtv9DjIimWEXllOzOHIiLMo5deBEPmbYJ+DITqsJbTgY/r+aLOkzdeEAgjD/Jn9zXFLbecGxYBOCLOmDx+EBxg5uB6XqK6VfwezE1dqMLNCTGeAABGr0WVSv2MZBG9qRQOH+LOFZ/+AAClpYChCj/vuzue4AhjD+LOAdYeBAFT2zLQca5x1cMrseNUWWLOHqf+DQhJ5S5gN0/5eXAbD1LMDmLPDE/eCgd0tEBTPRLAGw8rhtkgioLOEx58IgBO3J4Ov//Nr+gPzdMHPCLMWA/eCAFFhXPQo1gagOlxfTFW9aLMUideCEQcBntsh1RC5SZaKQlVtQLIlZteGAHfKDnTrzyFuZPY/8MdCILMPq/WnjJaY49XXh4gqyLpmJWShuLONOLeEA3qMLVdWlc+PKRNSACouOLMfqdeAYdg4XH8Q2O4U+FBVkgJ28LMUfdWiAxlrLfveOL8waNCDavXx2LNkKGeARWOsL2ES6/JjrzioTaGn0LNGCneAAUKZenTGkmrpdLjVyGleSLNzI/aVgQWNNxJXySaItcWxhxaAiLMREveGBidwDezPxQvTh8hjIQ21ALMdE/eGIAs7rHCuxzmFLpakkf6qCLOExdeFBOz4Ij88p7hq7YdT99K62LMI0/eEQIogPfOa9fpBbgUkYPuZ8LJq+/eCAi8M2XO3lL7SpeST2BKnMLMfnX+FAHE+ryguT4A06OKmDqB0YLNGI/eEBC+uuXesoz48gE/kfUuEWLOGCX+EAgS4qCicuGMAYDbIM1E4iLOmIX+CBB3kGa1z4xQSb6XypDpvmLNAK/eCAgZ603XhjxXMT1mBKG9vkLMOCB+EgQZcRWKCiBczk6TZidkZuLLvns6RAWoSvC5w/oMFHSP7eryu4LOEaPeEQCNMjSbh800CgveOTmbcCLMUMzeAAIbpW2hu540FUE0GgWXucLOCg/eBAATLa5GaEhRlsij8ZKOOcLOFvheAAntJ6QpInSD1tlWKGw+e2LMMJ/eCAhqtxfBcy3UazFyCIhLZYLOGJueEEIGNOwcRai9g4swHy+Y7YLNyys+GFAbMiS5YzkpEw4QXqR8QGLOG+/eEgN6jdZTHGGwtUVlWknkqALN3nveCACtM2dpZJtNCvDRopx4jwLOGCLeBAXvHaIkqxnEzlCqHmdIeaLOPn/eEAlJNqEEcMN1tFCU3x5g9ILOLv/eAgAJg0nDBMjYARZx5uB+aaLOCyB+ARBUu/wZTtGkOuS1iMZRHOLOLHH+GACHNiG4fqLQSj6UlI0KlKLLu/M+FAi8YLjuFsMDiGYIxW5c1CLMKymvHRkIMXd+kSLt7Diq1HperyLN0LLeDBEkmA80DihC3ZPb0O+UhALMEfzeDAhXtSC7BHH5FWMp3pvQLmLMG9YeBgfR7qjDHIuVcIuuV/05aCLMVWH+BgJ8QpkzQ11mv+QIbw98aYLOGufeDAOg6QmqOIXPfGOzXuoojuLOOk3eGAFD9FsCj3n5XvUbqbhJIqLOLvfeEBhQ3MMxYfQX0OG9O9pZ4CLOGIzPFRKMy6+8u1YCY0dqgo2jtwLONOzeAASljCs7+81WLoacIX3jPwLOKxteEACQTsFeyxGgmqClhKJ7yMLOGIheCAH3GG6ir7KaU3TMCuEvbALMGkLeEAKMlDKvpsyWmnM8tGfKkkLMMM3eAAX0g8gfrbs9mmFSfLzuYaLMEizeFAVbQiQluYOyvSGrv+K/8ALOGIf+Ah0ip9z2Yo9bpXIWf1w4gQLOMwB+FACRyhsUfqyhjqsaUyZBvmLMTIkeAAP6ceUoNu0ICvmRgLTX6aLEIK/cLkh2KZpLkLYo6tHq4/A7J8LM2IzeFomM9Ig33gVY3tdjOiRB+oLMDIS+BBP/VKoMaEl+pU3oC0lvyELImCveCBL+a3n8/fKp9NXJWsFog+LOHnheCIElhWo3MWOLU5zIvKYffcLOHn3eDAhMvQITJrG05VJUjmfX5OLOCy3eHAG10gAFVjlZrhlhRKRHoOLOMJzeGgCmJBEjXlpknhWDEgskl8LOCyveAgzWh9ThUoW/FTjJti0V10LNEJLeFAvTYpHIFK31kaImVkU6hoLNbIM+EglEltV585RpJqtuZkrnEmLLqG3eEggZSkKfgNIbHg4XZC7URqLOFZ3eDEX5OySWiraCXKDycbgRsuLNGJ3eEgj3wpiTetsAjKEsNezLreLOjI3eCQG/x2IbC14dieoAWwSS8yLNnNLeAh1cQ8VaS5QCBfWPDenpjWLNGm3eAxEYSdOeCM8QcN+2dyRyKsLOGpm+BAVL4oTvIX7565wbDKYu10LKKgB+FIkQWrGNhHq38OrpxGBEquLMKSveFAI50ht9mOaEceCbwBauv8LKKN3eFAB4xr4OuL7+s4sVT9AIQcLOGJ3eEB3jBuI3gtnXQfa263AWbKLNkfLeG5MOFR7MZmiSk/7UuVCUh0LNmuL+CAG9z2FU37hhP7Cn+gu94sLNDI3eDBgSaTsExwRqiqkwQjOWiaLOMJ/eCAALe2VMXzypkxPy3KWv40LOLIzeBBFZC60yQww7+KmUpOCYg2LOCy/eEwquGsrG1MmcdV7VZGIVc2LN29/eFAUOAJVO0llRjsPeJvj5XALMKG/eFAPvkLfBzZrVxtrFF3OPgiLL6yveDAP06DvMLwQBjHA/AtLc8kLKMD/eDBqx1S/GJWBvGx9DePon3ALOGJveGAlKOHbTNkFfr2NcfyT3keLNmm3eHAAiCiEHmEZ6nbLsn1RlFcLOkK/eBAP6naRV/cSBXg6xS7WMM8LNkbPeFjCE3wsf3qXoyE7iPSqzKaLOnN/eFhSmNJRXQ5spkvL21oYzV+LOMKveGAlssndp9uAUXL646XIJumLOED/eGAajZOg+KDnJrmforAAZQQLOEK/eEgws98J2KoFggYXYac29iuLMRY/eGgSeFElslpFHEhHLhlzYdELOGyGeBExuHZYG2yB7Ltt5FjzF4CLONA/eCAHzBXlGzrOlQPFiAmKyKaLOA5d+FAyzTTHDyLPG6FHp6uNuSWLOKG/eBwG5GZdpy6REF4A/vHfYOMLOI4veCAIBren7lD3ArsC0El5BCqLOPN/eAgHuT8Ns6xzaYhqGqKwDEwLMIH/eBQQoEo7f7pHM4VtdJ/GIf2LOMJGeFB1TbDkVI6QrE7paXMcW/GLODv/eCKgFrXLLWN8pTgkGSjO6myLOAoGeCBxdaWudozQZtd82mIjo/YLMMY/eBg9GS0LSE4I46Q/vpl5A+QLOG/GeDAuG+hAXvKJoNn+vw5JVbILLoe/eGCLc6FjDhn+HuO6EBdielwLLoeGeGIGvFnCLk433/bZQbCtstgLMDM/eGKF33mlGoN5xKDbi1kVGZGLMFMdeGoBbTh5yIEQFqh9ogYNDL2LKLMGeEAGd5uIW2yySsBnilr0RRCLKMUGeFwmd8osQ3lOTYAe5XjjbZcLIFo/eFEAxxqPSL4rCSUmsLI3CHoLMA1/eGhrEeQ9YLEY82Os3nAJrVCLIEUdeFgNz6JH2TdP8leBS/huXKaLOHn3eAkVDAfwPjdXMyOx43A1TdALNK+/eFgGInB/WmYda2OJ+hjozmmLOEJ/eBAepIbTec6tq8CU2VyApvKLN03/eAAgeiede87aXZKFh4WivIuLOGC/eFAg9qIBd1qOTcVLH+ZTH0oLOHn/eBBLVC+7fr5+a10s62x9C6eLOkK/eHAYYjCLPSzuXBNPgcWCBdWLNFAGeFAFucKyCXs9g7DT4Yk3lQALNQKGeHAWEwKmJeAuMJeGVYTXBoYLNGDdeHgFGAhLvkbyoWxY5NEmrYuLMYK/eDBGIyYPIpohOfzyNU36mgaLOnnGeEgPZ/dAJXIA12Xncg/qjE0LOCTheF0BJmp+FivC5SJanu58XYkLOEK/eDAEJ5QDnDTfmBOmWXTUzRiLP0b/eDAAOpTRFP4qjdT7NxmsF/6LLvn/eCAIGX3rwue4wh2zLKL02W4LOEbPeCgKEAVKRFa9p1IhvccWivULOI1/eAgL6ydtEDdx5eXbbql5OroLN3R/eABHz4eloq5Q53mZ6p+fUvELOGR/eEhkWtdzMcJERIyV8YU6LzULOOy/eBAf1Yal6Vei2miKB5kSaw6LKIY3eEAGnJHMU55i5ermLJEvtfyLNUD/eGgQEpIVugX8VCIupsVSKXqLLEa/eDAYm9QHaeSDsSwD36Q+JpQLNkKdaXoMLtGDxBH8Nptj8mUXZ8gLO0J/eDBQtsLxUusAWH3dPOuAP+CLNmyx+ChauoVVkqMHu9LLQErZjueLOcK/eDQQeZSJCzuw+Tp0eflteoWLN0LdeDhgXyApuhIL6n3CQZHKFr0LNSG/eEgYmqt1EmOncYuQ9fCUYG8LN1Z/eBAm5b6lZtyfNA4Dno0y/5GLL/ndeFlJGahngCVSn4ICyvDkwKULLsL/eGi1QulzFU7mSimDN5VoVl6LL6NdeEBsU6On3BPBSTdto6IDopMLOCT/eBgMewZJIHsF4FPmzRtVJgILN0JdeBAQlUbP7l1l1/AFxbOSIWwLITw/eCgKt/VHPwdgMwE23EntJvGLHoKGeCBAKC0EMb/pAhfYk4wEsPSLLFoGeGBAYan+eHzRTtUG5NYZcE4LNlZGeCCF88VgRK3R9J9njzT0yPqLMvnGeCDHDyXISqX0W4P4MiweYdULIIK/eFBCjwLzNzLOQ4qfAyQ3P+0LImRGeAgOug9WYUY5+1m2kIXCC3uLMWF/eCADQ6WVItkz9DyxcKzEdTgLMED/eFADuBCa/nsB0eRTUqyVWkoLOGeveBBO22K5iZdmkXIvVl4BOviLO2CGeEABmWnAZPoBdSw/Jb+i+O0LOHR56VgELK9WU/GtnynVO/NcWlQLN2y5+FAFf4DEbHsSJFkTG4wVoMwLNgd5+CDIfsWUWfIxa5xYyopBjvWLLkJ5+CLYfNC2NQNz1OPxBTEwA7gLKyGx+DBIeHzdszLRFCbs/jzd/U6LLUJGeBg8PYQGUFFhHIUp5vJtwwMLMSG/eFBoZYhC+goZe2D0VpDMwgqLMST/eFBwZ4JBMY62+mgwW5JefJGLJiPveCBgZ4XBqhv73eXhZlwobAeLJiP/aRggcsc13X/YhjixsI3HsGGLMfNGWnh4Y8IweYLtNnC2OkR2fiwLIAY/eAAAc42viX+0Jww3SH+aLvaLEGF/eAAJxrcrL/ToovQvP8VE2m+LIKDdeCKM86xhOgH/jJB1PqBHd0GLKAeGeD3GxdwCLPSWXmOmZGcla/8LLr45+BAhgYWAKBlaB7l/PlScYdILLoE/+AAhgS/Ku/uMms1S5x4mC4eLKzqfvEFpgNZWJQ3MhRT3o0amstwLKIC5+GQ+9ylMMJ1g/W0PspIxcbgLKwNGeCB3bNawEVWswh5ATnFNf4cLLwC/eEACfALBaTnEoFlzZpydug+LMEa/eAACsILLeV2jkfyMXnLK0SmLKKb/eAANrnVHmXbezcb8jyfqs5kLOFZveEADXjj3rCnfJ9yxX9VClkWLIkR/eAAj1oeXdH4lLxmqvgS66vwLOAddeBBlNn55gx+XIfsDNSNIJjqLOEzneCgQ7Y0kkeVsnRsY7Llj9fALODE/eBAIDWb9A53sdBl5O00jEEKLJ+m/+CgNGGF8/qTeTViU0HOmMOWLMsY5+FAwYNCUTArns9IFLeOVCNYLNg55+APA6tKQBTVMdKr5awkL8SALJ+C/+CJAHn188xjvbhYfi0szezuLJKT/eEpYHnl/M4kk/BCPExl08XkLMcJheAAHGz/2bTlNE1rFExicW9iLMTI3eAAArB8mbmcB0sNiSFMmv/+LJ9ZheBAFWU5iDDaY75Im5UiIRZuLMWC3eEAiSWHucprDG4UOMFNowMULOAHveEAghpIjiRqGncGRSQa4UgELIqG5+GgBT41nuDhMMzgbqsjvghiLIkxGeEABv6v2LT7uWMdsySGmcfgLMHq/eFRG5MITRbqTcEBQ7q2DiuWLOA0GeEQKk2uuXu1TyZ5lwiZAn5kLLuk/eAAP94e3DD7OwbKlnC9uEhyLPkJdeBYD1paRyqIYyMV4PiBErtCLMSg/eAAri/+lPgbVBNzFGC7llGWLNg47eBAFMbbsbPDXqZcgANhBCPiLNK+3+BB4e/rGF9URUfqMXzeEFfuLJw0/+AgQf4cg0/8TQpBhu9m/Ab4LMQw5+ABw16/CcQoKzNamjKGdwskLNWw/+AAxhMeSz2rrn7jk+PHlYn0LJOF/+ABDgXfuqiqVUwSP4SAL/icLILM5+CAjgRn6Kckc8OnNnZbYyVgLMERdeAAG6psZtXZKSOx1wIrc5g+LKM33cJoq0oSeZjolUFXZkTCRLroLIsD/fAZtSSKv+Hf0btB4owt8ju8LI+BuvGEQHvz0HE+oaAIHyjwoF9WLMKaheGgANnFcWX1Bn+fg+I4ui3OLOMK/eDQAHxjtcK2XSi84UPJTMhcLOMv/eAADrB31V7vkYn6wQFXMJfOLOAd/eABVl4fhuKmMgL07RrauNqyLMMKGeCh5mKQABsSia0WmplxsQMgLIjIGeEA2EHNYF2rwfKP3omsCIDoLMGmGeABUHabiQ66RSkTlKs8XLpyLIlZGeEQnYzrOfr1G/32D0fLWKPkLIqG/eAAgGtf3rT1NPAK4Pn4ThoyLLsWdeCAr+WDTUvGHsaMQSbNvdpaLOADGeAAQxkAybvW4dXSW1MQUULqLMNZ/eAAFWQtn46f5ZBcojkirV1+LOlZf8IgK42WIH684nZdZwqFr/s8LMDmGaXAAHalmWPlk6E3tosj1JowLOIG/cKmSrDzN/6esCRnINM+2MCeLOFAveEhFFUFJsTcHoRzByjkTTmALOLC/eCgilPhVkA2yGoAvyzDAIXILOCT/eDAVM5BBrHpC8AtO+eqrCJELNgEGeCABSSD8BGUVxqbyn40tM2ULOCT/eAA1/dXbmkYPsppOrwrhSo+LMQs/eAAkGzavu4VrDpamHNdDukcLMGBdeCQJfkxPQzg6x0jDMve0XCgLOIW/eAAC9jbNCF83+J6qigZ0Tz+LOCS/eAABCaFpof88FXVPZpIiIiyLMUD/WiAQvyY/G7+JzWbyGBc1InGLMSS5+EEAGOD3HdyueSJz5SBq3D4LOMb/eCA0YpFlQEnRCLFmYTDgbH2LOG9d+EAAW7M1YP3JTIr5+TrgijwLMUK/eAikCQ7vJHIYuyQwvuGVItuLOEaPeAACSKWYXxLpH6W1Wc82PgALNkL/WnACzxrtb7rZRt8ejMYYvDaLMXndeGgIMt1XncTjGjSUGgSeZheLJyP/eHAAZNB1c7nuJdTFN3shj8KLI6GzeEg1DtMU5EdKWR6YF3gUw68LNDIj+BBB526Ow74wQ+DKJIfAfEqLMJY/eHgADThtg2pH414WF+VsjGcLMGmd+CACBrKzUBHAIxxa4EM4Bz6LOAW/eFAJ8SqrkHCw4v21iTgljpgLI4EdeAAl8dv9QFn2WBkYVBYXLoaLOKT/eAgB+Y8Nwvxp69NZ17DzvuSLOCH/cJgKntTxN7bizCcB3zcaXKaLMNM5+EokUp9cY8o/bNzQep2RkPuLIumx+D4Cn2xTlx0Mt6d1lFR+KeYLMIK/eFAAT2qjPStwgVS/q5jazIwLIrIOeGEYSnmGsmTt7kHuYXUvh8wLLCy5+DBQHmS8WKxVwaUUo1hLNQOLMOIf6XCAvNP2PHCkC7JXyLD4C9ALKEU6eHEs/3pKp8Ghj2U7pEEZVXOLKwH3+CloYNcWBcFip1HtxtdXYpoLKJewaXh17wmhGS/K4MegOOEn2E2LKIY/+FIJdYHE6XLXme2AecEQ0D8LKPaGeCFkqy2sK2uX+XyQf+rwDxKLLtu/+BvAYH4a/8QFyQaM9iVxl70LK0RGeAU4YYeGaDtmqKAJ6oWYD+ILNwD/+ApYYS8ow5xbiMi4m92xD0WLNzbGPGNoYYWAeQciXKipmT4QXbcLLfR5+AFIYYciUH674hq5IBh0PsWLLoL/+CMAYYSG6c+wDIWarXK/08CLILDGeAAow4+iW0c4UMBeNWG+JJkLIHB5+EpiywEqVr3iJ2F+yDSRTjOLOCbGeCBcJJXwFGWA4vF3hJo8440LLqSGeCBkIQGuFgwcZzLk8kgcBp8LLuBGeAoeAYViA9RzJjdt1jmPFWCLLrD/eBEJZTqrHSTVCepHxfTHxJMLNz4/+BAy6tDe1k4k1JJSZT1ggYwLLrm5vGgxMIRiBCVOArhTuIJ7hJQLKPB/vEBEKceIn7yrcnOKsOI1cb+LKNTdPEAJ9cfdHOux5/V6co8ndUiLMWp/eAiDyyBtRqPVbHXlo0pIdvwLJsR/WiBmg7uDqCVcXDvtHNSKCbiLL++/eBBtcJbTAINDBc9Pi7N9nueLNMMGeDQwYQDsIagruwoPzy9uOGQLNAD/eCBqySzLwBTJG5zobu2kA1CLNSk/eEAFGYNlEunbTO5EGLqOoEGLMQDveAAFtAd1zuwVOke3TbhwGo+LMEN/+EADYLp01Rlu/1ZwUkIU2ikLOEWH8JgAGixA8y6cMIXHGdaScPYLOGFhaTAHBYkAUrmjVcjgt9hDRngLOGI3eACP668zxP2IS/OPZU6FZ2MLOEJf+CAaPYWJ6kIlgfrnSdP1g2ILM2H/eACH1i7RZmVZdq3wa1tomA0LHL4M+DBuaCzPjFg2hWsXy9v2VHMLMCTPeGECdniaD1+gZt3q0R/F2RmLIDaB+GgpPvUWUwNjir1fgtgOorALMHB/eGghEoVpRHHtTsgFUM3dhr+LMDDheEiMkircNnM7rhuRem97fBWLKJb/eGhlANl/cUwzBPSS0g3FINuLKAWO+FBuAQLrBlaV2Y7XAiRy8awLKMGjvFAEIT4E7m7RKDdkzS6gTkGLKL0/eBAkKJRlFJ7XJVwY/dPt4z4LKKvj6RIQNS3M+M+BmGBnwa+TQ4iLKOb5+EAbJKr1/2C3b4I2H8JL2eyLIi+PeGA4qrTIcINSov8p3aO2kqsLImILeEQCDTfJITP4xB8jkUFE7KqLKKym+FggGPEHnwIuGWokNG2BN0WLLuIYeBBW54wjaKokMh2tnVvbEg+LODA/eAAETyyTOmaHtxnTUq2hsYYLNGBx8IgKwku33dTuFeYz08bupeqLLu1mWiAgJH8bNo6WzJ8sE0npx5yLOsbtPEMzwNfV/+9023FpkqfLV32LOER/eAAAv74xEG62C5XsUwCzvZ0LNiS5+AAAWhMDpuzcJMTdDARj5x+LGkR3eAAQHneOBpluk1phT3qWRzGLMMaheCBiOvDuVstVC/CTef5xeMeLIo0veChIZE8+sLQDRg1GZMkEkkiLMe9S+DBgHvAMTZ3WigXrt2ORpL4LKnnSeCg4GM1zfYRIfrjdJXVbKFQLNcbfeAEBQTrhu0+j2buOeUGhhxiLLtzReEgQBpRU5ytU2rWmg4fgfGaLLsRveGwIB0QbwqMTwX0IH/K7n6+LKK0O+BAAUUeHMgb+QUZhGpq/pd2LK0RPeCAsLb2APOUAQ0cfk2No7twLIO8/aTAzGw2rm8Wsy/dufb4duIcLIAEdeAJWtle9EPohF2k1je4BxGgLMQA/eAACvY0FaeiO4B3gf6urltcLMQqxcIgDobK8Lm38WODV2b3WQlYLMQE/eAAAOcxFfzsGiSubKl3iBvSLIAqdeAClmnDxGMSYtjPayKVlbpKLIEXPeARh9koRrJAeSERyHnUVmFCLMJ8T8LAVYwmNOPc6s+p9w/7Q8aILCKXneCMPE4EF9r9KOArmgkMTW7QLKws/eDM4NYVH0HSE0benHzXyVXiLK6b5+BHgYS8OMKru1UGHL0xqkF2LNzm/+BeASnq4rycTX9mqMPI5tv4LN3ajvErQHn5SusdYjtcbv9gMjqALL4Ld+APAHGe9veJ15V/Ce/QA6pKLLgsj+CUoGGXGjGHrpNbsqSR2w38LLsC5+BCQB1zDbmeQR89KydzWRgeLN1uGeEh4BBMqO+zuROytHhuA8l4LLhNd+AoRBFU/pdlE0fVWqMgtpxQLL8D5+ECgLiqsSZJ8QiFMcMFI7eGLICYd+EACU0Mr73+ALdRvFT6vGpqLKwQd8JgskYDhivDEvxrWRx2bfKSLKxHd6VwYTYlPt6S88qarCrc0UAcLK1vP+EKEqtMGPHMvabPOZ/FUL5ULMU35+ABuLJ/QZjcZD/YatI9+gfELKyN58KuiigXeE1iXwGiU7F/fdSWLK0c5+ElB1UEuNDDOlUr4VUkVymCLLgA5+AAA7GVGESr+TEOQoOqMA2QLKKff6RCIBmd8HLFvm/GINFz1eyKLIyGdeECQNSkDkcCm0RFq6MFBWMsLLvn/eCQwDSfra41UYWO0R+DEYtALNoFzeGAQGBmIv06jB6tgBSg8ll2LJq+/eABouOXTb1cMtdw6awXyEnwLMC+feFBIHHquxSwAw9bNDg/BUSyLI6+veCpZ+YQEwVcTwb43x1zNOumLI4K/eBAn4SUtSlSeo9AO4MC3cHqLMDm/eAAVxMcRDOunatJxHYcxSYILInNheBAXtvJ0dy5k687rdyozUCkLMEN/eAAkKH3B/FxybqxzTyKXKsGLMJN/cIgNe8+FX7Rkxn4vpEkBXScLOAEB8IgPaQ9IcnGk+1de7zbJ2V4LIFT/eEAF7mEPwuqYFmzOJ5/eMNmLIoNj+ARhW+WQ+YQeloFkIZN23luLIoE/PEBxrYR57c+Rd8JInHuKYbiLMQWheAIC8pnqJ9iNICEM1OAvBr6LJ/n5+Eho8GAICNvNEhQ1tGKmMTiLMCS/eAAATC+xIah95Z7Gwmlrk3OLK0Gf+CRwbT0AeZ08meBr4ks2TfaLK4Yj6VBYeQPmmeLitoA1bFkMM7YLLkNGeABEXScuIj3Hdjw3qHgKG82LKwE5+AArRnyeZkKRwnGPFSvW/ZeLLkNf+AAIPGs8dEx5rNy7rvwgvMOLLkqu+AIIHH0lqPWUBGvt5IaBy8MLL2156RBIHnKKAr/9K2lcF+l+4pQLK0Gfy3ACuMF6fRP5OV87IlLEKIwLLsXj6RAIH+MSsvZufR3wVMSHl/mLKMGiYZggtu+woZXsTuxyqe3Q9LcLNCA6tMgVzpQWOuyjPQinh7GFEZGLIocOQ7witN+LtYHPNVtBdOvFhYSLMVTzSzACFWsD318tIpya07NhpmELMQM6j3Ih+L9QTF8WoxRfD9cMqTuLMUGnJdgIeJfBncV8IbJDAsHEKTCLJvCfw/pfS4OAAIEoJe2M1eUzBckLIsNiUqhIc4eiyuA1IDIpeo59/7sLJtTOaRAF84Fb3v8Ih9Ryl8ZlkxMLLvt2vEQJ5IAYFj1FqtdBtahMu3sLJdT62iAEbSIKTnwMKNF/YdGK3JeLLiuzWiSqYyr5KYcYZ5J5ra1rd8kLLsGj+BYYZNQ2OasSvdRTDpknesKLK1/9eCUoYSnvcqd5YpVz7GwlAfoLJBgxeCQoYYXmBlXuvESzp7x6QCmLKxy3eADoYYWEcBfbpOF+MN+hlUyLLQe3eAC4ZH8KPkWGmtSI47eo188LJSYGeAAwYYYEaN9IS7jPcRi7w9ALJ4WjtOpASMbqsxk3kXCEDTSUK0eLKL0daRBMC4VPCHPSlUliFP65sKMLKMGdtMgNXc7//iJWlOBmoJ4CcVkLMD0qeAA1NZxuqQhGacthT5nSvQILMQNiD3BH3Ya+nT2OaLmHcPnO1Pk\"},{\"date\":\"2025-04-25T21:05:41.883Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDR-2JNU-U4AF-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T21:07:51.387Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-3JBM-O7SF-22DD\",\"content\":\"ACHA OSKA KIA CHAL RAHA HAI ABHI\",\"referMsg\":\"ahaha @RIXBGX99$$$$$ aman roz subha alarm baja ke khud ko jagata hai phir 5 minute aur soney ki koshish karta hai \ud83d\ude02\u23f0\"},{\"date\":\"2025-04-25T21:08:04.647Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-3MJ9-OEKF-22DD\",\"content\":\"ahaha @RIXBGX99$$$$$ aman abhi bhi alarm baja ke 5 minute aur so raha hai \ud83d\ude02\u23f0 masti full chal rahi hai yahan\",\"referMsg\":\"AI Answer to: ACHA OSKA KIA CHAL RAHA HAI ABHI\"},{\"date\":\"2025-04-25T21:10:02.103Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDR-4J8T-Q50F-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T21:10:23.507Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:VcMsg\",\"messageUId\":\"CMDR-4OG4-QGIF-22DD\",\"content\":\"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\"},{\"date\":\"2025-04-25T21:11:43.012Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-5BT9-3NOF-22DD\",\"content\":\"give me lottery in skyblock \",\"referMsg\":\"ahaha @RIXBGX99$$$$$ aman abhi bhi alarm baja ke 5 minute aur so raha hai \ud83d\ude02\u23f0 masti full chal rahi hai yahan\"},{\"date\":\"2025-04-25T21:11:53.843Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-5EHS-RS6F-22DD\",\"content\":\"haha lottery toh main nahi de sakta bhai \ud83e\udd23 par try karo game ke events ya shops mein mil sakti hai \ud83d\ude0e\ud83c\udfb2\",\"referMsg\":\"AI Answer to: give me lottery in skyblock \"},{\"date\":\"2025-04-25T21:12:33.273Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-5O5U-CF8F-22DD\",\"content\":\"OK bye chumo ai\",\"referMsg\":\"haha lottery toh main nahi de sakta bhai \ud83e\udd23 par try karo game ke events ya shops mein mil sakti hai \ud83d\ude0e\ud83c\udfb2\"},{\"date\":\"2025-04-25T21:12:43.126Z\",\"senderUserId\":\"6554963918\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDR-5QIT-KJSF-22DD\",\"content\":\"bye bye bhaii chumo back anytime \ud83d\ude0e\u270c\ufe0f\",\"referMsg\":\"AI Answer to: OK bye chumo ai\"},{\"date\":\"2025-04-25T22:32:59.043Z\",\"senderUserId\":\"2667927614\",\"messageType\":\"RC:ReferenceMsg\",\"messageUId\":\"CMDS-AIB8-V8OF-22DD\",\"content\":\"hello\",\"referMsg\":\"bye bye bhaii chumo back anytime \ud83d\ude0e\u270c\ufe0f\"}]}\nUser: hello\nAssistant:"}],"shard":{"index":73,"name":"turns-00073.parquet","rows":38923}}
