1var __bfVkRecovery20261006=(()=>{var k=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var E=(e,o)=>{for(var i in o)k(e,i,{get:o[i],enumerable:!0})},L=(e,o,i,d)=>{if(o&&typeof o=="object"||typeof o=="function")for(let g of R(o))!D.call(e,g)&&g!==i&&k(e,g,{get:()=>o[g],enumerable:!(d=N(o,g))||d.enumerable});return e};var K=e=>L(k({},"__esModule",{value:!0}),e);var $={};E($,{create:()=>W,recoveryStore:()=>T});var m="bestfurshet:vkid:pending:v1",A="/app/vkid/android-callback/",O="1.0.2",H=new RegExp(`(?:^|\\s)BestFurshetAndroid/${O.replaceAll(".","\\.")}(?:\\s|$)`,"u");var b=/^[0-9a-f-]{36}\.[A-Za-z0-9_-]{43}$/iu,w=/^[A-Za-z0-9_-]{43}$/u,C=()=>btoa(String.fromCharCode(...crypto.getRandomValues(new Uint8Array(32)))).replace(/\+/gu,"-").replace(/\//gu,"_").replace(/=+$/gu,""),a=class extends Error{constructor(i,d){super(i);this.code=i;this.action=d}code;action},v=async e=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e)))).map(o=>o.toString(16).padStart(2,"0")).join("");function F(e){let o=new URL(e.href);return o.search="",o.hash="",o}function S(e){let o;try{o=new URL(e.apiOrigin)}catch{throw new a("configuration")}let i;try{i=new URL(e.redirectUri)}catch{throw new a("configuration")}if(o.protocol!=="https:"||o.origin!==e.apiOrigin||!/^[1-9]\d{0,14}$/u.test(e.appId)||i.protocol!=="https:"||i.username||i.password||i.search||i.hash||i.pathname===A&&e.androidNative!==!0||e.androidNative===!0&&i.pathname!==A||e.recoveryStorage&&e.androidNative!==!0&&e.standalone!==!0)throw new a("configuration");let d=e.now??Date.now,g=e.random??C,h=e.fetch??fetch,f={appId:e.appId,apiOrigin:o.origin,redirectUri:i.href,mode:e.androidNative?"android":"standalone"},u="bestfurshet:vkid:recovery:v2:"+Object.values(f).map(encodeURIComponent).join(":"),I=r=>r&&w.test(r.state??"")&&w.test(r.verifier??"")&&(r.action==="signin"||r.action==="link")&&Number.isFinite(r.expiresAt)&&(r.action!=="link"||/^[a-f0-9]{64}$/u.test(r.bearerHash??""))&&r.expiresAt>d()&&r.expiresAt<=d()+11*6e4?r:null,_=()=>{let r=null;try{let t=e.storage.getItem(m);t&&t.length<=4096&&(r=I(JSON.parse(t)))}catch{}if(r||!e.recoveryStorage)return r;try{let t=e.recoveryStorage.getItem(u);if(!t||t.length>4096)return null;let s=JSON.parse(t);return s.schema!==2||!s.context||Object.keys(f).some(n=>s.context[n]!==f[n])?null:I(s.pending??null)}catch{return null}},y=()=>{try{e.storage.removeItem(m)}catch{}try{e.recoveryStorage?.removeItem(u)}catch{}},P=r=>{y();let t=!1;try{e.storage.setItem(m,JSON.stringify(r)),t=!0}catch{}try{e.recoveryStorage&&(e.recoveryStorage.setItem(u,JSON.stringify({schema:2,context:f,pending:r})),t=!0)}catch{}if(!t)throw new a("storage_unavailable",r.action)},V=e.loadSdk??(()=>new Promise((r,t)=>{if(!e.sdkUrl){t(new a("sdk_unavailable"));return}let s=window.VKIDSDK;if(s){r(s);return}let n=document.createElement("script");n.src=e.sdkUrl,n.async=!0,n.onload=()=>window.VKIDSDK?r(window.VKIDSDK):t(new a("sdk_unavailable")),n.onerror=()=>t(new a("sdk_unavailable")),document.head.append(n)})),p=async(r,t,s)=>{let n;try{n=await h(o.origin+r,{method:"POST",credentials:"omit",cache:"no-store",referrerPolicy:"no-referrer",signal:AbortSignal.timeout(12e3),headers:{"Content-Type":"application/json",...s?{Authorization:`Bearer ${s}`}:{}},body:JSON.stringify(t)})}catch{throw new a("network")}let l;try{l=await n.json()}catch{throw new a("unavailable")}if(!n.ok)throw new a(typeof l.error=="string"?l.error:"unavailable");return l};async function x(r){let t=r.searchParams;if(!t.has("code")&&!t.has("state")&&!t.has("error")&&!t.has("device_id"))return!1;let s=F(r);(e.replaceUrl??(l=>history.replaceState(null,document.title,l)))(s.pathname+s.search+s.hash);let n=_();y();try{if(r.origin!==i.origin||r.pathname!==i.pathname)throw new a("unauthorized");if(!n||t.getAll("state").length!==1||t.get("state")!==n.state||t.getAll("code").length!==1||!t.get("code")||t.get("code").length>4096||t.getAll("device_id").length!==1||!/^[A-Za-z0-9._~-]{1,256}$/u.test(t.get("device_id")??"")||t.has("error"))throw new a("unauthorized");let l={code:t.get("code"),deviceId:t.get("device_id"),state:n.state,codeVerifier:n.verifier,redirectUri:e.redirectUri};if(n.action==="signin"){let c=await p("/family/v1/vkid/authenticate",l);if(typeof c.bearerToken!="string"||!b.test(c.bearerToken))throw new a("unavailable");await e.onSignIn(c.bearerToken)}else{let c=e.getBearer();if(!c||!b.test(c))throw new a("unauthorized");if(await v(c)!==n.bearerHash)throw new a("account_changed");if((await p("/family/v1/vkid/link",l,c)).status!=="linked")throw new a("unavailable")}return e.androidNative&&(e.navigateAndroid??(c=>
1location.replace(c)))("/app/account/"),n.action}catch(l){throw new a(l instanceof a?l.code:"unavailable",n?.action)}}async function U(r){let t=g(),s=g();if(!w.test(t)||!w.test(s))throw new a("configuration");let n=r==="link"?e.getBearer():null;if(r==="link"&&(!n||!b.test(n)))throw new a("unauthorized",r);let l={state:t,verifier:s,action:r,expiresAt:d()+10*6e4,...n?{bearerHash:await v(n)}:{}};P(l);try{let c=await V();c.Config.init({app:Number(e.appId),redirectUrl:e.redirectUri,state:t,codeVerifier:s,...c.ConfigAuthMode?.Redirect?{mode:c.ConfigAuthMode.Redirect}:{}}),await c.Auth.login()}catch(c){throw y(),c instanceof a?c:new a("sdk_unavailable")}}return{callback:x,start:U}}function T(e){if(e)try{return localStorage}catch{return}}function W(e,o){let i=d=>d instanceof a?new o(d.code,d.action):d;try{let d=S(e);return{start:async(...g)=>{try{return await d.start(...g)}catch(h){throw i(h)}},callback:async(...g)=>{try{return await d.callback(...g)}catch(h){throw i(h)}}}}catch(d){throw i(d)}}return K($);})(); 2 3var __bfLocalAssortment20261006 = (() => { 4 var __defProp = Object.defineProperty; 5 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 6 var __getOwnPropNames = Object.getOwnPropertyNames; 7 var __hasOwnProp = Object.prototype.hasOwnProperty; 8 var __export = (target, all) => { 9 for (var name in all) 10 __defProp(target, name, { get: all[name], enumerable: true }); 11 }; 12 var __copyProps = (to, from, except, desc) => { 13 if (from && typeof from === "object" || typeof from === "function") { 14 for (let key of __getOwnPropNames(from)) 15 if (!__hasOwnProp.call(to, key) && key !== except) 16 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 17 } 18 return to; 19 }; 20 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); 21 22
22// apps/storefront-shared/local-assortment-recovery.ts 23 var local_assortment_recovery_exports = {}; 24 __export(local_assortment_recovery_exports, { 25 commitLocalAssortments: () => commitLocalAssortments, 26 installLocalAssortmentRecovery: () => installLocalAssortmentRecovery, 27 localAssortmentSnapshot: () => localAssortmentSnapshot, 28 repairLocalAssortments: () => repairLocalAssortments 29 }); 30 31
31// apps/api/src/stage-one-eclairs.ts 32 var ECLAIR_LEGACY_30_FLAVOURS = [ 33 "\u0410\u043D\u0430\u043D\u0430\u0441 \u0441 \u043A\u0440\u0435\u0432\u0435\u0442\u043A\u043E\u0439", 34 "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u0433\u043E\u0432\u044F\u0434\u0438\u043D\u0430", 35 "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u043A\u0443\u0440\u043E\u0447\u043A\u0430", 36 "\u041D\u0435\u0436\u043D\u0430\u044F \u0433\u043E\u0440\u0431\u0443\u0448\u0430", 37 "\u041E\u0432\u0435\u0447\u0438\u0439 \u0441\u044B\u0440 \u0441 \u0432\u044F\u043B\u0435\u043D\u044B\u043C \u0442\u043E\u043C\u0430\u0442\u043E\u043C", 38 "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0441 \u0447\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", 39 "\u0422\u043E\u043C \u042F\u043C, \u0431\u0430\u043A\u043B\u0430\u0436\u0430\u043D \u0438 \u043A\u0443\u0440\u043E\u0447\u043A\u0430", 40 "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" 41 ]; 42 var SETS = { 43 "614093133533": { count: 30, flavours: ECLAIR_LEGACY_30_FLAVOURS, salmonMaximum: 7 }, 44 "789631226963": { count: 10 }, 45 "184010217511": { count: 10 }, 46 "120288869513": { count: 20 }, 47 "451657492542": { count: 20 }, 48 "864494374333": { count: 30 }, 49 "418714703741": { count: 30 }, 50 "923335331393": { count: 40 }, 51 "692833031001": { count: 40 }, 52 "238260534453": { count: 50 }, 53 "256845007992": { count: 50 }, 54 "228418595203": { count: 100 }, 55 "600656251142": { count: 100 }, 56 "726933266883": { count: 10, sweet: true }, 57 "107904039061": { count: 10, sweet: true } 58 }; 59 var ECLAIR_SAVOURY = ["\u0410\u043D\u0430\u043D\u0430\u0441 \u0441 \u043A\u0440\u0435\u0432\u0435\u0442\u043A\u043E\u0439", "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u0433\u043E\u0432\u044F\u0434\u0438\u043D\u0430", "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u043A\u0443\u0440\u043E\u0447\u043A\u0430", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0441 \u0433\u0440\u0438\u0431\u043E\u0447\u043A\u0430\u043C\u0438", "\u041D\u0435\u0436\u043D\u0430\u044F \u0433\u043E\u0440\u0431\u0443\u0448\u0430", "\u041E\u0432\u0435\u0447\u0438\u0439 \u0441\u044B\u0440 \u0441 \u0432\u044F\u043B\u0435\u043D\u044B\u043C \u0442\u043E\u043C\u0430\u0442\u043E\u043C", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0441 \u0447\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C, \u0431\u0430\u043A\u043B\u0430\u0436\u0430\u043D \u0438 \u043A\u0443\u0440\u043E\u0447\u043A\u0430", "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430"]; 60 var ECLAIR_SWEET = ["\u0411\u0430\u0440\u0431\u0435\u0440\u0440\u0438 \u0447\u0438\u0437", "\u0411\u043B\u0430\u0433\u043E\u0440\u043E\u0434\u043D\u0430\u044F \u0433\u0440\u0443\u0448\u0430", "\u0411\u043B\u044E\u0431\u0435\u0440\u0440\u0438 \u0447\u0438\u0437", "\u042F\u043D\u0442\u0430\u0440\u043D\u044B\u0439 \u0447\u0438\u0437"]; 61 var eclairSetSpec = (uid2) => SETS[uid2]; 62 var eclairSalmonMaximum = (uid2) => { 63 const spec = eclairSetSpec(uid2); 64 return spec ? spec.salmonMaximum ?? Math.floor(spec.count / 10) * 3 : void 0; 65 }; 66 function eclairQuantityGroups(uid2) { 67 const spec = eclairSetSpec(uid2); 68 if (!spec) return void 0; 69 return (spec.flavours ?? (spec.sweet ? ECLAIR_SWEET : ECLAIR_SAVOURY)).map((name, i) => ({ id: `eclair-${i}`, name: `\u042D\u043A\u043B\u0435\u0440\u044B: ${name}`, values: [0, ...Array.from({ length: (name === "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" ? eclairSalmonMaximum(uid2) : spec.count) - 2 }, (_, j) => j + 3)].map((n) => ({ id: `qty-${n}`, label: `${n} \u0448\u0442.`, adjustmentMinor: "0" })) })); 70 } 71 function validateEclairSetSelection(uid2, entries) { 72 const spec = eclairSetSpec(uid2); 73 if (!spec) return true; 74 if (!validateEclairQuantities(spec.count, entries)) return false; 75 const names = entries.map((entry) => entry.name.replace(/^ÐклеÑÑ: /u, "")); 76 if (spec.flavours && (new Set(names).size !== names.length || names.some((name) => !spec.flavours.includes(name)))) return false;
77 return !entries.some((entry, index) => names[index] === "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" && Number(/^(\d+) ÑÑ\.$/u.exec(entry.label)?.[1]) > eclairSalmonMaximum(uid2)); 78 } 79 function validateEclairQuantities(count, entries) { 80 if (count === void 0) return true; 81 if (![10, 20, 30, 40, 50, 100].includes(count) || !entries.length) return false; 82 let sum = 0; 83 let sweet = false, savoury = false; 84 let active = 0; 85 for (const entry of entries) { 86 const name = entry.name.replace(/^ÐклеÑÑ: /u, ""); 87 const n = Number(/^(\d+) ÑÑ\.$/u.exec(entry.label)?.[1] ?? NaN); 88 if (!Number.isInteger(n) || n < 0 || n > count || n > 0 && n < 3) return false; 89 if (!ECLAIR_SWEET.includes(name) && !ECLAIR_SAVOURY.includes(name)) return false; 90 if (name === "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" && n > Math.floor(count / 10) * 3) return false; 91 if (n) { 92 sum += n; 93 active++; 94 sweet ||= ECLAIR_SWEET.includes(name); 95 savoury ||= ECLAIR_SAVOURY.includes(name); 96 } 97 } 98 return sum === count && !(sweet && savoury) && (!sweet || active <= 3); 99 } 100 101
101// apps/storefront-shared/legacy-thirty-eclair-choices.ts 102 var uid = "614093133533"; 103 var known = Object.freeze([{ "brandKey": "bestfurshet", "publicationId": "pub_614093133533", "variantId": "v_614093133533", "offerId": "152e39ccf67beada070a6e2b245ab2b741e36048e97019ffd39080df74cbf8e5" }, { "brandKey": "loft_pirate", "publicationId": "pub_loftmenu_pub_614093133533", "variantId": "v_614093133533", "offerId": "95e2d4d52b95aed89df7d8614efdfe77666f45b5343a8735eea686b2ca4ae6dd" }]); 104 var groups = eclairQuantityGroups(uid).map((g, i) => ({ id: "g-" + i, name: g.name, values: g.values.map((v, j) => ({ id: "v-" + j, label: v.label, adjustmentMinor: "0" })) })); 105 function legacyThirtyEclairSpec(row, allowLocalIdentity = false) { 106 const identity = known.find((k) => k.brandKey === row?.brandKey && k.publicationId === row?.publicationId && k.variantId === row?.variantId && (row.offerId === k.offerId || allowLocalIdentity && row.offerId === void 0)); 107 return identity ? { kind: "eclair", ...identity, count: 30, minimum: 3, maximumFlavours: 8, salmonMaximum: 7, groups } : void 0; 108 } 109 function legacyThirtyEclairSelectionValid(row, entries) { 110 const spec = legacyThirtyEclairSpec(row, true); 111 return Boolean(spec && entries.length === groups.length && groups.every((g, i) => entries[i]?.name === g.name && g.values.some((v) => v.label === entries[i]?.label)) && validateEclairSetSelection(uid, entries)); 112 } 113 var legacyThirtyEclairInstruction = "30 \u044D\u043A\u043B\u0435\u0440\u043E\u0432: \u043C\u0438\u043D\u0438\u043C\u0443\u043C 3 \u0448\u0442. \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0432\u043A\u0443\u0441\u0430, \u0441 \u043B\u043E\u0441\u043E\u0441\u0435\u043C \u2014 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 7 \u0448\u0442. \u0423\u043A\u0430\u0436\u0438\u0442\u0435 0 \u0448\u0442. \u0434\u043B\u044F \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0445. \u0412\u0441\u0435\u0433\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C 30 \u0448\u0442."; 114 115
115// apps/api/src/product-assortment.ts 116 var ASSORTMENT_SPECS = [{ "offerId": "9c75874244e29b74fdf472d4c1d9e4ad6fe90117729673e70a2aad63b6b4c42b", "brand": "bestfurshet", "publicationId": "pub_601555658023", "variantId": "v_601555658023", "count": 50, "minimum": 15, "maximumFlavours": 3, "prefix": "\u041F\u0438\u0440\u043E\u0436\u043A\u0438: ", "flavours": ["\u041A\u0430\u043F\u0443\u0441\u0442\u0430", "\u042F\u0431\u043B\u043E\u043A\u043E", "\u041A\u0443\u0440\u0438\u0446\u0430", "\u041C\u044F\u0441\u043E", "\u041F\u0435\u0440\u0441\u0438\u043A", "\u0413\u0440\u0443\u0448\u0430", "\u041A\u0430\u0440\u0442\u043E\u0448\u043A\u0430", "\u042F\u0439\u0446\u043E \u0438 \u0437\u0435\u043B\u0451\u043D\u044B\u0439 \u043B\u0443\u043A"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] }, { "offerId": "8168bb38f40ed36861ff7729c39fee12cce93f146faccc197ca5c0ea98505ae0", "brand": "meat_cake", "publicationId": "pub_meatcake_224710905952", "variantId": "v_558108711722", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "23dc22585c2d6de2360788d58dba7d2d45248a3f7dd1f2038ae149f08eeb23f4", "brand": "meat_cake", "publicationId": "pub_meatcake_224710905952", "variantId": "v_960746083672", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "c3cd754654f9b41aa9a67f64294cab140faaac5c31a0e85ace3ace8ef5ccd822", "brand": "meat_cake", "publicationId": "pub_meatcake_224710905952", "variantId": "v_119080439542", "count": 180, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
116133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "3a51296562c10a66203136e9da1d23efa02efa7c7374e64139325a440fe522cc", "brand": "meat_cake", "publicationId": "pub_meatcake_758312493642", "variantId": "v_412457078582", "count": 60, "minimum": 15, "maximumFlavours": 3, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u042F\u0431\u043B\u043E\u0447\u043D\u044B\u0439 \u0428\u0442\u0440\u0443\u0434\u0435\u043B\u044C", "\u0413\u0440\u0443\u0448\u0435\u0432\u044B\u0439 \u0428\u0451\u043B\u043A", "\u0412\u0430\u043D\u0438\u043B\u044C\u043D\u043E\u0435 \u041E\u0431\u043B\u0430\u043A\u043E", "\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0412\u0438\u0448\u043D\u044F", "\u0410\u043D\u0430\u043D\u0430\u0441\u043E\u0432\u044B\u0439 \u0411\u0440\u0438\u0437"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "978e62491b341a073a0d28cb368f226e4d0115222a208d2b0ea66d4241497572", "brand": "meat_cake", "publicationId": "pub_meatcake_758312493642", "variantId": "v_774607502262", "count": 120, "minimum": 15, "maximumFlavours": 5, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u042F\u0431\u043B\u043E\u0447\u043D\u044B\u0439 \u0428\u0442\u0440\u0443\u0434\u0435\u043B\u044C", "\u0413\u0440\u0443\u0448\u0435\u0432\u044B\u0439 \u0428\u0451\u043B\u043A", "\u0412\u0430\u043D\u0438\u043B\u044C\u043D\u043E\u0435 \u041E\u0431\u043B\u0430\u043A\u043E", "\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0412\u0438\u0448\u043D\u044F", "\u0410\u043D\u0430\u043D\u0430\u0441\u043E\u0432\u044B\u0439 \u0411\u0440\u0438\u0437"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "17afbf5b8eac9f2fb4b9f65e649519e2e61e49217903027ad28793d28a559cc8", "brand": "meat_cake", "publicationId": "pub_meatcake_758312493642", "variantId": "v_766743506942", "count": 180, "minimum": 15, "maximumFlavours": 5, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u042F\u0431\u043B\u043E\u0447\u043D\u044B\u0439 \u0428\u0442\u0440\u0443\u0434\u0435\u043B\u044C", "\u0413\u0440\u0443\u0448\u0435\u0432\u044B\u0439 \u0428\u0451\u043B\u043A", "\u0412\u0430\u043D\u0438\u043B\u044C\u043D\u043E\u0435 \u041E\u0431\u043B\u0430\u043A\u043E", "\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0412\u0438\u0448\u043D\u044F", "\u0410\u043D\u0430\u043D\u0430\u0441\u043E\u0432\u044B\u0439 \u0411\u0440\u0438\u0437"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "3e9f042d105bac3c0b71e257ba4fa5d940763267fffca91ea9735e64a1730ba0", "brand": "meat_cake", "publicationId": "pub_meatcake_966630703672", "variantId": "v_774393566412", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "e9d03774a50230a3a1eaecc1614e0fc967019b7606e4a8bec15e49fff1e5d078", "brand": "meat_cake", "publicationId": "pub_meatcake_966630703672", "variantId": "v_869953995522", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "7c064d436d2de7caaf4ab921202530518358a1ba94b0da3e7173d0c659c770a4", "brand": "meat_cake", "publicationId": "pub_meatcake_966630703672", "variantId": "v_126933787172", "count": 180, "minimum": 15, "maximumFlavours": 12, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
116133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "a26be136b2a49af01ee081780d75345de126ea6c4c5ee0aff580721d859900a2", "brand": "meat_cake", "publicationId": "pub_meatcake_912578615862", "variantId": "v_912578615862", "count": 12, "minimum": 4, "maximumFlavours": 3, "prefix": "\u0411\u0438\u0433 \u0422\u0430\u0440\u0442: ", "flavours": ["\u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D\u0447\u0438\u043A", "\u041A\u043E\u043F\u0447\u0435\u043D\u044B\u0439 \u0411\u0438\u0444", "\u0422\u043E\u043C\u043B\u0451\u043D\u0430\u044F \u0413\u043E\u0440\u0431\u0438", "\u0416\u044E\u043B\u044C \u041A\u043E\u043A\u043E\u0448\u043A\u0430", "\u041F\u0438\u043A\u0430\u043D\u0442\u0430 \u0411\u0443\u0436\u0435", "\u0410\u0437\u0438\u044F \u041F\u0440\u0430\u0443\u043D"], "allowedQuantities": [0, 4] }, { "offerId": "87515e993547d16c186ea3141b148dee98b7f48e8bb46236bd29d2ea685ae03a", "brand": "loft_pirate", "publicationId": "pub_loftmenu_pub_601555658023", "variantId": "v_601555658023", "count": 50, "minimum": 15, "maximumFlavours": 3, "prefix": "\u041F\u0438\u0440\u043E\u0436\u043A\u0438: ", "flavours": ["\u041A\u0430\u043F\u0443\u0441\u0442\u0430", "\u042F\u0431\u043B\u043E\u043A\u043E", "\u041A\u0443\u0440\u0438\u0446\u0430", "\u041C\u044F\u0441\u043E", "\u041F\u0435\u0440\u0441\u0438\u043A", "\u0413\u0440\u0443\u0448\u0430", "\u041A\u0430\u0440\u0442\u043E\u0448\u043A\u0430", "\u042F\u0439\u0446\u043E \u0438 \u0437\u0435\u043B\u0451\u043D\u044B\u0439 \u043B\u0443\u043A"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] }, { "offerId": "4cbf98e108babd09cfa5b6db3935ee179f08848858562eace6bccc0bba5a74c2", "brand": "bestfurshet", "publicationId": "pub_372148681583", "variantId": "v_372148681583", "count": 12, "minimum": 4, "maximumFlavours": 3, "prefix": "\u0411\u0438\u0433 \u0422\u0430\u0440\u0442: ", "flavours": ["\u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D\u0447\u0438\u043A", "\u041A\u043E\u043F\u0447\u0435\u043D\u044B\u0439 \u0411\u0438\u0444", "\u0422\u043E\u043C\u043B\u0451\u043D\u0430\u044F \u0413\u043E\u0440\u0431\u0438", "\u0416\u044E\u043B\u044C \u041A\u043E\u043A\u043E\u0448\u043A\u0430", "\u041F\u0438\u043A\u0430\u043D\u0442\u0430 \u0411\u0443\u0436\u0435", "\u0410\u0437\u0438\u044F \u041F\u0440\u0430\u0443\u043D"], "allowedQuantities": [0, 4] }, { "offerId": "75938b6b51951af5c69a6de57541284d88756f60529e9f59d13208d666a7a2c5", "brand": "loft_pirate", "publicationId": "pub_loftmenu_pub_372148681583", "variantId": "v_372148681583", "count": 12, "minimum": 4, "maximumFlavours": 3, "prefix": "\u0411\u0438\u0433 \u0422\u0430\u0440\u0442: ", "flavours": ["\u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D\u0447\u0438\u043A", "\u041A\u043E\u043F\u0447\u0435\u043D\u044B\u0439 \u0411\u0438\u0444", "\u0422\u043E\u043C\u043B\u0451\u043D\u0430\u044F \u0413\u043E\u0440\u0431\u0438", "\u0416\u044E\u043B\u044C \u041A\u043E\u043A\u043E\u0448\u043A\u0430", "\u041F\u0438\u043A\u0430\u043D\u0442\u0430 \u0411\u0443\u0436\u0435", "\u0410\u0437\u0438\u044F \u041F\u0440\u0430\u0443\u043D"], "allowedQuantities": [0, 4] }, { "offerId": "f1c04a16463f296a4ddc5ebf05f4df2258b975c2bab14f626166b2b7f6e0901e", "brand": "bestfurshet", "publicationId": "pub_372572505463", "variantId": "v_794175655703", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438\u0437 \u0431\u0435\u0434\u0440\u0430 \u0438\u043D\u0434\u0435\u0439\u043A\u0438 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "86b44c3b200675f8aa6060cec04ba24232423566c6643d709d0eb2340c67acba", "brand": "bestfurshet", "publicationId": "pub_372572505463", "variantId": "v_690353716963", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438\u0437 \u0431\u0435\u0434\u0440\u0430 \u0438\u043D\u0434\u0435\u0439\u043A\u0438 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "43c9f9a0656733252224651875204095ccdc59199d6afb7eacbbd34496e05dcc", "brand": "bestfurshet", "publicationId": "pub_372572505463", "variantId": "v_653300096833", "count": 180, "minimum": 15, "maximumFlavours": 12, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438\u0437 \u0431\u0435\u0434\u0440\u0430 \u0438\u043D\u0434\u0435\u0439\u043A\u0438 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
116133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "4985962435924e5ce8d3cf545198f0e11c38ab0700b7a9d4fc7292814ede7da6", "brand": "bestfurshet", "publicationId": "pub_304994655913", "variantId": "v_189976008083", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "50f1660ac82204d5b63c98b73a1af20eabe5c8752412a753fbedb779b6108d68", "brand": "bestfurshet", "publicationId": "pub_304994655913", "variantId": "v_759013745293", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "49a7a0874558a5b61a8ae92ac3b8f40a68edbc55afc7e041000e4d02b89a51c7", "brand": "bestfurshet", "publicationId": "pub_304994655913", "variantId": "v_299705039463", "count": 180, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
116133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "3166b188ef501ece613b4c850fc38faa2317bb1627e20aaf9e3090a229105636", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_243980660362", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 0 }, { "offerId": "ac1519f1e9017f0bfbf177ca5ec70bc0cb322a74b27f24223326957c8225b729", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_101932680092", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 1 }, { "offerId": "309b65908a51ce28aaff269eb4fd8efc9a5e645de3516b739081bb24da976d73", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_765224357462", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 2 }, { "offerId": "ec6a22839330cdb1d28a03ac71f7d59c596b5170edb3ca70b62f02804d95b984", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_873457945212", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 3 }, { "offerId": "df72a3564a3b7096b7bdaaffb7a90b24ca9c9713c2a32d70b652b22c670a9fd0", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_992252730132", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 4 }].map((spec) => ({ ...spec, groups: spec.flavours.map((name, i) => ({ id: "g-" + i, name: spec.prefix + name, values: spec.allowedQuantities.map((n, j) => ({ id: "v-" + j, label: n + " \u0448\u0442.", adjustmentMinor: "0" })) })) }));
117 function validateAssortmentSelection(spec, entries) { 118 if (entries.length !== spec.groups.length || new Set(entries.map((e) => e.name)).size !== entries.length) return false; 119 let total = 0, active = 0; 120 for (const group of spec.groups) { 121 const entry = entries.find((e) => e.name === group.name); 122 if (!entry) return false; 123 const value = group.values.find((v) => v.label === entry.label); 124 if (!value) return false; 125 const n = Number(/^(\d+) ÑÑ\.$/u.exec(value.label)?.[1]); 126 if (!Number.isSafeInteger(n) || !spec.allowedQuantities.includes(n) || n > 0 && n < spec.minimum) return false; 127 total += n; 128 if (n) active++; 129 } 130 if (spec.publicationId === "pub_meatcake_108709256771") { 131 if (spec.brand !== "meat_cake" || !Number.isInteger(spec.premiumCount) || spec.premiumCount < 0 || spec.premiumCount > 4) return false; 132 const premium = entries.filter((e) => e.name === "\u0411\u0435\u043D\u0442\u043E: \u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM" || e.name === "\u0411\u0435\u043D\u0442\u043E: \u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM").reduce((n, e) => n + Number(/^(\d+) ÑÑ\.$/u.exec(e.label)?.[1]), 0); 133 return total === 4 && premium === spec.premiumCount; 134 } 135 return total === spec.count && active >= 1 && active <= spec.maximumFlavours; 136 } 137 138
138// apps/storefront-shared/confirmed-product-choices.ts 139 var choices = Object.freeze({ 140 "827739309693": Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041D\u0435\u043E\u0441\u0442\u0440\u044B\u0439", "\u0427\u0435\u0441\u043D\u043E\u0447\u043D\u044B\u0439", "\u0421 \u0447\u0438\u043B\u0438"]) }]), 141 "965652155463": Object.freeze([{ name: "\u041C\u0430\u0441\u043B\u043E", values: Object.freeze(["\u0421\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u043E\u0435", "\u0421\u043B\u0438\u0432\u043E\u0447\u043D\u043E\u0435", "\u0421\u043B\u0438\u0432\u043E\u0447\u043D\u043E-\u0447\u0435\u0441\u043D\u043E\u0447\u043D\u043E\u0435"]) }]), 142 "668484083213": Object.freeze([{ name: "\u0421\u043E\u0443\u0441", values: Object.freeze(["\u0421\u043C\u0435\u0442\u0430\u043D\u043D\u044B\u0439", "\u041E\u0440\u0435\u0445\u043E\u0432\u044B\u0439", "\u041E\u043B\u0438\u0432\u043A\u043E\u0432\u043E\u0435 \u043C\u0430\u0441\u043B\u043E", "\u041F\u0435\u0441\u0442\u043E"]) }]), 143 "440032370743": Object.freeze([{ name: "\u0421\u043E\u0443\u0441", values: Object.freeze(["\u0421\u043C\u0435\u0442\u0430\u043D\u043D\u044B\u0439", "\u041A\u0438\u0441\u043B\u043E-\u0421\u043B\u0430\u0434\u043A\u0438\u0439", "\u0422\u0435\u0440\u0438\u044F\u043A\u0438", "\u0411\u0430\u0440\u0431\u0435\u043A\u044E", "\u041F\u0435\u0441\u0442\u043E", "\u041E\u0440\u0435\u0445\u043E\u0432\u044B\u0439"]) }]), 144 "312692333053": Object.freeze([{ name: "\u0421\u043E\u0443\u0441", values: Object.freeze(["\u0421\u043C\u0435\u0442\u0430\u043D\u043D\u044B\u0439", "\u041A\u0438\u0441\u043B\u043E-\u0421\u043B\u0430\u0434\u043A\u0438\u0439", "\u0422\u0435\u0440\u0438\u044F\u043A\u0438", "\u0411\u0430\u0440\u0431\u0435\u043A\u044E", "\u041F\u0435\u0441\u0442\u043E", "\u041E\u0440\u0435\u0445\u043E\u0432\u044B\u0439"]) }]) 145 }); 146 var meatcakeChoices = Object.freeze({ 147 "287446958161": Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444 \u043F\u043E\u0441\u043E\u043B\u0430", "\u041A\u043E\u043F\u0447\u0435\u043D\u0430\u044F \u0413\u043E\u0432\u044F\u0434\u0438\u043D\u0430", "\u041E\u0432\u0435\u0447\u0438\u0439 \u0441\u044B\u0440 \u0438 \u0432\u044F\u043B\u0435\u043D\u044B\u0439 \u0442\u043E\u043C\u0430\u0442", "\u0410\u043D\u0430\u043D\u0430\u0441\u044B \u0441 \u043A\u0440\u0435\u0432\u0435\u0442\u043A\u043E\u0439", "\u041A\u043E\u043F\u0447\u0435\u043D\u0430\u044F \u041A\u0443\u0440\u043E\u0447\u043A\u0430", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0435 \u0441 \u0447\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041D\u0435\u0436\u043D\u0430\u044F \u0433\u043E\u0440\u0431\u0443\u0448\u0430", "\u0422\u043E\u043C \u042F\u043C \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D"]) }]), 148 "754893720421": Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041F\u0435\u0447\u0435\u043D\u044C \u043F\u0440\u0435\u043C\u0438\u0443\u043C", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u0421\u0432\u0438\u043D\u0438\u043D\u0430 \u0431\u0430\u0440\u0431\u0435\u043A\u044E", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u041C\u044F\u0441\u043D\u043E\u0439 \u0421\u043F\u0430\u0439\u0441\u0438 \u0414\u0443\u044D\u0442"]) }]) 149 }); 150 function confirmedProductChoices(brand, uid2) { 151 if (brand === "meat_cake") return Object.hasOwn(meatcakeChoices, uid2) ? meatcakeChoices[uid2] : void 0; 152 return brand === "bestfurshet" && Object.hasOwn(choices, uid2) ? choices[uid2] : void 0; 153 } 154 var sixTrifleChoices = Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0432\u0438\u0448\u043D\u044F", "\u042F\u0431\u043B\u043E\u0447\u043D\u0430\u044F \u043A\u043E\u0440\u0438\u0446\u0430"]) }]); 155 function confirmedSixTrifleChoices(row, allowMissingOffer = false) { 156 if (!row || typeof row !== "object" || Array.isArray(row)) return void 0; 157 return row.brandKey === "bestfurshet" && row.publicationId === "pub_608274534153" && row.variantId === "v_786141837473" && (row.offerId === "dde650be8aebb7a58f4ba67f73de78f5b3f392398143e7a0f2acfd6891ccf7f4" || allowMissingOffer && row.offerId === void 0) ? sixTrifleChoices : void 0; 158 } 159 var premiumMeatcakeIdentities = Object.freeze({ "589456739542": "e4e5d32bc8c464fca16f341bca88b226b4785a52fd6b094d5afee916b67226f2", "803452839142": "20046838dea78f4571d05394ac9b5a9f7752b62ec0d31b8d99d3f752b464d2c0" }); 160 var premiumMeatcakeGroups = Object.freeze([{ "id": "g-0", "name": "\u0412\u043A\u0443\u0441", "values": [{ "id": "v-0", "label": "\u043C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "adjustmentMinor": "0" }, { "id": "v-1", "label": "\u043A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "adjustmentMinor": "0" }, { "id": "v-2", "label": "\u0442\u043E\u043C \u044F\u043C", "adjustmentMinor": "0" }, { "id": "v-3", "label": "\u043F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439", "adjustmentMinor": "0" }, { "id": "v-4", "label": "\u0441\u0435\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439", "adjustmentMinor": "100000" }] }]); 161 function confirmedPremiumMeatcakeChoices(row, allowMissingOffer = false) { 162 if (!row || typeof row !== "object" || Array.isArray(row) || row.brandKey !== "meat_cake" || typeof row.publicationId !== "string") return void 0; 163 const uid2 = /^pub_meatcake_(589456739542|803452839142)$/.exec(row.publicationId)?.[1]; 164 if (!uid2 || row.variantId !== "v_" + uid2) return void 0; 165 const offerId = premiumMeatcakeIdentities[uid2]; 166 if (row.offerId !== offerId && !(allowMissingOffer && row.offerId === void 0)) return void 0; 167 return { uid: uid2, offerId, amountMinor: "649000", weightGrams: 2e3, groups: premiumMeatcakeGroups }; 168 } 169 170
170// apps/storefront-shared/local-assortment-recovery.ts 171 var KEY = "bestfurshet:preview-cart:v1"; 172 var installed = /* @__PURE__ */ new WeakSet(); 173 var sauceIds = /* @__PURE__ */ new Set(["668484083213", "440032370743", "312692333053"]); 174 var meatcakeChoiceIds = /* @__PURE__ */ new Set(["287446958161", "754893720421", "589456739542", "803452839142"]); 175 var specFor = (row) => { 176 const premium = confirmedPremiumMeatcakeChoices(row, true); 177 if (premium) return { kind: "choice", ...premium }; 178 const trifle = confirmedSixTrifleChoices(row, true); 179 if (trifle) return { kind: "choice", offerId: "dde650be8aebb7a58f4ba67f73de78f5b3f392398143e7a0f2acfd6891ccf7f4", groups: trifle.map((g, i) => ({ id: "g-" + i, name: g.name, values: g.values.map((label, j) => ({ id: "v-" + j, label, adjustmentMinor: "0" })) })) }; 180 const eclair = legacyThirtyEclairSpec(row, true); 181 if (eclair) return eclair; 182 const set = ASSORTMENT_SPECS.find((s) => s.brand !== "loft_pirate" && s.brand === row?.brandKey && s.publicationId === row?.publicationId && s.variantId === row?.variantId); 183 if (set) return { kind: "assortment", ...set }; 184 const uid2 = typeof row?.publicationId === "string" ? row.brandKey === "bestfurshet" ? /^pub_(\d{12})$/.exec(row.publicationId)?.[1] : row.brandKey === "meat_cake" ? /^pub_meatcake_(287446958161|754893720421)$/.exec(row.publicationId)?.[1] : void 0 : void 0; 185 if (!uid2 || row.variantId !== "v_" + uid2 || !(row.brandKey === "bestfurshet" && sauceIds.has(uid2) || row.brandKey === "meat_cake" && meatcakeChoiceIds.has(uid2))) return void 0; 186 const confirmed = confirmedProductChoices(row.brandKey, uid2); 187 if (!confirmed) return void 0; 188 return { kind: "choice", groups: confirmed.map((g, i) => ({ id: "g-" + i, name: g.name, values: g.values.map((label, j) => ({ id: "v-" + j, label, adjustmentMinor: "0" })) })) }; 189 }; 190 function localAssortmentSnapshot(snapshot, config) { 191 if (snapshot.length > 2e5) throw Error("\u041A\u043E\u0440\u0437\u0438\u043D\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438."); 192 const rows = JSON.parse(snapshot); 193 if (!Array.isArray(rows) || rows.length > 100 || new Set(rows.map((r) => r?.key)).size !== rows.length) throw Error("\u041A\u043E\u0440\u0437\u0438\u043D\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438."); 194 const pending = rows.map((row, index) => ({ row, index, spec: specFor(row) })).filter((r) => r.spec && Array.isArray(r.row.modifiers) && r.row.modifiers.length === 0); 195 return { snapshot, rows, pending, catalogVersion: config.catalogVersion }; 196 } 197 function validate(rows, config) { 198 for (const row of rows) { 199 const found = config.bindings.filter((b) => b.brand === row.brandKey && b.publicationId === row.publicationId && b.variantId === row.variantId); 200 if (found.length !== 1) throw Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442 \u0442\u043E\u0432\u0430\u0440\u0430 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0441\u044F. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0435\u0433\u043E \u0437\u0430\u043D\u043E\u0432\u043E."); 201 const binding = found[0], minimum = config.minimums[binding.offerId]; 202 if (!minimum || !Number.isSafeInteger(row.quantity) || row.quantity < minimum.minimumQuantity || row.quantity > 99 || !Array.isArray(row.modifiers) || row.modifiers.length !== binding.groups.length + binding.fixedModifiers.length || new Set(row.modifiers.map((m) => m.groupName)).size !== row.modifiers.length) throw Error("\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u043A\u0430\u0436\u0434\u043E\u0439 \u043F\u043E\u0437\u0438\u0446\u0438\u0438."); 203 for (const fixed of binding.fixedModifiers) if (!row.modifiers.some((m) => m.groupName === fixed.groupName && m.optionLabel === fixed.optionLabel)) throw Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442 \u0442\u043E\u0432\u0430\u0440\u0430 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0441\u044F."); 204 for (const group of binding.groups) { 205 const selected = row.modifiers.find((m) => m.groupName === group.name); 206 if (!selected || !group.values.some((v) => v.label === selected.optionLabel)) throw Error("\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0442\u043E\u0432\u0430\u0440\u0430."); 207 } 208 const total = rows.filter((r) => r.brandKey === row.brandKey && r.publicationId === row.publicationId && r.variantId === row.variantId).reduce((n, r) => n + r.quantity, 0); 209 if (total < minimum.minimumTotalQuantity) throw Error("\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043E\u0431\u0449\u0435\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0442\u043E\u0432\u0430\u0440\u0430."); 210 const spec = specFor(row); 211 if (spec) { 212 if (confirmedPremiumMeatcakeChoices(row, true) && spec.groups.some((g) => { 213 const selected = row.modifiers.find((m) => m.groupName === g.name), value = g.values.find((v) => v.label === selected?.optionLabel); 214 return !value || selected.priceAdjustmentMinor !== value.adjustmentMinor; 215 })) throw Error("\u0414\u043E\u043F\u043B\u0430\u0442\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u043D\u0430\u0447\u0438\u043D\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0430\u0441\u044C. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0437\u0430\u043D\u043E\u0432\u043E."); 216 if (spec.kind === "choice" && "offerId" in spec && binding.offerId !== spec.offerId) throw Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442 \u0442\u043E\u0432\u0430\u0440\u0430 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0441\u044F. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0435\u0433\u043E \u0437\u0430\u043D\u043E\u0432\u043E."); 217 if (JSON.stringify(binding.groups) !== JSON.stringify(spec.groups.map((g) => ({ ...g, values: g.values.map(({ adjustmentMinor, ...v }) => v) })))) throw Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u043D\u0430\u0431\u043E\u0440\u0430 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0438\u0441\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443."); 218 if (spec.kind === "assortment" && !validateAssortmentSelection(spec, row.modifiers.map((m) => ({ name: m.groupName, label: m.optionLabel }))) || spec.kind === "eclair" && !legacyThirtyEclairSelectionValid({ ...row, offerId: binding.offerId }, row.modifiers.map((m) => ({ name: m.groupName, label: m.optionLabel })))) throw Error("\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u0443\u043C\u043C\u0443 \u043D\u0430\u0431\u043E\u0440\u0430, \u043C\u0438\u043D\u0438\u043C\u0443\u043C \u0438 \u0447\u0438\u0441\u043B\u043E \u0432\u043A\u0443\u0441\u043E\u0432."); 219 } 220 } 221 } 222 function repairLocalAssortments(state, selections, config) { 223 if (config.catalogVersion !== state.catalogVersion) throw Error("\u041A\u0430\u0442\u0430\u043B\u043E\u0433 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0441\u044F. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0432\u044B\u0431\u043E\u0440."); 224 if (selections.length !== state.pending.length) throw Error("\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u043A\u0430\u0436\u0434\u043E\u0439 \u043F\u043E\u0437\u0438\u0446\u0438\u0438."); 225 const next = state.rows.map((row, index) => { 226 const at = state.pending.findIndex((p) => p.index === index); 227 if (at < 0) return row; 228 const spec = state.pending[at].spec, labels = selections[at]; 229 if (!labels || labels.length !== spec.groups.length) throw Error("\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0436\u0434\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0442\u043E\u0432\u0430\u0440\u0430."); 230 const modifiers = spec.groups.map((g, i) => { 231 if (!g.values.some((v) => v.label === labels[i])) throw Error("\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430."); 232 return { groupName: g.name, optionLabel: labels[i], priceAdjustmentMinor: g.values.find((v) => v.label === labels[i]).adjustmentMinor }; 233 }); 234 return { ...row, key: JSON.stringify([row.publicationId, row.variantId, modifiers]), modifiers }; 235 }); 236 if (new Set(next.map((r) => r.key)).size !== next.length) throw Error("\u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0442\u0441\u044F \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u044B\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B. \u0423\u0434\u0430\u043B\u0438\u0442\u0435 \u043B\u0438\u0448\u043D\u044E\u044E \u043F\u043E\u0437\u0438\u0446\u0438\u044E."); 237 validate(next, config); 238 return JSON.stringify(next); 239 } 240 function commitLocalAssortments(storage, snapshot, next) { 241 if (storage.getItem(KEY) !== snapshot) throw Error("\u041A\u043E\u0440\u0437\u0438\u043D\u0430 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0430\u0441\u044C \u0432 \u0434\u0440\u0443\u0433\u043E\u0439 \u0432\u043A\u043B\u0430\u0434\u043A\u0435. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0435\u0451 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0432\u044B\u0431\u043E\u0440."); 242 storage.setItem(KEY, next); 243 } 244 function stageLoftOwnsNativeEclair(root, pending) { 245 const spec = pending.spec; 246 if (!root.matches("[data-stage-checkout]") || pending.row?.brandKey !== "loft_pirate" || spec?.kind !== "eclair" || spec.offerId !== "95e2d4d52b95aed89df7d8614efdfe7
2467666f45b5343a8735eea686b2ca4ae6dd") return false; 247 const owners = root.querySelectorAll("[data-loft-choice-recovery]"); 248 if (owners.length !== 1 || owners[0].hidden) return false; 249 const owner = owners[0]; 250 if (owner.querySelectorAll("button[data-loft-choice-save]").length !== 1 || owner.querySelectorAll("button[data-loft-choice-refresh]:not(:disabled)").length !== 1 || owner.querySelectorAll(`button[data-loft-choice-remove="${pending.index}"]:not(:disabled)`).length !== 1) return false; 251 const fields = [...owners[0].querySelectorAll(`select[data-loft-choice="${pending.index}"]`)]; 252 return fields.length === spec.groups.length && fields.every((field, i) => !field.disabled && field.dataset.groupId === spec.groups[i].id && JSON.stringify([...field.options].map((o) => o.value)) === JSON.stringify(["", ...spec.groups[i].values.map((v) => v.label)])); 253 } 254 function hasPendingSixTrifle(raw) { 255 if (raw.length > 2e5) return false; 256 try { 257 const rows = JSON.parse(raw); 258 return Array.isArray(rows) && rows.some((row) => confirmedSixTrifleChoices(row, true) && Array.isArray(row.modifiers) && row.modifiers.length === 0); 259 } catch { 260 return false; 261 } 262 } 263 async function installLocalAssortmentRecovery(root) { 264 if (installed.has(root)) return; 265 installed.add(root); 266 const doc = root.ownerDocument, view = doc.defaultView; 267 let raw = view.localStorage.getItem(KEY) ?? "[]"; 268 if (!ASSORTMENT_SPECS.some((s) => s.brand !== "loft_pirate" && raw.includes(s.publicationId)) && ![...sauceIds].some((uid2) => raw.includes("pub_" + uid2)) && ![...meatcakeChoiceIds].some((uid2) => raw.includes("pub_meatcake_" + uid2)) && !raw.includes("pub_614093133533") && !raw.includes("pub_loftmenu_pub_614093133533") && !hasPendingSixTrifle(raw)) return; 269 const section = doc.createElement("section"); 270 section.dataset.localAssortmentRecovery = ""; 271 section.style.cssText = "margin:16px 0;padding:16px;border:1px solid #a88d59;border-radius:14px;background:#171d25;color:#f4f0e7;font:16px/1.5 Arial,sans-serif"; 272 root.prepend(section); 273 let config; 274 try { 275 const response = await view.fetch("/assortment-recovery-config.json", { credentials: "omit", cache: "no-store" }); 276 if (!response.ok) throw Error(); 277 config = await response.json(); 278 if (!config || !Array.isArray(config.bindings) || typeof config.minimums !== "object" || !/^[a-f0-9]{64}$/.test(config.catalogVersion)) throw Error(); 279 } catch { 280 section.textContent = "\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438\u043B\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u043E\u0432\u0430\u0440 \u0437\u0430\u043D\u043E\u0432\u043E."; 281 return; 282 } 283 const style = doc.createElement("style"); 284 style.textContent = "[data-local-assortment-recovery] button{min-height:46px;padding:10px 12px;margin:8px 8px 8px 0;background:#242b36;color:#f4f0e7;border:1px solid #b89452;border-radius:8px}[data-local-assortment-recovery] button:hover:not(:disabled){background:#364152}[data-local-assortment-recovery] button:active:not(:disabled){background:#4b3e28}[data-local-assortment-recovery] button:disabled{background:#30343a!important;color:#c3c3c3!important;border-color:#707070!important}[data-local-assortment-recovery] button:focus-visible,[data-local-assortment-recovery] select:focus-visible{outline:3px solid #f1d29f;outline-offset:3px}"; 285 doc.head.append(style); 286 const busy = () => !!root.querySelector("form[aria-busy=true]") || !!root.querySelector("[data-stage-order-result][data-order-id]"); 287 let lastStageOwnership = ""; 288 const stageOwnership = (state) => state.pending.filter((p) => stageLoftOwnsNativeEclair(root, p)).map((p) => p.index).join(","); 289 const render = () => { 290 section.replaceChildren(); 291 let state;
292 try { 293 state = localAssortmentSnapshot(view.localStorage.getItem(KEY) ?? "[]", config); 294 } catch { 295 section.textContent = "\u0421\u0442\u0430\u0440\u0430\u044F \u043A\u043E\u0440\u0437\u0438\u043D\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438. \u0415\u0451 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043E."; 296 return; 297 } 298 lastStageOwnership = stageOwnership(state); 299 const owned = new Set(state.pending.filter((p) => stageLoftOwnsNativeEclair(root, p)).map((p) => p.index)); 300 state = { ...state, pending: state.pending.filter((p) => !owned.has(p.index)) }; 301 section.hidden = !state.pending.length; 302 if (section.hidden) return; 303 const heading = doc.createElement("h3"); 304 heading.textContent = "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0445 \u0442\u043E\u0432\u0430\u0440\u043E\u0432"; 305 const hint = doc.createElement("p"); 306 hint.textContent = "\u042D\u0442\u0438 \u0442\u043E\u0432\u0430\u0440\u044B \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B \u0431\u0435\u0437 \u0432\u044B\u0431\u043E\u0440\u0430 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043E\u0441\u0442\u0430\u0432 \u043D\u0430\u0431\u043E\u0440\u0430 \u0438\u043B\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0442\u043E\u0432\u0430\u0440\u0430 \u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u0432\u044B\u0431\u043E\u0440. \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E, \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0432\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C\u0438."; 307 section.append(heading, hint); 308 const sets = []; 309 for (const pending of state.pending) { 310 const spec = pending.spec, title = doc.createElement("p"); 311 title.textContent = spec.kind === "eclair" ? `${pending.row.title || "\u041D\u0430\u0431\u043E\u0440"}: ${legacyThirtyEclairInstruction}` : spec.kind === "assortment" ? `\u041D\u0430\u0431\u043E\u0440 ${pending.row.title || ""}: ${spec.count} \u0448\u0442., \u043C\u0438\u043D\u0438\u043C\u0443\u043C ${spec.minimum} \u0448\u0442. \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0432\u043A\u0443\u0441\u0430, \u0434\u043E ${spec.maximumFlavours} \u0432\u043A\u0443\u0441\u043E\u0432.` : `${pending.row.title || "\u0422\u043E\u0432\u0430\u0440"}: \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442.`; 312 section.append(title); 313 const fields = []; 314 for (const group of spec.groups) { 315 const label = doc.createElement("label"), copy = doc.createElement("span"), select = doc.createElement("select"); 316 copy.textContent = group.name; 317 select.dataset.localAssortmentChoice = String(pending.index); 318 select.dataset.groupId = group.id; 319 select.style.cssText = "display:block;width:100%;box-sizing:border-box;min-height:46px;padding:10px;margin:8px 0;background:#101419;color:#f4f0e7;border:1px solid #b89452;border-radius:8px"; 320 select.append(new view.Option(spec.kind !== "choice" ? "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E" : "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442", "")); 321 for (const value of group.values) select.append(new view.Option(value.label, value.label)); 322 label.append(copy, select); 323 section.append(label); 324 fields.push(select); 325 } 326 sets.push(fields); 327 const remove = doc.createElement("button"); 328 remove.type = "button"; 329 remove.dataset.localAssortmentRemove = String(pending.index); 330 remove.textContent = spec.kind !== "choice" ? "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u043D\u0430\u0431\u043E\u0440" : "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0442\u043E\u0432\u0430\u0440"; 331 remove.addEventListener("click", () => { 332 if (busy()) return; 333 try { 334 commitLocalAssortments(view.localStorage, state.snapshot, JSON.stringify(state.rows.filter((_, i) =>
334 i !== pending.index))); 335 view.dispatchEvent(new view.CustomEvent("bestfurshet:cart")); 336 render(); 337 } catch (e) { 338 message.textContent = e.message; 339 } 340 }); 341 section.append(remove); 342 } 343 const message = doc.createElement("p"); 344 message.setAttribute("role", "status"); 345 message.style.color = "#ffc6b3"; 346 const save = doc.createElement("button"); 347 save.type = "button"; 348 save.dataset.localAssortmentSave = ""; 349 save.textContent = "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0432\u044B\u0431\u043E\u0440"; 350 save.disabled = true; 351 save.style.cssText = "min-height:46px;padding:12px;background:#d5b476;color:#15191f;border:1px solid #d5b476;border-radius:8px"; 352 const selections = () => sets.map((fields) => fields.map((s) => s.value)); 353 for (const field of sets.flat()) field.addEventListener("change", () => { 354 try { 355 repairLocalAssortments(state, selections(), config); 356 save.disabled = false; 357 message.textContent = "\u0412\u044B\u0431\u043E\u0440 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D. \u041C\u043E\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C."; 358 } catch (e) { 359 save.disabled = true; 360 message.textContent = e.message; 361 } 362 }); 363 save.addEventListener("click", () => { 364 if (busy()) return; 365 try { 366 commitLocalAssortments(view.localStorage, state.snapshot, repairLocalAssortments(state, selections(), config)); 367 view.dispatchEvent(new view.CustomEvent("bestfurshet:cart")); 368 render(); 369 } catch (e) { 370 message.textContent = e.message; 371 } 372 }); 373 const refresh = doc.createElement("button"); 374 refresh.type = "button"; 375 refresh.dataset.localAssortmentRefresh = ""; 376 refresh.textContent = "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u0440\u0437\u0438\u043D\u0443"; 377 refresh.addEventListener("click", () => { 378 if (!busy()) render(); 379 }); 380 section.append(save, refresh, message); 381 }; 382 render(); 383 const observer = new view.MutationObserver((records) => { 384 if (!root.isConnected) { 385 observer.disconnect(); 386 detachmentObserver.disconnect(); 387 return; 388 } 389 if (busy() || records.every((r) => r.target instanceof view.Element && !!r.target.closest("[data-local-assortment-recovery]"))) return; 390 try { 391 const state = localAssortmentSnapshot(view.localStorage.getItem(KEY) ?? "[]", config); 392 if (stageOwnership(state) !== lastStageOwnership) render(); 393 } catch { 394 } 395 }); 396 observer.observe(root, { childList: true, subtree: true, attributes: true, attributeFilter: ["hidden", "data-loft-choice", "data-group-id", "disabled", "value", "aria-busy", "data-order-id"] }); 397 const detachmentObserver = new view.MutationObserver(() => { 398 if (!root.isConnected) { 399 observer.disconnect(); 400 detachmentObserver.disconnect(); 401 } 402 }); 403 detachmentObserver.observe(doc.documentElement, { childList: true, subtree: true }); 404 view.addEventListener("storage", (event) => { 405 if (!busy() && (event.key === KEY || event.key === null)) render(); 406 }); 407 } 408 return __toCommonJS(local_assortment_recovery_exports); 409})(); 410var __bfFamilyChoiceRecovery20261003 = (() => { 411 var __defProp = Object.defineProperty; 412 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 413 var __getOwnPropNames = Object.getOwnPropertyNames; 414 var __hasOwnProp = Object.prototype.hasOwnProperty; 415 var __export = (target, all) => { 416 for (var name in all) 417 __defProp(target, name, { get: all[name], enumerable: true }); 418 }; 419 var __copyProps = (to, from, except, desc) => { 420 if (from && typeof from === "object" || typeof from === "function") { 421 for (let key of __getOwnPropNames(from)) 422 if (!__hasOwnProp.call(to, key) && key !== except) 423 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 424 } 425 return to; 426 }; 427 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); 428 429
429// apps/storefront-shared/family-cart-choice-recovery.ts 430 var family_cart_choice_recovery_exports = {}; 431 __export(family_cart_choice_recovery_exports, { 432 attachFamilyCartChoiceRecovery: () => attachFamilyCartChoiceRecovery, 433 familyCartChoicesRequired: () => familyCartChoicesRequired 434 }); 435 436
436// apps/api/src/stage-one-eclairs.ts 437 var ECLAIR_LEGACY_30_FLAVOURS = [ 438 "\u0410\u043D\u0430\u043D\u0430\u0441 \u0441 \u043A\u0440\u0435\u0432\u0435\u0442\u043A\u043E\u0439", 439 "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u0433\u043E\u0432\u044F\u0434\u0438\u043D\u0430", 440 "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u043A\u0443\u0440\u043E\u0447\u043A\u0430", 441 "\u041D\u0435\u0436\u043D\u0430\u044F \u0433\u043E\u0440\u0431\u0443\u0448\u0430", 442 "\u041E\u0432\u0435\u0447\u0438\u0439 \u0441\u044B\u0440 \u0441 \u0432\u044F\u043B\u0435\u043D\u044B\u043C \u0442\u043E\u043C\u0430\u0442\u043E\u043C", 443 "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0441 \u0447\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", 444 "\u0422\u043E\u043C \u042F\u043C, \u0431\u0430\u043A\u043B\u0430\u0436\u0430\u043D \u0438 \u043A\u0443\u0440\u043E\u0447\u043A\u0430", 445 "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" 446 ]; 447 var SETS = { 448 "614093133533": { count: 30, flavours: ECLAIR_LEGACY_30_FLAVOURS, salmonMaximum: 7 }, 449 "789631226963": { count: 10 }, 450 "184010217511": { count: 10 }, 451 "120288869513": { count: 20 }, 452 "451657492542": { count: 20 }, 453 "864494374333": { count: 30 }, 454 "418714703741": { count: 30 }, 455 "923335331393": { count: 40 }, 456 "692833031001": { count: 40 }, 457 "238260534453": { count: 50 }, 458 "256845007992": { count: 50 }, 459 "228418595203": { count: 100 }, 460 "600656251142": { count: 100 }, 461 "726933266883": { count: 10, sweet: true }, 462 "107904039061": { count: 10, sweet: true } 463 }; 464 var ECLAIR_SAVOURY = ["\u0410\u043D\u0430\u043D\u0430\u0441 \u0441 \u043A\u0440\u0435\u0432\u0435\u0442\u043A\u043E\u0439", "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u0433\u043E\u0432\u044F\u0434\u0438\u043D\u0430", "\u041A\u043E\u043F\u0447\u0451\u043D\u0430\u044F \u043A\u0443\u0440\u043E\u0447\u043A\u0430", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0441 \u0433\u0440\u0438\u0431\u043E\u0447\u043A\u0430\u043C\u0438", "\u041D\u0435\u0436\u043D\u0430\u044F \u0433\u043E\u0440\u0431\u0443\u0448\u0430", "\u041E\u0432\u0435\u0447\u0438\u0439 \u0441\u044B\u0440 \u0441 \u0432\u044F\u043B\u0435\u043D\u044B\u043C \u0442\u043E\u043C\u0430\u0442\u043E\u043C", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0441 \u0447\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C, \u0431\u0430\u043A\u043B\u0430\u0436\u0430\u043D \u0438 \u043A\u0443\u0440\u043E\u0447\u043A\u0430", "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430"]; 465 var ECLAIR_SWEET = ["\u0411\u0430\u0440\u0431\u0435\u0440\u0440\u0438 \u0447\u0438\u0437", "\u0411\u043B\u0430\u0433\u043E\u0440\u043E\u0434\u043D\u0430\u044F \u0433\u0440\u0443\u0448\u0430", "\u0411\u043B\u044E\u0431\u0435\u0440\u0440\u0438 \u0447\u0438\u0437", "\u042F\u043D\u0442\u0430\u0440\u043D\u044B\u0439 \u0447\u0438\u0437"]; 466 var eclairSetSpec = (uid2) => SETS[uid2]; 467 var eclairSalmonMaximum = (uid2) => { 468 const spec = eclairSetSpec(uid2); 469 return spec ? spec.salmonMaximum ?? Math.floor(spec.count / 10) * 3 : void 0; 470 }; 471 function eclairQuantityGroups(uid2) { 472 const spec = eclairSetSpec(uid2); 473 if (!spec) return void 0; 474 return (spec.flavours ?? (spec.sweet ? ECLAIR_SWEET : ECLAIR_SAVOURY)).map((name, i) => ({ id: `eclair-${i}`, name: `\u042D\u043A\u043B\u0435\u0440\u044B: ${name}`, values: [0, ...Array.from({ length: (name === "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" ? eclairSalmonMaximum(uid2) : spec.count) - 2 }, (_, j) => j + 3)].map((n) => ({ id: `qty-${n}`, label: `${n} \u0448\u0442.`, adjustmentMinor: "0" })) })); 475 } 476 function validateEclairSetSelection(uid2, entries) { 477 const spec = eclairSetSpec(uid2); 478 if (!spec) return true; 479 if (!validateEclairQuantities(spec.count, entries)) return false; 480 const names = entries.map((entry) => entry.name.replace(/^ÐклеÑÑ: /u, "")); 481 if (spec.flavours && (new Set(names).size !== names.length || names.some((name) => !spec.flavours.includes(name)))) return false;
482 return !entries.some((entry, index) => names[index] === "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" && Number(/^(\d+) ÑÑ\.$/u.exec(entry.label)?.[1]) > eclairSalmonMaximum(uid2)); 483 } 484 function validateEclairQuantities(count, entries) { 485 if (count === void 0) return true; 486 if (![10, 20, 30, 40, 50, 100].includes(count) || !entries.length) return false; 487 let sum = 0; 488 let sweet = false, savoury = false; 489 let active = 0; 490 for (const entry of entries) { 491 const name = entry.name.replace(/^ÐклеÑÑ: /u, ""); 492 const n = Number(/^(\d+) ÑÑ\.$/u.exec(entry.label)?.[1] ?? NaN); 493 if (!Number.isInteger(n) || n < 0 || n > count || n > 0 && n < 3) return false; 494 if (!ECLAIR_SWEET.includes(name) && !ECLAIR_SAVOURY.includes(name)) return false; 495 if (name === "\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444-\u043F\u043E\u0441\u043E\u043B\u0430" && n > Math.floor(count / 10) * 3) return false; 496 if (n) { 497 sum += n; 498 active++; 499 sweet ||= ECLAIR_SWEET.includes(name); 500 savoury ||= ECLAIR_SAVOURY.includes(name); 501 } 502 } 503 return sum === count && !(sweet && savoury) && (!sweet || active <= 3); 504 } 505 506
506// apps/storefront-shared/legacy-thirty-eclair-choices.ts 507 var uid = "614093133533"; 508 var known = Object.freeze([{ "brandKey": "bestfurshet", "publicationId": "pub_614093133533", "variantId": "v_614093133533", "offerId": "152e39ccf67beada070a6e2b245ab2b741e36048e97019ffd39080df74cbf8e5" }, { "brandKey": "loft_pirate", "publicationId": "pub_loftmenu_pub_614093133533", "variantId": "v_614093133533", "offerId": "95e2d4d52b95aed89df7d8614efdfe77666f45b5343a8735eea686b2ca4ae6dd" }]); 509 var groups = eclairQuantityGroups(uid).map((g, i) => ({ id: "g-" + i, name: g.name, values: g.values.map((v, j) => ({ id: "v-" + j, label: v.label, adjustmentMinor: "0" })) })); 510 function legacyThirtyEclairSpec(row, allowLocalIdentity = false) { 511 const identity2 = known.find((k) => k.brandKey === row?.brandKey && k.publicationId === row?.publicationId && k.variantId === row?.variantId && (row.offerId === k.offerId || allowLocalIdentity && row.offerId === void 0)); 512 return identity2 ? { kind: "eclair", ...identity2, count: 30, minimum: 3, maximumFlavours: 8, salmonMaximum: 7, groups } : void 0; 513 } 514 function legacyThirtyEclairSelectionValid(row, entries) { 515 const spec = legacyThirtyEclairSpec(row, true); 516 return Boolean(spec && entries.length === groups.length && groups.every((g, i) => entries[i]?.name === g.name && g.values.some((v) => v.label === entries[i]?.label)) && validateEclairSetSelection(uid, entries)); 517 } 518 var legacyThirtyEclairInstruction = "30 \u044D\u043A\u043B\u0435\u0440\u043E\u0432: \u043C\u0438\u043D\u0438\u043C\u0443\u043C 3 \u0448\u0442. \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0432\u043A\u0443\u0441\u0430, \u0441 \u043B\u043E\u0441\u043E\u0441\u0435\u043C \u2014 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 7 \u0448\u0442. \u0423\u043A\u0430\u0436\u0438\u0442\u0435 0 \u0448\u0442. \u0434\u043B\u044F \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0445. \u0412\u0441\u0435\u0433\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C 30 \u0448\u0442."; 519 520
520// apps/storefront-shared/confirmed-product-choices.ts 521 var choices = Object.freeze({ 522 "827739309693": Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041D\u0435\u043E\u0441\u0442\u0440\u044B\u0439", "\u0427\u0435\u0441\u043D\u043E\u0447\u043D\u044B\u0439", "\u0421 \u0447\u0438\u043B\u0438"]) }]), 523 "965652155463": Object.freeze([{ name: "\u041C\u0430\u0441\u043B\u043E", values: Object.freeze(["\u0421\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u043E\u0435", "\u0421\u043B\u0438\u0432\u043E\u0447\u043D\u043E\u0435", "\u0421\u043B\u0438\u0432\u043E\u0447\u043D\u043E-\u0447\u0435\u0441\u043D\u043E\u0447\u043D\u043E\u0435"]) }]), 524 "668484083213": Object.freeze([{ name: "\u0421\u043E\u0443\u0441", values: Object.freeze(["\u0421\u043C\u0435\u0442\u0430\u043D\u043D\u044B\u0439", "\u041E\u0440\u0435\u0445\u043E\u0432\u044B\u0439", "\u041E\u043B\u0438\u0432\u043A\u043E\u0432\u043E\u0435 \u043C\u0430\u0441\u043B\u043E", "\u041F\u0435\u0441\u0442\u043E"]) }]), 525 "440032370743": Object.freeze([{ name: "\u0421\u043E\u0443\u0441", values: Object.freeze(["\u0421\u043C\u0435\u0442\u0430\u043D\u043D\u044B\u0439", "\u041A\u0438\u0441\u043B\u043E-\u0421\u043B\u0430\u0434\u043A\u0438\u0439", "\u0422\u0435\u0440\u0438\u044F\u043A\u0438", "\u0411\u0430\u0440\u0431\u0435\u043A\u044E", "\u041F\u0435\u0441\u0442\u043E", "\u041E\u0440\u0435\u0445\u043E\u0432\u044B\u0439"]) }]), 526 "312692333053": Object.freeze([{ name: "\u0421\u043E\u0443\u0441", values: Object.freeze(["\u0421\u043C\u0435\u0442\u0430\u043D\u043D\u044B\u0439", "\u041A\u0438\u0441\u043B\u043E-\u0421\u043B\u0430\u0434\u043A\u0438\u0439", "\u0422\u0435\u0440\u0438\u044F\u043A\u0438", "\u0411\u0430\u0440\u0431\u0435\u043A\u044E", "\u041F\u0435\u0441\u0442\u043E", "\u041E\u0440\u0435\u0445\u043E\u0432\u044B\u0439"]) }]) 527 }); 528 var meatcakeChoices = Object.freeze({ 529 "287446958161": Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041B\u043E\u0441\u043E\u0441\u044C \u0448\u0435\u0444 \u043F\u043E\u0441\u043E\u043B\u0430", "\u041A\u043E\u043F\u0447\u0435\u043D\u0430\u044F \u0413\u043E\u0432\u044F\u0434\u0438\u043D\u0430", "\u041E\u0432\u0435\u0447\u0438\u0439 \u0441\u044B\u0440 \u0438 \u0432\u044F\u043B\u0435\u043D\u044B\u0439 \u0442\u043E\u043C\u0430\u0442", "\u0410\u043D\u0430\u043D\u0430\u0441\u044B \u0441 \u043A\u0440\u0435\u0432\u0435\u0442\u043A\u043E\u0439", "\u041A\u043E\u043F\u0447\u0435\u043D\u0430\u044F \u041A\u0443\u0440\u043E\u0447\u043A\u0430", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0435 \u0441 \u0447\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041D\u0435\u0436\u043D\u0430\u044F \u0433\u043E\u0440\u0431\u0443\u0448\u0430", "\u0422\u043E\u043C \u042F\u043C \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D"]) }]), 530 "754893720421": Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041F\u0435\u0447\u0435\u043D\u044C \u043F\u0440\u0435\u043C\u0438\u0443\u043C", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u0421\u0432\u0438\u043D\u0438\u043D\u0430 \u0431\u0430\u0440\u0431\u0435\u043A\u044E", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u041C\u044F\u0441\u043D\u043E\u0439 \u0421\u043F\u0430\u0439\u0441\u0438 \u0414\u0443\u044D\u0442"]) }]) 531 }); 532 function confirmedProductChoices(brand, uid2) { 533 if (brand === "meat_cake") return Object.hasOwn(meatcakeChoices, uid2) ? meatcakeChoices[uid2] : void 0; 534 return brand === "bestfurshet" && Object.hasOwn(choices, uid2) ? choices[uid2] : void 0; 535 } 536 var sixTrifleChoices = Object.freeze([{ name: "\u0412\u043A\u0443\u0441", values: Object.freeze(["\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0432\u0438\u0448\u043D\u044F", "\u042F\u0431\u043B\u043E\u0447\u043D\u0430\u044F \u043A\u043E\u0440\u0438\u0446\u0430"]) }]); 537 function confirmedSixTrifleChoices(row, allowMissingOffer = false) { 538 if (!row || typeof row !== "object" || Array.isArray(row)) return void 0; 539 return row.brandKey === "bestfurshet" && row.publicationId === "pub_608274534153" && row.variantId === "v_786141837473" && (row.offerId === "dde650be8aebb7a58f4ba67f73de78f5b3f392398143e7a0f2acfd6891ccf7f4" || allowMissingOffer && row.offerId === void 0) ? sixTrifleChoices : void 0; 540 } 541 var premiumMeatcakeIdentities = Object.freeze({ "589456739542": "e4e5d32bc8c464fca16f341bca88b226b4785a52fd6b094d5afee916b67226f2", "803452839142": "20046838dea78f4571d05394ac9b5a9f7752b62ec0d31b8d99d3f752b464d2c0" }); 542 var premiumMeatcakeGroups = Object.freeze([{ "id": "g-0", "name": "\u0412\u043A\u0443\u0441", "values": [{ "id": "v-0", "label": "\u043C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "adjustmentMinor": "0" }, { "id": "v-1", "label": "\u043A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "adjustmentMinor": "0" }, { "id": "v-2", "label": "\u0442\u043E\u043C \u044F\u043C", "adjustmentMinor": "0" }, { "id": "v-3", "label": "\u043F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439", "adjustmentMinor": "0" }, { "id": "v-4", "label": "\u0441\u0435\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439", "adjustmentMinor": "100000" }] }]); 543 function confirmedPremiumMeatcakeChoices(row, allowMissingOffer = false) { 544 if (!row || typeof row !== "object" || Array.isArray(row) || row.brandKey !== "meat_cake" || typeof row.publicationId !== "string") return void 0; 545 const uid2 = /^pub_meatcake_(589456739542|803452839142)$/.exec(row.publicationId)?.[1]; 546 if (!uid2 || row.variantId !== "v_" + uid2) return void 0; 547 const offerId = premiumMeatcakeIdentities[uid2]; 548 if (row.offerId !== offerId && !(allowMissingOffer && row.offerId === void 0)) return void 0; 549 return { uid: uid2, offerId, amountMinor: "649000", weightGrams: 2e3, groups: premiumMeatcakeGroups }; 550 } 551 552
552// apps/api/src/product-assortment.ts 553 var ASSORTMENT_SPECS = [{ "offerId": "9c75874244e29b74fdf472d4c1d9e4ad6fe90117729673e70a2aad63b6b4c42b", "brand": "bestfurshet", "publicationId": "pub_601555658023", "variantId": "v_601555658023", "count": 50, "minimum": 15, "maximumFlavours": 3, "prefix": "\u041F\u0438\u0440\u043E\u0436\u043A\u0438: ", "flavours": ["\u041A\u0430\u043F\u0443\u0441\u0442\u0430", "\u042F\u0431\u043B\u043E\u043A\u043E", "\u041A\u0443\u0440\u0438\u0446\u0430", "\u041C\u044F\u0441\u043E", "\u041F\u0435\u0440\u0441\u0438\u043A", "\u0413\u0440\u0443\u0448\u0430", "\u041A\u0430\u0440\u0442\u043E\u0448\u043A\u0430", "\u042F\u0439\u0446\u043E \u0438 \u0437\u0435\u043B\u0451\u043D\u044B\u0439 \u043B\u0443\u043A"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] }, { "offerId": "8168bb38f40ed36861ff7729c39fee12cce93f146faccc197ca5c0ea98505ae0", "brand": "meat_cake", "publicationId": "pub_meatcake_224710905952", "variantId": "v_558108711722", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "23dc22585c2d6de2360788d58dba7d2d45248a3f7dd1f2038ae149f08eeb23f4", "brand": "meat_cake", "publicationId": "pub_meatcake_224710905952", "variantId": "v_960746083672", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "c3cd754654f9b41aa9a67f64294cab140faaac5c31a0e85ace3ace8ef5ccd822", "brand": "meat_cake", "publicationId": "pub_meatcake_224710905952", "variantId": "v_119080439542", "count": 180, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
553133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "3a51296562c10a66203136e9da1d23efa02efa7c7374e64139325a440fe522cc", "brand": "meat_cake", "publicationId": "pub_meatcake_758312493642", "variantId": "v_412457078582", "count": 60, "minimum": 15, "maximumFlavours": 3, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u042F\u0431\u043B\u043E\u0447\u043D\u044B\u0439 \u0428\u0442\u0440\u0443\u0434\u0435\u043B\u044C", "\u0413\u0440\u0443\u0448\u0435\u0432\u044B\u0439 \u0428\u0451\u043B\u043A", "\u0412\u0430\u043D\u0438\u043B\u044C\u043D\u043E\u0435 \u041E\u0431\u043B\u0430\u043A\u043E", "\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0412\u0438\u0448\u043D\u044F", "\u0410\u043D\u0430\u043D\u0430\u0441\u043E\u0432\u044B\u0439 \u0411\u0440\u0438\u0437"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "978e62491b341a073a0d28cb368f226e4d0115222a208d2b0ea66d4241497572", "brand": "meat_cake", "publicationId": "pub_meatcake_758312493642", "variantId": "v_774607502262", "count": 120, "minimum": 15, "maximumFlavours": 5, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u042F\u0431\u043B\u043E\u0447\u043D\u044B\u0439 \u0428\u0442\u0440\u0443\u0434\u0435\u043B\u044C", "\u0413\u0440\u0443\u0448\u0435\u0432\u044B\u0439 \u0428\u0451\u043B\u043A", "\u0412\u0430\u043D\u0438\u043B\u044C\u043D\u043E\u0435 \u041E\u0431\u043B\u0430\u043A\u043E", "\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0412\u0438\u0448\u043D\u044F", "\u0410\u043D\u0430\u043D\u0430\u0441\u043E\u0432\u044B\u0439 \u0411\u0440\u0438\u0437"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "17afbf5b8eac9f2fb4b9f65e649519e2e61e49217903027ad28793d28a559cc8", "brand": "meat_cake", "publicationId": "pub_meatcake_758312493642", "variantId": "v_766743506942", "count": 180, "minimum": 15, "maximumFlavours": 5, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u042F\u0431\u043B\u043E\u0447\u043D\u044B\u0439 \u0428\u0442\u0440\u0443\u0434\u0435\u043B\u044C", "\u0413\u0440\u0443\u0448\u0435\u0432\u044B\u0439 \u0428\u0451\u043B\u043A", "\u0412\u0430\u043D\u0438\u043B\u044C\u043D\u043E\u0435 \u041E\u0431\u043B\u0430\u043A\u043E", "\u041A\u043E\u0444\u0435\u0439\u043D\u0430\u044F \u0412\u0438\u0448\u043D\u044F", "\u0410\u043D\u0430\u043D\u0430\u0441\u043E\u0432\u044B\u0439 \u0411\u0440\u0438\u0437"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "3e9f042d105bac3c0b71e257ba4fa5d940763267fffca91ea9735e64a1730ba0", "brand": "meat_cake", "publicationId": "pub_meatcake_966630703672", "variantId": "v_774393566412", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "e9d03774a50230a3a1eaecc1614e0fc967019b7606e4a8bec15e49fff1e5d078", "brand": "meat_cake", "publicationId": "pub_meatcake_966630703672", "variantId": "v_869953995522", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "7c064d436d2de7caaf4ab921202530518358a1ba94b0da3e7173d0c659c770a4", "brand": "meat_cake", "publicationId": "pub_meatcake_966630703672", "variantId": "v_126933787172", "count": 180, "minimum": 15, "maximumFlavours": 12, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
553133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "a26be136b2a49af01ee081780d75345de126ea6c4c5ee0aff580721d859900a2", "brand": "meat_cake", "publicationId": "pub_meatcake_912578615862", "variantId": "v_912578615862", "count": 12, "minimum": 4, "maximumFlavours": 3, "prefix": "\u0411\u0438\u0433 \u0422\u0430\u0440\u0442: ", "flavours": ["\u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D\u0447\u0438\u043A", "\u041A\u043E\u043F\u0447\u0435\u043D\u044B\u0439 \u0411\u0438\u0444", "\u0422\u043E\u043C\u043B\u0451\u043D\u0430\u044F \u0413\u043E\u0440\u0431\u0438", "\u0416\u044E\u043B\u044C \u041A\u043E\u043A\u043E\u0448\u043A\u0430", "\u041F\u0438\u043A\u0430\u043D\u0442\u0430 \u0411\u0443\u0436\u0435", "\u0410\u0437\u0438\u044F \u041F\u0440\u0430\u0443\u043D"], "allowedQuantities": [0, 4] }, { "offerId": "87515e993547d16c186ea3141b148dee98b7f48e8bb46236bd29d2ea685ae03a", "brand": "loft_pirate", "publicationId": "pub_loftmenu_pub_601555658023", "variantId": "v_601555658023", "count": 50, "minimum": 15, "maximumFlavours": 3, "prefix": "\u041F\u0438\u0440\u043E\u0436\u043A\u0438: ", "flavours": ["\u041A\u0430\u043F\u0443\u0441\u0442\u0430", "\u042F\u0431\u043B\u043E\u043A\u043E", "\u041A\u0443\u0440\u0438\u0446\u0430", "\u041C\u044F\u0441\u043E", "\u041F\u0435\u0440\u0441\u0438\u043A", "\u0413\u0440\u0443\u0448\u0430", "\u041A\u0430\u0440\u0442\u043E\u0448\u043A\u0430", "\u042F\u0439\u0446\u043E \u0438 \u0437\u0435\u043B\u0451\u043D\u044B\u0439 \u043B\u0443\u043A"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] }, { "offerId": "4cbf98e108babd09cfa5b6db3935ee179f08848858562eace6bccc0bba5a74c2", "brand": "bestfurshet", "publicationId": "pub_372148681583", "variantId": "v_372148681583", "count": 12, "minimum": 4, "maximumFlavours": 3, "prefix": "\u0411\u0438\u0433 \u0422\u0430\u0440\u0442: ", "flavours": ["\u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D\u0447\u0438\u043A", "\u041A\u043E\u043F\u0447\u0435\u043D\u044B\u0439 \u0411\u0438\u0444", "\u0422\u043E\u043C\u043B\u0451\u043D\u0430\u044F \u0413\u043E\u0440\u0431\u0438", "\u0416\u044E\u043B\u044C \u041A\u043E\u043A\u043E\u0448\u043A\u0430", "\u041F\u0438\u043A\u0430\u043D\u0442\u0430 \u0411\u0443\u0436\u0435", "\u0410\u0437\u0438\u044F \u041F\u0440\u0430\u0443\u043D"], "allowedQuantities": [0, 4] }, { "offerId": "75938b6b51951af5c69a6de57541284d88756f60529e9f59d13208d666a7a2c5", "brand": "loft_pirate", "publicationId": "pub_loftmenu_pub_372148681583", "variantId": "v_372148681583", "count": 12, "minimum": 4, "maximumFlavours": 3, "prefix": "\u0411\u0438\u0433 \u0422\u0430\u0440\u0442: ", "flavours": ["\u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D\u0447\u0438\u043A", "\u041A\u043E\u043F\u0447\u0435\u043D\u044B\u0439 \u0411\u0438\u0444", "\u0422\u043E\u043C\u043B\u0451\u043D\u0430\u044F \u0413\u043E\u0440\u0431\u0438", "\u0416\u044E\u043B\u044C \u041A\u043E\u043A\u043E\u0448\u043A\u0430", "\u041F\u0438\u043A\u0430\u043D\u0442\u0430 \u0411\u0443\u0436\u0435", "\u0410\u0437\u0438\u044F \u041F\u0440\u0430\u0443\u043D"], "allowedQuantities": [0, 4] }, { "offerId": "f1c04a16463f296a4ddc5ebf05f4df2258b975c2bab14f626166b2b7f6e0901e", "brand": "bestfurshet", "publicationId": "pub_372572505463", "variantId": "v_794175655703", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438\u0437 \u0431\u0435\u0434\u0440\u0430 \u0438\u043D\u0434\u0435\u0439\u043A\u0438 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "86b44c3b200675f8aa6060cec04ba24232423566c6643d709d0eb2340c67acba", "brand": "bestfurshet", "publicationId": "pub_372572505463", "variantId": "v_690353716963", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438\u0437 \u0431\u0435\u0434\u0440\u0430 \u0438\u043D\u0434\u0435\u0439\u043A\u0438 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "43c9f9a0656733252224651875204095ccdc59199d6afb7eacbbd34496e05dcc", "brand": "bestfurshet", "publicationId": "pub_372572505463", "variantId": "v_653300096833", "count": 180, "minimum": 15, "maximumFlavours": 12, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0427\u0435\u0440\u0440\u0438", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0422\u0438\u043A\u0430 \u041C\u0430\u0441\u0430\u043B\u0430", "\u0413\u0440\u0430\u0442\u0435\u043D \u0441 \u0441\u0435\u043B\u0451\u0434\u043E\u0447\u043D\u044B\u043C \u043C\u0430\u0441\u043B\u0438\u0446\u0435\u043C", "\u0412\u0435\u0442\u0447\u0438\u043D\u0430 \u0438\u0437 \u0431\u0435\u0434\u0440\u0430 \u0438\u043D\u0434\u0435\u0439\u043A\u0438 \u0438 \u0432\u0430\u0441\u0438\u043B\u0451\u043A", "\u041A\u043E\u043F\u0447\u0451\u043D\u044B\u0439 \u043F\u043E\u0440\u0446\u0438\u0443\u0441", "\u0413\u043E\u0440\u0431\u0443\u0448\u0430 \u041A\u044D\u0440\u0440\u043E\u0442", "\u0413\u0440\u0430\u0442\u0435\u043D \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435", "\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u041C\u044D\u0448", "\u041F\u0435\u0447\u0451\u043D\u043E\u0447\u043D\u044B\u0439 \u0414\u0443\u044D\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u0422\u043E\u043C \u042F\u043C \u0427\u0438\u043A\u0435\u043D", "\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
553133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "4985962435924e5ce8d3cf545198f0e11c38ab0700b7a9d4fc7292814ede7da6", "brand": "bestfurshet", "publicationId": "pub_304994655913", "variantId": "v_189976008083", "count": 60, "minimum": 15, "maximumFlavours": 4, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60] }, { "offerId": "50f1660ac82204d5b63c98b73a1af20eabe5c8752412a753fbedb779b6108d68", "brand": "bestfurshet", "publicationId": "pub_304994655913", "variantId": "v_759013745293", "count": 120, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120] }, { "offerId": "49a7a0874558a5b61a8ae92ac3b8f40a68edbc55afc7e041000e4d02b89a51c7", "brand": "bestfurshet", "publicationId": "pub_304994655913", "variantId": "v_299705039463", "count": 180, "minimum": 15, "maximumFlavours": 8, "prefix": "\u0422\u0430\u0440\u0442\u0430\u043B\u0435\u0442\u043A\u0438: ", "flavours": ["\u0422\u0440\u0438 \u0421\u044B\u0440\u0430 \u0413\u0440\u0430\u043D\u0430\u0442", "\u0411\u0430\u0440\u0445\u0430\u0442\u043D\u044B\u0439 \u0411\u0430\u043A\u043B\u0430\u0436\u0430\u043D", "\u0413\u0440\u0438\u0431\u043D\u0430\u044F \u0421\u0438\u043C\u0444\u043E\u043D\u0438\u044F", "\u0425\u0443\u043C\u0443\u0441 \u041A\u0440\u0435\u043C\u0435", "\u0418\u0437\u0443\u043C\u0440\u0443\u0434\u043D\u044B\u0439 \u0411\u0430\u043B\u0430\u043D\u0441", "\u0420\u0443\u0431\u0438\u043D\u043E\u0432\u044B\u0439 \u0410\u043A\u0446\u0435\u043D\u0442", "\u041F\u0438\u043A\u0430\u043D\u0442\u043D\u044B\u0439 \u0420\u0435\u043B\u0438\u0448", "\u041E\u0431\u043B\u0435\u043F\u0438\u0445\u0430 \u041A\u0443\u043B\u0435"], "allowedQuantities": [0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
553133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180] }, { "offerId": "3166b188ef501ece613b4c850fc38faa2317bb1627e20aaf9e3090a229105636", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_243980660362", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 0 }, { "offerId": "ac1519f1e9017f0bfbf177ca5ec70bc0cb322a74b27f24223326957c8225b729", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_101932680092", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 1 }, { "offerId": "309b65908a51ce28aaff269eb4fd8efc9a5e645de3516b739081bb24da976d73", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_765224357462", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 2 }, { "offerId": "ec6a22839330cdb1d28a03ac71f7d59c596b5170edb3ca70b62f02804d95b984", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_873457945212", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 3 }, { "offerId": "df72a3564a3b7096b7bdaaffb7a90b24ca9c9713c2a32d70b652b22c670a9fd0", "brand": "meat_cake", "publicationId": "pub_meatcake_108709256771", "variantId": "v_992252730132", "count": 4, "minimum": 1, "maximumFlavours": 4, "prefix": "\u0411\u0435\u043D\u0442\u043E: ", "flavours": ["\u041A\u0443\u0440\u043E\u0447\u043A\u0430 \u0432 \u0441\u043B\u0438\u0432\u043A\u0430\u0445", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0413\u0440\u0430\u043D\u0430\u0442\u043E\u0432\u044B\u0439", "\u041C\u044F\u0441\u043D\u043E\u0439 \u043A\u0432\u0430\u0440\u0442\u0435\u0442", "\u0422\u043E\u043C \u042F\u043C \u041F\u0435\u043F\u043F\u0435\u0440\u043E\u043D\u0438", "\u041C\u044F\u0441\u043D\u043E\u0439 Spicy \u0434\u0443\u044D\u0442", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u0441\u0432\u0438\u043D\u043E\u0439", "\u0428\u0430\u0448\u043B\u044B\u0447\u043D\u044B\u0439 \u043A\u0443\u0440\u0438\u043D\u044B\u0439", "\u041F\u0435\u0447\u0435\u043D\u043E\u0447\u043D\u044B\u0439 \u0442\u043E\u0440\u0442 \u0441 \u0427\u0435\u0440\u043D\u043E\u0441\u043B\u0438\u0432\u043E\u043C", "\u041A\u0430\u0432\u043A\u0430\u0437\u0441\u043A\u0438\u0439 \xAB\u041B\u044E\u043B\u044F \u041A\u0435\u0431\u0430\u0431\xBB", "\u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM", "\u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM"], "allowedQuantities": [0, 1, 2, 3, 4], "premiumCount": 4 }].map((spec) => ({ ...spec, groups: spec.flavours.map((name, i) => ({ id: "g-" + i, name: spec.prefix + name, values: spec.allowedQuantities.map((n, j) => ({ id: "v-" + j, label: n + " \u0448\u0442.", adjustmentMinor: "0" })) })) })); 554 var assortmentSpec = (offerId) => ASSORTMENT_SPECS.find((spec) => spec.offerId === ({ "ef877cccaed0e336d30e7707f8beb7634df189d9bbb0b0006e8b007bacabe4c4": "f1c04a16463f296a4ddc5ebf05f4df2258b975c2bab14f626166b2b7f6e0901e", "ee378aa812b0ab1f344baf0f65daac214157a5fe677e856d3f5cd6950d14aea5": "86b44c3b200675f8aa6060cec04ba24232423566c6643d709d0eb2340c67acba", "add7477e92b03464bbd37c58cbd2c3eb8e4b0400dc864c01eb601180e365daa2": "43c9f9a0656733252224651875204095ccdc59199d6afb7eacbbd34496e05dcc", "735608241a4a200c5b12802e829a4c2824407daed5621c90ba34855906d67512": "4985962435924e5ce8d3cf545198f0e11c38ab0700b7a9d4fc7292814ede7da6", "f0bebefa01db57039e47e2ad4f8c21500acdcc2150b546cb11e88f7299b98145": "50f1660ac82204d5b63c98b73a1af20eabe5c8752412a753fbedb779b6108d68", "8526ae09727943df10d64a457e9e1059535
5545d2949d773f0ce71f46918f57cd4b": "49a7a0874558a5b61a8ae92ac3b8f40a68edbc55afc7e041000e4d02b89a51c7" }[offerId] ?? offerId)); 555 function validateAssortmentSelection(spec, entries) { 556 if (entries.length !== spec.groups.length || new Set(entries.map((e) => e.name)).size !== entries.length) return false; 557 let total = 0, active = 0; 558 for (const group of spec.groups) { 559 const entry = entries.find((e) => e.name === group.name); 560 if (!entry) return false; 561 const value = group.values.find((v) => v.label === entry.label); 562 if (!value) return false; 563 const n = Number(/^(\d+) ÑÑ\.$/u.exec(value.label)?.[1]); 564 if (!Number.isSafeInteger(n) || !spec.allowedQuantities.includes(n) || n > 0 && n < spec.minimum) return false; 565 total += n; 566 if (n) active++; 567 } 568 if (spec.publicationId === "pub_meatcake_108709256771") { 569 if (spec.brand !== "meat_cake" || !Number.isInteger(spec.premiumCount) || spec.premiumCount < 0 || spec.premiumCount > 4) return false; 570 const premium = entries.filter((e) => e.name === "\u0411\u0435\u043D\u0442\u043E: \u0421\u044B\u0440\u043D\u044B\u0439 PREMIUM" || e.name === "\u0411\u0435\u043D\u0442\u043E: \u0421\u0451\u043C\u0433\u0430 \u0441 \u0438\u043A\u0440\u043E\u0439 PREMIUM").reduce((n, e) => n + Number(/^(\d+) ÑÑ\.$/u.exec(e.label)?.[1]), 0); 571 return total === 4 && premium === spec.premiumCount; 572 } 573 return total === spec.count && active >= 1 && active <= spec.maximumFlavours; 574 } 575 576
576// apps/storefront-shared/family-cart-choice-recovery.ts 577 var recoveryForms = /* @__PURE__ */ new WeakMap(); 578 var identity = (row) => JSON.stringify([row.brandKey, row.publicationId, row.variantId, row.offerId]); 579 function familyCartChoicesRequired(rows) { 580 return Boolean(rows?.some((row) => row && typeof row === "object" && row.requiresChoices === true)); 581 } 582 function requirements(value, row) { 583 const premium = confirmedPremiumMeatcakeChoices(row); 584 if (premium) { 585 const groups3 = premium.groups.map((g) => ({ ...g, values: g.values.map(({ adjustmentMinor, ...v }) => v) })); 586 if (JSON.stringify(value) !== JSON.stringify(groups3)) throw new Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0442\u043E\u0432\u0430\u0440\u0430 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."); 587 return groups3; 588 } 589 const eclair = legacyThirtyEclairSpec(row); 590 if (eclair) { 591 const groups3 = eclair.groups.map((g) => ({ ...g, values: g.values.map(({ adjustmentMinor, ...v }) => v) })); 592 if (JSON.stringify(value) !== JSON.stringify(groups3)) throw new Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0442\u043E\u0432\u0430\u0440\u0430 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."); 593 return groups3; 594 } 595 const spec = assortmentSpec(row.offerId); 596 if (spec) { 597 const groups3 = spec.groups.map((g) => ({ ...g, values: g.values.map(({ adjustmentMinor, ...v }) => v) })); 598 if (JSON.stringify(value) !== JSON.stringify(groups3)) throw new Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0442\u043E\u0432\u0430\u0440\u0430 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."); 599 return groups3; 600 } 601 const simpleUid = row.brandKey === "bestfurshet" && /^pub_\d{12}$/u.test(row.publicationId) ? row.publicationId.slice(4) : row.brandKey === "meat_cake" && /^pub_meatcake_(287446958161|754893720421)$/u.test(row.publicationId) && row.variantId === "v_" + row.publicationId.slice(13) ? row.publicationId.slice(13) : void 0; 602 const simple = confirmedSixTrifleChoices(row) ?? (simpleUid ? confirmedProductChoices(row.brandKey, simpleUid) : void 0); 603 if (!simple || !Array.isArray(value) || value.length !== 1) throw new Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0442\u043E\u0432\u0430\u0440\u0430 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."); 604 const groups2 = value; 605 for (const group of groups2) { 606 if (!group || typeof group.id !== "string" || !/^[A-Za-z0-9_:-]{1,160}$/.test(group.id) || typeof group.name !== "string" || group.name.length > 200 || !Array.isArray(group.values) || group.values.length !== simple[0].values.length || group.values.some((v) => !v || typeof v.id !== "string" || !/^[A-Za-z0-9_:-]{1,160}$/.test(v.id) || typeof v.label !== "string" || v.label.length > 200) || new Set(group.values.map((v) => v.id)).size !== group.values.length) throw new Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0442\u043E\u0432\u0430\u0440\u0430 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."); 607 } 608 if (JSON.stringify(groups2.map((g) => ({ name: g.name, values: g.values.map((v) => v.label) }))) !== JSON.stringify(simple)) throw new Error("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0442\u043E\u0432\u0430\u0440\u0430 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."); 609 return groups2; 610 } 611 function attachFamilyCartChoiceRecovery(options) { 612 recoveryForms.get(options.container)?.remove(); 613 recoveryForms.delete(options.container); 614 const rows = options.rows.filter((row) => row && typeof row === "object" && row.requiresChoices === true); 615 if (!rows.length) return; 616 const styleId = "bf-cart-choice-recovery-20261003"; 617 if (!document.getElementById(styleId)) { 618 const style = document.createElement("style"); 619 style.id = styleId; 620 style.textContent = ".bf-choice-recovery{border:1px solid #d6ae5c;background:#19232b;color:#f4f1e9;padding:16px;border-radius:14px;margin:0 0 18px;display:grid;gap:14px;min-width:0}.bf-choice-recovery label{display:grid;gap:6px;min-width:0}.bf-choice-recovery select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;background:#111a21;color:#f4f1e9;border:1px solid #a88d59;border-radius:10px;padding:12px;color-scheme:dark}.bf-choice-recovery button{border:1px solid #f1d17b;border-radius:12px;background:#f1d17b;color:#15140f;padding:12px 16px;font:inherit;font-weight:700;cursor:pointer}.bf-choice-recovery button:hover{background:#ffe8a9}.bf-choice-recovery :focus-visible{outline:3px solid #ffe8a9;outline-offset:3px}.bf-choice-recovery button:disabled{background:#303b43;color:#c0c7cc;cursor:default}.bf-choice-recovery [aria-invalid=true]{border-color:#ffb0a6}.bf-choice-recovery p{margin:0}.bf-choice-recovery [data-choice-error]{color:#ffb0a6}"; 621 document.head.append(style); 622 } 623 const form = document.createElement("form"); 624 form.className = "bf-choice-recovery"; 625 form.dataset.familyChoiceRecovery = ""; 626 const note = document.createElement("p"); 627 note.textContent = "\u0414\u043B\u044F \u044D\u0442\u0438\u0445 \u0442\u043E\u0432\u0430\u0440\u043E\u0432 \u043F\u043E\u044F\u0432\u0438\u043B\u0438\u0441\u044C \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0436\u0434\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u0432\u044B\u0431\u043E\u0440 \u0432\u043C\u0435\u0441\u0442\u0435. \u0422\u043E\u0432\u0430\u0440\u044B \u0438 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u0441\u044F."; 628 form.append(note); 629 const selected = []; 630 const items = options.items.map((item) => ({ ...item, choices: item.choices.map((choice) => ({ ...choice })) })); 631 try { 632 for (const row of rows) { 633 const itemIndex = items.findIndex((item) => identity(item) === identity(row) && item.choices.length === 0); 634 if (itemIndex < 0) throw new Error("\u0421\u043E\u0441\u0442\u0430\u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0441\u044F. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."); 635 const set = assortmentSpec(row.offerId), eclair = legacyThirtyEclairSpec(row); 636 if (eclair) { 637 const instruction = document.createElement("p"); 638 instruction.textContent = (row.title || "\u041D\u0430\u0431\u043E\u0440") + ": " + legacyThirtyEclairInstruction; 639 form.append(instruction); 640 } else if (set) { 641 const instruction = document.createElement("p"); 642 instruction.textContent = (row.title || "\u041D\u0430\u0431\u043E\u0440") + ": " + set.count + " \u
6420448\u0442., \u043C\u0438\u043D\u0438\u043C\u0443\u043C " + set.minimum + " \u0448\u0442. \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0432\u043A\u0443\u0441\u0430, \u0434\u043E " + set.maximumFlavours + " \u0432\u043A\u0443\u0441\u043E\u0432. \u0423\u043A\u0430\u0436\u0438\u0442\u0435 0 \u0448\u0442. \u0434\u043B\u044F \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0445."; 643 form.append(instruction); 644 } 645 for (const group of requirements(row.choiceRequirements, row)) { 646 const label = document.createElement("label"), copy = document.createElement("span"), field = document.createElement("select"); 647 copy.textContent = [row.title || "\u0422\u043E\u0432\u0430\u0440", group.name].join(" \xB7 "); 648 field.required = true; 649 field.dataset.familyMissingChoice = String(itemIndex); 650 field.dataset.groupId = group.id; 651 const placeholder = document.createElement("option"); 652 placeholder.value = ""; 653 placeholder.textContent = "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442"; 654 placeholder.disabled = true; 655 placeholder.selected = true; 656 field.append(placeholder); 657 for (const value of group.values) { 658 const option = document.createElement("option"); 659 option.value = value.id; 660 const premium = confirmedPremiumMeatcakeChoices(row), adjustment = premium?.groups.find((g) => g.id === group.id)?.values.find((v) => v.id === value.id)?.adjustmentMinor; 661 option.textContent = value.label + (adjustment === "100000" ? " (+1 000 \u20BD)" : ""); 662 field.append(option); 663 } 664 label.append(copy, field); 665 form.append(label); 666 selected.push({ itemIndex, group, field }); 667 } 668 } 669 } catch (error2) { 670 note.textContent = error2 instanceof Error ? error2.message : "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B."; 671 recoveryForms.set(options.container, form); 672 options.container.before(form); 673 return; 674 } 675 const error = document.createElement("p"); 676 error.dataset.choiceError = ""; 677 error.setAttribute("role", "status"); 678 error.setAttribute("aria-live", "polite"); 679 const submit = document.createElement("button"); 680 submit.type = "submit"; 681 submit.textContent = "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0432\u044B\u0431\u043E\u0440"; 682 submit.disabled = true; 683 form.append(error, submit); 684 const ready = () => selected.every(({ group, field }) => group.values.some((value) => value.id === field.value)) && rows.every((row) => { 685 const spec = assortmentSpec(row.offerId), eclair = legacyThirtyEclairSpec(row); 686 if (!spec && !eclair) return true; 687 const index = items.findIndex((item) => identity(item) === identity(row)), entries = selected.filter((s) => s.itemIndex === index).map((s) => ({ name: s.group.name, label: s.group.values.find((v) => v.id === s.field.value)?.label ?? "" })); 688 return eclair ? legacyThirtyEclairSelectionValid(row, entries) : validateAssortmentSelection(spec, entries); 689 }); 690 form.addEventListener("change", () => { 691 submit.disabled = !ready(); 692 error.textContent = selected.every(({ field }) => field.value) && submit.disabled ? "\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u0443\u043C\u043C\u0443 \u043D\u0430\u0431\u043E\u0440\u0430, \u043C\u0438\u043D\u0438\u043C\u0443\u043C \u0438 \u0447\u0438\u0441\u043B\u043E \u0432\u043A\u0443\u0441\u043E\u0432." : ""; 693 }); 694 form.addEventListener("submit", (event) => { 695 event.preventDefault(); 696 if (!ready()) { 697 error.textContent = "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043E\u0441\u0442\u0430\u0432 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043D\u0430\u0431\u043E\u0440\u0430: \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u0443\u043C\u043C\u0443, \u043C\u0438\u043D\u0438\u043C\u0443\u043C \u0438 \u0447\u0438\u0441\u043B\u043E \u0432\u043A\u0443\u0441\u043E\u0432."; 698 return; 699 } 700 if (options.busy() || options.currentOwner() !== options.owner || options.currentVersion() !== options.version) { 701 error.textContent = "\u041A\u043E\u0440\u0437\u0438\u043D\u0430 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0430\u0441\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0435\u0451 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0432\u044B\u0431\u043E\u0440."; 702 return; 703 } 704 for (const index of new Set(selected.map((s) => s.itemIndex))) items[index].choices = selected.filter((s) => s.itemIndex === index).map(({ group, field }) => ({ groupId: group.id, valueId: field.value })); 705 submit.disabled = true; 706 for (const { field } of selected) field.disabled = true; 707 error.textContent = "\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u043C \u0432\u044B\u0431\u043E\u0440\u2026";
708 try { 709 options.save(items, options.owner, options.version); 710 } catch (e) { 711 error.textContent = e instanceof Error ? e.message : "\u0412\u044B\u0431\u043E\u0440 \u043D\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443."; 712 submit.disabled = false; 713 for (const { field } of selected) field.disabled = false; 714 } 715 }); 716 for (const button of options.container.querySelectorAll("button[data-family-action],button[data-guest-quantity-action]")) if ((button.dataset.familyAction ?? button.dataset.guestQuantityAction) !== "remove") button.disabled = true; 717 for (const field of options.container.querySelectorAll("input[data-family-quantity],input[data-guest-quantity]")) field.disabled = true; 718 recoveryForms.set(options.container, form); 719 options.container.before(form); 720 } 721 return __toCommonJS(family_cart_choice_recovery_exports); 722})(); 723function isCustomerOrderCurrent(value) { 724 const obj = (v) => !!v && typeof v === "object" && !Array.isArray(v), exact = (v, keys) => Object.keys(v).sort().join() === keys.sort().join(); 725 const text = (v, max, multiline = false) => typeof v === "string" && v.length <= max && !/[\p{Cc}\p{Cf}]/u.test(multiline ? v.replace(/[\r\n\t]/gu, "") : v), money = (v) => typeof v === "string" && /^(0|[1-9]\d{0,13})$/u.test(v), nullable = (v) => v === null || money(v); 726 const integer = (v, max) => v === null || Number.isSafeInteger(v) && Number(v) >= 0 && Number(v) <= max; 727 if (!obj(value) || !exact(value, ["revision", "updatedAt", "number", "customer", "recipient", "fulfillment", "lines", "comment", "paymentMethod", "weightGrams", "drinkVolumeMl", "packagesCount", "financial"]) || !Number.isSafeInteger(value.revision) || Number(value.revision) < 1 || !text(value.updatedAt, 40) || !Number.isFinite(Date.parse(String(value.updatedAt))) || !text(value.number, 100) || !value.number) return false; 728 const c = value.customer, r = value.recipient, f = value.fulfillment, g = value.financial; 729 if (!obj(c) || !exact(c, ["name", "phone", "email"]) || !text(c.name, 120) || !text(c.phone, 40) || !text(c.email, 254) || !obj(r) || !exact(r, ["name", "phone"]) || !text(r.name, 120) || !text(r.phone, 40)) return false; 730 if (!obj(f) || !exact(f, ["kind", "city", "date", "time", "endTime", "address", "deliveryFeeMinor"]) || !["delivery", "pickup"].includes(String(f.kind)) || !["spb", "moscow"].includes(String(f.city)) || typeof f.date !== "string" || !/^\d{4}-\d{2}-\d{2}$/u.test(f.date) || !Number.isFinite(Date.parse(f.date + "T00:00:00Z")) || (/* @__PURE__ */ new Date(f.date + "T00:00:00Z")).toISOString().slice(0, 10) !== f.date || typeof f.time !== "string" || !/^([01]\d|2[0-3]):[0-5]\d$/u.test(f.time) || f.endTime !== "" && (typeof f.endTime !== "string" || !/^([01]\d|2[0-3]):[0-5]\d$/u.test(f.endTime) || f.endTime <= f.time) || !text(f.address, 1e3) || !money(f.deliveryFeeMinor)) return false; 731 if (!Array.isArray(value.lines) || value.lines.length < 1 || value.lines.length > 300 || value.lines.some((l) => !obj(l) || !exact(l, ["title", "variant", "choices", "quantity", "unitMinor", "lineMinor"]) || !text(l.title, 300) || !l.title || !text(l.variant, 300) || !Array.isArray(l.choices) || l.choices.length > 96 || l.choices.some((x) => !text(x, 322)) || !Number.isSafeInteger(l.quantity) || Number(l.quantity) < 1 || Number(l.quantity) > 9999 || !money(l.unitMinor) || !money(l.lineMinor) || BigInt(l.unitMinor) * BigInt(Number(l.quantity)) !== BigInt(l.lineMinor))) return false; 732 if (!text(value.comment, 2e3, true) || !text(value.paymentMethod, 120) || !integer(value.weightGrams, 1e8) || !integer(value.drinkVolumeMl, 1e8) || !integer(value.packagesCount, 1e4) || value.packagesCount === 0 || !obj(g) || !exact(g, ["subtotalMinor", "deliveryMinor", "discountMinor", "totalMinor", "paidAmountMinor", "balanceDueMinor", "overpaidAmountMinor", "paymentStatus", "requiresManagerPaymentReview"]) || ![g.subtotalMinor, g.deliveryMinor, g.discountMinor, g.totalMinor].every(money) || ![g.paidAmountMinor, g.balanceDueMinor, g.overpaidAmountMinor].every(nullable) || !["paid", "not_paid", "unknown"].includes(String(g.paymentStatus)) || typeof g.requiresManagerPaymentReview !== "boolean") return false;
733 const subtotal = value.lines.reduce((n, l) => n + BigInt(l.lineMinor), 0n), total = BigInt(String(g.totalMinor)); 734 if (subtotal !== BigInt(String(g.subtotalMinor)) || g.deliveryMinor !== f.deliveryFeeMinor || subtotal + BigInt(String(g.deliveryMinor)) - BigInt(String(g.discountMinor)) !== total) return false; 735 if (g.paidAmountMinor === null) return g.balanceDueMinor === null && g.overpaidAmountMinor === null; 736 const paid = BigInt(String(g.paidAmountMinor)); 737 return g.balanceDueMinor === (total > paid ? total - paid : 0n).toString() && g.overpaidAmountMinor === (paid > total ? paid - total : 0n).toString(); 738} 739function appendCustomerOrderCurrent(container, current, money) { 740 if (!isCustomerOrderCurrent(current)) throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0430\u044F \u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u0437\u0430\u043A\u0430\u0437\u0430. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u0430\u0431\u0438\u043D\u0435\u0442."); 741 const d = container.ownerDocument, block = d.createElement("section"); 742 block.dataset.customerOrderCurrent = String(current.revision); 743 block.style.overflowWrap = "anywhere"; 744 const heading = d.createElement("h4"); 745 heading.textContent = `\u0410\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0437\u0430\u043A\u0430\u0437 \u2116 ${current.number} \xB7 \u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F ${current.revision}`; 746 block.append(heading); 747 const p = (s) => { 748 const node = d.createElement("p"); 749 node.textContent = s; 750 block.append(node); 751 }; 752 p("\u0418\u0437\u043C\u0435\u043D\u0451\u043D \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u043E\u043C " + new Intl.DateTimeFormat("ru-RU", { timeZone: "Europe/Moscow", dateStyle: "medium", timeStyle: "short" }).format(new Date(current.updatedAt))); 753 const f = current.fulfillment; 754 p([f.kind === "delivery" ? "\u0414\u043E\u0441\u0442\u0430\u0432\u043A\u0430" : "\u0421\u0430\u043C\u043E\u0432\u044B\u0432\u043E\u0437", f.city === "moscow" ? "\u041C\u043E\u0441\u043A\u0432\u0430" : "\u0421\u0430\u043D\u043A\u0442-\u041F\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433", f.date.split("-").reverse().join("."), f.time + (f.endTime ? "\u2013" + f.endTime : ""), f.address].filter(Boolean).join(" \xB7 ")); 755 p(`\u0417\u0430\u043A\u0430\u0437\u0447\u0438\u043A: ${current.customer.name} \xB7 ${current.customer.phone}${current.customer.email ? " \xB7 " + current.customer.email : ""}`); 756 p(`\u041F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C: ${current.recipient.name} \xB7 ${current.recipient.phone}`); 757 for (const l of current.lines) p([l.title, l.variant, ...l.choices].filter(Boolean).join(" \xB7 ") + ` \xB7 ${l.quantity} \u0448\u0442. \xD7 ${money(l.unitMinor)} = ${money(l.lineMinor)}`); 758 p("\u0412\u0435\u0441: " + (current.weightGrams === null ? "\u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442\u0441\u044F" : new Intl.NumberFormat("ru-RU", { maximumFractionDigits: 3 }).format(current.weightGrams / 1e3) + " \u043A\u0433") + (current.drinkVolumeMl === null ? "" : " \xB7 \u043D\u0430\u043F\u0438\u0442\u043A\u0438: " + new Intl.NumberFormat("ru-RU", { maximumFractionDigits: 3 }).format(current.drinkVolumeMl / 1e3) + " \u043B") + (current.packagesCount === null ? "" : " \xB7 \u0443\u043F\u0430\u043A\u043E\u0432\u043E\u043A: " + current.packagesCount)); 759 const g = current.financial; 760 p(`\u0422\u043E\u0432\u0430\u0440\u044B: ${money(g.subtotalMinor)} \xB7 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0430: ${money(g.deliveryMinor)}${g.discountMinor === "0" ? "" : " \xB7 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u0430\u044F \u0441\u043A\u0438\u0434\u043A\u0430 \u0438 \u0441\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0431\u043E\u043D\u0443\u0441\u043E\u0432: \u2212" + money(g.discountMinor)} \xB7 \u0438\u0442\u043E\u0433: ${money(g.totalMinor)}`); 761 p("\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u043B\u0430\u0442\u0430: " + (g.paidAmountMinor === null ? "\u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442\u0441\u044F" : money(g.paidAmountMinor)) + " \xB7 \u043E\u0441\u0442\u0430\u0442\u043E\u043A \u043A \u043E\u043F\u043B\u0430\u0442\u0435: " + (g.balanceDueMinor === null ? "\u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442\u0441\u044F" : money(g.balanceDueMinor)) + (g.overpaidAmountMinor && g.overpaidAmountMinor !== "0" ? " \xB7 \u043F\u0435\u0440\u0435\u043F\u043B\u0430\u0442\u0430: " + money(g.overpaidAmountMinor) + ", \u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0443\u0435\u0442 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440" : "")); 762 const methods = { cash: "\u043D\u0430\u043B\u0438\u0447\u043D\u044B\u0435", tbank_card: "\u0422-\u0411\u0430\u043D\u043A \u043E\u043D\u043B\u0430\u0439\u043D", robokassa_card: "\u0420\u043E\u0431\u043E\u043A\u0430\u0441\u0441\u0430 \u043E\u043D\u043B\u0430\u0439\u043D", transfer: "\u043F\u0435\u0440\u0435\u0432\u043E\u0434", qr: "QR-\u043A\u043E\u0434", manager_link: "\u0441\u0441\u044B\u043B\u043A\u0430 \u043E\u0442 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u0430", invoice_after_review: "\u0441\u0447\u0451\u0442 \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438" }; 763 p("\u0421\u043F\u043E\u0441\u043E\u0431 \u043E\u043F\u043B\u0430\u0442\u044B: " + ((methods[current.paymentMethod] ?? current.paymentMethod) || "\u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442\u0441\u044F")); 764 if (g.requiresManagerPaymentReview) { 765 p("\u041E\u0441\u0442\u0430\u0442\u043E\u043A \u043C\u043E\u0436\u043D\u043E \u0434\u043E\u043F\u043B\u0430\u0442\u0438\u0442\u044C \u043B\u044E\u0431\u044B\u043C \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C: \u043D\u0430\u043B\u0438\u0447\u043D\u044B\u043C\u0438, \u043A\u0430\u0440\u0442\u043E\u0439 \u0422-\u0411\u0430\u043D\u043A\u0430 \u0438\u043B\u0438 Robokassa, \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u043E\u043C, QR-\u043A\u043E\u0434\u043E\u043C, \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u0430 \u043B\u0438\u0431\u043E \u043F\u043E \u0441\u0447\u0451\u0442\u0443. \u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0441\u0443\u043C\u043C\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440. \u041F\u0440\u0435\u0436\u043D\u044F\u044F \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0430\u044F \u0441\u0441\u044B\u043B\u043A\u0430 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043A \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u043C\u0443 \u0441\u0447\u0451\u0442\u0443."); 766 const links = d.createElement("nav"); 767 links.setAttribute("aria-label", "\u0414\u043E\u043F\u043B\u0430\u0442\u0430 \u0437\u0430\u043A\u0430\u0437\u0430"); 768 for (const [label, url] of [["\u0421\u043F\u043E\u0441\u043E\u0431\u044B \u043E\u043F\u043B\u0430\u0442\u044B", location.pathname.startsWith("/app/") ? "/app/payment/" : "/payment/"], ["\u0420\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u044B", location.pathname.startsWith("/app/") ? "/app/requisites/" : "/requisites/"], ["\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0443 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u0430", "https://t.me/MyasTort_Manager"]]) { 769 const a = d.createElement("a"); 770 a.textContent = label; 771 a.href = url; 772 a.className = "customer-money-link"; 773 a.style.cssText = "display:inline-block;margin:0 16px 12px 0;padding:8px 12px;color:#f5d88b;background:#171714;border:1px solid #a68a48;border-radius:6px;text-decoration:underline;min-height:44px;box-sizing:border-box"; 774 a.addEventListener("mouseenter", () => { 775 a.style.color = "#ffe7aa"; 776 a.style.background = "#30291b"; 777 }); 778 a.addEventListener("mouseleave", () => { 779 a.style.color = "#f5d88b"; 780 a.style.background = "#171714"; 781 }); 782 a.addEventListener("focus", () => { 783 a.style.outline = "3px solid #f5d88b"; 784 a.style.outlineOffset = "3px"; 785 a.style.boxShadow = "0 0 0 6px #825b18"; 786 }); 787 a.addEventListener("blur", () => { 788 a.style.outline = ""; 789 a.style.boxShadow = ""; 790 }); 791 a.addEventListener("pointerdown", () => { 792 a.style.background = "#4a3c22"; 793 }); 794 a.addEventListener("pointerup", () => { 795 a.style.background = "#30291b"; 796 }); 797 links.append(a); 798 } 799 block.append(links); 800 } 801 if (current.comment) p("\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439: " + current.comment); 802 container.append(block); 803} 804const currentHistoryVersions = /* @__PURE__ */ new WeakMap(); 805function currentCustomerOrderHistory(root, session, history) { 806 let known = currentHistoryVersions.get(root); 807 if (!known || known.session !== session) { 808 known = { session, orders: /* @__PURE__ */ new Map() }; 809 currentHistoryVersions.set(root, known); 810 } 811 return history.map((order) => { 812 const prior = known.orders.get(order.id), current = order.amendment; 813 if (current && !isCustomerOrderCurrent(current)) throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u0430\u044F \u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u0437\u0430\u043A\u0430\u0437\u0430."); 814 if (prior && (!current || current.revision < prior.revision || current.revision === prior.revision && current.updatedAt < prior.updatedAt)) return { ...order, amendment: prior }; 815 if (current) known.orders.set(order.id, current); 816 return order; 817 }); 818} 819function customerOrderCurrentSummary(current, money) { 820 const g = current.financial; 821 return `\u0417\u0430\u043A\u0430\u0437 \u2116 ${current.number} \u0438\u0437\u043C\u0435\u043D\u0451\u043D \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u043E\u043C, \u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F ${current.revision}. \u0418\u0442\u043E\u0433: ${money(g.totalMinor)}. \u041F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u043B\u0430\u0442\u0430: ${g.paidAmountMinor === null ? "\u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442\u0441\u044F" : money(g.paidAmountMinor)}. \u041E\u0441\u0442\u0430\u0442\u043E\u043A \u043A \u043E\u043F\u043B\u0430\u0442\u0435: ${g.balanceDueMinor === null ? "\u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442\u0441\u044F" : money(g.balanceDueMinor)}.${g.overpaidAmountMinor && g.overpaidAmountMinor !== "0" ? " \u041F\u0435\u0440\u0435\u043F\u043B\u0430\u0442\u0430: " + money(g.overpaidAmountMinor) + "; \u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0443\u0435\u0442 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440." : ""}${g.requiresManagerPaymentReview ? " \u0410\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u0443\u044
821E \u043E\u043F\u043B\u0430\u0442\u0443 \u0438\u043B\u0438 \u0434\u043E\u043F\u043B\u0430\u0442\u0443 \u0441\u043E\u0433\u043B\u0430\u0441\u0443\u0439\u0442\u0435 \u0441 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u043E\u043C." : ""}`; 822} 823 824var __bfCheckoutRecovery20261002=(()=>{var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(e,t)=>{for(var a in t)o(e,a,{get:t[a],enumerable:!0})},s=(e,t,a,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of r(t))!c.call(e,n)&&n!==a&&o(e,n,{get:()=>t[n],enumerable:!(i=u(t,n))||i.enumerable});return e};var d=e=>s(o({},"__esModule",{value:!0}),e);var h={};l(h,{FAMILY_CHECKOUT_RECOVERY_BUILD:()=>m,FAMILY_CHECKOUT_SESSION_CHANGED:()=>g,clearRejectedFamilyPending:()=>_,familyCheckoutSessionStale:()=>f,familySubmitRejectedBeforeWrite:()=>S,familySubmitRejectionMessage:()=>k,quarantineFamilyCheckoutSession:()=>y});var m="BFC-02R3",g="\u0412\u0445\u043E\u0434 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0441\u044F \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u043A\u043E\u0440\u0437\u0438\u043D\u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043A\u0430\u0431\u0438\u043D\u0435\u0442\u0430, \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0442\u043E\u0433 \u0437\u0430\u043D\u043E\u0432\u043E.";function f(e){return e.dataset.familyCheckoutSessionStale==="true"}function y(e){e.dataset.familyCheckoutSessionStale="true";for(let t of e.querySelectorAll("[data-family-quantity],[data-family-quantity-action],[data-guest-quantity],[data-guest-quantity-action]"))t.disabled=!0}function S(e){let t=e;return t?.status===401&&t.code==="unauthorized"||t?.status===400&&t.code==="invalid_request"||t?.status===409&&["cart_changed","catalog_changed","consent_changed"].includes(String(t.code))}function k(e){let t=e?.code;return t==="unauthorized"?"\u0421\u0440\u043E\u043A \u0432\u0445\u043E\u0434\u0430 \u0438\u0441\u0442\u0451\u043A. \u0412\u043E\u0439\u0434\u0438\u0442\u0435 \u0441\u043D\u043E\u0432\u0430 \u0438 \u0437\u0430\u043D\u043E\u0432\u043E \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0442\u043E\u0433. \u0412\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0432 \u0444\u043E\u0440\u043C\u0435.":t==="invalid_request"?"\u0417\u0430\u044F\u0432\u043A\u0430 \u043E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0438\u043C\u044F, \u0442\u0435\u043B\u0435\u0444\u043E\u043D, \u0434\u0430\u0442\u0443, \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0438 \u0430\u0434\u0440\u0435\u0441, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u043D\u043E\u0432\u043E \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0442\u043E\u0433. \u0412\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0432 \u0444\u043E\u0440\u043C\u0435.":t==="cart_changed"?"\u041A\u043E\u0440\u0437\u0438\u043D\u0430 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0430\u0441\u044C. \u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u043C \u0441\u043E\u0441\u0442\u0430\u0432; \u0437\u0430\u043D\u043E\u0432\u043E \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0442\u043E\u0433 \u043F\u0435\u0440\u0435\u0434 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u0412\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0432 \u0444\u043E\u0440\u043C\u0435.":t==="catalog_changed"?"\u0421\u043E\u0441\u0442\u0430\u0432 \u0438\u043B\u0438 \u0446\u0435\u043D\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0438\u0441\u044C. \u041E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u043C \u043A\u043E\u0440\u0437\u0438\u043D\u0443; \u0437\u0430\u043D\u043E\u0432\u043E \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0442\u043E\u0433 \u043F\u0435\u0440\u0435\u0434 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u0412\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0432 \u0444\u043E\u0440\u043C\u0435.":"\u0423\u0441\u043B\u043E\u0432\u0438\u044F \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u043E\u0431\u043D\u043E\u0432\u0438\u043B\u0438\u0441\u044C. \u0417\u0430\u043D\u043E\u0432\u043E \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0442\u043E\u0433 \u0438 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043F\u0435\u0440\u0435\u0434 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u0412\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0432 \u0444\u043E\u0440\u043C\u0435."}function _(e){try{e.storage.getItem(e.key)===e.operationId&&(e.storage.removeItem(e.key),e.storage.removeItem(e.key+":request"))}catch{}e.clearDurable()}return d(h);})(); 825
826var __bfAddressDetails20261002=globalThis.__bfAddressDetailsShared20261002??=(()=>{var A=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var N=(t,e)=>{for(var r in e)A(t,r,{get:e[r],enumerable:!0})},I=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of k(e))!V.call(t,n)&&n!==r&&A(t,n,{get:()=>e[n],enumerable:!(s=j(e,n))||s.enumerable});return t};var z=t=>I(A({},"__esModule",{value:!0}),t);var W={};N(W,{DeliveryAddressDetailsError:()=>o,captureDeliveryAddressDetails:()=>O,composeDeliveryAddressDetails:()=>T,deliveryDetailsComment:()=>x,deliveryDetailsCommentForForm:()=>J,installAllDeliveryAddressDetails:()=>P,installDeliveryAddressDetails:()=>$,validateDeliveryAddressDetails:()=>M});var v={entrance:40,floor:20,apartment:20},C=/^,\s*(?:кв\.?|кваÑÑиÑа)\s*([0-9A-Za-zÐ-Яа-ÑÐÑ/-]{1,20})$/iu,F={entrance:"\u041F\u043E\u0434\u044A\u0435\u0437\u0434 / \u043F\u0430\u0440\u0430\u0434\u043D\u0430\u044F",floor:"\u042D\u0442\u0430\u0436",apartment:"\u041A\u0432\u0430\u0440\u0442\u0438\u0440\u0430"},o=class extends Error{constructor(r,s){super(s);this.field=r;this.name="DeliveryAddressDetailsError"}field};function M(t){let e={};for(let r of Object.keys(v)){let s=t[r].trim();if(s.length>v[r]||/[\p{C}<>]/u.test(s))throw new o(r,`${F[r]}: \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 (\u0434\u043E ${v[r]} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432).`);if(r==="apartment"&&s&&!/^[0-9A-Za-zÐ-Яа-ÑÐÑ/-]{1,20}$/u.test(s))throw new o(r,"\u041A\u0432\u0430\u0440\u0442\u0438\u0440\u0430: \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043D\u043E\u043C\u0435\u0440, \u0431\u0443\u043A\u0432\u044B, \u0434\u0435\u0444\u0438\u0441 \u0438\u043B\u0438 \u0434\u0440\u043E\u0431\u044C.");e[r]=s}return e}function T(t,e,r){let s=M(r),n=e.trim(),a=n===t?"":n.startsWith(t)?C.exec(n.slice(t.length))?.[1]:void 0;if(a===void 0)throw new o("address","\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043C \u0438\u0437 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A; \u043A\u0432\u0430\u0440\u0442\u0438\u0440\u0443 \u0443\u043A\u0430\u0436\u0438\u0442\u0435 \u0432 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u043C \u043F\u043E\u043B\u0435.");if(a&&s.apartment&&a!==s.apartment)throw new o("apartment",`\u0412 \u0430\u0434\u0440\u0435\u0441\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u0430 \u043A\u0432\u0430\u0440\u0442\u0438\u0440\u0430 ${a}, \u0430 \u0432 \u043F\u043E\u043B\u0435 \u2014 ${s.apartment}. \u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u0438\u043B\u0438 \u0443\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0432\u0430\u0440\u0442\u0438\u0440\u0443 \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438 \u0430\u0434\u0440\u0435\u0441\u0430.`);return s.apartment||=a,{address:t+(s.apartment?`, \u043A\u0432. ${s.apartment}`:""),details:Object.freeze(s)}}function x(t,e,r=2e3){let s=[e?.entrance?`\u041F\u043E\u0434\u044A\u0435\u0437\u0434 / \u043F\u0430\u0440\u0430\u0434\u043D\u0430\u044F: ${e.entrance}`:"",e?.floor?`\u042D\u0442\u0430\u0436: ${e.floor}`:"",t].filter(Boolean).join(` 827`);if(s.length>r)throw new o("comment","\u0421\u043E\u043A\u0440\u0430\u0442\u0438\u0442\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439: \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0434\u0435\u0442\u0430\u043B\u044F\u043C\u0438 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438 \u043E\u043D \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0434\u043B\u0438\u043D\u043D\u044B\u0439.");return s}function J(t,e,r,s=2e3){let n=t.querySelector('[name="comment"]');try{let a=x(e,r,s);return n?.dataset.deliveryDetailsCommentError&&(n.setCustomValidity(""),delete n.dataset.deliveryDetailsCommentError,n.removeAttribute("aria-invalid")),a}catch(a){throw a instanceof o&&n&&(n.setCustomValidity(a.message),n.dataset.deliveryDetailsCommentError="true",n.setAttribute("aria-invalid","true"),n.reportValidity()),a}}var H=t=>
827t.querySelector("[data-delivery-address-details]");function w(t){return Object.fromEntries(Object.keys(v).map(e=>[e,t.querySelector(`[name="delivery${e[0].toUpperCase()+e.slice(1)}"]`)]))}function q(t){try{let e=JSON.parse(t.dataset.selectedDeliveryAddress??"null");return typeof e?.value=="string"?e.value:null}catch{return null}}function O(t,e,r){let s=H(e),n=q(t);if(!s)return{address:r,details:{entrance:"",floor:"",apartment:""}};let a=w(s);try{if(!n)throw new o("address","\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043C \u0438\u0437 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A.");let l=T(n,r,{entrance:a.entrance.value,floor:a.floor.value,apartment:a.apartment.value});for(let u of Object.values(a))u.setCustomValidity(""),u.removeAttribute("aria-invalid");let c=s.querySelector("[data-delivery-details-status]");return c&&(c.textContent=""),l}catch(l){if(l instanceof o){let c=l.field==="address"||l.field==="comment"?t:a[l.field];c.setCustomValidity(l.message),c.setAttribute("aria-invalid","true");let u=s.querySelector("[data-delivery-details-status]");u&&(u.textContent=l.message)}throw l}}function $(t){let e=H(t);if(!e)return()=>{};let r=t.querySelector('[name="deliveryAddress"], [name="address"]'),s=t.querySelector('[name="fulfillment"], [name="kind"]'),n=t.querySelector('[name="city"]');if(!r||!s||!n)return()=>{};let a=w(e),l=e.querySelector("[data-delivery-details-status]"),c=e.closest("[data-family-address]"),u=!1,d=()=>{if(u)return;let i=q(r),f=r.value.trim(),L;try{L=JSON.parse(r.dataset.selectedDeliveryAddress??"null")?.city}catch{}let D=i&&f.startsWith(i)?C.exec(f.slice(i.length))?.[1]:void 0,E=s.value==="delivery"&&L===n.value&&!!i&&(f===i||D!==void 0)&&!c?.hidden;e.hidden=!E;for(let m of Object.values(a))m.disabled=!E;if(!E){for(let m of Object.values(a))m.setCustomValidity(""),m.removeAttribute("aria-invalid");l&&(l.textContent="");return}D&&!a.apartment.value&&(a.apartment.value=D);let S=t.querySelector("[data-stage-address-status], [data-family-address-status]");if(S){let m=!1;try{m=JSON.parse(r.dataset.selectedDeliveryAddress??"null")?.pricingMode==="estimated_max_tariff"}catch{}S.textContent=(m?"\u0410\u0434\u0440\u0435\u0441 \u043F\u0440\u0438\u043D\u044F\u0442 \u043F\u043E \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u043C\u0443 \u0442\u0430\u0440\u0438\u0444\u0443 \u0437\u043E\u043D\u044B; \u0442\u043E\u0447\u043D\u044B\u0439 \u0434\u043E\u043C \u0443\u0442\u043E\u0447\u043D\u0438\u0442 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440.":"\u0414\u043E\u043C \u0432\u044B\u0431\u0440\u0430\u043D.")+" \u041A\u0432\u0430\u0440\u0442\u0438\u0440\u0443, \u043F\u043E\u0434\u044A\u0435\u0437\u0434 / \u043F\u0430\u0440\u0430\u0434\u043D\u0443\u044E \u0438 \u044D\u0442\u0430\u0436 \u043C\u043E\u0436\u043D\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0438\u0436\u0435."}try{O(r,t,f)}catch{}},y=t.closest("[data-family-portal]")??t,p=()=>{let i=y.querySelector('[name="comment"]');i?.dataset.deliveryDetailsCommentError&&(i.setCustomValidity(""),i.removeAttribute("aria-invalid"),delete i.dataset.deliveryDetailsCommentError)},h=()=>{for(let i of Object.values(a))i.setCustomValidity(""),i.removeAttribute("aria-invalid");p(),d()};r.addEventListener("delivery-address-change",d),r.addEventListener("input",d),s.addEventListener("change",d),n.addEventListener("change",d),e.addEventListener("input",h),y.addEventListener("input",p);let g=c?new t.ownerDocument.defaultView.MutationObserver(d):null;return g?.observe(c,{attributes:!0,attributeFilter:["hidden"]}),d(),()=>{u=!0,g?.disconnect(),y.removeEventListener("input",p),r.removeEventListener("delivery-address-change",d),r.removeEventListener("input",d),s.removeEventListener("change",d),n.removeEventListener("change",d),e.removeEventListener("input",h)}}var b=new WeakSet;function P(t){for(let e of t.querySelectorAll("[data-family-quote-form], [data-stage-order-form]"))b.has(e)||(b.add(e),$(e))}return z(W);})(); 828 829__bfAddressDetails20261002.installAllDeliveryAddressDetails(document); 830var __bfSameDayLabels20261002=(()=>{var c=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var E=(e,t)=>{for(var n in t)c(e,n,{get:t[n],enumerable:!0})},R=(e,t,n,o)=>
830{if(t&&typeof t=="object"||typeof t=="function")for(let r of A(t))!h.call(e,r)&&r!==n&&c(e,r,{get:()=>t[r],enumerable:!(o=C(t,r))||o.enumerable});return e};var x=e=>R(c({},"__esModule",{value:!0}),e);var te={};E(te,{deliveryIntervalOptionsForDate:()=>I,updateDeliveryIntervalLabels:()=>ee});var T=["catalog.product.read","catalog.product.update","catalog.product.archive","catalog.publication.read","catalog.publication.update","catalog.publication.hide","catalog.cms_text.read","catalog.cms_text.upsert","catalog.cms_text.hide","catalog.cms_text.archive","catalog.price.read","catalog.price.create","catalog.media.read","catalog.media.create","catalog.media.finalize","catalog.media.archive","order.read","order.buyer.correct","order.status.update","order.invoice.approve","order.invoice.read","lead.collaboration.read","lead.contact.read","lead.manual.create","lead.assignment.update","lead.note.create","inventory.ingredient.read","inventory.ingredient.create","inventory.recipe.read","inventory.stock.read","inventory.stock.post","inventory.threshold.manage","analytics.read"],ae=T.filter(e=>e.startsWith("catalog.")||e==="inventory.ingredient.read"||e==="inventory.recipe.read");function O(e){if(!(e instanceof Date)||!Number.isFinite(e.getTime()))throw new Error("Invalid delivery clock");let t=new Intl.DateTimeFormat("en-CA",{timeZone:"Europe/Moscow",year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(e),n=o=>t.find(r=>r.type===o).value;return`${n("year")}-${n("month")}-${n("day")}`}function u(e,t){if(e===void 0)return"0";if(!/^\d{4}-\d{2}-\d{2}$/u.test(e)||!Number.isFinite(Date.parse(e+"T00:00:00Z"))||new Date(e+"T00:00:00Z").toISOString().slice(0,10)!==e)throw new Error("Invalid delivery date");return e===O(t)?"40000":"0"}var p=[{key:"bestfurshet",domain:"bestfurshet.ru",displayName:"BestFurshet",offering:"\u0424\u0443\u0440\u0448\u0435\u0442\u044B \u0438 \u0431\u0430\u043D\u043A\u0435\u0442\u044B",audie
830nce:"people",commerceKind:"food",launchOrder:1},{key:"meat_cake",domain:"\u043C\u044F\u0441\u043D\u043E\u0439-\u0442\u043E\u0440\u0442.\u0440\u0444",displayName:"\u041C\u044F\u0441\u0422\u043E\u0440\u0442",offering:"\u041C\u044F\u0441\u043D\u044B\u0435 \u0442\u043E\u0440\u0442\u044B",audience:"people",commerceKind:"food",launchOrder:2},{key:"meat_pizza_no_dough",domain:"\u043C\u044F\u0441\u043F\u0438\u0446\u0446\u0430.\u0440\u0444",displayName:"\u041C\u044F\u0441\u041F\u0438\u0446\u0446\u0430",offering:"\u041C\u044F\u0441\u043D\u0430\u044F \u043F\u0438\u0446\u0446\u0430 \u0431\u0435\u0437 \u0442\u0435\u0441\u0442\u0430",audience:"people",commerceKind:"food",launchOrder:3},{key:"loft_pirate",domain:"\u043B\u043E\u0444\u0442-\u043F\u0438\u0440\u0430\u0442.\u0440\u0444",displayName:"Loft Pirate",offering:"\u041F\u043B\u043E\u0449\u0430\u0434\u043A\u0430 \u0438 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0443\u0441\u043B\u0443\u0433\u0438",audience:"people",commerceKind:"venue_service",launchOrder:4},{key:"pet_cake",domain:"\u043A\u043E\u0442\u043E\u043F\u0451\u0441-\u0442\u043E\u0440\u0442.\u0440\u0444",displayName:"\u041A\u043E\u0442\u043E\u043F\u0451\u0441 \u0422\u043E\u0440\u0442",offering:"\u0422\u043E\u0440\u0442\u044B \u0434\u043B\u044F \u0436\u0438\u0432\u043E\u0442\u043D\u044B\u0445",audience:"animals",commerceKind:"food",launchOrder:5}],i=p.map(e=>e.key);var y={bestfurshet:"bestfurshet.ru",meat_cake:"xn----qtbiefcocnc8k.xn--p1ai",meat_pizza_no_dough:"xn--80aplmj6aa1e.xn--p1ai",loft_pirate:"xn----8sbxkphimfn.xn--p1ai",pet_cake:"xn----stbmabejfgec8o.xn--p1ai"};var m=Object.freeze({version:2,authority:"owner_confirmed_same_day_2026_10_02",canonicalBrandKey:"meat_cake",canonicalSource:"https://\u043C\u044F\u0441\u043D\u043E\u0439-\u0442\u043E\u0440\u0442.\u0440\u0444/delivery/",appliesToBrands:i,currency:"RUB",pickup:Object.freeze({feeMinor:"0",managerConfirmationRequired:!0}),zones:Object.freeze([Object.freeze({key:"city",title:"\u0413\u043E\u0440\u043E\u0434\u0441\u043A\u0430\u044F \u0437\u043E\u043D\u0430",tiers:Object.freeze([Object.freeze({minimumSubtotalMinor:"0",feeMinor:"79000"}),Object.freeze({minimumSubtotalMinor:"1500000",feeMinor:"0"})])}),Object.freeze({key:"zone1",title:"1 \u0437\u043E\u043D\u0430",tiers:Object.freeze([Object.freeze({minimumSubtotalMinor:"0",feeMinor:"149000"}),Object.freeze({minimumSubtotalMinor:"1500000",feeMinor:"79000"}),Object.freeze({minimumSubtotalMinor:"2000000",feeMinor:"0"})])}),Object.freeze({key:"zone2",title:"2 \u0437\u043E\u043D\u0430",tiers:Object.freeze([Object.freeze({minimumSubtotalMinor:"0",feeMinor:"249000"}),Object.freeze({minimumSubtotalMinor:"1500000",feeMinor:"149000"}),Object.freeze({minimumSubtotalMinor:"2500000",feeMinor:"0"})])}),Object.freeze({key:"zone3",title:"3 \u0437\u043E\u043D\u0430",tiers:Object.freeze([Object.freeze({minimumSubtotalMinor:"0",feeMinor:"349000"}),Object.freeze({minimumSubtotalMinor:"2500000",feeMinor:"149000"}),Object.freeze({minimumSubtotalMinor:"3000000",feeMinor:"0"})])})]),intervals:Object.freeze([Object.freeze({key:"four_hours",hours:4,surchargeMinor:"0"}),Object.freeze({key:"three_hours",hours:3,surchargeMinor:"20000"}),Object.freeze({key:"two_hours",hours:2,surchargeMinor:"30000"}),Object.freeze({key:"one_hour",hours:1,surchargeMinor:"40000"})]),geographyNotes:Object.freeze({moscow:"\u0413\u043E\u0440\u043E\u0434\u0441\u043A\u0430\u044F \u0437\u043E\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0442\u043E\u0447\u043D\u043E \u043F\u043E \u041C\u041A\u0410\u0414; \u0441\u0440\u0430\u0437\u0443 \u0437\u0430 \u041C\u041A\u0410\u0414 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F 1 \u0437\u043E\u043D\u0430.",saintPetersburg:"\u0413\u043E\u0440\u043E\u0434\u0441\u043A\u0430\u044F \u0437\u043E\u043D\u0430 \u043D\u0430 \u0441\u0435\u0432\u0435\u0440\u0435 \u0438 \u044E\u0433\u0435 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0440\u0430\u043D\u044C\u0448\u0435 \u041A\u0410\u0414; \u041A\u0440\u043E\u043D\u0448\u0442\u0430\u0434\u0442 \u0438 \u0421\u0442\u0440\u0435\u043B\u044C\u043D\u0430 \u043E\u0442\u043D\u043E\u0441\u044F\u0442\u0441\u044F \u043A 1 \u0437\u043E\u043D\u0435, \u041F\u0435\u0442\u0435\u0440\u0433\u043E\u0444 \u2014 \u043A\u043E 2 \u0437\u043E\u043D\u0435."}),finalQuote:"manager_confirmation_required"});
830var f=Object.freeze({version:1,authority:"owner_confirmed_2026_09_03",rateBps:1500,trigger:"at_least_one_loft_package_in_shared_cart",authorizedSourceKeys:Object.freeze(["7816957967510","7816957967511","5616957967512"]),appliesToBrands:i,eligibleLineKind:"menu_item",excludedLineKinds:Object.freeze(["loft_package","other_service","delivery"]),lifecycle:"active_while_trigger_present",customerDisclosure:Object.freeze(["loft_site","shared_cart","checkout"])}),D=Object.freeze({version:3,order:Object.freeze(["compare_original_price_alternatives","select_lowest_final_payable","explain_selection"]),promotionPolicy:"one_best_of_special_promo_loft_or_loyalty_never_stack",loyaltyBase:"original_eligible_amount_before_any_discounts",deliveryExcludedFromDiscounts:!0,unapprovedPromotionBehavior:"fail_closed",rounding:"integer_minor_units_aggregate_floor_then_largest_remainder_by_line_id"});var w=Object.freeze({email:"info@\u043C\u044F\u0441\u043D\u043E\u0439-\u0442\u043E\u0440\u0442.\u0440\u0444",mailto:"mailto:[email protected]"});var N="9223372036854775807",Pe=BigInt(N),g={bestfurshet:1500,meat_cake:3e3,meat_pizza_no_dough:3e3,loft_pirate:1500,pet_cake:3e3},Le=Object.freeze({version:2,capsByBrandBps:g,excludedCategories:Object.freeze(["scandinavian_assortment","tableware","waiters","delivery"]),rounding:"floor_each_line_minor_units"});var We=Object.freeze({city:"\u0432 \u0433\u043E\u0440\u043E\u0434\u0441\u043A\u043E\u0439 \u0437\u043E\u043D\u0435",zone1:"\u0432 1-\u0439 \u0437\u043E\u043D\u0435",zone2:"\u0432\u043E 2-\u0439 \u0437\u043E\u043D\u0435",zone3:"\u0432 3-\u0439 \u0437\u043E\u043D\u0435"});var B=1440*60;var F=Object.freeze(Object.fromEntries(i.map(e=>[e,`https://${y[e]}`]))),Zt=Object.freeze({mode:"canonical",origins:F});var S={source:"https://\u043C\u044F\u0441\u043D\u043E\u0439-\u0442\u043E\u0440\u0442.\u0440\u0444/",capturedAt:"2026-09-11",coordinateOrder:"longitude,latitude",geometry:{moscow:{inside:[[37.842885,55.7769562],[37.8428433,55.7773793],[37.8428357,55.7774471],[37.8425432,55.7800599],[37.8424821,55.7807673],[37.842456,55.7810694],[37.8422379,55.7833633],[37.8420153,55.785704],[37.8415681,55.7900363],[37.8414316,55.7910413],[37.8411377,55.7934486],[37.8410942,55.793805],[37.8406761,55.7972296],[37.8404618,55.7989852],[37.8402953,55.8003588],[37.8400783,55.8025053],[37.839965,55.8033475],[37.8399187,55.803692],[37.8398887,55.804002],[37.8398538,55.8043622],[37.8398374,55.8046171],[37.8398251,55.8048098],[37.8398183,55.8049154],[37.8398124,55.8054158],[37.839815,55.8057233],[37.8398183,55.8061084],[37.839795,55.8068347],[37.8397009,55.8079585],[37.8394727,55.8100538],[37.8394463,55.810323],[37.8394225,55.8105152],[37.8393977,55.8107426],[37.8393492,55.8111883],[37.8390879,55.8136074],[37.839019,55.8141403],[37.8388805,55.8151967],[37.8387008,55.8161852],[37.8385614,55.8169376],[37.8385093,55.8172509],[37.838333,55.8183099],[37.8383094,55.8184597],[37.8382493,55.818797],[37.8380294,55.8197207],[37.8379335,55.8200972],[37.837
8307601,55.8205231],[37.8374033,55.8213709],[37.8370977,55.8219948],[37.83674,55.8225892],[37.8363164,55.8232239],[37.835766,55.823984],[37.8353044,55.8245514],[37.8348374,55.8250701],[37.8346375,55.82528],[37.8343733,55.8255576],[37.8339538,55.8259749],[37.833267,55.8265789],[37.8327232,55.8270346],[37.8321812,55.8274665],[37.8319322,55.8276614],[37.831234,55.8281478],[37.8303505,55.8287208],[37.8299789,55.828954],[37.8292361,55.8293975],[37.8289088,55.8295711],[37.8282637,55.829912],[37.8279035,55.8301024],[37.8267946,55.8306846],[37.8263751,55.8309048],[37.8256833,55.8312679],[37.8238223,55.8322401],[37.8156769,55.8364367],[37.8120269,55.8383171],[37.8002346,55.8443916],[37.7958348,55.8466578],[37.788434,55.8504694],[37.7864838,55.8514738],[37.7766386,55.8565437],[37.7658636,55.8620935],[37.7648462,55.8626153],[37.7530316,55.8686975],[37.7511334,55.8696746],[37.7412028,55.874786],[37.7380035,55.8764301],[37.734741,55.8781066],[37.733911,55.8785331],[37.7336213,55.8786861],[37.7331239,55.8789442],[37.732999,55.879009],[37.7318521,55.8796041],[37.7309548,55.8800285],[37.7302012,55.8803652],[37.7295199,55.8806638],[37.7285696,55.8811087],[37.7279299,55.8814112],[37.7271732,55.8817873],[37.7266895,55.88204],[37.7265627,55.8821016],[37.7254404,55.8826739],[37.7253195,55.8827354],[37.7236774,55.8835871],[37.7216053,55.8846516],[37.720144,55.8853811],[37.7188216,55.8860665],[37.7173421,55.8868333],[37.7137951,55.8887058],[37.7132085,55.8890109],[37.7120941,55.8895448],[37.7112096,55.8899476],[37.7105444,55.8902528],[37.7102496,55.890388],[37.7100033,55.890501],[37.7085517,55.8911398],[37.7078453,55.891443],[37.7069705,55.8918185],[37.7060304,55.8921841],[37.7050095,55.8925455],[37.7040451,55.8928536],[37.7033302,55.8930612],[37.7027163,55.8932394],[37.701444,55.8935699],[37.7001685,55.8938516],[37.699473,55.8939794],[37.6987414,55.8941184],[37.6973317,55.8943335],[37.6957233,55.8945227],[37.6943094,55.8946446],[37.6932025,55.8947134],[37.692735,55.8947425],[37.6924634,55.8947537],[37.6905074,55.8948344],[37.6871048,55.8949239],[37.6867673,55.8949334],[37.6856174,55.8949657],[37.6849543,55.8949843],[37.6847616,55.8949897],[37.6831749,55.8950356],[37.6807823,55.8951059],[37.6800378,55.8951235],[37.6778881,55.8951742],[37.676734,55.8952014],[37.6750829,55.8952436],[37.6738318,55.8952753],[37.672391,55.8953159],[37.6722382,55.8953221],[37.6693824,55.8954252],[37.6684148,55.8954601],[37.667806,55.8954819],[37.6645074,55.8956311],[37.6628626,55.8957177],[37.6610708,55.8958329],[37.6599624,55.8959042],[37.6575752,55.8960764],[37.6568856,55.8961328],[37.6560428,55.8962018],[37.6540769,55.8963627],[37.6517386,55.8965824],[37.6491809,55.8968394],[37.6465949,55.8971133],[37.6442295,55.8973914],[37.6418692,55.8976704],[37.6411511,55.8977712],[37.6378619,55.8982538],[37.6356411,55.8985847],[37.633431,55.8989396],[37.6313477,55.8993176],[37.6298266,55.8995939],[37.6290598,55.8997332],[37.628842,55.8997751],[37.6280163,55.8999298],[37.6264948,55.9002148],[37.6235204,55.9008334],[37.6205042,55.9014779],[37.6173235,55.9022095],[37.6145054,55.9028855],[37.6143628,55.9029206],[37.61168,55.9035808],[37.6084767,55.9044702],[37.6079907,55.9046051],[37.6072407,55.9048134],[37.5985897,55.9072163],[37.5980889,55.9073554],[37.5973204,55.9075688],[37.5967936,55.9077164],[37.5944415,55.9083751],[37.5941325,55.9084617],[37.5916785,55.909149],[37.5910596,55.909319],[37.5901547,55.9095675],[37.5891396,55.9098107],[37.5877854,55.9101028],[37.587117,55.910234],[37.5866717,55.9103121],[37.5856221,55.9104834],[37.5849144,55.9105896],[37.5843571,55.9106599],[37.5836781,55.9107455],[37.5824357,55.9108768],[37.5821736,55.910909],[37.5809601,55.9110032],[37.580008,55.9110612],[37.579466,55.9110942],[37.5782356,55.9111376],[37.5771674,55.911148],[37.5761364,55.9111352],[37.5760934,55.9111349],[37.5757086,55.911132],[37.5742218,55.9110844],[37.5728821,55.9110029],[37.5714441,55.9108756],[37.5691341,55.9106328],[37.5689596,55.9106145],[37.5665028,55.9103563],[37.5621584,55.909895],[37.553262,55.9089504],[37.5527556,55.9088991],[37.5507542,55.9086864],[37.5440147,55.9079438],[37.5431955,55.9078554],[37.5398227,55.9075061],[37.5397534,55.9074988],[37.5383344,55.9073434],[37.5360137,55.9070966],[37.5348383,55.906951],[37.5338881,55.9068173],[37.5329652,55.9066671],[37.5321572,55.9065296],[37.5311982,55.906341],[37.5299544,55.9060799],[37.5290206,55.9058654],[37.5280985,55.9056178],[37.5266525,55.9051889],[37.5255871,55.9048488],[37.5244136,55.9044333],[37.5232792,55.903985],[37.52139,55.9032048],[37.5207512,55.9029052],[37.5199877,55.9025663],[37.516444,55.9009936],[37.5081746,55.8973617],[37.5057637,55.8963028],[37.5056048,55.896233],[37.5033927,55.8952516],[37.5008139,55.8941303],[37.4970004,55.8924479],[37.4964801,55.8922173],[37.4960856,55.8920424],[37.4955334,55.8918006],[37.4944494,55.8913289],[37.4937863,55.8910404],[37.4920339,55.8902536],[37.4914295,55.8899902],[37.4905364,55.8896261],[37.4895274,55.8892385],[37.4886373,55.8889177],[37.487694,55.8886093],[37.4873966,55.8885164],[37.4867919,55.8883261],[37.4862679,55.8881827],[37.4857209,55.8880331],[37.4841912,55.8876321],[37.4835099,55.887456],[37.4820561,55.8870836],[37.481541,55.8869553],[37.4795977,55.8864711],[37.4786323,55.8862319],[37.4744802,55.8851928],[37.4731973,55.8848647],[37.4718937,55.8845374],[37.4710553,55.8843318],[37.4702598,55.8841322],[37.4694699,55.8839387],[37.4685637,55.8837438],[37.4677643,55.8835949],[37.4669487,55.8834532],[37.4659832,55.8833139],[37.4654462,55.8832409],[37.4644838,55.8831379],[37.4634118,55.8830393],[37.4622477,55.882966],[37.460938,55.8829124],[37.459678,55.8828638],[37.4557207,55.8828292],[37.4546349,55.8828156],[37.4537572,55.8827805],[37.4525283,55.8827198],[37.4517855,55.8826831],[37.4510255,55.8826352],[37.4501544,55.8825605],[37.4493307,55.8824807],[37.4482396,55.8823366],[37.4471684,55.8821626],[37.4462954,55.8819998],[37.4460923,55.8819595],[37.4447969,55.8817026],[37.4442253,55.8815835],[37.4436965,55.881447],[37.4426493,55.8811854],[37.4416131,55.8808809],[37.4401382,55.8803986],[37.4387179,55.8799516],[37.4381562,55.8797764],[37.4377497,55.8796495],[37.4376964,55.8796347],[37.4366938,55.8793177],[37.4341015,55.8785098],[37.4336074,55.8783546],[37.4335752,55.878345],[37.4327341,55.8780865],[37.4322075,55.8779235],[37.4302292,55.8772967],[37.4295715,55.8770899],[37.4281735,55.8766518],[37.4264208,55.876105],[37.4247304,55.8755757],[37.42342,55.8751667],[37.4227875,55.8749655],[37.420125,55.8741269],[37.4189267,55.8737294],[37.417594,55.8732752],[37.4163586,55.8728311],[37.4150474,55.8723173],[37.4136692,55.8717396],[37.4124972,55.8712249],[37.4116584,55.8708329],[37.4106563,55.8703401],[37.4097509,55.8698713],[37.4084875,55.8691696],[37.4073169,55.868463],[37.4057907,55.8674834],[37.4053254,55.867159],[37.40468,55.8666916],[37.4044547,55.8665133],[37.4035897,55.8658165],[37.4021933,55.8646402],[37.40168,55.8641699],[37.4012186,55.8637198],[37.4005012,55.8629739],[37.4002848,55.862745],[37.4002423,55.8626967],[37.3994654,55.861806],[37.399099,55.8613577],[37.398737,55.8609148],[37.3984131,55.8605032],[37.3980995,55.8600453],[37.3977371,55.8594525],[37.397528,55.8591183],[37.3967263,55.8576972],[37.3961777,55.856676],[37.3952074,55.8548698],[37.3948662,55.8542504],[37.3938621,55.8523593],[37.3930298,55.8507915],[37.3926348,55.8500521],[37.3924023,55.849623],[37.3921877,55.8491937],[37.3920341,55.8488251],[37.3918209,55.848217],[37.3918066,55.8481712],[37.3917618,55.8480041],[37.3917264,55.8478718],[37.3916561,55.8473884],[37.391626,55.8469764],[37.3916316,55.8464896],[37.3916663,55.8461656],[37.3917335,55.8457705],[37.3918073,55.8454759],[37.3919168,55.8451117],[37.3920747,55.8447087],[37.3922508,55.8443082],[37.392511,55.8438391],[37.3928022,55.8434272],[37.3930986,55.8430298],[37.3932198,55.842865],[37.393618,55.8423032],[37.3937078,55.8421634],[37.3940097,55.8416934],[37.3942758,55.8412086],[37.3946017,55.8406148],[37.3949269,55.8399437],[37.3952072,5
8305.8392456],[37.3953405,55.8388666],[37.3954602,55.8384949],[37.3955687,55.8381338],[37.3956277,55.8377724],[37.3957479,55.8369034],[37.3957768,55.8364797],[37.3957808,55.8360874],[37.3957823,55.8359413],[37.3957824,55.8357846],[37.3957826,55.8354452],[37.3957124,55.8347882],[37.3956368,55.8342439],[37.3956277,55.8341783],[37.3956236,55.8340723],[37.3955498,55.8335999],[37.3954712,55.8332062],[37.395369,55.8328329],[37.3952809,55.8325709],[37.3952077,55.8323289],[37.3951906,55.8322663],[37.3947494,55.8308867],[37.3946269,55.8305038],[37.3946,55.8304089],[37.3945756,55.8303232],[37.3938828,55.8281755],[37.3937555,55.8278169],[37.393642,55.8274263],[37.3935553,55.8270202],[37.3934281,55.8262447],[37.3933154,55.8256176],[37.3932299,55.8251],[37.393093,55.8245283],[37.3929239,55.8239026],[37.3928655,55.8236866],[37.3922214,55.8216669],[37.3918601,55.8205025],[37.3915304,55.8194583],[37.3914785,55.8192938],[37.391335,55.8188392],[37.3909231,55.8175346],[37.3904897,55.8161617],[37.3900638,55.8148128],[37.3898853,55.8142511],[37.3897767,55.8139095],[37.3897515,55.8138302],[37.3892953,55.8123946],[37.3889483,55.8113026],[37.3887981,55.81083],[37.388746,55.810666],[37.3885494,55.8100472],[37.3883721,55.8094891],[37.3881992,55.8089299],[37.3880104,55.8083764],[37.3879092,55.8080796],[37.3878265,55.8078694],[37.3877001,55.8075651],[37.3876268,55.8073718],[37.3874985,55.8070606],[37.3872277,55.8064817],[37.3871583,55.8063406],[37.3870108,55.8060548],[37.3866761,55.8054487],[37.3865823,55.8052789],[37.3864918,55.8051328],[37.3858049,55.8040247],[37.3857888,55.8039975],[37.3848293,55.8026603],[37.3845339,55.8022711],[37.3842996,55.8019625],[37.3841048,55.8017416],[37.3836527,55.8012302],[37.3831333,55.8006928],[37.3787423,55.7961245],[37.3783091,55.7956654],[37.3774974,55.7948177],[37.3769688,55.7942841],[37.3753523,55.7925909],[37.3749456,55.7921649],[37.3736563,55.7908487],[37.3730585,55.7902141],[37.372998,55.7901417],[37.3723077,55.7893497],[37.372093,55.7890957],[37.3718278,55.7887065],[37.3713095,55.7878967],[37.3710644,55.7874561],[37.3707813,55.7868758],[37.3705912,55.7864631],[37.3704735,55.7862077],[37.3702791,55.7857093],[37.3700917,55.7851752],[37.3699935,55.7848062],[37.3699652,55.7847001],[37.3698643,55.7842101],[37.3697324,55.7834754],[37.3696679,55.782664],[37.3695981,55.7809807],[37.3695608,55.7793076],[37.3695499,55.7788417],[37.3695262,55.7778311],[37.3695233,55.7777089],[37.3695018,55.7767981],[37.3694483,55.7747541],[37.3694189,55.7734827],[37.3693569,55.7719422],[37.3693308,55.7707584],[37.3693123,55.7699212],[37.3692346,55.7681674],[37.3692178,55.7676116],[37.3691248,55.765692],[37.3691166,55.7655236],[37.3691159,55.7655037],[37.3691043,55.7646837],[37.3690823,55.763294],[37.3690658,55.7618754],[37.3690602,55.7611535],[37.369035,55.7588445],[37.3690083,55.7578567],[37.3689927,55.7572781],[37.36888,55.7537596],[37.3688717,55.7535005],[37.3688382,55.7521438],[37.3688247,55.7516958],[37.3688124,55.7502889],[37.3688549,55.7498551],[37.3690013,55.7485209],[37.3694133,55.7464484],[37.3701428,55.7442551],[37.3712154,55.7420216],[37.3712221,55.7420075],[37.3712682,55.7419114],[37.3715596,55.7413047],[37.3717135,55.7409841],[37.3718846,55.7406515],[37.3729331,55.7386138],[37.3744442,55.7356361],[37.374596,55.7353552],[37.3757084,55.7331988],[37.3759051,55.732809],[37.3761252,55.7323726],[37.3771293,55.7303955],[37.3777247,55.7292466],[37.3779394,55.7288322],[37.3781391,55.7284468],[37.3782996,55.7281461],[37.3790686,55.7265673],[37.3792313,55.7262616],[37.3796167,55.7255374],[37.3802794,55.7242532],[37.3804792,55.7238571],[37.38054,55.7237361],[37.3820374,55.7208221],[37.3827887,55.7193412],[37.3828687,55.7191845],[37.3838819,55.7172193],[37.3844926,55.7160149],[37.3849853,55.7150367],[37.3854773,55.7140606],[37.3858528,55.7133567],[37.3863226,55.7125564],[37.3866094,55.7121021],[37.3870826,55.711444],[37.3876043,55.7107855],[37.3882331,55.7100723],[37.3886588,55.7096248],[37.3896149,55.7087217],[37.3901708,55.708266],[37.3905653,55.7079561],[37.3921425,55.7068138],[37.3926516,55.7064271],[37.3927075,55.7063847],[37.3941758,55.7053084],[37.3952561,55.7045057],[37.3963102,55.7037293],[37.3983327,55.7022213],[37.3985259,55.7020762],[37.3992668,55.7015145],[37.4000631,55.7009414],[37.4012991,55.7000266],[37.401509,55.6998637],[37.4024396,55.6991792],[37.402743,55.698947],[37.4045396,55.6975405],[37.4073003,55.695
8305511],[37.4090545,55.6942869],[37.4098682,55.6936588],[37.410821,55.6928638],[37.4116706,55.6920411],[37.4122075,55.6914402],[37.4124893,55.6911101],[37.4132838,55.6900677],[37.4134985,55.6897542],[37.4139275,55.6890365],[37.4143249,55.6882907],[37.4146262,55.6876121],[37.4147841,55.687176],[37.4148544,55.686982],[37.4149781,55.6866032],[37.4150457,55.6863961],[37.4152295,55.6858485],[37.4152777,55.6857047],[37.4153587,55.6854632],[37.4154869,55.6850814],[37.4157798,55.6843901],[37.4159307,55.6840591],[37.4161276,55.6836643],[37.4163438,55.683281],[37.4166006,55.6828524],[37.4168722,55.6824356],[37.4173229,55.6818153],[37.4182216,55.6806076],[37.4193299,55.6791261],[37.4203793,55.6777234],[37.4204993,55.677563],[37.421562,55.6761424],[37.4225533,55.6748204],[37.4226678,55.6746677],[37.423444,55.6736325],[37.4255041,55.6708848],[37.4266827,55.6693222],[37.4267508,55.6692319],[37.4275461,55.6681485],[37.4281623,55.6673252],[37.4287064,55.6665833],[37.4290138,55.6661876],[37.4296491,55.6653435],[37.4299261,55.6649874],[37.4302161,55.6646217],[37.4306877,55.6640328],[37.4309643,55.6636979],[37.4321598,55.6623888],[37.4327952,55.6617409],[37.4339637,55.6605423],[37.4343623,55.6601368],[37.4352623,55.6593173],[37.4360862,55.6585855],[37.4365763,55.6581671],[37.4386372,55.6564015],[37.4408487,55.6545068],[37.441319,55.6541145],[37.4417829,55.6537471],[37.4419436,55.6536166],[37.4436002,55.6523552],[37.4438028,55.6521894],[37.4440031,55.6520182],[37.4447396,55.6513885],[37.4453624,55.650856],[37.4514588,55.6456474],[37.452392,55.6448499],[37.4540205,55.6434585],[37.4565677,55.6412864],[37.4567814,55.6411042],[37.4590366,55.6391814],[37.4598233,55.6385111],[37.459841,55.6384959],[37.4612514,55.6372783],[37.4626407,55.6361022],[37.4626894,55.636061],[37.4628234,55.6359459],[37.462987,55.6358059],[37.46409,55.6348623],[37.4656656,55.6335049],[37.4661108,55.6331225],[37.4669134,55.6324331],[37.4675596,55.6318654],[37.4681641,55.6313485],[37.4684881,55.6310804],[37.4696257,55.630121],[37.4698988,55.6298914],[37.4713729,55.6286024],[37.4717918,55.6282425],[37.4728225,55.6273571],[37.4740623,55.6263158],[37.4743995,55.6260326],[37.4744888,55.6259576],[37.4749209,55.6255985],[37.4785647,55.6224624],[37.4792597,55.6218642],[37.479414,55.6217314],[37.4802402,55.6210202],[37.48032,55.6209515],[37.4820882,55.6194406],[37.4846839,55.6172227],[37.4878149,55.6145304],[37.4886661,55.6138],[37.4889831,55.613528],[37.4891799,55.6133591],[37.4913209,55.6115217],[37.4922794,55.6106991],[37.4959307,55.6075654],[37.4977447,55.6060085],[37.4993351,55.6046817],[37.4998919,55.6041999],[37.5021202,55.6022744],[37.5028408,55.6016509],[37.5034049,55.601169],[37.5036607,55.6009413],[37.504547,55.6001925],[37.5052151,55.5996786],[37.5058936,55.5991972],[37.5059941,55.5991259],[37.5065912,55.5987397],[37.5070167,55.598467],[37.507222,55.5983354],[37.5080941,55.597844],[37.5081309,55.5978232],[37.5087941,55.5974506],[37.5094792,55.5970931],[37.5103106,55.59669],[37.5110909,55.5963265],[37.5115648,55.596118],[37.5120623,55.5959127],[37.513344,55.5954233],[37.5139493,55.5952209],[37.5143726,55.5950793],[37.5155897,55.5946919],[37.5167328,55.5943541],[37.5173047,55.5941994],[37.5179483,55.5940413],[37.5189226,55.5938081],[37.5221383,55.5930383],[37.523665,55.5926728],[37.5251278,55.5923226],[37.5284132,55.591536],[37.5288576,55.5914296],[37.5296557,55.5912385],[37.5310146,55.5909132],[37.5346042,55.5900538],[37.5446019,55.5876601],[37.5446859,55.58764],[37.5454444,55.5874584],[37.5456053,55.5874199],[37.5467816,55.5871382],[37.5494712,55.5864942],[37.5559571,55.5849466],[37.5646022,55.5828711],[37.5674257,55.582195],[37.5691585,55.58178],[37.5715416,55.5812092],[37.5735737,55.5807224],[37.57552,55.5802562],[37.5793566,55.5793372],[37.5815813,55.5788043],[37.586788,55.5775571],[37.5879444,55.5772801],[37.5885459,55.5771378],[37.589177,55.5769965],[37.5897729,55.5768708],[37.5904077,55.5767563],[37.5910886,55.5766385],[37.5920793,55.5764711],[37.5922715,55.5764386],[37.5929158,55.5763351],[37.5935186,55.5762446],[37.5941263,55.5761609],[37.5947365,55.57609],[37.5953881,55.5760234],[37.5960118,55.5759675],[37.5965508,55.5759259],[37.5970963,55.5758881],[37.5982964,55.5758145
830],[37.5994963,55.5757444],[37.5996559,55.5757351],[37.6015569,55.5756242],[37.6018179,55.575609],[37.6067077,55.5753235],[37.6082509,55.5752364],[37.6086097,55.5752152],[37.6104106,55.5751089],[37.6113141,55.5750556],[37.6123216,55.5749961],[37.6125991,55.5749797],[37.6136634,55.5749176],[37.6153773,55.5748245],[37.6166337,55.5747512],[37.6186129,55.5746342],[37.619873,55.5745587],[37.6222835,55.5744144],[37.6269718,55.5741391],[37.6276885,55.574097],[37.6324099,55.5738198],[37.6347518,55.5736823],[37.6362916,55.5735919],[37.6386494,55.5734632],[37.6401486,55.5733654],[37.6422973,55.5732392],[37.645153,55.5730716],[37.6457708,55.5730353],[37.6476692,55.5729238],[37.6492051,55.5728336],[37.6525399,55.5726377],[37.6530635,55.572607],[37.65412,55.5725439],[37.6550682,55.5724873],[37.6577238,55.5723287],[37.663302,55.5719955],[37.6639354,55.571959],[37.6646183,55.5719273],[37.6653014,55.5718908],[37.6659333,55.5718668],[37.6666035,55.5718424],[37.6672726,55.5718275],[37.6679518,55.5718181],[37.6686353,55.5718208],[37.6693119,55.5718357],[37.6699969,55.571856],[37.6701134,55.5718607],[37.6706718,55.5718832],[37.6713477,55.5719226],[37.6720167,55.5719728],[37.6729868,55.5720703],[37.6738626,55.5721581],[37.674698,55.572248],[37.6753628,55.5723359],[37.6760123,55.5724226],[37.6766742,55.5725247],[37.677953,55.5727456],[37.678593,55.572864],[37.6792398,55.5730013],[37.6798759,55.5731429],[37.6804938,55.5733033],[37.6810831,55.5734571],[37.6816596,55.5736099],[37.6821854,55.5737551],[37.682762,55.573925],[37.6833257,55.5741012],[37.6838741,55.5742786],[37.6844115,55.5744589],[37.6848949,55.5746294],[37.6871019,55.5754285],[37.6877222,55.5756531],[37.6888875,55.5760888],[37.6932283,55.5777119],[37.694651,55.5782438],[37.6981941,55.5795686],[37.6988695,55.5798201],[37.6995738,55.5800824],[37.7010887,55.5806465],[37.7018495,55.5809298],[37.7031195,55.5814028],[37.7048714,55.5820562],[37.7070666,55.5828769],[37.7077618,55.5831315],[37.7086383,55.5834579],[37.7104118,55.5841183],[37.7114662,55.5845109],[37.7133158,55.5851996],[37.7149885,55.5858157],[37.7156728,55.5860725],[37.7187859,55.5872423],[37.7199483,55.5876867],[37.7202575,55.5878165],[37.7210312,55.5881459],[37.7229966,55.5889543],[37.7245529,55.5896196],[37.7258429,55.5901708],[37.7311695,55.5923999],[37.7373043,55.5949724],[37.7386329,55.5955209],[37.7389941,55.5956704],[37.7400008,55.5960919],[37.7429269,55.5973188],[37.7467623,55.5989269],[37.7476817,55.5993179],[37.7488972,55.5998095],[37.7500925,55.6003185],[37.7511173,55.6007584],[37.7520386,55.6011533],[37.7531275,55.6016483],[37.7540366,55.6020891],[37.7551617,55.6026689],[37.755857,55.6030447],[37.7560922,55.6031718],[37.7571675,55.6037632],[37.7617579,55.6063003],[37.7629572,55.6069747],[37.7662818,55.608803],[37.770938,55.6113635],[37.7731382,55.6125799],[37.7752365,55.6137249],[37.77903,55.6158296],[37.7795301,55.6161054],[37.7797959,55.6162549],[37.7802233,55.6164954],[37.7812962,55.6170962],[37.7815856,55.6172518],[37.7817846,55.6173581],[37.7821157,55.6175353],[37.7822754,55.6176229],[37.7855813,55.6194064],[37.7865232,55.6198738],[37.7879995,55.6205591],[37.788626,55.6208407],[37.7898015,55.6213995],[37.7908205,55.6219348],[37.7916875,55.622422],[37.7953214,55.6244047],[37.796272,55.6249782],[37.7968651,55.6253512],[37.7975151,55.6257752],[37.7981025,55.6261939],[37.7984029,55.6263999],[37.7988267,55.6266997],[37.7992913,55.6270116],[37.7994445,55.6271145],[37.8001899,55.6276253],[37.800332,55.6277227],[37.8046858,55.6305502],[37.8055512,55.6311123],[37.8066033,55.6317955],[37.8070607,55.6320945],[37.8074061,55.6323204],[37.8077904,55.6325717],[37.8170318,55.6386135],[37.8177172,55.6390767],[37.8196262,55.6403236],[37.8197701,55.6404176],[37.8201443,5
8305.640662],[37.8232828,55.6427119],[37.8269293,55.645096],[37.8272692,55.6453185],[37.8275482,55.6455004],[37.8279893,55.645788],[37.8294431,55.6467362],[37.8304856,55.647416],[37.832122,55.6485109],[37.8327969,55.6489693],[37.8328498,55.6490043],[37.8330626,55.6491635],[37.8346436,55.6503669],[37.8356026,55.6512285],[37.8361739,55.6518076],[37.8368023,55.6525248],[37.8375487,55.6535167],[37.8379214,55.6540743],[37.8380538,55.6542763],[37.8384289,55.6549316],[37.8387167,55.6555083],[37.8389347,55.6559452],[37.8391914,55.6565613],[37.8393885,55.6571406],[37.8394741,55.6574846],[37.8395847,55.6579448],[37.839618,55.6581148],[37.8397699,55.6588889],[37.839864,55.6597364],[37.8398735,55.6599299],[37.8399036,55.6605474],[37.8399053,55.6613132],[37.8398092,55.6622023],[37.8396727,55.6629726],[37.8394739,55.6637435],[37.8391115,55.6647977],[37.8371327,55.6701768],[37.835781,55.6738901],[37.8350558,55.6758821],[37.83392,55.6790018],[37.8323718,55.6827428],[37.83203,55.6836233],[37.8317733,55.6843188],[37.8315227,55.6849976],[37.8306269,55.6873731],[37.8304308,55.6879419],[37.8301058,55.6890778],[37.8298558,55.6901227],[37.8297221,55.6909862],[37.8295693,55.6919969],[37.8295172,55.6928811],[37.8295275,55.6937366],[37.8295902,55.6947576],[37.8297062,55.6956904],[37.8297941,55.6962207],[37.8298772,55.6966562],[37.8299866,55.6970429],[37.8300942,55.6974229],[37.8301116,55.6974838],[37.8302718,55.6980439],[37.8304232,55.6984837],[37.8305431,55.6988319],[37.8306081,55.6989955],[37.8308483,55.6996002],[37.8311531,55.7002541],[37.8312158,55.7003887],[37.8315914,55.7011462],[37.8332478,55.7042183],[37.8335883,55.7048497],[37.833856,55.7053542],[37.834774,55.7070856],[37.8350586,55.7076225],[37.8353762,55.7082283],[37.8360121,55.7094142],[37.8363837,55.7101109],[37.8366442,55.7106054],[37.8369028,55.7111006],[37.8376436,55.7125143],[37.8380282,55.7132796],[37.8383206,55.7140191],[37.8385582,55.7147311],[37.8387407,55.7155128],[37.8389095,55.7165561],[37.839358,55.7202335],[37.8395387,55.7217562],[37.839693,55.7229791],[37.8403828,55.7287282],[37.840488,55.7296049],[37.8407507,55.7317929],[37.8407695,55.7319498],[37.8408515,55.732651],[37.8408754,55.7328551],[37.841067,55.7344086],[37.8411211,55.7348327],[37.841356,55.7366728],[37.8416902,55.739376],[37.8418267,55.7404799],[37.8418892,55.7410489],[37.8420083,55.7421328],[37.8420965,55.7436056],[37.8421059,55.7438606],[37.842129,55.7444842],[37.8421573,55.7452511],[37.8421842,55.745838],[37.8422551,55.747427],[37.8422582,55.7474963],[37.8423034,55.7486952],[37.8423383,55.7494363],[37.8423569,55.749927],[37.8424203,55.7507127],[37.8425062,55.7521301],[37.8425321,55.752558],[37.842592,55.7535481],[37.8426036,55.7538416],[37.8426231,55.7545063],[37.8426328,55.7548062],[37.8427029,55.7560172],[37.8427115,55.7561669],[37.8428298,55.7573644],[37.8428379,55.7575634],[37.842841,55.7576379],[37.8428852,55.7587186],[37.8428931,55.7589104],[37.842901,55.7593294],[37.8429258,55.7597698],[37.8429567,55.7603176],[37.8429954,55.7609665],[37.8430686,55.7623253],[37.8430984,55.7628789],[37.8432357,55.7657182],[37.8432608,55.7666892],[37.8433221,55.7673777],[37.8433501,55.7678938],[37.8433559,55.7680166],[37.8433872,55.7684959],[37.8434932,55.7701217],[37.843494,55.7704914],[37.8434939,55.7714522],[37.8433395,55.7729199],[37.8432085,55.7741417],[37.8431873,55.7743391],[37.8429426,55.7764926],[37.8429365,55.7765472],[37.842885,55.7769562]],zone1Outer:[[38.0017895,55.6531536],[37.9314083,55.5821873],[37.789616,55.5391367],[37.6134914,55.5170823],[37.3794093,55.5709604],[37.2853708,55.5974829],[37.2215447,55.6690305],[37.2373376,55.7568314],[37.2723565,55.8436615],[37.3729501,55.921816],[37.4314866,55.9465801],[37.517489,55.9643966],[37.7196741,55.9547403],[37.9026331,55.9358327],[37.9659152,55.8477235],[37.9673311,55.8481193],[38.0017895,55.6531536]],zone2Outer:[[37.9015789,55.9359416],[37.9010382,55.9366396],[38.283025,55.9036941],[38.3051586,55.5488236],[37.9220104,55.3971021],[37.5347424,55.365436],[37.3087755,55.4624594],[36.9564659,55.5156321],[36.9536588,55.6216115],[36.8272556,55.7342783],[36.9251026,55.8157466],[36.9625247,55.8908706],[36.9832958,55.9524637],[37.061745,56.0185739],[37.1994174,56.0790993],[37.3460767,56.1349723],[37.5229484,56.1355912],[38.0607128,56.051618],[38.2814694,55.9049357],[37.7934146,55.9479925],[37.7787804,55.948632],[37.9015789,55.9359416]],zone3Outer:[[38.3146275,55.550783],[38.2855376,55.903622],[38.7214321,56.0988049],[39.0914087,55.8412982],[39.170191,55.5777883],[39.1391101,55.3062237],[38.8866769,55.0607159],[38.0161366,54.9089173],[37.3900421,54.8644134],[36.5443472,55.0836781],[35.9183788,55.4971216],[35.91700
83056,56.0544122],[36.6764355,56.3803852],[37.3850537,56.4138953],[38.2364941,56.3864801],[38.7236448,56.1002124],[38.2850907,55.9063972],[38.0717564,56.0512476],[37.5434641,56.1343484],[37.5292973,56.1345998],[38.0607128,56.051618],[38.2814694,55.9049357],[37.7934146,55.9479925],[37.7787804,55.948632],[37.9015789,55.9359416],[37.9010382,55.9366396],[38.283025,55.9036941],[38.3051586,55.5488236],[38.0425734,55.4448434],[38.3146275,55.550783]]},spb:{inside:[[30.4394951,60.0391387],[30.4398507,60.038287],[30.4400595,60.0375561],[30.4402405,60.036836],[30.4405869,60.0358687],[30.4407031,60.0356591],[30.4408776,60.0353576],[30.4411951,60.034803],[30.4416793,60.0341373],[30.4435613,60.0321719],[30.444662,60.031058],[30.4452967,60.0303587],[30.4466234,60.0290532],[30.4489692,60.0267402],[30.4491302,60.0265974],[30.4492645,60.0264562],[30.4501755,60.025547],[30.4504599,60.0252632],[30.4510363,60.0246931],[30.4536083,60.0221022],[30.4547749,60.0209947],[30.455278,60.0205612],[30.4558539,60.0201398],[30.4564418,60.0197197],[30.456973,60.0193903],[30.4576126,60.0190101],[30.4581629,60.0187195],[30.4589108,60.0183519],[30.4600481,60.017868],[30.4605572,60.017692],[30.4616184,60.0173407],[30.4626615,60.0169729],[30.4644605,60.0163904],[30.4659853,60.015857],[30.4667422,60.0155557],[30.467552,60.0152115],[30.4684165,60.0148065],[30.4690083,60.0145125],[30.4701519,60.0138681],[30.4712558,60.0131701],[30.4717217,60.0128464],[30.4730229,60.0118547],[30.4739808,60.0109678],[30.4749839,60.0097701],[30.4755344,60.0089216],[30.475948,60.0080933],[30.476334,60.0070657],[30.4765469,60.0059696],[30.476532,60.0043742],[30.4764656,60.0032035],[30.4763902,60.0011625],[30.4765894,59.9995762],[30.4769247,59.9982951],[30.4775147,59.9968073],[30.4782742,59.9955402],[30.4788712,59.9947049],[30.4796178,59.9938057],[30.4808456,59.9924587],[30.4814431,59.9919239],[30.4823386,59.991192],[30.4829614,59.9906924],[30.4831809,59.9905401],[30.4835999,59.9902442],[30.4849468,59.9893522],[30.4863022,59.9885039],[30.4874622,59.9878745],[30.4897903,59.9867968],[30.4903534,59.986579],[30.4911209,59.9862587],[30.4920633,59.9858574],[30.4947408,59.9848075],[30.4970511,59.984035],[30.498013,59.983767],[30.4983417,59.9836713],[30.4997372,59.9833417],[30.5006005,59.9831668],[30.5015031,59.9830213],[30.5018572,59.9829699],[30.5044861,59.9826499],[30.5052169,59.9825684],[30.5054337,59.9825504],[30.5070253,59.9823967],[30.5091743,59.9821932],[30.5118852,59.9819409],[30.5140937,59.9817178],[30.5151473,59.9815896],[30.5161924,59.9814446],[30.5170932,59.9813051],[30.5179929,59.9811573],[30.5190539,59.9809629],[30.5200888,59.9807501],[30.5212185,59.9805027],[30.5223336,59.980238],[30.5238041,59.9798431],[30.5252434,59.9794171],[30.5340295,59.976674],[30.5360216,59.9760589],[30.5381612,59.9753924],[30.5372577,59.9750248],[30.5329264,59.9739433],[30.5281667,59.9730194],[30.5278505,59.9730957],[30.5268455,59.9740902],[30.5172041,59.9715718],[30.5172897,59.9714874],[30.5168956,59.9713873],[30.5167945,59.97149],[30.5131012,59.9705585],[30.5000214,59.9107895],[30.4954193,59.89
8301479],[30.4974091,59.8913632],[30.4976002,59.8905431],[30.511671,59.8728521],[30.519999,59.8632286],[30.5086845,59.8612318],[30.5080003,59.8596912],[30.5053998,59.8592095],[30.5038692,59.8594919],[30.4988465,59.8588877],[30.4986251,59.8590771],[30.4970376,59.8589368],[30.4934923,59.8582023],[30.4932346,59.8545508],[30.4930556,59.8537823],[30.4877705,59.8536055],[30.4847726,59.8535084],[30.4823104,59.8534263],[30.4809773,59.8533609],[30.4800734,59.8532869],[30.479258,59.8531959],[30.4786813,59.8531171],[30.4780175,59.8530087],[30.4771659,59.8528416],[30.4762566,59.8526261],[30.4752937,59.8523655],[30.4724599,59.8515545],[30.4702666,59.8509443],[30.4642132,59.8492433],[30.4623191,59.848521],[30.4615881,59.8481874],[30.4609386,59.8478226],[30.460335,59.8474395],[30.4597986,59.8470343],[30.4592836,59.8466095],[30.4587655,59.8461288],[30.4584038,59.8457284],[30.4581394,59.8453959],[30.4579404,59.8451389],[30.457626,59.8446613],[30.4572976,59.8441275],[30.4569474,59.843554],[30.4562151,59.8423383],[30.4555629,59.8414704],[30.4546916,59.8403843],[30.4537101,59.8393135],[30.4529738,59.8385891],[30.4528892,59.8385058],[30.4520447,59.837738],[30.4515405,59.8373043],[30.450452,59.8363975],[30.4490869,59.8354138],[30.4477147,59.834425],[30.4457966,59.8330193],[30.4435217,59.831352],[30.4425601,59.830638],[30.4418117,59.8301097],[30.4406861,59.8293043],[30.4395971,59.829112],[30.4381917,59.8280012],[30.4350589,59.8262217],[30.4320655,59.825127],[30.4062204,59.8192154],[30.4028228,59.8186584],[30.3826955,59.8165709],[30.3816548,59.8187285],[30.3741405,59.8172149],[30.3715978,59.816956],[30.3684873,59.8168995],[30.3684283,59.8166695],[30.3663658,59.8165574],[30.3658067,59.8160127],[30.3639991,59.8156177],[30.3632256,59.8156365],[30.3631233,59.8150664],[30.3628025,59.8150805],[30.361476,59.8151242],[30.3609686,59.8151424],[30.3603969,59.81515],[30.3597125,59.8151473],[30.3586047,59.8151243],[30.3575397,59.8150837],[30.3564764,59.8150119],[30.3554619,59.8149119],[30.3543619,59.8147765],[30.3530797,59.8146025],[30.3521609,59.8144301],[30.3518429,59.8143709],[30.3505697,59.8141056],[30.3498186,59.8139171],[30.3491622,59.8137436],[30.3477744,59.8132895],[30.3457,59.8125255],[30.3447141,59.8121312],[30.3440415,59.8118955],[30.3433853,59.811666],[30.3427347,59.8114518],[30.3424506,59.8113726],[30.340551,59.8109139],[30.3392971,59.8106546],[30.3385895,59.8105169],[30.3379372,59.8104149],[30.3373665,59.8103254],[30.3367961,59.8102556],[30.3357215,59.8101355],[30.3346932,59.8100327],[30.333413,59.8100201],[30.3327716,59.8100111],[30.3311086,59.8100155],[30.3302122,59.8100477],[30.3287412,59.8101443],[30.3275342,59.8102898],[30.3269665,59.8103593],[30.3264543,59.8104324],[30.3253079,59.8106363],[30.3249484,59.8106727],[30.3236719,59.8109691],[30.3233479,59.8110525],[30.3230271,59.8111347],[30.3226801,59.8112305],[30.3225988,59.8112551],[30.322408,59.811313],[30.3217585,59.8115098],[30.3201368,59.8121144],[30.3187338,59.8126999],[30.317529,59.8132565],[30.3174126,59.8133103],[30.3170855,59.8134614],[30.315381,59.814286],[30.3141857,59.8148712],[30.3126443,59.8156715],[30.3109182,59.8164987],[30.3073695,59.8182722],[30.299076,59.8223608],[30.295573,59.8240876],[30.2933692,59.8251739],[30.2923094,59.8257691],[30.2916129,59.8261603],[30.2907677,59.8267111],[30.2902453,59.8270889],[30.2894783,59.8276534],[30.2887325,59.8282284],[30.2878248,59.8290086],[30.2875453,59.8292579],[30.287021,59.8297704],[30.2862606,59.8305248],[30.2852351,59.83139],[30.2847597,59.8317272],[30.284249,59.8320506],[30.2838503,59.8322911],[30.2834987,59.832481],[30.2822993,59.8330138],[30.2817105,59.8332453],[30.2809662,59.8334964],[30.280036,59.8337642],[30.2793597,59.8339475],[30.2788814,59.8340466],[30.2779041,59.8342406],[30.2765091,59.8344381],[30.2757078,59.8345165],[30.2748762,59.834569],[30.2744815,59.8345793],[30.2734526,59.8345942],[30.2721378,59.8345617],[30.2711953,59.8344999],[30.2700669,59.8343835],[30.2694713,59.8342944],[30.2686402,59.8341528],[30.2677744,59.8340098],[30.2668967,59.8337805],[30.2648483,59.8333254],[30.2631514,59.8329355],[30.261058,59.8324575],[30.2606946,59.8323723],[30.2578009,59.8316938],[30.2569857,59.8315021],[30.2544596,59.8309258],[30.2511916,59.8301529],[30.2493339,59.8297135],[30.2417967,59.8279308],[30.2405261,59.82763],[30.2326354,59.8257763],[30.2314592,59.8255],[30.2289127,59.8248403],[30.2266909,59.8241765],[30.2261024,59.8239883],[30.2249229,59.823611],[30.2230403,59.8229439],[30.221447,59.8223463],[30.2207199,59.8220537],[30.219704
8306,59.8216259],[30.2189174,59.821273],[30.2179969,59.8208389],[30.2171794,59.8204505],[30.216363,59.8200391],[30.2161682,59.8199435],[30.2155808,59.8196347],[30.2148861,59.819245],[30.214245,59.818881],[30.2130232,59.8181459],[30.2112709,59.8171309],[30.2109767,59.8169482],[30.2102098,59.8165108],[30.2096128,59.8161893],[30.2086124,59.8156823],[30.2075154,59.8151698],[30.2063969,59.8146857],[30.2059845,59.8145194],[30.2051722,59.814205],[30.2044201,59.8139305],[30.2037046,59.8136801],[30.2029127,59.8134207],[30.2019992,59.8131412],[30.2012819,59.8129311],[30.2004611,59.8127059],[30.1995777,59.8124783],[30.1983905,59.8121988],[30.1971066,59.8119192],[30.1960489,59.8117132],[30.1949104,59.8115149],[30.1924584,59.8111242],[30.1915019,59.8109846],[30.190791,59.8108778],[30.1897248,59.8107085],[30.1881932,59.8104654],[30.1864111,59.8101478],[30.1847575,59.8097658],[30.1842375,59.8096311],[30.1839274,59.8095507],[30.1831158,59.8092885],[30.1818144,59.8088006],[30.1804917,59.8082213],[30.1792622,59.8075328],[30.1782257,59.8067889],[30.1771029,59.8058047],[30.1753594,59.8040644],[30.1745755,59.8034126],[30.1738135,59.8028589],[30.1728478,59.802304],[30.1716963,59.8017541],[30.1702149,59.8011598],[30.1700413,59.8011022],[30.1693268,59.8008637],[30.1681467,59.8005076],[30.1670708,59.8002364],[30.1662462,59.8000548],[30.165244,59.7998777],[30.1644215,59.7997511],[30.1641974,59.7997223],[30.1593206,59.8011707],[30.1571904,59.799494],[30.156899,59.799513],[30.1562915,59.7995676],[30.1553341,59.7996782],[30.154608,59.7997769],[30.1538958,59.799886],[30.1535813,59.7999421],[30.153154,59.8000221],[30.1522764,59.8002046],[30.1499325,59.8009257],[30.1498698,59.8008691],[30.1485527,59.8012989],[30.1467269,59.8019663],[30.1456933,59.8023441],[30.1413468,59.8038896],[30.1274636,59.8088256],[30.1276856,59.8090654],[30.1046843,59.817297],[30.0922836,59.8150944],[30.0894658,59.8152379],[30.0858923,59.8161376],[30.0807366,59.8156984],[30.0761309,59.815957],[30.0751029,59.8160107],[30.0697365,59.8384233],[30.0860707,59.8346083],[30.0867103,59.8353227],[30.0915427,59.8359282],[30.0904914,59.8528456],[30.0956232,59.8538672],[30.1005728,59.8534059],[30.1005952,59.8539786],[30.098401,59.855331],[30.0986692,59.8581002],[30.09852,59.86353],[30.09959,59.86402],[30.10114,59.86424],[30.10186,59.86383],[30.1062787,59.8627721],[30.1070578,59.8635652],[30.1077465,59.8635283],[30.1075554,59.8632361],[30.1088044,59.8632172],[30.1094162,59.8635276],[30.1108915,59.862962],[30.1109907,59.8623344],[30.1105428,59.8622913],[30.1104677,59.862123],[30.1109903,59.8620726],[30.1119053,59.862531],[30.1129754,59.8619415],[30.1137148,59.8623187],[30.1134447,59.8625744],[30.1136908,59.8627658],[30.1155546,59.8627166],[30.115836,59.862955],[30.1162466,59.8629786],[30.1167105,59.8618449],[30.1167359,59.8594041],[30.1170733,59.8587853],[30.1173913,59.858882],[30.1171062,59.8614825],[30.1176156,59.8626564],[30.1180064,59.8627898],[30.1316057,59.8625924],[30.132858,59.863189],[30.1318218,59.8624049],[30.1325157,59.8618174],[30.133191,59.8616929],[30.137327,59.8619069],[30.1395349,59.8624741],[30.1398969,59.86303],[30.1421169,59.863514
8306],[30.1424074,59.8639581],[30.1461505,59.8650227],[30.1489208,59.8660956],[30.1504008,59.8671615],[30.1524293,59.8693142],[30.1536373,59.8695408],[30.1551685,59.8705682],[30.1549834,59.8713378],[30.1556278,59.8718877],[30.1631597,59.8701766],[30.1638584,59.87074],[30.1635057,59.8711513],[30.1639482,59.8712388],[30.164765,59.8710974],[30.1656007,59.8713048],[30.1685445,59.8709402],[30.1696708,59.8706066],[30.1704951,59.870644],[30.1706211,59.8704658],[30.169781,59.8703774],[30.1701605,59.8701971],[30.170713,59.8701913],[30.1704608,59.8699198],[30.1714111,59.8695894],[30.1718404,59.869575],[30.1729295,59.8705154],[30.1756255,59.8703529],[30.1744919,59.8708715],[30.1727492,59.8708383],[30.1717997,59.8713971],[30.171788,59.8717566],[30.1624648,59.8739047],[30.1615248,59.8742404],[30.1665325,59.8790283],[30.1681208,59.879597],[30.1659194,59.880804],[30.1723156,59.8841802],[30.1678913,59.8863977],[30.1678122,59.8868441],[30.1689842,59.8883124],[30.1719592,59.8882783],[30.1742381,59.8878785],[30.1771669,59.8876918],[30.1822934,59.887781],[30.1907384,59.8886753],[30.1933153,59.8893191],[30.1944305,59.8905726],[30.1947637,59.8920825],[30.1958619,59.8931924],[30.196881,59.8936769],[30.1976388,59.8943043],[30.1988796,59.8945625],[30.2025156,59.8961347],[30.2059772,59.8978872],[30.2072316,59.8987278],[30.2074329,59.8986382],[30.209286,59.8994035],[30.2101603,59.900289],[30.2127576,59.9021809],[30.2136523,59.9022317],[30.2158251,59.9036095],[30.2161048,59.9039671],[30.2161829,59.9051569],[30.2163987,59.9053099],[30.2160207,59.9057728],[30.2079361,59.9080965],[30.2072552,59.9085218],[30.2074322,59.9092641],[30.2137864,59.9161137],[30.2143201,59.9162697],[30.2155593,59.9161473],[30.2232277,59.9144519],[30.224424,59.9139934],[30.2289059,59.9135488],[30.2324137,59.9137328],[30.2326341,59.9136123],[30.2338221,59.9136052],[30.234548,59.913376],[30.2406238,59.9138226],[30.2408905,59.9139118],[30.24087,59.9141482],[30.2519464,59.9145281],[30.2607425,59.9159161],[30.2604927,59.9172603],[30.2588488,59.9184544],[30.2539644,59.9195204],[30.2516666,59.920228],[30.2518529,59.9203765],[30.250937,59.9212339],[30.2424129,59.9229949],[30.2402397,59.923833],[30.2387577,59.9246341],[30.2375068,59.9242902],[30.2364685,59.9246953],[3
8300.2367018,59.9250236],[30.2307057,59.9267235],[30.2310417,59.9269628],[30.2332941,59.9263151],[30.2331801,59.9265243],[30.2335261,59.9264396],[30.2336387,59.9265387],[30.233231,59.9266829],[30.234375,59.9277773],[30.2348337,59.9276922],[30.2342851,59.9287906],[30.2318539,59.9294801],[30.2316821,59.9293775],[30.2316547,59.9295301],[30.2311542,59.9296708],[30.2309401,59.9295562],[30.231094,59.9296937],[30.2301073,59.9299873],[30.2307992,59.9317428],[30.2317363,59.9317943],[30.2325779,59.9323461],[30.2325923,59.9327567],[30.2318846,59.9332608],[30.2311276,59.9332135],[30.2306858,59.9333325],[30.2298689,59.9330703],[30.22947,59.9327341],[30.2290817,59.9316801],[30.2291983,59.9312245],[30.2286792,59.9307667],[30.2279252,59.9292667],[30.2280392,59.9290473],[30.2273624,59.9286845],[30.2258416,59.9285632],[30.2229837,59.9289176],[30.2210561,59.92895],[30.2194367,59.9292915],[30.2171279,59.9282925],[30.2055294,59.928443],[30.2026574,59.9287305],[30.1939339,59.9310989],[30.1923895,59.9316415],[30.1910845,59.9323489],[30.180871,59.9430763],[30.1782257,59.9437134],[30.1778995,59.9440329],[30.1780783,59.9447134],[30.1790832,59.9452577],[30.1904462,59.9435507],[30.1946055,59.9505152],[30.1934056,59.9506955],[30.1935852,59.9509964],[30.1834198,59.9525235],[30.1831781,59.9533449],[30.1834162,59.9537436],[30.184486,59.9543501],[30.1877146,59.9595298],[30.1888649,59.9603546],[30.1907098,59.9611541],[30.1928914,59.9616711],[30.20731,59.9639584],[30.2101449,59.9642837],[30.2124598,59.9643756],[30.2152485,59.9642864],[30.2182566,59.9639362],[30.2327482,59.9615572],[30.2360972,59.9639745],[30.2352528,59.9644144],[30.2350563,59.965257],[30.2357213,59.9658151],[30.2367923,59.9661078],[30.2372198,59.9666382],[30.2249909,59.9679771],[30.2250074,59.9685698],[30.2239512,59.9686463],[30.2239966,59.9688033],[30.2249338,59.9687357],[30.2248438,59.9691626],[30.224561,59.969385],[30.2236657,59.9695201],[30.2182694,59.9699676],[30.2153421,59.9694611],[30.2153464,59.9691201],[30.2145795,59.9690342],[30.2139019,59.969356],[30.2129612,59.9702705],[30.2124862,59.9703319],[30.211304,59.970119],[30.2105278,59.9708727],[30.2101343,59.972338],[30.2102946,59.9739922],[30.2111489,59.9751739],[30.2130585,59.9763311],[30.2148395,59.9769402],[30.2172404,59.9773156],[30.2241098,59.9770092],[30.2253413,59.9776175],[30.226553,59.9778191],[30.2264833,59.9800892],[30.2260714,59.9802288],[30.2251052,59.9815076],[30.2233375,59.9815639],[30.2232024,59.9828203],[30.2221976,59.982865],[30.2219306,59.9821512],[30.2212795,59.981859],[30.219316,59.9820376],[30.2190338,59.9818945],[30.2192541,59.9816206],[30.2188674,59.9813351],[30.2174865,59.9816446],[30.2169441,59.9819306],[30.216424,59.9814094],[30.214568,59.981272],[30.2147412,59.9811266],[30.215385,59.9813051],[30.2155673,59.9812232],[30.214719,59.9807516],[30.2129642,59.9802108],[30.2080276,59.9793598],[30.2051855,59.9794683],[30.2046499,59.9793634],[30.204347,59.9791612],[30.2046241,59.9789597],[30.2045357,59.9786582],[30.2037206,59.9785321],[30.2032848,59.9788946],[30.2040709,59.9792105],[30.2039671,59.9794818],[30.1989698,59.9810631],[30.1952094,59.9819304],[30.1943026,59.9819936],[30.1929739,59.9817552],[30.192826,59.9811444],[30.1934037,59.9810589],[30.1935553,59.9806904],[30.1932137,59.9805238],[30.1926704,59.9805284],[30.1923409,59.980862],[30.1927009,59.9811328],[30.1927448,59.9819364],[30.1921606,59.9821521],[30.1903758,59.9822534],[30.1896783,59.9827353],[30.188583,59.9828395],[30.1879876,59.983134],[30.1879075,59.9835218],[30.1888657,59.9838191],[30.1876535,59.9853903],[30.1860362,59.9852634],[30.1843236,59.9859771],[30.1863632,59.9869883],[30.1851651,59.9890896],[30.1841893,59.9896734],[30.1787587,59.9891019],[30.1789706,59.9885799],[30.1801002,59.9885777],[30.1812673,59.9890373],[30.1823743,59.9889495],[30.1826023,59.9883961],[30.1819874,59.9877327],[30.1818278,59.9857732],[30.1814369,59.9855371],[30.1794112,59.9858437],[30.1715131,59.9858725],[30.1703545,59.9857746],[30.1702687,59.9854772],[30.1695489,59.9854374],[30.169078,59.9856982],[30.1672461,59.9855346],[30.1670051,59.98477],[30.1666819,59.9846942],[30.1667559,59.9848675],[30.1653712,59.9850289],[30.1655777,59.9854727],[30.1632256,59.985752],[30.1621543,59.9834525],[30.1663063,59.9829512],[30.1667786,59.983967],[30.1673439,59.9840947],[30.1674767,59.9837841],[30.1668504,59.9827637],[30.1661503,59.9825235],[30.1609254,59.9832105],[30.1607859,59.9835057],[30.1621505,59.986415],[30.161522,59.9867939],[30.1593236,59.987437],[30.1495258,59.9881858],[30.1481552,59.9880338],[30.1454517,59.9883102],[30.143609,59.98816],[30.1430337,59.9879023],[30.141871,59.9880535],[30.1413144,59.9879292],[30.1406949,59.9880539],[30.1404347,59.9879345],[30.1400174,59.9881013],[3
8300.1383117,59.9880781],[30.1377819,59.988376],[30.1344534,59.9888066],[30.1327019,59.9885383],[30.1310239,59.9888063],[30.1300384,59.9884309],[30.1284076,59.9885302],[30.1280209,59.988398],[30.1278162,59.9885635],[30.120987,59.9899199],[30.1185122,59.989907],[30.1162769,59.9896258],[30.114853,59.9898567],[30.1129839,59.9895963],[30.111115,59.9895483],[30.1076105,59.989957],[30.1056944,59.9898806],[30.102722,59.9909372],[30.1009227,59.9913661],[30.0995952,59.9910992],[30.0997184,59.9907993],[30.0993933,59.9904962],[30.0989297,59.9906072],[30.0989477,59.9909777],[30.0987182,59.9909945],[30.0971878,59.9904758],[30.0970244,59.9905949],[30.0979817,59.9909947],[30.0980019,59.9911594],[30.0974399,59.9911978],[30.0974485,59.9913705],[30.0982601,59.991401],[30.0981818,59.9922086],[30.0977433,59.9923864],[30.0973117,59.9923427],[30.096765,59.9914307],[30.0960377,59.9915075],[30.0947875,59.9930899],[30.0914347,59.9940933],[30.0902331,59.9942126],[30.0880337,59.9941281],[30.0854132,59.9944433],[30.0827739,59.9943682],[30.0788337,59.9948364],[30.072965,59.9961052],[30.0694513,59.9965639],[30.066179,59.9968402],[30.0639152,59.9966873],[30.0700936,60.0027486],[30.0716633,60.0025199],[30.0719318,60.002701],[30.074312,60.0025267],[30.07659,60.0027703],[30.0783293,60.0034116],[30.079315,60.0042097],[30.0796278,60.0047616],[30.0806143,60.0164909],[30.0799816,60.016786],[30.0791042,60.0271736],[30.1199388,60.0335807],[30.1461872,60.0347154],[30.1462922,60.0359023],[30.1446876,60.0360333],[30.144133,60.0365245],[30.1426494,60.0371015],[30.1430522,60.038369],[30.1416468,60.0392799],[30.1413628,60.0398715],[30.1391539,60.0405221],[30.1383155,60.0416823],[30.1383861,60.0424445],[30.139068,60.0433292],[30.1414806,60.0443845],[30.1420977,60.0451544],[30.1412535,60.0456909],[30.1390989,60.0462975],[30.1368178,60.0462715],[30.1361647,60.0466168],[30.1340537,60.0468427],[30.1336238,60.0471512],[30.1335253,60.0476108],[30.1340902,60.0487356],[30.1933177,60.0638996],[30.1950774,60.062421],[30.1943392,60.0622605],[30.1958426,60.0604713],[30.2022251,60.062125],[30.2101937,60.0603711],[30.2141129,60.0612733],[30.2227842,60.0513212],[30.274327,60.068717],[30.2762871,60.0672534],[30.2789888,60.0659101],[30.2824516,60.065251],[30.2878867,60.0647433],[30.2907426,60.0648279],[30.2922955,60.0650728],[30.298452,60.0668523],[30.2992349,60.0663257],[30.303608,60.0674453],[30.3057593,60.067628],[30.3076848,60.0675602],[30.3410626,60.0608208],[30.3453251,60.0664306],[30.3465035,60.0676072],[30.3620238,60.0867407],[30.3643695,60.0889454],[30.3669801,60.0907368],[30.3683113,60.0902839],[30.3706651,60.0877197],[30.373529,60.0805134],[30.3738526,60.0802533],[30.3751746,60.0798301],[30.376525,60.0786363],[30.3768761,60.0785843],[30.3771936,60.0773858],[30.3855703,60.0607187],[30.3854023,60.059742],[30.3887672,60.0588039],[30.3880449,60.0580912],[30.3889016,60.0578229],[30.3881121,60.0570767],[30.3981094,60.0545925],[30.3986186,60.0543934],[30.4005101,60.0536854],[30.401564,60.0533309],[30.4023463,60.0530918],[30.4037987,60.0526808],[30.4053936,60.0522709],[30.4108097,60.0509811],[30.4138888,60.0502444],[30.4149236,60.0499976],[30.4159691,60.0497473],[30.4175469,60.0493715],[30.4181127,60.0492366],[30.4156491,60.0467092],[30.4249333,60.0448258],[30.4251136,60.0443545],[30.4355682,60.0420384],[30.4368335,60.0413767],[30.437606,60.0406025],[30.4376124,60.039133],[30.4391023,60.0397583],[30.4394951,60.0391387]],zone1Outer:[[30.0090098,59.864908],[30.0057778,59.8578724],[30.0073738,59.8575277],[30.0047938,59.8521817],[29.995827,59.8535165],[29.9910551,59.843663],[29.9895241,59.8438552],[29.9841103,59.8432736],[29.9862719,59.8402383],[29.989505,59.8410217],[29.9919592,59.8409906],[29.9959497,59.8398458],[29.9955624,59.8394081],[29.9957172,59.8392341],[29.9962039,59.8392962],[29.9962104,59.8390215],[29.9972234,59.8389288],[29.9973135,59.8384493],[29.9980832,59.8379257],[29.9979475,59.8376753],[29.9952328,59.8365822],[29.9937403,59.8351476],[29.9936048,59.8347606],[29.9930166,59.8345556],[29.9930658,59.8337095],[29.994371,59.8341338],[29.9955096,59.8353913],[29.9961018,59.8354865],[29.9969832,59.8351642],[29.9989115,59.8360137],[29.9993197,59.836398],[29.999955,59.8365568],[30.0019037,59.8361029],[30.00309,59.8369878],[30.0035669,59.8371039],[30.0044227,59.8370156],[30.0059037,59.8364742],[30.0094977,59.8363447],[30.0113048,59.8359424],[30.0131522,59.8362499],[30.0135413,59.8360002],[30.0138374,59.8353671],[30.014756,59.8350745],[30.0153684,59.8350669],[30.0156746,59.8352334],[30.0164803,59.8360809],[30.0171103,59.8362284],[30.0178105,59.8361263],[30.0187517,59.8356874],[30.0177136,59.835232],[30.0176728,59.8349671],[30.018081,59.8347888],[30.0190116,59.8347918],[30.0202722,59.8332219],[30.0277297,59.8366403],[30.0282896,59.8362281],[30.0307902,59.8375203],[30.0442456,59.837299],[30.0444665,59.8368193],[30.0438871,59.8361616],[30.0435652,59.8360808],[30.0426838,59.8347116],[30.041795,59.8344077],[30.0416019,59.8340807],[30.0419756,59.8334174],[30.0426211,59.833272],[30.042031,59.8328784],[30.0423422,59.8324363],[30.0417628,59.8324363],[30.0416126,59.8321344],[30.0403144,59.8319996],[30.0404539,59.8317354],[30.0400186,59.8315547],[30.040416,59.8312516],[30.0401106,59.8306193],[30.0393917,59.8308349],[30.0389089,59.8306894],[3
8300.039027,59.8304144],[30.038748,59.8302904],[30.0387158,59.8299884],[30.0391021,59.8299399],[30.0391879,59.829708],[30.0389626,59.8291473],[30.0384261,59.8289478],[30.0388767,59.8287213],[30.0388982,59.8280149],[30.0394561,59.8274649],[30.039381,59.826834],[30.0390806,59.8267153],[30.040293,59.8258094],[30.0400033,59.825626],[30.0406792,59.8253133],[30.0407408,59.8251014],[30.0403669,59.8249626],[30.0407963,59.8248908],[30.0408509,59.8244612],[30.0406792,59.8242455],[30.0401749,59.8241538],[30.0399389,59.8242886],[30.0399282,59.824143],[30.0394346,59.8241214],[30.0396385,59.8238788],[30.0391986,59.8235983],[30.0387587,59.8235714],[30.0388982,59.8231022],[30.0382618,59.8227762],[30.0388726,59.8225864],[30.0386407,59.8217161],[30.0399925,59.8216676],[30.0405504,59.821317],[30.0413593,59.8211884],[30.0428129,59.8199635],[30.0454321,59.8194131],[30.0456574,59.8185986],[30.0465693,59.8181995],[30.0469663,59.8177356],[30.0499117,59.8171443],[30.0528104,59.8168417],[30.0542037,59.8168313],[30.0550682,59.8171098],[30.0577694,59.8174632],[30.0589033,59.817008],[30.0613871,59.8165022],[30.0058856,59.5230473],[30.2304187,59.5017598],[30.4587283,59.6176306],[30.8278003,59.6972009],[30.7983372,59.760535],[30.8489146,59.7717344],[30.7221797,59.8213307],[30.722364,59.8213315],[30.8642073,59.7710914],[31.0380305,59.8214779],[31.0862995,59.933051],[31.0615794,60.0036929],[30.7451242,60.0537918],[30.5742378,60.1195803],[30.5278995,60.1432906],[30.3686794,60.1452659],[30.3028022,60.1531003],[30.2108325,60.1602484],[30.1061557,60.1430354],[30.0220782,60.1127924],[29.9466204,60.112598],[29.9449771,60.1005773],[29.9230776,60.0897526],[29.8865796,60.0768665],[29.8853118,60.0767482],[29.8695795,60.0752802],[29.8518958,60.0736301],[29.8468974,60.073163],[29.8380706,60.0723425],[29.8362467,60.0721729],[29.8360597,60.0721555],[29.8272639,60.0713278],[29.808557,60.0695932],[29.8079567,60.0695432],[29.7991324,60.0687406],[29.7971244,60.068546],[29.7968942,60.0685223],[29.781282,60.0670524],[29.7786868,60.066808],[29.776067,60.0667508],[29.7745441,60.0667175],[29.7743017,60.066713],[29.774159,60.0667103],[29.7728046,60.066684],[29.7614821,60.0664637],[29.7583616,60.066403],[29.7449426,60.0661422],[29.7442944,60.0661285],[29.7435365,60.066111],[29.7391582,60.0660098],[29.7365475,60.0659494],[29.7283586,60.0655697],[29.7249266,60.0653301],[29.7156061,60.0644236],[29.7129765,60.0640942],[29.7051242,60.0629161],[29.7028681,60.0625202],[29.6966712,60.0613011],[29.6949065,60.0609153],[29.6876272,60.0591227],[29.6863776,60.0587789],[29.6838745,60.0580637],[29.6823349,60.0576072],[29.6758151,60.0554772],[29.6745163,60.0550114],[29.6737892,60.0547479],[29.6728421,60.054401],[29.6690502,60.0529327],[29.6686236,60.0527582],[29.6682285,60.0525965],[29.6647256,60.0510862],[29.6640938,60.0507993],[29.6625628,60.0500877],[29.6619419,60.0497923],[29.6590562,60.0483558],[29.6584798,60.0480556],[29.6555306,60.0464432],[29.6552087,60.0462584],[29.6540558,60.0455831],[29.6534348,60.0452121],[29.6528709,60.044876],[29.6515488,60.0440693],[29.650963,60.0437033],[29.6468342,60.04091],[29.6459331,60.0402486],[29.6450556,60.0396204],[29.6415333,60.0368951],[29.6395138,60.0352026],[29.6376866,60.0337742],[29.6371881,60.0333801],[29.6331104,60.030119],[29.6322848,60.0294733],[29.6295284,60.027405],[29.6250979,60.0237113],[29.6240076,60.0226958],[29.6233494,60.0220712],[29.6231602,60.0218882],[29.6212394,60.0199146],[29.6207749,60.0194065],[29.6207846,60.0194043],[29.6197407,60.0182417],[29.6191462,60.0175442],[29.6189205,60.0172793],[29.6179174,60.0160525],[29.6170384,60.0149311],[29.6154372,60.0127219],[29.615207,60.0123767],[29.6151584,60.0123036],[29.6143162,60.0110335],[29.614242,60.0109211],[29.6139645,60.010499],[29.6138752,60.0103655],[29.6122309,60.0079086],[29.6074367,60.0008638],[29.6071523,60.0004459],[29.6069555,60.0001534],[29.6058553,59.9985002],[29.605627,59.9981526],[29.6050779,59.9973048],[29.6050364,59.9972405],[29.6044094,59.9962675],[29.6041739,59.9958966],[29.6034991,59.9948179],[29.6019455,59.9920251],[29.6016457,59.9914111],[29.6014914,59.9910902],[29.6012397,59.990558],[29.6008335,59.9896586],[29.6006168,59.9891551
830],[29.6003172,59.9884303],[29.5988582,59.9847506],[29.5971429,59.9804354],[29.5953992,59.976034],[29.5953691,59.9759578],[29.5947477,59.9743752],[29.5940343,59.9726312],[29.5939094,59.9723205],[29.5930071,59.970034],[29.5929761,59.969955],[29.5924112,59.9685101],[29.5918488,59.9670924],[29.5883421,59.9582681],[29.5848524,59.9494831],[29.5847318,59.9491926],[30.0090098,59.864908]],zone2Outer:[[29.5499757,60.2103488],[29.6114388,60.3123929],[30.9676286,60.2324815],[31.1089221,60.1276258],[31.1163975,60.0311235],[31.0689412,60.0004318],[31.0623812,60.0014015],[31.0862995,59.933051],[31.0380305,59.8214779],[30.935501,59.7917575],[31.037912,59.816557],[31.0965264,59.937814],[31.3153477,59.939069],[31.5121963,59.909992],[31.4268645,59.7449452],[31.2426558,59.5985747],[31.0774854,59.5613584],[29.2609647,59.2520725],[29.1655209,59.5493342],[29.1888669,59.7259522],[29.3296292,59.9877588],[29.3934873,59.9925748],[29.5828567,59.9444101],[29.5836091,59.9463385],[29.5836359,59.9464067],[29.5847318,59.9491926],[29.5848524,59.9494831],[29.5883421,59.9582681],[29.5918488,59.9670924],[29.5924112,59.9685101],[29.5929761,59.969955],[29.5930071,59.970034],[29.5939094,59.9723205],[29.5940343,59.9726312],[29.5947477,59.9743752],[29.5953691,59.9759578],[29.5953992,59.976034],[29.5971429,59.9804354],[29.5988582,59.9847506],[29.6003172,59.9884303],[29.6006168,59.9891551],[29.6008335,59.9896586],[29.6012397,59.990558],[29.6014914,59.9910902],[29.6016457,59.9914111],[29.6019455,59.9920251],[29.6034991,59.9948179],[29.6041739,59.9958966],[29.6044094,59.9962675],[29.6050364,59.9972405],[29.6050779,59.9973048],[29.605627,59.9981526],[29.6058553,59.9985002],[29.6069555,60.0001534],[29.6071523,60.0004459],[29.6074367,60.0008638],[29.6122309,60.0079086],[29.6138752,60.0103655],[29.6139645,60.010499],[29.614242,60.0109211],[29.6143162,60.0110335],[29.6151584,60.0123036],[29.615207,60.0123767],[29.6154372,60.0127219],[29.6170384,60.0149311],[29.6179174,60.0160525],[29.6189205,60.0172793],[29.6191462,60.0175442],[29.6197407,60.0182417],[29.6207846,60.0194043],[29.6207749,60.0194065],[29.6212394,60.0199146],[29.6231602,60.0218882],[29.6233494,60.0220712],[29.6240076,60.0226958],[29.6250373,60.0236548],[29.5499757,60.2103488]],zone3Outer:[[30.9676286,60.2324815],[31.1089221,60.1276258],[31.1163975,60.0311235],[31.0689412,60.0004318],[31.0623812,60.0014015],[31.0862995,59.933051],[31.0380305,59.8214779],[30.935501,59.7917575],[31.037912,59.816557],[31.0965264,59.937814],[31.3153477,59.939069],[31.5121963,59.909992],[31.4296048,59.7502454],[31.4306786,59.7512461],[31.5373662,59.9113294],[31.4408067,60.1117957],[31.7221167,60.2498193],[32.071512,60.2613466],[32.8603604,60.2237214],[32.1852162,59.5223413],[31.8231824,59.0926895],[31.0985997,58.9085559],[30.0004819,58.9398902],[28.5557797,59.3070113],[28.2316831,59.6924204],[28.504968,59.8510162],[28.4575894,60.5269799],[28.5750058,60.7135679],[28.7926724,60.8220513],[30.2078488,61.0901566],[30.71219,60.7066703],[30.9528592,60.2366983],[29.6362164,60.3163248],[29.6321448,60.3111728],[30.9676286,60.2324815]]}}};var b={source:"https://www.openstreetmap.org/relation/367377",capturedAt:"2026-09-12",license:"ODbL, OpenStreetMap contributors",geometry:{type:"Polygon",coordinates:[[[29.7868475,59.8658259],[29.7998692,59.8586579],[29.800268,59.8589112],[29.8096516,59.8630391],[29.8100969,59.863163],[29.8160572,59.8658387],[29.82334,59.8689069],[29.823529,59.8689239],[29.8236428,59.8688341],[29.8238139,59.8688939],[29.8263923,59.8681839],[29.8266258,59.8681196],[29.8269511,59.8665363],[29.8290655,59.8659776],[29.8306469,59.8655111],[29.8349059,59.8661426],[29.8348655,59.8681928],[29.8374727,59.867827],[29.8388563,59.8674087],[29.8442326,59.865988],[29.8517054,59.8640184],[29.8590869,59.8620716],[29.8578197,59.8611115],[29.8585348,59.8603255],[29.8596371,59.8585505],[29.8597941,59.8585518],[29.8600599,59.8584996],[29.8616247,59.8579064],[29.8617521,59.8577784],[29.8625382,59.8554419],[29.8627635,59.8553534],[29.8675118,59.8538573],[29.867675,59.8538361],[29.8690112,59.8539764],[29.8694299,59.8547609],[29.8707884,59.8554715],[29.8719967,59.8564694],[29.8714841,59.8588979],[29.8716009,59.8588973],[29.8730095,59.8588903],[29.8732747,59.8588366],[29.8742159,59.858646],[29.8744968,59.8568409],[29.8805624,59.8519939],[29.8796844,59.8514585],[29.8791718,59.8505849],[29.8787411,59.8496959],[29.8785856,59.8492979],[29.877846,59.8487595],[29.876675,59.848844],[29.8764663,59.8481612],[29.8797591,59.84785],[29.8808559,59.8457993],[29.8812123,59.8436161],[29.8828278,59.8433484],[29.8837569,59.8431944],[29.8840719,59.8431421],[29.8860107,59.8428209],[29.8862337,59.8427839],[29.8864874,59.8432858],[29.8870171,59.844129],[29.8878312,59.8454673],[29.8881,59.8457228],[29.889843,59.84859],[29.89
83000679,59.8489005],[29.8905372,59.8497574],[29.8915568,59.8517853],[29.8926471,59.8538816],[29.8948949,59.8534669],[29.8952216,59.8540365],[29.8952177,59.8540843],[29.8951939,59.85416],[29.8952097,59.8542118],[29.8954633,59.8546344],[29.8954743,59.8546608],[29.9037971,59.8537493],[29.9037793,59.8537104],[29.9021944,59.8501937],[29.9022525,59.8501823],[29.9024076,59.8501564],[29.9094222,59.848985],[29.9102162,59.8513039],[29.9152736,59.8504158],[29.9248372,59.8487364],[29.9250905,59.8476833],[29.9452073,59.8448012],[29.9440233,59.8428715],[29.9439551,59.842757],[29.9437627,59.842445],[29.9439394,59.8424184],[29.9427476,59.8404791],[29.9420658,59.8393901],[29.9416473,59.8386674],[29.9416012,59.8385909],[29.9414037,59.8382634],[29.9407346,59.8371538],[29.9402002,59.8362673],[29.9399217,59.8358054],[29.9396832,59.8354099],[29.9391764,59.8345694],[29.9390357,59.834336],[29.9388112,59.8339635],[29.9385755,59.8335726],[29.9382798,59.8330822],[29.9379983,59.8326151],[29.9374664,59.8317328],[29.9371785,59.8312487],[29.9367868,59.830588],[29.9372978,59.8304342],[29.9376271,59.8303453],[29.9379707,59.8302605],[29.9382227,59.8302411],[29.9383792,59.8302605],[29.9385561,59.8303085],[29.9387106,59.8303984],[29.9392269,59.8308101],[29.9393956,59.8309031],[29.9412596,59.8307848],[29.944345,59.8288272],[29.9777418,59.8341863],[29.978358,59.8350956],[29.9786086,59.8350727],[29.9789351,59.8351108],[29.9792844,59.8350192],[29.9796793,59.8349544],[29.9801577,59.8348819],[29.9806968,59.8348361],[29.9810233,59.8347979],[29.9816232,59.8347178],[29.9821243,59.8346453],[29.9825268,59.834611],[29.9830431,59.8345843],[29.9835595,59.8345003],[29.9838556,59.8344583],[29.9841809,59.8343363],[29.9844155,59.8343489],[29.9848984,59.8343435],[29.9850405,59.8343219],[29.9851129,59.8342904],[29.985273,59.8341713],[29.9854374,59.8341437],[29.9858741,59.8341305],[29.9864649,59.8340426],[29.9871399,59.8338839],[29.9875087,59.8338564],[29.988166,59.8337775],[29.9884664,59.8337597],[29.9888677,59.8337791],[29.9891355,59.8337485],[29.989365,59.833709],[29.9895738,59.8337023],[29.9897692,59.8337083],[29.9899262,59.8336838],[29.9901348,59.8336085],[29.9902844,59.8335809],[29.9904308,59.833578],[29.9907063,59.8335914],[29.9910023,59.8335646],[29.9911193,59.833581],[29.9912126,59.8336175],[29.9913413,59.8336851],[29.9914524,59.8336943],[29.9915738,59.8336586],[29.9916774,59.8335848],[29.9918816,59.8334589],[29.9920031,59.8334194],[29.9922636,59.8333799],[29.9924542,59.8333795],[29.9925432,59.8334082],[29.992655,59.8335309],[29.9928886,59.8336718],[29.9930278,59.8337073],[29.9930658,59.8337095],[29.9930617,59.8337358],[29.9930166,59.8345556],[29.9936048,59.8347606],[29.9937403,59.8351476],[29.9952328,59.8365822],[29.9979475,59.8376753],[29.9980832,59.8379257],[29.9973135,59.8384493],[29.9972685,59.8386999],[29.9972235,59.8389048],[29.9972234,59.8389288],[29.9966129,59.838973],[29.9962895,59.838999],[29.9962104,59.8390215],[29.9961513,59.8390609],[29.9961399,59.8391012],[29.9962169,59.8392854],[29.9962039,59.8392962],[29.9961499,59.8392976],[29.9958836,59.8392397],[29.9957907,59.8392306],[29.9957172,59.8392341],[29.9956685,59.8392705],[29.9955624,59.8394081],[29.9957254,59.8395793],[29.9959497,59.8398458],[29.9949395,59.8401575],[29.9925517,59.8408705],[29.9922977,59.8409354],[29.9919592,59.8409906],[29.9916779,59.841013],[29.9900674,59.8410558],[29.9897838,59.8410485],[29.989505,59.8410217],[29.9891715,59.8409613],[29.9870468,59.8404274],[29.9862719,59.8402383],[29.9841103,59.8432736],[29.9849455,59.8433779],[29.9895241,59.8438552],[29.9910551,59.843663],[29.995827,59.8535165],[30.0047938,59.8521817],[30.0048261,59.8522494],[30.0049849,59.8526275],[30.0050971,59.8527852],[30.0050995,59.8528429],[30.005391,59.8534611],[30.005527,59.8537219],[30.0056132,59.8538962],[30.0056786,59.8540285],[30.0060384,59.8547566],[30.0060892,59.8548587],[30.0062826,59.8552477],[30.0063862,59.855456],[30.0064225,59.8555291],[30.0064568,59.8555989],[30.0065411,59.8557723],[30.0067825,59.8562602],[30.0069414,59.8566175],[30.0072547,59.8573642],[30.0072785,59.8574128],[30.0073379,59.8574851],[30.0073738,59.8575277],[30.0057778,59.8578724],[30.0058066,59.8579073],[30.00587,59.858002],[30.0058831,59.858032],[30.0067244,59.8599576],[30.007501,59.861617],[30.0075267,59.8616723],[30.0077626,59.8622068],[30.0079417,59.8626047],[30.0080784,59.8629085],[30.0087587,59.864384],[3
8300.0090098,59.864908],[30.0089666,59.8649165],[30.0086909,59.8649705],[30.0086317,59.8649837],[30.0082359,59.8651284],[30.0082188,59.8651343],[30.0077543,59.8653759],[30.0076711,59.8653895],[30.0072917,59.8654792],[30.0071528,59.8656847],[30.0068564,59.8658096],[30.0065658,59.8658702],[30.0060817,59.8659142],[30.0058046,59.8659719],[30.0057298,59.8659875],[30.0056611,59.8661555],[30.0046826,59.8662201],[30.0038264,59.8661862],[30.0032253,59.8663136],[30.0026828,59.8662762],[30.0022238,59.8665703],[30.0021954,59.8665885],[30.0019641,59.8666075],[30.0017644,59.8670517],[30.0013953,59.8671982],[30.0007773,59.8672543],[30.0006228,59.8673835],[30.0007602,59.8676076],[30.0005885,59.8678747],[30.0003096,59.8679409],[30.0001851,59.8679436],[29.9999104,59.868116],[30.0001078,59.86834],[30.0002108,59.8684951],[30.0003997,59.8685813],[30.0003825,59.8687063],[30.0000478,59.8686589],[29.9997044,59.8686459],[29.9993697,59.868633],[29.9992074,59.8686333],[29.9990092,59.8686373],[29.9984256,59.8685512],[29.997799,59.8685339],[29.9970094,59.8686201],[29.99665,59.86884],[29.9959633,59.8691464],[29.9958845,59.8696435],[29.9955415,59.8695241],[29.9949643,59.8697021],[29.9945504,59.8701512],[29.9940217,59.8701497],[29.9934651,59.870379],[29.9933132,59.8705968],[29.9931718,59.8709468],[29.9934102,59.8711574],[29.9932168,59.8712253],[29.9927356,59.8708923],[29.9924397,59.8709174],[29.9922074,59.8710755],[29.9920639,59.8711998],[29.9917908,59.8712308],[29.9914085,59.8716092],[29.99028,59.87167],[29.9896794,59.8719991],[29.98955,59.87207],[29.9884656,59.8728321],[29.9884888,59.8734943],[29.9861761,59.8745454],[29.98491,59.87423],[29.9831722,59.8748692],[29.9822124,59.875193],[29.9815361,59.8753066],[29.9812082,59.8754746],[29.9807684,59.8757001],[29.9806871,59.8759676],[29.9805421,59.8764449],[29.9804269,59.876548],[29.979489,59.8773877],[29.9783259,59.8775515],[29.9772022,59.8780785],[29.9775754,59.878523],[29.97667,59.87889],[29.9755845,59.8789603],[29.9751737,59.8789869],[29.97443,59.87958],[29.9736168,59.8796761],[29.9725176,59.87936],[29.9706252,59.8794092],[29.9693461,59.8794425],[29.9689535,59.8796193],[29.9690034,59.8798623],[29.9688045,59.879888],[29.9684878,59.8796597],[29.9682797,59.8796982],[29.9679683,59.8797558],[29.9684307,59.8808846],[29.9682125,59.8815165],[29.9671744,59.8812995],[29.9667542,59.880946],[29.9667047,59.8807537],[29.9662351,59.8807599],[29.9661609,59.8809832],[29.966989,59.8814545],[29.96668,59.8817522],[29.9659288,59.8820386],[29.9654441,59.881808],[29.965328,59.8816833],[29.9651241,59.881581],[29.9649203,59.8815999],[29.9646789,59.8816994],[29.9645609,59.8817964],[29.9645179,59.8819713],[29.9648666,59.8823078],[29.9647379,59.8825043],[29.9643248,59.8826093],[29.9639488,59.8825397],[29.9636151,59.8820808],[29.9631454,59.8819754],[29.9629363,59.8820687],[29.9628118,59.8821243],[29.9633432,59.8822359],[29.9631454,59.8827072],[29.962614,59.8828498],[29.9620702,59.882701],[29.9623051,59.8825521],[29.961943,59.8824639],[29.9615622,59.8824828],[29.9609613,59.882612],[29.9604356,59.8828811],[29.9598724,59.8829107],[29.9591857,59.8828542],[29.9586385,59.8829296],[29.9578768,59.8833993],[29.9574047,59.8835298],[29.9568683,59.8836361],[29.9564713,59.8836079],[29.9562943,59.8835594],[29.9560261,59.8835392],[29.9558169,59.8835998],[29.9556291,59.8837048],[29.9555218,59.8838367],[29.9554896,59.8839712],[29.9556076,59.8841247],[29.9556264,59.8843642],[29.9554548,59.8844894],[29.954972,59.8846159],[29.9544355,59.8845015],[29.9541995,59.884305],[29.9540117,59.8840022],[29.9539125,59.8839645],[29.9537945,59.884017],[29.9539389,59.8842321],[29.9537473,59.8844088],[29.953721,59.8844154],[29.9535372,59.8844615],[29.9529502,59.8843282],[29.9529811,59.8842228],[29.9525217,59.8839651],[29.9521172,59.8842569],[29.9520805,59.8843008],[29.9522876,59.8844948],[29.9523198,59.8847443],[29.9522211,59.8862694],[29.9521746,59.887026],[29.9521863,59.887287],[29.9521899,59.8873494],[29.9523567,59.8873424],[29.952329,59.8873909],[29.9521541,59.887414],[29.9521081,59.887384],[29.9521035,59.8870538],[29.9518918,59.8870584],[29.9518457,59.8874949],[29.9517726,59.8875398],[29.9516782,59.8875921],[29.9516331,59.8875787],[29.9517563,59.8875039],[29.9518598,59.8862422],[29.9518383,59.8855681],[29.9518559,59.8852515],[29.9511878,59.8854091],[29.9507854,59.8853039],[29.9503659,59.8854421],[29.9500082,59.8854306],[29.9498229,59.8853106],[29.9495998,59.8853625],[29.9492981,59.8853464],[29.9488865,59.8853005],[29.9488003,59.8853974],[29.9486353,59.8854616],[29.9482316,59.8853407],[29.94822,59.8851619],[29.9481591,59.8851394],[29.948081,59.8852651],[29.9478795,59.885409],[29.9474054,59.8854215],[29.9470931,59.8853988],[29.946856,59.8853374],[29.9465389,59.8853013],[29.9463536,59.8852338],[29.9462296,59.8850597],[29.9463058,59.8848477],[29.9461054,59.8849806],[29.9459847,59.8849579],[29.9459251,59.8848908],[29.9459629,59.8848191],[29.945978,59.8847696],[29.9458292,59.8847686],[29.9453389,59.8847543],[29.9453972,59.8848361],[29.9451097,59.8848694],[29.94461,59.8848647],[29.9445602,59.8849154],[29.944667,59.8850037],[29.9445958,59.8851165],[29.944501,59.8851242],[29.9443571,59.8851703],[29.9440989,59.8852051],[29.9438955,59.8851967],[29.9438095,59.8852439],[29.9436257,59.8852744],[29.9434988,59.8852343],[29.9433213,59.8851684],[29.9431715,59.8850583],[29.9432668,59.8848823],[29.9434306,59.8848185],[29.9433333,59.8848034],[29.9430536,59.884786],[29.9427895,59.8848077],[29.94284,59.8849834],[29.9429066,59.8850884],[29.9429102,59.8852673],[29.9428228,59.8854064],[29.94272,59.8854986],[29.9423524,59.8855437],[29.942258,59.8856026],[29.9421848,59.8856012],[29.9421775,59.8855344],[29.94212
83068,59.8854432],[29.9420183,59.8854041],[29.9420919,59.8851755],[29.9420885,59.8849873],[29.9419964,59.8850068],[29.94184,59.8850065],[29.9416993,59.8850998],[29.9416711,59.8853335],[29.9417395,59.8856321],[29.9419797,59.8856309],[29.9420919,59.8856976],[29.9420849,59.8857592],[29.9419678,59.8858087],[29.9412958,59.8859093],[29.9413282,59.8860379],[29.9412727,59.8860959],[29.9411116,59.8860966],[29.9409815,59.8860481],[29.9410018,59.8857106],[29.9404183,59.8855202],[29.9395532,59.8853501],[29.9387428,59.885243],[29.9375169,59.8850808],[29.936612,59.8850259],[29.9362937,59.8850575],[29.9355052,59.88508],[29.9332797,59.8852781],[29.9331484,59.8853102],[29.9331703,59.8854155],[29.9330772,59.8854305],[29.9329389,59.8853842],[29.9326147,59.8853096],[29.9321914,59.8852899],[29.931904,59.8853015],[29.9314223,59.885321],[29.9305077,59.885454],[29.929922,59.8856342],[29.9296496,59.8856412],[29.9291633,59.8857942],[29.9285977,59.8857692],[29.9281241,59.8858488],[29.9280286,59.8858627],[29.9275389,59.8857761],[29.9260484,59.8856599],[29.9254419,59.8857952],[29.9239019,59.8857898],[29.9234058,59.8858037],[29.9232243,59.8858443],[29.9230599,59.88586],[29.9229062,59.885852],[29.9227305,59.885893],[29.9226312,59.8859569],[29.9224343,59.8859584],[29.9219466,59.8859576],[29.9215524,59.8859845],[29.9210152,59.8860646],[29.9206877,59.8861383],[29.9206682,59.8861427],[29.9206909,59.88653],[29.9202139,59.8868496],[29.9203078,59.887179],[29.9198467,59.8872737],[29.9197321,59.8873361],[29.9193151,59.8874095],[29.9183806,59.8875137],[29.9182047,59.887333],[29.9177629,59.8873562],[29.9176359,59.8872959],[29.9170944,59.8873216],[29.9164044,59.8873084],[29.913357,59.8875659],[29.9127983,59.8876843],[29.9126779,59.8877098],[29.911941,59.8879853],[29.9114844,59.8883785],[29.9115421,59.888501],[29.9122085,59.8888495],[29.9128328,59.8895111],[29.9133429,59.8897485],[29.9135545,59.8898721],[29.9137152,59.8898337],[29.9141599,59.8900388],[29.9143676,59.8901681],[29.9142127,59.8902364],[29.9137153,59.8902103],[29.9139124,59.8905948],[29.91397,59.890618],[29.9140919,59.8908299],[29.9139116,59.8908569],[29.9137871,59.8906492],[29.9138393,59.8906048],[29.9135726,59.8902191],[29.9123993,59.8903943],[29.9122598,59.8904024],[29.9119467,59.8904453],[29.9120184,59.8905613],[29.9119923,59.8906098],[29.9119218,59.8906434],[29.9112793,59.8907231],[29.9111869,59.8906582],[29.9110776,59.8904433],[29.9112734,59.8899649],[29.9108854,59.8894786],[29.9099241,59.8892727],[29.9092509,59.8891698],[29.9080375,59.8890676],[29.9071906,59.8890684],[29.9062702,59.8889737],[29.9056575,59.8889683],[29.9046859,59.8889903],[29.9036398,59.8892504],[29.90116,59.88929],[29.89965,59.88957],[29.898464,59.8897557],[29.8971737,59.889956],[29.8965282,59.890073],[29.8955313,59.8901972],[29.8952454,59.8902519],[29.8948571,59.8903315],[29.8950086,59.8904341],[29.8950181,59.8905806],[29.8949599,59.8906607],[29.8943921,59.8907561],[29.8942648,59.8908472],[29.8942772,59.8909753],[29.8943642,59.8913769],[29.8939936,59.8914455],[29.8937963,59.8915578],[29.8934554,59.8916585],[29.8933895,59.8917211],[29.8933306,59.8917681],[29.8931101,59.8918381],[29.8931009,59.891878],[29.893118,59.8919629],[29.8930269,59.8920715],[29.8929071,59.8921253],[29.8927775,59.8921549],[29.8926529,59.892153],[29.8926051,59.8921586],[29.8925757,59.8921426],[29.8925548,59.892113],[29.8925155,59.8921115],[29.8924872,59.8920676],[29.8924741,59.8920323],[29.8923762,59.8920032],[29.8923062,59.8918527],[29.8923569,59.8918276],[29.8923951,59.8917945],[29.8923743,59.8917214],[29.8923604,59.8916762],[29.892343,59.8916431],[29.8922875,59.8916518],[29.8922945,59.8916953],[29.8922598,59.891718],[29.8921974,59.8917006],[29.8921835,59.891664],[29.8921314,59.8916031],[29.8921314,59.8915387],[29.892069,59.8915422],[29.8920135,59.8916083],[29.8919372,59.8916623],[29.8917322,59.8916911],[29.8916111,59.8917249],[29.8913683,59.8917354],[29.8911233,59.8917395],[29.8911207,59.8918126],[29.8913128,59.8920595],[29.89209,59.89345],[29.89185,59.89359],[29.8916194,59.8936065],[29.89134,59.8936],[29.8904987,59.8935081],[29.8896614,59.8932578],[29.8889887,59.8930945],[29.8884265,59.8929793],[29.8882693,59.892943],[29.8880566,59.892894],[29.8880692,59.893083],[29.8875969,59.8932846],[29.8871755,59.8929866],[29.887772,59.8928262],[29.8877355,59.8927199],[29.887389,59.8927642],[29.8870746,59.8928446],[29.8867367,59.8928828],[29.886585,59.8927861],[29.8863634,59.8929207],[29.8861925,59.8928633],[29.8860391,59.8929856],[29.8863124,59.8929878],[29.886402,59.8931345],[29.8862201,59.8932508],[29.8863994,59.8932588],[29.88646,59.893313],[29.8863493,59.8933473],[29.8863493,59.8934439],[29.8862939,59.8935523],[29.8861832,59.8935721],[29.8861619,59.8936454],[29.886046,59.8936674],[29.8858248,59.8936673],[29.8856799,59.8936078],[29.8856061,59.8934809],[29.8856898,59.8934047],[29.8856219,59.8933302],[29.8856458,59.8932497],[29.8853734,59.8932361],[29.8851513,59.8931231],[29.88469,59.8931591],[29.884515,59.893071],[29.8841429,59.8929466],[29.8836654,59.8929089],[29.8832872,59.892991],[29.8832604,59.8931672],[29.8832417,59.8934228],[29.882555,59.8935439],[29.8820266,59.8936072],[29.8812407,59.8937256],[29.8807204,59.8938144],[29.8804226,59.893844],[29.8802537,59.8938709],[29.8802885,59.8940458],[29.8802108,59.8941319],[29.8801088,59.8942018],[29.8799815,59.8942356],[29.8798835,59.8942341],[29.8797816,59.8941695],[29.8796529,59.8941728],[29.8795822,59.8943043],[29.8795053,59.8943377],[29.8793927,59.8943337],[29.8792344,59.8943243],[29.8791245,59.8943418],[29.8790091,59.8943969],[29.878639,59.8944696],[29.8784083,59.8945812],[29.8781884,59.8946956],[29.8777324,59.8948073],[29.8771481,59.8950463],[29.8770002,59.8951422],[29.8768499,59.8953158],[29.8767549,59.8954911],[29.8764664,59.8955728],[29.8761325,59.8957201],[29.8759407,59.895745],[29.8757476,59.8957934],[29.8754928,59.8958741],[29.8753989,59.8959293],[29.8753452,59.896014],[29.8753466,59.8960598],[29.8754016,59.896164],[29.8752245,59.8962279],[29.8751092,59.8963302],[29.8750328,59.896501],[29.8751186,59.896651],[29.8751467,59.8967472],[29.875069,59.8968656],[29.875026,59.8970459],[29.8749791,59.8974118],[29.8750783,59.8975719],[29.8750703,59.8976512],[29.8748839,59.8977824],[29.8746693,59.8978483],[29.8734891,59.8979418],[29.8731771,59.8980397],[29.8725155,59.897966],[29.871912,59.897997],[29.871735,59.8980562],[29.8714455,59.8980889],[29.8714261,59.8980932],[29.8712063,59.8981419],[29.8711471,59.8981732],[29.8709243,59.8981958],[29.8708662,59.8982006],[29.870869,59.8982072],[29.8694485,59.8983243],[29.8685369,59.8983994],[29.8680237,59.8984417],[29.8679804,59.8985211],[29.8680395,59.8989609],[29.8677894,59.8990287],[29.8673053,59.8989265],[29.8669764,59.8989696],[29.8666572,59.8989631],[29.865836,59.8988486],[29.8656629,59.8988121],[29.865295,59.898782],[29.8649669,59.8987704],[29.864712,59.8987949],[29.8644594,59.898859],[29.8643878,59.8990117],[29.8642574,59.8991354],[29.8637309,59.8992684],[29.8632277,59.8993484],[29.862376,59.8993947],[29.8616
830551,59.8993773],[29.8611999,59.899421],[29.8611675,59.8994268],[29.8609696,59.8994623],[29.8608137,59.899513],[29.8597372,59.8995229],[29.859431,59.8995194],[29.8591735,59.8995462],[29.8591995,59.8996112],[29.8593143,59.8996654],[29.8594009,59.8997639],[29.8594189,59.8999887],[29.8591322,59.9002134],[29.8586726,59.9004302],[29.858452,59.9004234],[29.8582966,59.9002835],[29.8580991,59.9003101],[29.8580197,59.9004222],[29.8578718,59.9005101],[29.8574464,59.9005694],[29.8573121,59.9005591],[29.857096,59.9004896],[29.8568799,59.9003926],[29.8565432,59.900299],[29.8564226,59.9001712],[29.8565045,59.9000081],[29.8566842,59.899862],[29.8568207,59.8997981],[29.8569117,59.8997422],[29.8569276,59.8996589],[29.8569868,59.8995905],[29.8572888,59.8994428],[29.8572689,59.8993906],[29.8571768,59.899344],[29.8568339,59.899376],[29.8565664,59.899428],[29.856297,59.8995012],[29.8562311,59.8994931],[29.856182,59.8994756],[29.8559548,59.8994015],[29.8556582,59.8993343],[29.8555081,59.8993226],[29.8553419,59.899328],[29.8550648,59.8993687],[29.8547627,59.8994481],[29.8545607,59.8995448],[29.8544783,59.8996217],[29.8544553,59.8997538],[29.8544464,59.8998697],[29.8544019,59.8999967],[29.8543175,59.9000569],[29.8544183,59.9001337],[29.854553,59.9001237],[29.854673,59.9001883],[29.8548285,59.9003376],[29.8548952,59.9004736],[29.8548256,59.9005787],[29.8546821,59.9006517],[29.8547263,59.9007142],[29.8550329,59.9007321],[29.8552595,59.90077],[29.8553706,59.900897],[29.8553573,59.9010574],[29.8551618,59.9012557],[29.8548596,59.9013984],[29.8543368,59.9014204],[29.8538942,59.9016228],[29.8530644,59.9018931],[29.8527267,59.9019399],[29.8523535,59.9019198],[29.8521091,59.9017148],[29.8518934,59.9014479],[29.8520009,59.901165],[29.8518904,59.9011318],[29.8515077,59.9012141],[29.8511478,59.901096],[29.8509617,59.900942],[29.8506416,59.9009479],[29.8502369,59.9010024],[29.8499321,59.9009195],[29.8496237,59.9007505],[29.8495032,59.9005557],[29.849261,59.9005173],[29.8491152,59.9006043],[29.8489208,59.9007123],[29.8487196,59.9007044],[29.8483306,59.9006252],[29.8477822,59.9005889],[29.8475044,59.9006499],[29.8472733,59.9006276],[29.8471494,59.9006514],[29.8469578,59.9007613],[29.8465713,59.9008215],[29.8461,59.90086],[29.8458891,59.9009494],[29.8457406,59.9010007],[29.845467,59.9009137],[29.8452626,59.9009226],[29.8452537,59.900985],[29.8452848,59.9010608],[29.8451915,59.9010987],[29.8450715,59.9011053],[29.8448804,59.9010719],[29.8446227,59.9009895],[29.8444494,59.9009315],[29.8443193,59.9008918],[29.8442625,59.9009401],[29.8442021,59.9011685],[29.8441099,59.9012041],[29.8439494,59.9012603],[29.8437576,59.9013217],[29.8434479,59.9013641],[29.8431677,59.901439],[29.8430582,59.9015156],[29.8427099,59.9016464],[29.8423556,59.9015865],[29.8420068,59.9017388],[29.8420692,59.901926],[29.84203,59.9020276],[29.8419477,59.9021175],[29.8416981,59.9021378],[29.8414266,59.9021004],[29.8412537,59.9020968],[29.84114,59.9020683],[29.8410478,59.9020407],[29.8409616,59.9019865],[29.8409297,59.901986],[29.8408714,59.9019728],[29.8408445,59.9019668],[29.8408398,59.9019278],[29.8408023,59.9018995],[29.8406515,59.901871],[29.8405662,59.9019124],[29.840481,59.9019042],[29.8404525,59.9018425],[29.840481,59.9017693],[29.8405286,59.9015281],[29.8404704,59.9014924],[29.8403817,59.9014639],[29.8402884,59.9014479],[29.8401959,59.9014439],[29.8401351,59.9014902],[29.8400617,59.9015576],[29.8399218,59.9016043],[29.8397693,59.9016126],[29.8395179,59.9015629],[29.8393007,59.9014777],[29.8392677,59.9013975],[29.8391198,59.9013661],[29.8391113,59.9013361],[29.8390771,59.9013148],[29.8389805,59.9013262],[29.8389435,59.9013162],[29.8389236,59.9012777],[29.8388494,59.901234],[29.838665,59.9009572],[29.8384381,59.9006167],[29.8350986,59.897861],[29.8344467,59.8970691],[29.8335323,59.8963233],[29.8330174,59.8956937],[29.8324377,59.8950273],[29.8321537,59.8947008],[29.8316441,59.8941115],[29.8311055,59.8937576],[29.8294012,59.8904963],[29.8274846,59.8884139],[29.8275991,59.8879358],[29.828711,59.8876066],[29.8301778,59.8872459],[29.8300843,59.8871446],[29.8296949,59.8867531],[29.8289808,59.8860453],[29.8283506,59.8861008],[29.8075307,59.8879508],[29.7990838,59.8787909],[29.7941463,59.8734036],[29.7868475,59.8658259]]]}};var z=e=>Math.log(Math.tan(Math.PI/4+e*Math.PI/360))*180/Math.PI,Y=e=>
830(2*Math.atan(Math.exp(e*Math.PI/180))-Math.PI/2)*180/Math.PI,G={spb:{lon:30.0639152,lat:59.9966873,x:247,y:175,scaleX:820.26,scaleY:793.5},moscow:{lon:37.3688124,lat:55.7502889,x:937,y:255,scaleX:798.5,scaleY:789}},$={spb:{center:[[392,299],[401,279],[434,256],[476,238],[500,233],[519,245],[512,267],[509,292],[496,313],[477,329],[450,337],[422,337],[400,329]],north_west:[[-1e3,-1e3],[434,-1e3],[434,60],[441,100],[450,174],[400,180],[360,189],[-1e3,189]],north_east:[[434,-1e3],[2e3,-1e3],[2e3,182],[579,182],[535,183],[490,179],[450,174],[441,100],[434,60]],west:[[-1e3,189],[360,189],[400,180],[450,174],[490,179],[535,183],[579,182],[543,211],[521,228],[500,233],[476,238],[434,256],[401,279],[392,299],[-1e3,299]],east:[[579,182],[2e3,182],[2e3,2e3],[590,389],[566,354],[544,327],[512,296],[509,292],[512,267],[519,245],[500,233],[521,228],[543,211]],south_west:[[-1e3,299],[392,299],[400,329],[422,337],[429,337],[428,382],[415,434],[400,2e3],[-1e3,2e3]],south_east:[[429,337],[450,337],[477,329],[496,313],[509,292],[512,296],[544,327],[566,354],[590,389],[2e3,2e3],[400,2e3],[415,434],[428,382]]},moscow:{center:[[1083,194],[1104,198],[1130,191],[1154,192],[1169,206],[1183,227],[1195,247],[1210,264],[1212,276],[1203,290],[1178,299],[1154,305],[1129,310],[1100,306],[1087,292],[1072,278],[1061,258],[1058,237],[1064,216]],north_west:[[1002,-1e3],[1090,-1e3],[1090,60],[1094,111],[1105,171],[1104,198],[1083,194],[1067,185],[1059,180],[1048,175],[1042,164],[1038,154],[1032,141],[1027,131],[1021,116],[1018,108],[1009,87],[1002,74]],north_east:[[1090,-1e3],[2500,-1e3],[2500,165],[1264,165],[1238,170],[1193,191],[1169,206],[1154,192],[1130,191],[1104,198],[1105,171],[1094,111],[1090,60]],west:[[-1e3,-1e3],[1002,-1e3],[1002,74],[1009,87],[1018,108],[1021,116],[1027,131],[1032,141],[1038,154],[1042,164],[1048,175],[1059,180],[1067,185],[1083,194],[1064,216],[1058,237],[1061,258],[1056,267],[1015,277],[943,294],[-1e3,294]],east:[[1169,206],[1193,191],[1238,170],[1264,165],[2500,165],[2500,337],[1307,337],[1272,330],[1232,311],[1203,290],[1212,276],[1210,264],[1195,247],[1183,227]],south_west:[[-1e3,294],[943,294],[1015,277],[1056,267],[1061,258],[1072,278],[1087,292],[1100,306],[1083,335],[1052,367],[1014,400],[985,425],[-1e3,1500]],south:[[1100,306],[1129,310],[1137,311],[1132,365],[1125,429],[1109,500],[1100,1500],[-1e3,1500],[985,425],[1014,400],[1052,367],[1083,335]],south_east:[[1137,311],[1154,305],[1178,299],[1203,290],[1232,311],[1272,330],[1307,337],[2500,337],[2500,1500],[1100,1500],[1109,500],[1125,429],[1132,365]]}},H=Object.fromEntries(Object.entries($).map(([e,t])=>{let n=G[e];return[e,Object.fromEntries(Object.entries(t).map(([o,r])=>[o,r.map(([a,l])=>[n.lon+(a-n.x)/n.scaleX,Y(z(n.lat)+(n.y-l)/n.scaleY)])]))]}));var Q=S.geometry,W=b.geometry.coordinates[0];var d=[{value:"four_hours",hours:4,label:"4 \u0447\u0430\u0441\u0430 \u2014 \u0431\u0435\u0437 \u0434\u043E\u043F\u043B\u0430\u0442\u044B"},{value:"three_hours",hours:3,label:"3 \u0447\u0430\u0441\u0430 \u2014 +200 \u20BD"},{value:"two_hours",hours:2,label:"2 \u0447\u0430\u0441\u0430 \u2014 +300 \u20BD"},{value:"one_hour",hours:1,label:"1 \u0447\u0430\u0441 \u2014 +400 \u20BD"}],J=d.flatMap(({value:e,hours:t})=>Array.from({length:12-t},(n,o)=>{let r=o+10,a=r+t;return{value:`${r}-${a}`,label:`${r}:00\u2013${a}:00`,interval:e,start:`${r}:00`}}));function I(e,t=new Date){let n=!1;try{n=u(e,t)==="40000"}catch{}return d.map(o=>({...o,label:n?`${o.hours} ${o.hours===1?"\u0447\u0430\u0441":"\u0447\u0430\u0441\u0430"} \u2014 \u0431\u0435\u0437 \u0434\u043E\u043F\u043B\u0430\u0442\u044B`:o.label}))}function ee(e,t,n=new Date){let o=I(t,n);for(let r of e.options){let a=o.find(l=>l.value===r.value);a&&(r.textContent=a.label)}}return x(te);})(); 831 832for(const root of document.querySelectorAll("[data-family-portal]")){const form=root.querySelector("[data-family-quote-form]"),date=form?.querySelector("[name=date]"),duration=form?.querySelector("[name=duration]");if(!date||!duration)continue;const sync=()=>__bfSameDayLabels20261002.updateDeliveryIntervalLabels(duration,date.value||undefined);date.addEventListener("input",sync);date.addEventListener("change",sync);sync();root.dataset.familySameDayBuild="BFD-02D1";} 833var __bfFamilyQuoteRetry20261002=(()=>{var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var r in e)a(n,r,{get:e[r],enumerable:!0})},d=(n,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of i(e))!s.call(n,t)&&t!==r&&a(n,t,{get:()=>e[t],enumerable:!(o=u(e,t))||o.enumerable});return n};var l=n=>d(a({},"__esModule",{value:!0}),n);var h={};c(h,{retryFamilyQuoteOnce:()=>m});var w=n=>{let e=n;return e?.status===503&&(e.code==="unavailable"||e.code==="outcome_unknown")};async function m(n){if(!n.isCurrent())throw Object.assign(new Error("cart_changed"),{status:409,code:"cart_changed"});try{return await n.send()}catch(e){if(!w(e)||!n.isCurrent()||(await(n.pause??(()=>new Promise(r=>setTimeout(r,250))))(),!n.isCurrent()))throw e;return n.send()}}return l(h);})(); 834 835for(const root of document.querySelectorAll("[data-family-portal]"))root.dataset.familyQuoteRetryBuild="BFQ-02R2"; 836var __bfFamilyQuoteRender20261002=(()=>{var l=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var f=(n,r)=>{for(var e in r)l(n,e,{get:r[e],enumerable:!0})},w=(n,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of y(r))!g.call(n,o)&&o!==e&&l(n,o,{get:()=>r[o],enumerable:!(i=u(r,o))||i.enumerable});return n};var M=n=>
836w(l({},"__esModule",{value:!0}),n);var m={};f(m,{FAMILY_QUOTE_BUILD:()=>c,assertFamilyQuoteLines:()=>d,assertFamilyQuoteRenderable:()=>h,familyQuoteRenderFailureMessage:()=>p});var a=n=>n!==null&&typeof n=="object"&&!Array.isArray(n)?n:null,s=n=>typeof n=="string"&&/^(0|[1-9]\d{0,11})$/u.test(n),t=class extends Error{status=503;code="invalid_response";constructor(){super("invalid_response")}},c="BFQ-02R1";function p(n,r){return n?.code==="invalid_response"||n instanceof TypeError||n instanceof RangeError||n instanceof SyntaxError?`\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0440\u0430\u0441\u0447\u0451\u0442. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442. \u0415\u0441\u043B\u0438 \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0441\u044F, \u0441\u043E\u043E\u0431\u0449\u0438\u0442\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0435 \u043A\u043E\u0434 ${c}.`:r}function d(n){if(!Array.isArray(n)||n.length>100)throw new t;for(let r of n){let e=a(r);if(!e||!Array.isArray(e.choices)||e.choices.some(i=>{let o=a(i);return!o||typeof o.groupId!="string"||typeof o.valueId!="string"}))throw new t}}function h(n){let r=a(n);if(!r||!s(r.subtotalMinor)||r.totalMinor!==null&&!s(r.totalMinor))throw new t;if(d(r.lines),r.delivery===void 0||r.delivery===null)return;let e=a(r.delivery);if(!e||typeof e.title!="string"||!["baseMinor","intervalMinor","weightMinor","totalMinor"].every(i=>s(e[i]))||e.sameDayMinor!==void 0&&!s(e.sameDayMinor))throw new t;if(BigInt(e.baseMinor)+BigInt(e.intervalMinor)+BigInt(e.weightMinor)+BigInt(e.sameDayMinor??"0")!==BigInt(e.totalMinor))throw new t}return M(m);})(); 837 838for(const root of document.querySelectorAll("[data-family-portal]"))root.dataset.familyQuoteBuild=__bfFamilyQuoteRender20261002.FAMILY_QUOTE_BUILD; 839var __bfFamilyQuoteSafety20261002=(()=>{var m=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var _=(n,e)=>{for(var t in e)m(n,t,{get:e[t],enumerable:!0})},b=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of w(e))!h.call(n,o)&&o!==t&&m(n,o,{get:()=>e[o],enumerable:!(r=y(e,o))||r.enumerable});return n};var v=n=>b(m({},"__esModule",{value:!0}),n);var k={};_(k,{familyQuoteFailureMessage:()=>x,quoteWithFreshFamilyAddress:()=>S,recoverFamilyQuoteSession:()=>A});var l=n=>n!==null&&typeof n=="object"&&!Array.isArray(n)?n:null,s=class extends Error{constructor(t){super(t);this.code=t}code};function x(n,e){let t=n?.code;return t==="unauthorized"?"\u0421\u0440\u043E\u043A \u0432\u0445\u043E\u0434\u0430 \u0438\u0441\u0442\u0451\u043A. \u0412\u043E\u0439\u0434\u0438\u0442\u0435 \u0441\u043D\u043E\u0432\u0430, \u0437\u0430\u0442\u0435\u043C \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442. \u041A\u043E\u0440\u0437\u0438\u043D\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430.":t==="invalid_request"?"\u0420\u0430\u0441\u0447\u0451\u0442 \u043E\u0442\u043A\u043B\u043E\u043D\u0451\u043D. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0434\u0430\u0442\u0443 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F, \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438 \u0438 \u0430\u0434\u0440\u0435\u0441. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043C \u0438\u0437 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442.":t==="unavailable"?"\u0421\u0435\u0440\u0432\u0438\u0441 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442 \u043F\u043E\u0437\u0436\u0435; \u043F\u0440\u0438 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0435 \u0437\u0430\u043D\u043E\u0432\u043E \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043C \u0438\u0437 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A.":t==="invalid_response"?"\u0421\u0435\u0440\u0432\u0438\u0441 \u0432\u0435\u0440\u043D\u0443\u043B \u043D\u0435\u043F\u043E\u043B\u043D\u044B\u0439 \u0440\u0430\u0441\u0447\u0451\u0442. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442. \u041A\u043E\u0440\u0437\u0438\u043D\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430.":t==="outcome_unknown"?"\u041E\u0442\u0432\u0435\u0442 \u043D\u0430 \u0440\u0430\u0441\u0447\u0451\u0442 \u043D\u0435 \u043F\u043E\u043B\u0443\u0447\u0435\u043D. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442.":t==="cart_changed"||t==="catalog_changed"?"\u0421\u043E\u0441\u0442\u0430\u0432 \u0438\u043B\u0438 \u0446\u0435\u043D\u044B \u043A\u043E\u0440\u0437\u0438\u043D\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0438\u0441\u044C. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442.":t==="address_confirmation_expired"?"\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0441\u0442\u0435\u043A\u043B\u043E. \u0417\u0430\u043D\u043E\u0432\u043E \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043C \u0438\u0437 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0440\u0430\u0441\u0447\u0451\u0442.":t==="address_confirmation_unavailable"?"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430. \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0432\u044B\u0431\u043E\u0440 \u0434\u043E\u043C\u0430 \u0438\u0437 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A \u043F\u043E\u0437\u0436\u0435.":e}function A(n,e){let t=n;if(e.guest||t?.status!==401||t.code!=="unauthorized"||!e.requestSession||e.readSession()!==e.requestSession)return!1;e.forgetSession();for(let r of[e.local,e.session])r.getItem(e.sessionKey)===e.requestSession&&r.removeItem(e.sessionKey);e.signin.hidden=!1;for(let r of e.lines.querySelectorAll("input,button"))r.disabled=!0;return e.notify(),!0}
839function p(n){try{if(typeof n!="string"||n.length>8192||!/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/u.test(n))return null;let e=n.split(".")[0],t=Uint8Array.from(atob(e.replace(/-/gu,"+").replace(/_/gu,"/")),o=>o.charCodeAt(0));if(t.length>4096)return null;let r=l(JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(t)));return!r||r.schema!==1||r.provider!=="dadata"||!Number.isSafeInteger(r.issuedAt)||!Number.isSafeInteger(r.expiresAt)||Number(r.issuedAt)<0||Number(r.expiresAt)-Number(r.issuedAt)!==9e5||!l(r.selection)?null:r}catch{return null}}async function S(n){let e=n.fulfillment,t=l(e.selection),r=n.now??Date.now,o=t&&p(t.proof),a=o&&Number(o.expiresAt)<=r()?l(o.selection):null;if(e.kind==="delivery"&&a){let d=e.address;if(typeof d!="string"||typeof a.value!="string"||a.city!==e.city||d!==a.value&&!/^,\s*(?:кв\.?|кваÑÑиÑа)\s*[0-9A-Za-zÐ-Яа-ÑÐÑ/-]{1,20}$/iu.test(d.startsWith(a.value)?d.slice(a.value.length):""))throw new s("address_confirmation_expired");let u;try{u=new URL(n.addressEndpoint)}catch{throw new s("address_confirmation_expired")}if(u.protocol!=="https:"||u.pathname!=="/family/v1/address"||u.username||u.password||u.search||u.hash)throw new s("address_confirmation_expired");if(!n.isCurrent())throw new s("address_confirmation_expired");let c,f;try{c=await(n.transport??fetch)(u.href+"/resolve",{method:"POST",mode:"cors",credentials:"omit",cache:"no-store",redirect:"error",signal:AbortSignal.timeout(1e4),headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({city:e.city,value:a.value})}),f=l(await c.json())}catch{throw new s("address_confirmation_unavailable")}if(!c.ok)throw new s("address_confirmation_unavailable");let i=l(f?.selection),g=i&&p(i.proof);if(f?.status!=="selected"||!i||i.value!==a.value||i.city!==e.city||typeof i.longitude!="number"||!Number.isFinite(i.longitude)||i.longitude<19||i.longitude>180||typeof i.latitude!="number"||!Number.isFinite(i.latitude)||i.latitude<41||i.latitude>82||![0,1,2].includes(Number(i.quality))||typeof i.quality!="number"||typeof i.fiasId!="string"||i.pricingMode!==void 0&&i.pricingMode!=="estimated_max_tariff"||!g||Number(g.expiresAt)<=Number(o.expiresAt))throw new s("address_confirmation_expired");if(!n.isCurrent())throw new s("address_confirmation_expired");e.selection={longitude:i.longitude,latitude:i.latitude,quality:i.quality,fiasId:i.fiasId,window:t.window,...i.pricingMode?{pricingMode:i.pricingMode}:{},proof:i.proof}}if(!n.isCurrent())throw new s("address_confirmation_expired");return n.send()}return v(k);})(); 840 841var __bfCartLineControls20261002=(()=>{var l=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var v=(e,a)=>{for(var o in a)l(e,o,{get:a[o],enumerable:!0})},L=(e,a,o,i)=>{if(a&&typeof a=="object"||typeof a=="function")for(let t of y(a))!E.call(e,t)&&t!==o&&l(e,t,{get:()=>a[t],enumerable:!(i=f(a,t))||i.enumerable});return e};var N=e=>L(l({},"__esModule",{value:!0}),e);var x={};v(x,{installFamilyCartLineControls:()=>g});function g(e){let a=new WeakSet,o=t=>t.target instanceof e.container.ownerDocument.defaultView.Element?t.target:null,i=t=>o(t)?.closest(e.buttonSelector);e.container.addEventListener("pointerdown",t=>{let n=i(t);n&&!n.disabled&&t.button===0&&t.preventDefault()}),e.container.addEventListener("click",t=>{let n=i(t);if(!n||n.disabled)return;let c=e.action(n);if(c!=="increase"&&c!=="decrease"&&c!=="remove")return;let u=Number(n.dataset.index),s=e.readQuantity(u);if(s===void 0)return;let d=n.parentElement?.querySelector(e.quantitySelector),r=e.container.ownerDocument.activeElement;r instanceof e.container.ownerDocument.defaultView.HTMLInputElement&&e.container.contains(r)&&r.matches(e.quantitySelector)&&Number(r.dataset.index)!==u&&Number(r.value)!==e.readQuantity(Number(r.dataset.index))&&(a.add(r),e.changeQuantity(Number(r.dataset.index),Number(r.value)));let m=Number(d?.value),b=Number.isSafeInteger(m)&&d?.value!==""?m:s;d&&a.add(d),t.preventDefault(),e.changeQuantity(u,b+(c==="increase"?1:-1),c==="remove")}),e.container.addEventListener("change",t=>{let n=o(t)?.closest(e.quantitySelector);n&&a.delete(n)||n&&Number(n.value)!==e.readQuantity(Number(n.dataset.index))&&e.changeQuantity(Number(n.dataset.index),Number(n.value))}),e.container.addEventListener("input",t=>{let n=o(t)?.closest(e.quantitySelector);n&&a.delete(n)})}return N(x);})(); 842 843import{a as e,i as t,n,o as r,t as i}from"./TwoTartlet.1d42374f66b57e02.money.6b6b3fdc83042c47.js";import{n as a,t as o}from"./TwoTartlet.63ebd2839037392e.money.72914aef879da26c.js";import{a as s,c,d as l,l as u,p as d,t as ee,u as f,v as p}
843from"./TwoTartlet.732c7cf5fd42c559.money.54a6e6cafa0272f5.js";import{n as te}from"./stage-one-attribution.C2WCNzA0.js";import{t as ne}from"./dist.CSOARXzK.js";import{n as re,t as ie}from"./UnresolvedHouse.23fc97727ad06a12.signed-address.7e0d99140b2b4c35.js";function m(e){let t=new URL(e.paymentUrl);if(e.provider!==`robokassa`)return{method:`GET`,url:t.toString()};if(t.origin!==`https://auth.robokassa.ru`||t.pathname!==`/Merchant/Index.aspx`||t.username||t.password||t.hash)throw Error(`Invalid payment destination`);let n=[...t.searchParams.entries()];if(new Set(n.map(([e])=>e)).size!==n.length||!t.searchParams.has(`MerchantLogin`)||!t.searchParams.has(`SignatureValue`))throw Error(`Invalid payment fields`);return{method:`POST`,url:t.origin+t.pathname,fields:n}}function ae(e){let t=m(e);if(t.method===`GET`){window.location.assign(t.url);return}let n=document.createElement(`form`);n.method=`POST`,n.action=t.url,n.hidden=!0;for(let[e,r]of t.fields){let t=document.createElement(`input`);t.type=`hidden`,t.name=e,t.value=r,n.append(t)}document.body.append(n),HTMLFormElement.prototype.submit.call(n)}var h=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,g=2592e6,_=`:app-durable`;function v(e,t,n,r=Date.now()){try{let i=e.getItem(t+_);if(!i)return null;let a=JSON.parse(i);return a.version!==1||typeof a.operationId!=`string`||!h.test(a.operationId)||a.apiOrigin!==n||typeof a.createdAt!=`number`||!Number.isSafeInteger(a.createdAt)||a.createdAt>r||r-a.createdAt>g?(e.removeItem(t+_),null):a.operationId}catch{return null}}function oe(e,t,n,r,i=Date.now()){if(!h.test(r)||!Number.isSafeInteger(i))return!1;try{let a={version:1,operationId:r,apiOrigin:n,createdAt:i};return e.setItem(t+_,JSON.stringify(a)),v(e,t,n,i)===r}catch{return!1}}function y(e,t,n,r){try{if(r&&v(e,t,n)!==r)return;e.removeItem(t+_)}catch{}}function se(e){let t,n=!1,r,i,a=()=>(r&&=(clearTimeout(r),void 0),i||(t===void 0?Promise.resolve():(n=!0,i=(async()=>{try{do{for(;t!==void 0;){r&&=(clearTimeout(r),void 0);let n=t;t=void 0,await e.save(n),t!==void 0&&e.preview(t)}await e.settled(),t!==void 0&&e.preview(t)}while(t!==void 0)}catch(n){t=void 0,await e.failed(n)}finally{n=!1,i=void 0}})(),i)));return{get busy(){return n||t!==void 0},enqueue(n){t=e.clone(n),e.preview(t),r&&clearTimeout(r),r=setTimeout(()=>{a()},e.delay??180)},flush:a,clear(){t=void 0,r&&clearTimeout(r),r=void 0}}}var b=e=>new Intl.NumberFormat(`ru-RU`,{style:`currency`,currency:`RUB`,maximumFractionDigits:2}).format(Number(e)/100),x=(e,t)=>{let n=document.createElement(`button`);return n.type=`button`,n.className=`family-extras-action`,n.textContent=e,n.addEventListener(`click`,t),n},S=(e,t,n=!1)=>{e.textContent=t,e.dataset.error=String(n)},ce=t=>t instanceof e?t.code===`outcome_unknown`?`ÐÑÐ²ÐµÑ Ð½Ðµ полÑÑен. ÐовÑоÑиÑе ÑÑо дейÑÑвие: пÑовеÑим ÑÐ¾Ñ Ð¶Ðµ запÑÐ¾Ñ Ð±ÐµÐ· дÑблиÑованиÑ.`:t.code===`local_storage_unavailable`?`Ðе ÑдалоÑÑ ÑоÑ
ÑаниÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ÑÑом ÑÑÑÑойÑÑве. ÐÑвободиÑе Ñ
ÑанилиÑе бÑаÑзеÑа и повÑоÑиÑе дейÑÑвие.`:t.code===`conflict`?`ÐаннÑе изменилиÑÑ Ð² дÑÑгой вкладке. Ðни Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ñ â повÑоÑиÑе дейÑÑвие.`:t.code===`not_found`||t.code===`missing_order`?`ÐÑÐ¾Ñ Ð·Ð°ÐºÐ°Ð· или докÑÐ¼ÐµÐ½Ñ ÑейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпен.`:t.code===`catalog_changed`||t.code===`minimum_quantity`?`ÐозиÑÐ¸Ñ Ð¸Ð»Ð¸ ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° изменилиÑÑ. ÐÑовеÑÑÑе акÑÑалÑнÑÑ ÐºÐ°ÑÑоÑÐºÑ ÑоваÑа.`:t.status===401?`ÐойдиÑе в ÐºÐ°Ð±Ð¸Ð½ÐµÑ ÐµÑÑ Ñаз.`:`Ðе ÑдалоÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð´ÐµÐ¹ÑÑвие. ÐовÑоÑиÑе попÑÑкÑ.`:`Ðе ÑдалоÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð´ÐµÐ¹ÑÑвие. ÐовÑоÑиÑе попÑÑкÑ.`;function le(t){let n=t.root.querySelector(`[data-family-extras]`),r=n.querySelector(`[data-family-favorites-list]`),i=n.querySelector(`[data-family-extras-status]`),a=n.querySelector(`[data-family-favorites-reload]`),s=null,c=null,l=!1,u=0,d=null,ee=()=>c??=(async()=>{let e=u;a.disabled=!0;try{let n=await t.client.listFavorites();if(e!==u||!t.isSignedIn())return;s=n,p(),a.hidden=!0}catch(t){e===u&&S(i,ce(t),!0)}finally{a.disabled=!1}})().finally(()=>{c=null});
843async function f(n,r,i,a,s){if(l||!t.isSignedIn())return;if(t.isCartBusy?.()){S(a,`ÐоÑзина ÑоÑ
ÑанÑеÑÑÑ. ÐодождиÑе ÑекÑндÑ.`);return}let c=u;l=!0;let d,f=[...t.root.querySelectorAll(`.family-extras-action`)],p=f.map(e=>e.disabled);f.forEach(e=>{e.disabled=!0}),S(a,`СоÑ
ÑанÑемâ¦`);try{let a=t.getSessionKey();if(!a)throw new e(401,`unauthorized`);if(d=await o({storage:sessionStorage,session:a,action:n,payload:r}),c!==u||t.getSessionKey()!==a)return;let l=await i(d.payload,d.operationId);if(d.complete(),c!==u)return;await s(l)}catch(n){if(c!==u)return;n instanceof e&&n.status<500&&d?.complete(),n instanceof e&&n.code===`conflict`&&await Promise.all([ee(),t.refresh()]).catch(()=>{}),S(a,ce(n),!0)}finally{f.forEach((e,t)=>{e.disabled=p[t]}),l=!1}}function p(){if(s){if(r.replaceChildren(),!s.favorites.length){S(i,`Ðока ниÑего не ÑоÑ
Ñанено. ÐобавÑÑе понÑавивÑÑÑÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ Ð¸Ð· коÑзинÑ.`);return}S(i,`СоÑ
Ñанено позиÑий: ${s.favorites.length}`);for(let e of s.favorites){let n=document.createElement(`article`);n.className=`family-extras-row`;let a=document.createElement(`h3`);a.textContent=e.title;let o=document.createElement(`p`);o.textContent=[e.variant,e.available&&e.unitMinor!==null?b(e.unitMinor):`СейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпно`].filter(Boolean).join(` · `);let c=document.createElement(`p`);c.className=`family-extras-feedback`,c.setAttribute(`role`,`status`);let l=document.createElement(`div`);l.className=`family-extras-actions`;let u=x(`ÐобавиÑÑ Ð² коÑзинÑ`,()=>{let n=t.getAccount();n&&f(`cart:`+e.id,{item:e.item,version:n.version},(e,n)=>t.mergeItems([e.item],n,e.version),c,async()=>{await t.refresh(),S(c,`Ðобавлено в единÑÑ ÐºÐ¾ÑзинÑ.`)})});u.disabled=!e.available;let d=x(`УбÑаÑÑ Ð¸Ð· избÑанного`,()=>{let n=s.version;f(`remove:`+e.id,{expectedVersion:n},(n,r)=>t.client.removeFavorite(e.id,n.expectedVersion,r),i,e=>{s=e,p()})});l.append(u,d),n.append(a,o,l,c),r.append(n)}}}return a.addEventListener(`click`,()=>{ee()}),{sync(){let e=t.getSessionKey(),o=t.isSignedIn()&&!!t.getAccount();n.hidden=!o,(!o||d!==e)&&(d=e,u++,s=null,r.replaceChildren(),a.hidden=!1,S(i,``))},cartActions(e,n,r){t.isSignedIn()&&[...e.children].forEach((e,n)=>{let i=r.lines[n];if(!i)return;let a={brandKey:i.brandKey,publicationId:i.publicationId,variantId:i.variantId,offerId:i.offerId,quantity:i.quantity,choices:i.choices.map(({groupId:e,valueId:t})=>({groupId:e,valueId:t}))},o=document.createElement(`p`);o.className=`family-extras-feedback`,o.setAttribute(`role`,`status`);let c=x(`РизбÑанное`,()=>{(async()=>{let e=u;if(s||await ee(),!s||e!==u)return;let n=s.version;await f(`save:`+JSON.stringify(a),{expectedVersion:n,item:a},(e,n)=>t.client.addFavorite(e.expectedVersion,e.item,n),o,e=>{s=e,p(),c.textContent=`РизбÑанном`,c.setAttribute(`aria-pressed`,`true`),S(o,`ÐозиÑÐ¸Ñ ÑоÑ
Ñанена.`)})})()});c.setAttribute(`aria-label`,`РизбÑанное: ${i.title}`);
843let l=document.createElement(`div`);l.className=`family-extras-actions`,l.append(c),e.append(l,o)})},orderActions(e,n){let r=document.createElement(`div`);r.className=`family-extras-actions`;let i=document.createElement(`p`);i.className=`family-extras-feedback`,i.setAttribute(`role`,`status`);let a=document.createElement(`div`);a.className=`family-extras-documents`,a.hidden=!0,r.append(x((n.amendment?`ÐовÑоÑиÑÑ Ð¸ÑÑ
однÑй заказ`:`ÐовÑоÑиÑÑ Ð·Ð°ÐºÐ°Ð·`),()=>{let e=t.getAccount();e&&f(`repeat:`+n.id,{version:e.version},(e,r)=>t.client.repeatOrder(n.id,e.version,r),i,async e=>{await t.refresh();let r=t.root.querySelector(`[data-family-order-id="${n.id}"] .family-extras-feedback`)??i,a=e.unavailable.map(e=>e.title).join(`; `);S(r,e.addedLineCount?`РкоÑÐ·Ð¸Ð½Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾ позиÑий: ${e.addedLineCount}. ÐÑовеÑÑÑе акÑÑалÑнÑе ÑÐµÐ½Ñ Ð¸ даÑÑ.${a?` СейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпнÑ: `+a:``}`:`ÐоÑÑÑпнÑÑ
Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑа позиÑий неÑ.${a?` `+a:``}`,e.addedLineCount===0)})}));let o=x(`ÐÑкÑÑÑÑ Ð·Ð°ÐºÐ°Ð·`,()=>{(async()=>{let e=u;o.disabled=!0,S(i,`ÐагÑÑжаем заказâ¦`);try{let r=await t.client.orderDetail(n.id);if(e!==u)return;a.replaceChildren(),a.hidden=!1;if(n.amendment&&(!r.amendment||r.amendment.revision<n.amendment.revision))throw Error(`РедакÑÐ¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° ÑÑÑаÑела. ÐбновиÑе кабинеÑ.`);if(r.amendment){appendCustomerOrderCurrent(a,r.amendment,b);}else{let o=document.createElement(`h4`);o.textContent=r.status===`cancelled`?`Ðаказ оÑменÑн`:r.paymentStatus===`paid`?`Ðаказ оплаÑен`:`Ðаказ пÑинÑÑ, Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð¿Ð¾Ð´ÑвеÑждениÑ`,a.append(o);let s=document.createElement(`p`);s.textContent=[r.fulfillment.kind===`delivery`?`ÐоÑÑавка`:`СамовÑвоз`,r.fulfillment.date.split(`-`).reverse().join(`.`),r.fulfillment.time,r.fulfillment.address].filter(Boolean).join(` · `),a.append(s);for(let e of r.lines){let t=document.createElement(`p`);t.textContent=[e.title,e.variant,...e.choices.map(e=>e.groupName+`: `+e.valueLabel)].filter(Boolean).join(` · `)+` · `+e.quantity+` ÑÑ. à `+b(e.unitMinor)+` = `;let n=BigInt(e.lineMinor),r=BigInt(e.bonusSpendMinor);if(r>0n&&r<=n){let i=document.createElement(`del`);i.textContent=b(e.lineMinor),t.append(i,document.createTextNode(` `+b((n-r).toString())+` · бонÑÑÑ â`+b(e.bonusSpendMinor)))}else t.append(document.createTextNode(b(e.lineMinor)));a.append(t)}let c=document.createElement(`p`);c.textContent=`ТоваÑÑ: `+b(r.subtotalMinor)+` · доÑÑавка: `+b(r.deliveryMinor)+(r.promotionMinor===`0`?``:` · Ñкидка: â`+b(r.promotionMinor))+(r.bonusSpendMinor===`0`?``:` · бонÑÑÑ: â`+b(r.bonusSpendMinor))+` · иÑог: `+(r.totalMinor===null?`ÑÑоÑнÑеÑÑÑ`:b(r.totalMinor)),a.append(c);}if(r.canCancel){let e=!1,o=x(`ÐÑмениÑÑ Ð·Ð°ÐºÐ°Ð·`,()=>{if(!e){e=!0,o.textContent=`ÐодÑвеÑдиÑÑ Ð¾ÑменÑ`,S(i,r.paymentStatus===`paid`?`ÐодÑвеÑдиÑе оÑменÑ. ÐозвÑÐ°Ñ Ð¾Ð¿Ð»Ð°ÑÑ ÑоглаÑÑÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑжка.`:`ÐодÑвеÑдиÑе оÑÐ¼ÐµÐ½Ñ Ð·Ð°ÐºÐ°Ð·Ð°. СпиÑаннÑе бонÑÑÑ Ð±ÑдÑÑ Ð²Ð¾Ð·Ð²ÑаÑенÑ.`);return}f(`cancel:`+n.id,{},(e,r)=>t.client.cancelOrder(n.id,r),i,async()=>{await t.refresh(),S(i,`Ðаказ оÑменÑн.`)})});a.append(o)}S(i,``)}catch(e){S(i,ce(e),!0)}finally{o.disabled=!1}})()});r.prepend(o),e.dataset.familyOrderId=n.id,e.append(r,i,a)},clear(){u++,d=null,s=null,r.replaceChildren(),n.hidden=!0,a.hidden=!1}}}async function ue(t){for(let n=0;n<2;n++){let[n,r]=await Promise.all([t.loadAccount(),t.loadQuote().then(e=>({quote:e}),e=>({error:e}))]),i;if(`error`in r){if(!(r.error instanceof e)||r.error.status!==404)throw r.error;i=await t.loadQuote()}else i=r.quote;if(n.version===i.version&&n.items.length===i.lines.length)return[n,i]}throw new e(409,`conflict`)}function de(e){let t=0,n=null,r=()=>({generation:t,session:e()}),i=n=>n.generation===t&&n.session!==null&&n.session===e();return{restart(){return t++,n=null,r()},next(){return n||e()===null?null:(n=r(),n)},current:i,finish(e){return n===e&&(n=null,i(e))},invalidate(){t++,n=null}}}async function fe(e){let t=await e.readCart(e.token);e.currentToken()!==e.token||e.signedIn()||e.showCount((t.items??[]).reduce((e,t)=>
843e+t.quantity,0))}var C=`bestfurshet:vkid:pending:v1`,w=RegExp(`(?:^|\\s)BestFurshetAndroid/1\\.0\\.2(?:\\s|$)`,`u`),pe=/(?:^|\s)BestFurshetAndroid(?:\/[^\s]*)?(?:\s|$)/u,me=/^[0-9a-f-]{36}\.[A-Za-z0-9_-]{43}$/iu,he=/^[A-Za-z0-9_-]{43}$/u,ge=()=>btoa(String.fromCharCode(...crypto.getRandomValues(new Uint8Array(32)))).replace(/\+/gu,`-`).replace(/\//gu,`_`).replace(/=+$/gu,``),T=class extends Error{code;action;constructor(e,t){super(e),this.code=e,this.action=t}},_e=async e=>Array.from(new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e)))).map(e=>e.toString(16).padStart(2,`0`)).join(``);function ve(e){let t=new URL(e.href);return t.search=``,t.hash=``,t}function E(e){return w.test(e)}function ye(e){return pe.test(e)}function be(e){return e.enabled?ye(e.userAgent)?e.androidEnabled&&E(e.userAgent):!e.standalone||e.standaloneEnabled:!1}function xe(e){let t;try{t=new URL(e.apiOrigin)}catch{throw new T(`configuration`)}let n;try{n=new URL(e.redirectUri)}catch{throw new T(`configuration`)}if(t.protocol!==`https:`||t.origin!==e.apiOrigin||!/^[1-9]\d{0,14}$/u.test(e.appId)||n.protocol!==`https:`||n.username||n.password||n.search||n.hash||n.pathname===`/app/vkid/android-callback/`&&e.androidNative!==!0||e.androidNative===!0&&n.pathname!==`/app/vkid/android-callback/`)throw new T(`configuration`);let r=e.now??Date.now,i=e.random??ge,a=e.fetch??fetch,o=()=>{try{let t=JSON.parse(e.storage.getItem(C)??`null`);return t&&he.test(t.state??``)&&he.test(t.verifier??``)&&(t.action===`signin`||t.action===`link`)&&Number.isFinite(t.expiresAt)&&(t.action!==`link`||/^[a-f0-9]{64}$/u.test(t.bearerHash??``))&&t.expiresAt>r()&&t.expiresAt<=r()+66e4?t:null}catch{return null}},s=()=>{try{e.storage.removeItem(C)}catch{}},c=e.loadSdk??(()=>new Promise((t,n)=>{if(!e.sdkUrl){n(new T(`sdk_unavailable`));return}let r=window.VKIDSDK;if(r){t(r);return}let i=document.createElement(`script`);i.src=e.sdkUrl,i.async=!0,i.onload=()=>window.VKIDSDK?t(window.VKIDSDK):n(new T(`sdk_unavailable`)),i.onerror=()=>n(new T(`sdk_unavailable`)),document.head.append(i)})),l=async(e,n,r)=>{let i;try{i=await a(t.origin+e,{method:`POST`,credentials:`omit`,cache:`no-store`,referrerPolicy:`no-referrer`,signal:AbortSignal.timeout(12e3),headers:{"Content-Type":`application/json`,...r?{Authorization:`Bearer ${r}`}:{}},body:JSON.stringify(n)})}catch{throw new T(`network`)}let o;try{o=await i.json()}catch{throw new T(`unavailable`)}if(!i.ok)throw new T(typeof o.error==`string`?o.error:`unavailable`);return o};async function u(t){let r=t.searchParams;if(!r.has(`code`)&&!r.has(`state`)&&!r.has(`error`)&&!r.has(`device_id`))return!1;let i=ve(t);(e.replaceUrl??(e=>history.replaceState(null,document.title,e)))(i.pathname+i.search+i.hash);let a=o();s();try{if(t.origin!==n.origin||t.pathname!==n.pathname||!a||r.getAll(`state`).length!==1||r.get(`state`)!==a.state||r.getAll(`code`).length!==1||!r.get(`code`)||r.get(`code`).length>4096||r.getAll(`device_id`).length!==1||!/^[A-Za-z0-9._~-]{1,256}$/u.test(r.get(`device_id`)??``)||r.has(`error`))throw new T(`unauthorized`);let i={code:r.get(`code`),deviceId:r.get(`device_id`),state:a.state,codeVerifier:a.verifier,redirectUri:e.redirectUri};if(a.action===`signin`){let t=await l(`/family/v1/vkid/authenticate`,i);if(typeof t.bearerToken!=`string`||!me.test(t.bearerToken))throw new T(`unavailable`);await e.onSignIn(t.bearerToken)}else{let t=e.getBearer();if(!t||!me.test(t))throw new T(`unauthorized`);if(await _e(t)!==a.bearerHash)throw new T(`account_changed`);if((await l(`/family/v1/vkid/link`,i,t)).status!==`linked`)throw new T(`unavailable`)}return e.androidNative&&(e.navigateAndroid??(e=>location.replace(e)))(`/app/account/`),a.action}catch(e){throw new T(e instanceof T?e.code:`unavailable`,a?.action)}}async function d(t){let n=i(),a=i();if(!he.test(n)||!he.test(a))throw new T(`configuration`);let o=t===`link`?e.getBearer():null;if(t===`link`&&(!o||!me.test(o)))throw new T(`unauthorized`,t);let l={state:n,verifier:a,action:t,expiresAt:r()+6e5,...o?{bearerHash:await _e(o)}:{}};e.storage.setItem(C,JSON.stringify(l));try{let t=await c();t.Config.init({app:Number(e.appId),redirectUrl:e.redirectUri,state:n,codeVerifier:a,...t.ConfigAuthMode?.Redirect?{mode:t.ConfigAuthMode.Redirect}:{}}),await t.Auth.login()}catch(e){throw s(),e instanceof T?e:new T(`sdk_unavailable`)}}return{callback:u,start:d}}var Se=`/_astro/vkid-sdk-2.6.8.R_5y0nVg.js`;function Ce(e){if(e.appHost!==`pwa`&&e.appHost!==`vk`)return;let t=/iPhone|iPad|iPod/u.test(e.userAgent)?`ios`:/Android/u.test(e.userAgent)?`android`:`other`;if(e.appHost===`vk`)return{distribution:`vk`,platform:t};if(/BestFurshetAndroid\/[\d.]+/u.test(e.userAgent))return{distribution:`apk`,platform:`android`};let n=/iPhone|iPad|iPod/u.test(e.userAgent)?`ios`:/Android/u.test(e.userAgent)?`android`:`other`;return{distribution:e.standalone?`pwa`:`browser`,platform:n}}function we(e){return Ce({appHost:e.document.documentElement.dataset.appHost,userAgent:e.navigator.userAgent,standalone:e.navigator.standalone===!0||e.matchMedia(`(display-mode: standalone)`).matches})}var Te=/^(?:[a-f0-9]{64}|[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})$/iu,Ee=`bestfurshet:metrika-goals:v1`,D=new WeakMap;function De(e){let t=e.toLocaleLowerCase(`ru-RU`);return t.includes(`ÑÐ½Ð´ÐµÐºÑ Ð´Ð¸ÑекÑ`)&&t.includes(`ÑÑÑ`)?`yandex_direct_rsya`:t.includes(`ÑÐ½Ð´ÐµÐºÑ Ð´Ð¸ÑекÑ`)?`yandex_direct`:t.includes(`ÑÐ½Ð´ÐµÐºÑ Ð¿Ð¾Ð¸Ñк`)?`yandex_organic`:t.startsWith(`пеÑеÑ
од Ñ `)?`referral`:t.startsWith(`Ñеклама / пеÑеÑ
од:`)?`campaign_other`:t?`declared_other`:`direct_or_unknown`}function Oe(e,t){let n=D.get(e)??new Set;if(D.set(e,n),n.has(t))return!0;try{let n=JSON.parse(e.localStorage.getItem(Ee)??`[]`);if(Array.isArray(n)&&n.includes(t))return!0}catch{}return!1}function O(e,t){D.get(e)?.add(t);try{let n=JSON.parse(e.localStorage.getItem(Ee)??`[]`),r=Array.isArray(n)?n.filter(e=>typeof e==`string`).slice(-63):[];e.localStorage.setItem(Ee,JSON.stringify([...r.filter(e=>e!==t),t]))}catch{}}function ke(e,t){if(!Te.test(t.dedupeId))return!1;let n=e.document.documentElement.dataset.stageOneMetrikaId,r=e.ym;if(!n||!/^\d{6,12}$/u.test(n)||typeof r!=`function`)return!1;let i=`${t.goal}:${t.dedupeId}`;if(Oe(e,i))return!1;try{return r(Number(n),`reachGoal`,t.goal,{source_site:t.sourceBrand,host_site:t.hostingBrand,source_channel:De(t.sourceHint)}),O(e,i),!0}catch{return!1}}function Ae(e){let t=[`order_spend`,`order_earn_reversal`,`order_earn_hold`,`legacy_reversal`,`manual_debit`].includes(e.kind),n={birthday:`ÐодаÑок ко Ð´Ð½Ñ ÑождениÑ`,legacy_import:`ÐонÑÑÑ Ð¸Ð· пÑежней пÑогÑаммÑ`,legacy_reversal:`ÐоÑÑекÑиÑовка пÑежниÑ
бонÑÑов`,tilda_order_credit:`ÐонÑÑÑ Ð·Ð° заказ на пÑежнем ÑайÑе`,manual_credit:`ÐаÑиÑлено менеджеÑом`,manual_debit:`СпиÑано менеджеÑом`,order_earn_reversal:`СнÑÑие наÑиÑÐ»ÐµÐ½Ð¸Ñ Ð·Ð° оÑменÑннÑй заказ`,order_spend_refund:`ÐозвÑÐ°Ñ ÑпиÑаннÑÑ
бонÑÑов пÑи оÑмене`,order_spend:`СпиÑание за заказ`,order_earn:`ÐаÑиÑление за заказ`,order_earn_hold:`ÐеÑенеÑено в ожидаÑÑие бонÑÑÑ`,order_earn_release:`ÐавеÑÑение Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð±Ð¾Ð½ÑÑов`},r=[`order_spend`,`order_earn`,`order_earn_hold`,`order_earn_release`].includes(e.kind)&&e.orderId?` `
843+e.orderId.slice(0,12):``;return{sign:t?`â`:`+`,label:n[e.kind]+r}}function k(e){if(e.length>32||!/^\+?[\d\s()-]+$/.test(e.trim()))return null;let t=e.replace(/\D/g,``);return t.length===10&&(t=`7${t}`),t.length===11&&t[0]===`8`&&(t=`7${t.slice(1)}`),/^79\d{9}$/.test(t)?`+${t}`:null}function je(e){let t=k(e);return t?`+7 (${t.slice(2,5)}) ${t.slice(5,8)}-${t.slice(8,10)}-${t.slice(10)}`:null}var A=class extends Error{code;retryAfterSeconds;constructor(e,t){super(e),this.code=e,this.retryAfterSeconds=t}},Me=e=>typeof e==`string`&&/^[1-9]\d{7,14}$/.test(e),Ne=e=>typeof e==`number`&&Number.isSafeInteger(e)&&e>0;function Pe(e,t=fetch){let n=new URL(e);if(n.origin!==e||n.protocol!==`https:`&&!(n.protocol===`http:`&&[`localhost`,`127.0.0.1`].includes(n.hostname)))throw Error(`Invalid family API origin`);async function r(n,r,i){let a=await t(`${e}/family/v1/auth/phone/${n}`,{method:`POST`,headers:{"Content-Type":`application/json`,...i?{Authorization:`Bearer ${i}`}:{}},body:JSON.stringify(r),credentials:`omit`,cache:`no-store`,redirect:`error`,signal:AbortSignal.timeout(65e3)}),o=await a.json().catch(()=>null);if(!a.ok){let e=Number(a.headers.get(`Retry-After`)??o?.retryAfterSeconds);throw new A(typeof o?.error==`string`?o.error:typeof o?.code==`string`?o.code:a.status===429?`rate_limited`:`unavailable`,Number.isFinite(e)&&e>0?e:void 0)}return{data:o,status:a.status}}return{async request(e,t){let n=k(e);if(!n)throw new A(`invalid_phone`);let{data:i,status:a}=await r(`request`,{phone:n},t);if(a!==202||!i||typeof i.challengeId!=`string`||!i.challengeId||!Me(i.callPhone)||!Ne(i.expiresInSeconds)||i.expiresInSeconds>300||typeof i.resendAfterSeconds!=`number`||!Number.isSafeInteger(i.resendAfterSeconds)||i.resendAfterSeconds<0)throw new A(`invalid_response`);return{challengeId:i.challengeId,callPhone:i.callPhone,expiresInSeconds:i.expiresInSeconds,resendAfterSeconds:i.resendAfterSeconds}},async verify(e,t){let{data:n,status:i}=await r(`verify`,{challengeId:e},t);if(i===202&&n?.status===`pending`&&Ne(n.retryAfterSeconds))return{status:`pending`,retryAfterSeconds:Math.max(5,n.retryAfterSeconds)};if(i!==200||!n||typeof n.bearerToken!=`string`||!/^[0-9a-f-]{36}\.[A-Za-z0-9_-]{43}$/i.test(n.bearerToken)||n.phoneVerified!==!0)throw new A(`invalid_response`);return{status:`verified`,bearerToken:n.bearerToken}}}}function Fe(e){let t=e instanceof A?e.code:``;return t===`invalid_phone`?`УкажиÑе ÑоÑÑийÑкий мобилÑнÑй номеÑ: +7 9 и еÑÑ 9 ÑиÑÑ.`:t===`expired_challenge`?`ÐÑÐµÐ¼Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ÑÑекло. ÐолÑÑиÑе новÑй Ð½Ð¾Ð¼ÐµÑ Ð´Ð»Ñ Ð·Ð²Ð¾Ð½ÐºÐ°.`:[`conflict`,`phone_conflict`,`identity_conflict`].includes(t)?`ТелеÑон ÑвÑзан Ñ Ð´ÑÑгим кабинеÑом. ÐойдиÑе по Ð½ÐµÐ¼Ñ Ð¸Ð»Ð¸ обÑаÑиÑеÑÑ Ðº менеджеÑÑ.`:[`unauthorized`,`link_session_changed`].includes(t)?`Ð¡ÐµÐ°Ð½Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð»ÑÑ. ÐолÑÑиÑе Ð½Ð¾Ð¼ÐµÑ Ð·Ð°Ð½Ð¾Ð²Ð¾.`:t===`rate_limited`?`СлиÑком много запÑоÑов. ÐождиÑеÑÑ Ð´Ð¾ÑÑÑпного повÑоÑа.`:t===`provider_unavailable`?`СеÑÐ²Ð¸Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð²Ñеменно недоÑÑÑпен. ÐопÑобÑйÑе позже или войдиÑе по поÑÑе.`:t===`refresh_failed`?`ТелеÑон подÑвеÑждÑн, но ÐºÐ°Ð±Ð¸Ð½ÐµÑ Ð½Ðµ ÑдалоÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ. ÐбновиÑе ÑÑÑаниÑÑ.`:`Ðе ÑдалоÑÑ Ð¿ÑовеÑиÑÑ Ð¿Ð¾Ð´ÑвеÑждение. ÐовÑоÑиÑе пÑовеÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ или войдиÑе по поÑÑе.`}async function Ie(e){if(!e)return`anonymous`;let t=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e));return[...new Uint8Array(t)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}function Le(e){let t=Pe(e.apiOrigin),n=e.root.ownerDocument,r=n.defaultView,i=[],a=new Set,o=new Map;for(let s of e.root.querySelectorAll(`[data-family-phone-login]`)){if(s.dataset.phoneBound===`true`)continue;s.dataset.phoneBound=`true`;let c=s.querySelector(`[data-family-phone-request]`),l=s.querySelector(`[data-family-phone-verify]`),u=c.elements.namedItem(`phone`),d=s.querySelector(`[data-family-phone-call]`),ee=s.querySelector(`[data-family-phone-status]`),f=s.querySelector(`[data-family-phone-dial]`),p=s.querySelector(`[data-family-call-number]`),te=s.querySelector(`[data-family-phone-instruction]`),ne=s.querySelector(`[data-family-phone-expiry]`),re=s.dataset.mode===`link`,ie=`bestfurshet:phone-callcheck:v1:${e.apiOrigin}:${re?`link`:`signin`}`,m=null,ae=0,h=!1,g=0,_=0,v=!1,oe,y=(e,t=!1)=>{ee.textContent=e,ee.dataset.error=String(t)},se=()=>{try{m?r.sessionStorage.setItem(ie,JSON.stringify(m)):r.sessionStorage.removeItem(ie)}catch{}},b=()=>{m=null,l.hidden=!0,f.removeAttribute(`href`),se()},x=e=>`${ie}:${e}`,S=o.get(ie)??[];S.push(e=>{m?.challengeId===e&&(_++,b(),y(`ТелеÑон подÑвеÑждÑн.`))}),o.set(ie,S);let ce=()=>n.visibilityState===`visible`&&!s.closest(`[hidden]`),le=()=>{let e=Math.max(0,Math.ceil((ae-Date.now())/1e3));u.disabled=h;for(let e of s.querySelectorAll(`button`))e.disabled=h;d.disabled=h||e>0,d.textContent=e>0?`ÐовÑй Ð½Ð¾Ð¼ÐµÑ ÑеÑез ${e} Ñ`:m?`ÐолÑÑиÑÑ Ð½Ð¾Ð²Ñй номеÑ`:`ÐолÑÑиÑÑ Ð½Ð¾Ð¼ÐµÑ`,m&&(l.hidden=!1,p.textContent=`+`+m.callPhone,f.href=`tel:+`+m.callPhone,te.textContent=`ÐозвониÑе на пÑовеÑоÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ñ ${je(m.phone)}. Ðвонок беÑплаÑнÑй, даже из-за гÑаниÑÑ: ÑеÑÐ²Ð¸Ñ ÑбÑоÑÐ¸Ñ ÐµÐ³Ð¾ до ÑоединениÑ. ÐодÑвеÑждение поÑвиÑÑÑ Ð·Ð´ÐµÑÑ Ð°Ð²ÑомаÑиÑеÑки.`,ne.textContent=`ÐÐ¾Ð¼ÐµÑ Ð´ÐµÐ¹ÑÑвиÑелен еÑÑ ${Math.max(0,Math.ceil((m.expiresAt-Date.now())/1e3))} Ñ.`)},ue=async()=>
843{if(h||!m||!ce()||Date.now()<g||v)return;let n=m;if(Date.now()>=n.expiresAt){b(),y(Fe(new A(`expired_challenge`)),!0),le();return}h=!0,g=Date.now()+5e3,le();try{let r=e.savedSession();if(n.binding!==await Ie(r)||re&&!r)throw new A(`link_session_changed`);let i=await t.verify(n.challengeId,re?r:void 0);if(v||m!==n)return;if(n.binding!==await Ie(e.savedSession()))throw new A(`link_session_changed`);if(v||m!==n||a.has(x(n.challengeId)))return;if(n.expiresAt<=Date.now())throw new A(`expired_challenge`);if(i.status===`pending`)g=Date.now()+i.retryAfterSeconds*1e3,y(`Ðжидаем звонок Ñ Ñказанного ÑелеÑона.`);else{a.add(x(n.challengeId)),o.get(ie)?.forEach(e=>e(n.challengeId));try{await e.finishSignIn(i.bearerToken)}catch{throw new A(`refresh_failed`)}y(re?`ТелеÑон подÑвеÑждÑн.`:`ÐÑ
од подÑвеÑждÑн.`),e.processTransfer()}}catch(e){if(v||m!==n&&m!==null)return;e instanceof A&&[`expired_challenge`,`unauthorized`,`link_session_changed`,`conflict`,`invalid_request`].includes(e.code)&&b(),g=Date.now()+Math.max(5,e instanceof A?e.retryAfterSeconds??5:5)*1e3,y(Fe(e),!0)}finally{h=!1,v||le()}},de=()=>{oe&&clearTimeout(oe),!v&&(m&&Date.now()>=m.expiresAt&&!h&&(b(),y(Fe(new A(`expired_challenge`)),!0)),le(),ue(),(m||h||ae>Date.now())&&(oe=setTimeout(de,1e3)))};i.push(de),c.addEventListener(`submit`,n=>{if(n.preventDefault(),h||Date.now()<ae)return;let r=k(u.value);if(u.setAttribute(`aria-invalid`,String(!r)),!r){y(Fe(new A(`invalid_phone`)),!0);return}let i=e.savedSession();if(re&&!i){y(Fe(new A(`unauthorized`)),!0);return}_++,h=!0,b(),ae=Date.now()+6e4,u.value=je(r),de(),y(`ÐолÑÑаем Ð½Ð¾Ð¼ÐµÑ Ð´Ð»Ñ Ð·Ð²Ð¾Ð½ÐºÐ°â¦`),(async()=>{try{let n=await Ie(i),a=await t.request(r,re?i:void 0);if(v)return;if(n!==await Ie(e.savedSession()))throw new A(`link_session_changed`);ae=Date.now()+a.resendAfterSeconds*1e3,m={challengeId:a.challengeId,callPhone:a.c
843allPhone,phone:r,expiresAt:Date.now()+a.expiresInSeconds*1e3,retryAt:ae,binding:n},g=Date.now()+5e3,se(),y(`ÐÐ¾Ð¼ÐµÑ Ð³Ð¾Ñов. ÐозвониÑе Ñ Ñказанного ÑелеÑона.`)}catch(e){e instanceof A&&e.retryAfterSeconds&&(ae=Date.now()+e.retryAfterSeconds*1e3),v||y(Fe(e),!0)}finally{h=!1,de()}})()}),l.addEventListener(`submit`,e=>{e.preventDefault(),ue()}),s.querySelector(`[data-family-phone-change]`).addEventListener(`click`,()=>{h||(_++,b(),y(`УкажиÑе Ñвой ÑелеÑон.`),de(),u.focus())}),u.addEventListener(`input`,()=>{h||(_++,b(),u.removeAttribute(`aria-invalid`),y(``),de())}),u.addEventListener(`blur`,()=>{let e=je(u.value);e&&(u.value=e)}),(async()=>{let t=_;try{let n=r.sessionStorage.getItem(ie);if(!n)return;let i=JSON.parse(n),o=await Ie(e.savedSession());if(t!==_||v)return;if(a.has(x(i?.challengeId))){b();return}if(!i||typeof i.challengeId!=`string`||!i.challengeId||!Me(i.callPhone)||typeof i.phone!=`string`||k(i.phone)!==i.phone||!Number.isSafeInteger(i.expiresAt)||i.expiresAt<=Date.now()||i.expiresAt>Date.now()+3e5||!Number.isSafeInteger(i.retryAt)||i.retryAt>i.expiresAt||i.binding!==o||re&&!e.savedSession()){b();return}m=i,ae=i.retryAt,g=Date.now()+5e3,u.value=je(i.phone),y(`ÐодÑвеÑждение воÑÑÑановлено. ÐозвониÑе Ñ Ñказанного ÑелеÑона.`),de()}catch{t===_&&b()}})();let fe=()=>{ce()&&de()};r.addEventListener(`focus`,fe),n.addEventListener(`visibilitychange`,fe),r.addEventListener(`pagehide`,e=>{e.persisted||(v=!0,oe&&clearTimeout(oe),r.removeEventListener(`focus`,fe),n.removeEventListener(`visibilitychange`,fe))},{once:!0})}let s=e.root.querySelectorAll(`[data-family-auth-tab]`);for(let t of s)t.addEventListener(`click`,()=>{for(let e of s)e.setAttribute(`aria-selected`,String(e===t)),e.tabIndex=e===t?0:-1;for(let n of e.root.querySelectorAll(`[data-family-auth-panel]`))n.hidden=n.dataset.familyAuthPanel!==t.dataset.familyAuthTab;i.forEach(e=>e())});for(let e of s)e.addEventListener(`keydown`,t=>{if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(t.key))return;t.preventDefault();let n=[...s],r=n.indexOf(e),i=t.key===`Home`?n[0]:t.key===`End`?n.at(-1):n[(r+(t.key===`ArrowRight`?1:n.length-1))%n.length];i?.click(),i?.focus()})}function Re(e){let t=e.lastIndexOf(`@`);if(t<1)return e;let n=(e,t,n)=>{e=Math.floor(n?e/700:e/2),e+=Math.floor(e/t);let r=0;for(;e>455;)e=Math.floor(e/35),r+=36;return r+Math.floor(36*e/(e+38))},r=e=>{if(!e.toLowerCase().startsWith(`xn--`))return e;let t=e.slice(4).toLowerCase();if(!/^[a-z0-9-]+$/u.test(t))return e;let r=t.lastIndexOf(`-`),i=r>=0?[...t.slice(0,r)]:[],a=r>=0?r+1:0,o=128,s=0,c=72;for(;a<t.length;){let r=s,l=1;for(let n=36;;n+=36){if(a>=t.length)return e;let r=t.charCodeAt(a++),i=r>=97?r-97:r>=48&&r<=57?r-22:36;if(i>=36)return e;s+=i*l;let o=n<=c?1:n>=c+26?26:n-c;if(i<o)break;if(l*=36-o,!Number.isSafeInteger(l)||!Number.isSafeInteger(s))return e}if(c=n(s-r,i.length+1,r===0),o+=Math.floor(s/(i.length+1)),s%=i.length+1,o>1114111||o>=55296&&o<=57343)return e;i.splice(s,0,String.fromCodePoint(o)),s++}return i.join(``)};try{return`${e.slice(0,t+1)}${e.slice(t+1).split(`.`).map(r).join(`.`)}`}catch{return e}}var ze={bestfurshet:`BestFurshet`,meat_cake:`ÐÑÑТоÑÑ`,meat_pizza_no_dough:`ÐÑÑÐиÑÑа`,pet_cake:`ÐоÑопÑÑ`,loft_pirate:`ÐоÑÑ ÐиÑаÑ`},j=e=>new Intl.NumberFormat(`ru-RU`,{style:`currency`,currency:`RUB`,minimumFractionDigits:0,maximumFractionDigits:2}).format(Number(e)/100),M=e=>(Number(e)/100).toLocaleString(`ru-RU`,{maximumFractionDigits:2}),Be=window.bestfurshetAppCartReady;Be&&await Be;for(let o of document.querySelectorAll(`[data-family-portal]`)){const __bfCheckoutRoot20261002=o,__bfCheckoutOwner20261002=()=>(q?B.getItem(d):z()),__bfCheckoutGuest20261002=()=>q;__bfCheckoutRoot20261002.dataset.familyCheckoutRecoveryBuild=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_RECOVERY_BUILD;const __bfRejectOrder20261002=async(__e,__key,__id,__session,__guest)=>{if(!(__e instanceof e)||!__bfCheckoutRecovery20261002.familySubmitRejectedBeforeWrite(__e))return false;__bfCheckoutRecovery20261002.clearRejectedFamilyPending({key:__key,operationId:__id,storage:sessionStorage,clearDurable:()=>{y(localStorage,__key,m,__id)}});Ze.hidden=true;Ot();if(__guest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__session){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return true}if(__e.code==='unauthorized')__bfFamilyQuoteSafety20261002.recoverFamilyQuoteSession(__e,{guest:__guest,requestSession:__session,readSession:z,forgetSession:()=>C.forgetSession(),sessionKey:R,local:localStorage,session:sessionStorage,signin:E,lines:k,notify:()=>window.dispatchEvent(new CustomEvent("bestfurshet:identity-updated"))});
843if(__e.code==='cart_changed'||__e.code==='catalog_changed'){await Ht().catch(()=>{});if(__guest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__session){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return true}}const __detail=__bfCheckoutRecovery20261002.familySubmitRejectionMessage(__e);He.textContent=__detail;F.textContent=__detail;return true};let m=o.dataset.apiOrigin;if(!m)continue;let h=JSON.parse(o.dataset.familySourceOrigins??`[]`);if(c(h[0]))continue;let g=new URL(window.location.href),_=g.searchParams.get(`from`),b=Object.hasOwn(ze,_??``)?_:o.dataset.hostingBrand,x=o.dataset.hostingBrand,S=(g.searchParams.get(`source`)??te(window)).slice(0,150);g.searchParams.has(`source`)&&(g.searchParams.delete(`source`),history.replaceState(null,``,g.pathname+g.search+g.hash));let ce=o.dataset.hostingBrand===`loft_pirate`||new URL(window.location.href).searchParams.get(`from`)===`loft_pirate`,C=r({apiOrigin:m}),w=f(m),pe=o.dataset.view===`cart`,me=o.dataset.durablePending===`true`,he=o.querySelector(`[data-family-status]`),ge=o.querySelector(`[data-family-guest]`),_e=o.querySelector(`[data-family-guest-lines]`),ve=o.querySelector(`[data-family-guest-total]`),E=o.querySelector(`[data-family-signin]`),Ce=o.querySelector(`[data-family-inside]`),Te=o.querySelector(`[data-family-email-form]`),Ee=o.querySelector(`[data-family-code-form]`),D=o.querySelector(`[data-family-profile-form]`),De=o.querySelector(`[data-family-profile-summary]`),Oe=o.querySelector(`[data-family-profile-edit]`),O=null,k=o.querySelector(`[data-family-lines]`),je=o.querySelector(`[data-family-empty]`),A=o.querySelector(`[data-family-total]`),Me=o.querySelector(`[data-family-weight]`),Ne=o.querySelector(`[data-family-bonus-choice]`),Pe=o.querySelector(`[data-family-use-bonuses]`),Fe=o.querySelector(`[data-family-bonus-choice-status]`),Ie=o.querySelector(`[data-family-orders]`),Be=o.querySelector(`[data-family-history-status]`),Ve=o.querySelector(`[data-family-checkout]`),N=o.querySelector(`[data-family-quote-form]`),He=o.querySelector(`[data-family-quote-result]`),P=o.querySelector(`[data-family-order-form]`),Ue=o.querySelector(`[data-family-payable]`),We=o.querySelector(`[data-family-payable-breakdown]`),Ge=o.querySelector(`[data-family-payable-total]`),Ke=o.querySelector(`[data-family-payable-note]`),F=o.querySelector(`[data-family-order-result]`),I=P.elements.namedItem(`email`),qe=o.querySelector(`[data-family-no-email-note]`),Je=o.querySelector(`[data-family-switch-email]`),Ye=o.querySelector(`[data-family-confirmation]`),Xe=o.querySelector(`[data-family-confirmation-message]`),Ze=o.querySelector(`[data-family-retry-order]`),Qe=o.querySelector(`[data-family-requisites]`),$e=P.elements.namedItem(`buyerKind`),et=P.elements.namedItem(`payment`),tt=P.elements.namedItem(`contactMessenger`),nt=P.elements.namedItem(`messengerContact`),L=N.elements.namedItem(`kind`),rt=N.elements.namedItem(`city`),it=N.elements.namedItem(`date`),at=N.elements.namedItem(`time`),ot=o.querySelector(`[data-family-event-time]`),st=N.elements.namedItem(`duration`),ct=N.elements.namedItem(`window`),lt=N.elements.namedItem(`address`),ut=N.elements.namedItem(`promoCode`),dt=o.querySelector(`[data-family-promotion]`),ft=o.querySelector(`[data-family-delivery-breakdown]`),pt=o.querySelector(`[data-family-address]`),mt=o.querySelector(`[data-family-loft-note]`),ht=o.dataset.addressToken??``,gt=L.querySelector(`option[value="delivery"]`),_t=()=>{let e=ct.value;ct.replaceChildren(...ne.filter(e=>e.interval===st.value).map(e=>{let t=document.createElement(`option`);return t.value=e.value,t.textContent=e.label,t})),[...ct.options].some(t=>t.value===e)&&(ct.value=e)};st.addEventListener(`change`,_t),_t(),Boolean(ht)?ie(lt,o.querySelector(`[data-family-address-suggestions]`),o.querySelector(`[data-family-address-status]`),rt,L,ht):(gt.disabled=!0,L.value=`pickup`,o.querySelector(`[data-family-address-status]`).textContent=`ÐдÑеÑнÑе подÑказки пока недоÑÑÑпнÑ.`);let R=`bestfurshet:family-session:v1`,z=()=>localStorage.getItem(R)??sessionStorage.getItem(R),B={getItem:e=>localStorage.getItem(e),setItem:(e,t)=>
843localStorage.setItem(e,t),removeItem:e=>localStorage.removeItem(e)},V=null,H=null,vt=null,U=null,W=null,G=!1,yt=0,bt=null,K=``,q=!1,J=!1,xt=()=>new Intl.DateTimeFormat(`en-CA`,{timeZone:`Europe/Moscow`,year:`numeric`,month:`2-digit`,day:`2-digit`}).format(new Date),St=()=>{try{if(q){let e=B.getItem(d);return p(e)?`bestfurshet:family-pending-guest-order:v1:${e.slice(0,16)}`:null}let e=z()?.split(`.`)[0];return e?`bestfurshet:family-pending-order:v1:${e}`:null}catch{return null}},Ct=e=>{try{return sessionStorage.getItem(e)}catch{return null}},wt=e=>e?Ct(e)??(me?v(localStorage,e,m):null):null,Tt=()=>{let e=St();if(e){let t=wt(e);try{sessionStorage.removeItem(e),sessionStorage.removeItem(e+`:request`)}catch{}me&&t&&y(localStorage,e,m,t)}Ze.hidden=!0},Et=(e,t,n)=>{ke(window,{goal:`order_submitted`,dedupeId:e.id,sourceBrand:b,hostingBrand:x,sourceHint:S}),e.paymentStatus===`paid`&&ke(window,{goal:`payment_success`,dedupeId:e.id,sourceBrand:b,hostingBrand:x,sourceHint:S});let r=n??e.buyer?.payment??``,i=(r===`tbank_card`||r===`robokassa_card`)&&e.paymentStatus!==`paid`&&e.status!==`cancelled`&&(!e.amendment||e.amendment.financial.requiresManagerPaymentReview===false);F.textContent=e.status===`cancelled`?`Ðаказ оÑменÑн. ÐÑовеÑÑÑе его ÑÑаÑÑÑ Ð² лиÑном кабинеÑе.`:e.paymentStatus===`paid`?`СпаÑибо за заказ! ÐплаÑа ${j(e.totalMinor??`0`)} полÑÑена. СкоÑо Ñ Ðами ÑвÑжеÑÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ.`:i?`ÐаÑвка ${e.id.slice(0,12)} ÑоÑ
Ñанена. СÑмма ${j(e.totalMinor??`0`)}. Ðжидаем онлайн-оплаÑÑ.`:`СпаÑибо за заÑвкÑ! СкоÑо Ñ Ðами ÑвÑжеÑÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ. ${e.totalMinor===null?`ÐÑог ÑÑоÑним пÑи ÑвÑзи.`:`СÑмма ${j(e.totalMinor)}.`}`,e.loyalty&&(F.textContent+=` СпиÑано ${M(e.loyalty.spendMinor)} бонÑÑов.${e.loyalty.earnMinor===null?``:` ÐаÑиÑление ожидаеÑÑÑ: ${M(e.loyalty.earnMinor)} бонÑÑов (${e.loyalty.earningRatePercent}%).`}`),P.hidden=!0,Ze.hidden=!0,W=null,G=!1,bt=i&&e.totalMinor?{operationId:t,orderId:e.id,amountMinor:e.totalMinor}:null,Ye.hidden=i||e.status===`cancelled`,o.dataset.guestOrderDone=q&&!i?`true`:`false`,o.querySelector(`[data-family-confirmation-account]`).hidden=q,Xe.textContent=`Ðаказ â ${e.id.slice(0,12)}. ${e.totalMinor===null?`ÐÑог ÑÑоÑÐ½Ð¸Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ.`:`СÑмма ${j(e.totalMinor)}.`} СкоÑо Ñ Ðами ÑвÑжеÑÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ.`,e.loyalty&&(BigInt(e.loyalty.spendMinor)>0n&&(Xe.textContent+=` СпиÑано ${M(e.loyalty.spendMinor)} бонÑÑов.`),e.loyalty.earnMinor!==null&&(Xe.textContent+=` ÐаÑиÑление ожидаеÑÑÑ: ${M(e.loyalty.earnMinor)} бонÑÑов (${e.loyalty.earningRatePercent}%).`));if(e.amendment){F.textContent=(e.status===`cancelled`?`Ðаказ оÑменÑн. `:``)+customerOrderCurrentSummary(e.amendment,j);Xe.textContent=(e.status===`cancelled`?`Ðаказ оÑменÑн. `:``)+customerOrderCurrentSummary(e.amendment,j);}},Dt=async()=>{const __bfRecoverySession=(__bfCheckoutOwner20261002()),__bfRecoveryGuest=__bfCheckoutGuest20261002();let e=St(),t=wt(e);if(!t)return!1;o.dataset.checkoutOpen=`true`,Ve.hidden=!1;let n;try{n=q?await C.loadGuestCombinedOrder(B.getItem(d),t):await C.loadCombinedOrder(t);;if(__bfRecoveryGuest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__bfRecoverySession){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return true;}if(!q&&n.status!==`cancelled`&&[`tbank_card`,`robokassa_card`].includes(n.buyer?.payment??``)){let e=await C.loadCombinedPaymentStatus(t,n.id).catch(()=>null);e&&(n={...n,paymentStatus:e.paymentStatus})}}catch{;if(__bfRecoveryGuest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__bfRecoverySession){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return true;}return F.textContent=e&&Ct(e+`:request`)?`Ðе ÑдалоÑÑ Ð¿Ð¾Ð´ÑвеÑдиÑÑ Ð·Ð°ÑвкÑ. ÐажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ Ð½Ð¸Ð¶Ðµ, ÑÑÐ¾Ð±Ñ Ð¿ÑовеÑиÑÑ Ð¸ завеÑÑиÑÑ ÐµÑ.`:`Ðе ÑдалоÑÑ Ð¿Ð¾Ð´ÑвеÑдиÑÑ Ð·Ð°ÐºÐ°Ð· поÑле повÑоÑного оÑкÑÑÑÐ¸Ñ Ð¿ÑиложениÑ. ÐÑовеÑÑÑе иÑÑоÑÐ¸Ñ Ð² кабинеÑе; еÑли денÑги ÑпиÑалиÑÑ, обÑаÑиÑеÑÑ Ð² поддеÑÐ¶ÐºÑ Ð´Ð¾ нового заказа.`,Ze.hidden=!e||!Ct(e+`:request`),!1};if(__bfRecoveryGuest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__bfRecoverySession){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return true;}return Et(n,t),bt||Tt(),q||await Q().catch(()=>
843{Z(`ÐаÑвка подÑвеÑждена, но коÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÐ° не ÑдалоÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ.`,!0)}),!0},Ot=()=>{yt++,W=null,P.hidden=!0,Ue.hidden=!0,ft.hidden=!0,He.textContent=`ÐаÑамеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð»Ð¸ÑÑ. ÐокажиÑе иÑог заново.`;for(let[e,t]of[...k.querySelectorAll(`[data-family-line-price]`)].entries()){let n=U?.lines[e];n&&(t.textContent=j((BigInt(n.unitMinor)*BigInt(n.quantity)).toString()))}},kt=()=>{let e=V?.loyalty?.availableMinor??V?.loyalty?.balanceMinor??`0`;Ne.hidden=!V?.items.length||BigInt(e)<=0n,Ne.hidden&&(G=!1),o.querySelector(`[data-family-cart-bonus-balance]`).textContent=`ÐоÑÑÑпно ${M(e)} бонÑÑов`,Pe.setAttribute(`aria-pressed`,String(G)),Pe.textContent=G?`ÐÑмениÑÑ ÑпиÑание`:`СпиÑаÑÑ Ð±Ð¾Ð½ÑÑÑ`,Fe.textContent=G?`СпиÑание вÑбÑано. РаÑÑÑиÑайÑе иÑог â покажем ÑÑÐ¼Ð¼Ñ ÑпиÑÐ°Ð½Ð¸Ñ Ð¸ оÑÑаÑок к оплаÑе.`:``};Pe.addEventListener(`click`,()=>{J||!V||fn.busy||(G=!G,Ot(),kt(),it.value&&(L.value!==`delivery`||re(lt))?N.requestSubmit():Fe.textContent=G?`ÐÑбеÑиÑе даÑÑ Ð¸ адÑÐµÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ â покажем ÑпиÑание по ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑоваÑÑ.`:``)});let At=()=>{let e=$e.value===`organization`,t=et.value,n=!!I.value.trim();Qe.hidden=!e,et.replaceChildren(...(e?[[`cash`,`ÐалиÑнÑе`],[`tbank_card`,`Т-Ðанк â онлайн`],[`robokassa_card`,`РобокаÑÑа â онлайн`],[`invoice_after_review`,`СÑÑÑ Ð½Ð° ÑаÑÑÑÑнÑй ÑÑÑÑ`]]:[[`cash`,`ÐалиÑнÑе`],[`tbank_card`,`Т-Ðанк â онлайн`],[`robokassa_card`,`РобокаÑÑа â онлайн`],[`transfer`,`ÐеÑевод поÑле подÑвеÑждениÑ`],[`qr`,`QR-код поÑле подÑвеÑждениÑ`],[`manager_link`,`СÑÑлка Ð¾Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑа`]]).map(([e,t])=>{let r=document.createElement(`option`);return r.value=e,r.disabled=e===`robokassa_card`&&!n,r.textContent=r.disabled?`РобокаÑÑа â нÑжна поÑÑа`:t,r})),[...et.options].some(e=>e.value===t&&!e.disabled)&&(et.value=t);for(let t of[`requisitesName`,`inn`,`requisitesAddress`,`requisitesConfirmed`])P.elements.namedItem(t).required=e};$e.addEventListener(`change`,At),I.addEventListener(`input`,At);let jt=()=>{nt.required=!1,nt.placeholder=tt.value===`ÐÐонÑакÑе`?`СÑÑлка на ÑÑÑаниÑÑ ÐÐонÑакÑе`:tt.value===`WhatsApp`?`+7 999 123-45-67`:tt.value?`@nickname или Ð½Ð¾Ð¼ÐµÑ ÑелеÑона`:`ÐапÑимеÑ, @nickname или +7 999 123-45-67`};tt.addEventListener(`change`,jt),jt(),At(),it.min=xt(),it.max=new Date(Date.now()+316224e5).toISOString().slice(0,10);let Mt=()=>{let e=V?.items.some(e=>e.brandKey===`loft_pirate`)??!1,t=V?.items.some(e=>e.brandKey!==`loft_pirate`)??!1;(o.querySelector(`[data-family-open-checkout]`).hidden=!V?.items.length,o.querySelector(`[data-family-open-checkout]`).disabled=!U||__bfFamilyChoiceRecovery20261003.familyCartChoicesRequired(U?.lines)),Ve.hidden=!V?.items.length&&!bt&&!wt(St()),N.hidden=(!U||!V?.items.length||__bfFamilyChoiceRecovery20261003.familyCartChoicesRequired(U?.lines)),e&&(L.value=t?`delivery`:`pickup`,rt.value=`spb`,mt.textContent=t?`ÐÐµÐ½Ñ Ð´Ð¾ÑÑавим в ÐоÑÑ ÐиÑÐ°Ñ Ð½Ð° РаÑÑÑаннÑÑ, 3. ÐоÑÑавка Ð¼ÐµÐ½Ñ Ð±ÐµÑплаÑнаÑ.`:`ÐÑенда ÐоÑÑа ÐиÑаÑ: РаÑÑÑаннаÑ, 3. ÐÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿Ð¾Ð´ÑвеÑÐ´Ð¸Ñ ÑвободнÑÑ Ð´Ð°ÑÑ.`),L.disabled=e,rt.disabled=e,mt.hidden=!e,ot.hidden=!(e||ce),at.required=e||ce,pt.hidden=e||L.value!==`delivery`,lt.required=!pt.hidden,st.disabled=pt.hidden,ct.disabled=pt.hidden;let n=V?.items.some(e=>e.brandKey!==`loft_pirate`)??!1;dt.hidden=!n,ut.disabled=!n};L.addEventListener(`change`,Mt),N.addEventListener(`input`,Ot),N.addEventListener(`change`,Ot);let Nt=[],Y,Pt=de(()=>C.hasSession()?z():null),X=o.querySelector(`[data-family-history-more]`),Ft=e=>{if(e)e=currentCustomerOrderHistory(o,z(),e);if(Ie.replaceChildren(),e===null){Be.textContent=`ÐÑÑоÑÐ¸Ñ Ð·Ð°Ñвок пока не ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ. ÐоÑзина доÑÑÑпна.`;return}if(!e.length){Be.textContent=`ÐаÑвок пока неÑ.`;return}Be.textContent=`Ðаказов показано: ${e.length}`;let t=new Intl.DateTimeFormat(`ru-RU`,{timeZone:`Europe/Moscow`,dateStyle:`medium`,timeStyle:`short`});Ie.replaceChildren(...e.map(e=>{let n=document.createElement(`article`);n.className=`family-portal__order`;if(e.amendment){appendCustomerOrderCurrent(n,e.amendment,j);if(e.status===`cancelled`){let cancelled=document.createElement(`p`);cancelled.textContent=`Ðаказ оÑменÑн`;n.append(cancelled);}if(!e.legacy)vt?.orderActions(n,e);return n;}let r=document.createElement(`div`);r.className=`family-portal__order-head`;let i=document.createElement(`h3`);i.textContent=t.format(new Date(e.createdAt));let a=document.createElement(`strong`);a.textContent=e.totalMinor===null?`СÑÐ¼Ð¼Ñ ÑÑоÑÐ½Ð¸Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ`:j(e.totalMinor),r.append(i,a);let o=document.createElement(`p`),s=[`tbank_card`,`robokassa_card`].includes(e.buyer?.payment??``);o.textContent=`${e.status===`cancelled`?`Ðаказ оÑменÑн · `:``}${e.paymentStatus===`paid`?`ÐплаÑено`:e.status===`cancelled`?`Ðе оплаÑен`:s?`Ðжидаем онлайн-оплаÑÑ`:`ÐплаÑа пÑи полÑÑении`} · ${e.lines.length} позиÑий`;let c=document.createElement(`p`);if(c.textContent=e.lines.map(e=>`${e.title} à ${e.quantity}`).join(` · `),n.append(r,o,c),e.loyalty){let t=document.createElement(`p`);t.textContent=e.status===`cancelled`?`ÐÑмена: ${M(e.loyalty.spendMinor)} ÑпиÑаннÑÑ
бонÑÑов возвÑаÑено; наÑиÑление за ÑÑÐ¾Ñ Ð·Ð°ÐºÐ°Ð· ÑнÑÑо.`:`ÐонÑÑÑ: ÑпиÑано ${M(e.loyalty.spendMinor)}${e.loyalty.earnMinor===null?``:` · бонÑÑÑ Ð·Ð° заказ ${M(e.loyalty.earnMinor)} (${e.loyalty.earningRatePercent}%)`}`,n.append(t)}return vt?.orderActions(n,e),n}))},Z=(e,t=!1)=>{he.textContent=e,he.hidden=!e,t?he.dataset.error=`true`:delete he.dataset.error},It=()=>{let e=o.querySelector(`[data-family-identity-email]`),t=o.querySelector(`[data-family-identity-phone]`),n=o.querySelector(`[data-family-identity-vk]`);!e||!t||!n||!V||(e.textContent=H?.email.linked?`ÐодклÑÑена${H.email.masked?` · ${H.email.masked}`:``}`:V.email?`ÐодклÑÑена`:`Ðе подклÑÑена`,t.textContent=H?.phone.linked?`ÐодклÑÑÑн${H.phone.masked?` · ${H.phone.masked}`:``}`:V.contactVerified?`ÐодклÑÑÑн`:`Ðе подклÑÑÑн`,n.textContent=H?H.vk.linked?`ÐодклÑÑÑн`:`Ðе подклÑÑÑн`:`ÐÑовеÑÑем ÑвÑзÑâ¦`)},Lt=t=>t instanceof e?t.code===`conflict`?`ÐоÑзина изменилаÑÑ Ð² дÑÑгой вкладке. ÐбновлÑем ÑоÑÑав â повÑоÑиÑе дейÑÑвие.`:t.code===`contact_required`?`ÐодÑвеÑдиÑе ÑелеÑон звонком в кабинеÑе.`:t.code===`email_required`?`ÐодÑвеÑдиÑе поÑÑÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð²Ñ
од в кабинеÑ.`:t.code===`invali
843d_code`?`Ðод не подоÑÑл или иÑÑÑк. ÐапÑоÑиÑе новÑй код.`:t.code===`rate_limited`?`СлиÑком много запÑоÑов. ÐопÑобÑйÑе позже.`:t.code===`promo_invalid`?t.message===t.code?`ÐÑомокод не дейÑÑвÑÐµÑ Ð´Ð»Ñ Ð²ÑбÑанной даÑÑ Ð¸Ð»Ð¸ ÑпоÑоба полÑÑениÑ.`:t.message:t.code===`minimum_quantity`?`ÐолиÑеÑÑво ниже минималÑного Ð´Ð»Ñ ÑÑого ÑоваÑа или набоÑа.`:t.code===`loyalty_changed`?`ÐÐ°Ð»Ð°Ð½Ñ Ð¸Ð»Ð¸ ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð½Ð°ÑиÑÐ»ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð»Ð¸ÑÑ. РаÑÑÑиÑайÑе иÑог заново.`:t.code===`checkout_pending`?`ÐÑедÑдÑÑÐ°Ñ Ð·Ð°Ñвка еÑÑ Ð¾Ð±ÑабаÑÑваеÑÑÑ. ÐовÑоÑиÑе пÑовеÑÐºÑ ÑеÑез паÑÑ Ð¼Ð¸Ð½ÑÑ.`:t.code===`order_aborted`?`Ðаказ не оÑоÑмлен. ÐÑовеÑÑÑе обновлÑннÑй ÑаÑÑÑÑ Ð¸ повÑоÑиÑе оÑоÑмление.`:`Ðе ÑдалоÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð´ÐµÐ¹ÑÑвие. ÐовÑоÑиÑе попÑÑкÑ.`:`Ðе ÑдалоÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð´ÐµÐ¹ÑÑвие. ÐовÑоÑиÑе попÑÑкÑ.`,Rt=((__bfPortalError)=>(()=>{if(!V)return;if(U&&(V.version!==U.version||V.items.length!==U.lines.length)){Z(`СоÑÑав коÑÐ·Ð¸Ð½Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ð»ÑÑ. ÐагÑÑзиÑе даннÑе еÑÑ Ñаз.`,!0);return}E.hidden=!0,ge.hidden=!0,Ce.hidden=!!V.emailRequired;let e=o.querySelector(`[data-family-email-link]`);e&&(e.hidden=!!Re(V.email??K),o.querySelector(`[data-family-email-link-title]`).textContent=V.emailRequired?`ÐодÑвеÑдиÑе поÑÑÑ Ð´Ð»Ñ ÑÑого кабинеÑа`:`ÐобавиÑÑ Ð¿Ð¾ÑÑÑ Ðº кабинеÑÑ`,o.querySelector(`[data-family-email-link-description]`).textContent=V.emailRequired?`ÐодÑвеÑдиÑе ÑелеÑон и поÑÑÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð²Ñ
од в ÑÑÐ¾Ñ ÐºÐ°Ð±Ð¸Ð½ÐµÑ.`:`ÐоÑÑа Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ заказаÑ
и вÑ
одиÑÑ ÐµÑÑ Ð¾Ð´Ð½Ð¸Ð¼ ÑпоÑобом. ÐÐ°ÐºÐ°Ð·Ñ Ð¸ бонÑÑÑ Ð¾ÑÑанÑÑÑÑ Ð² ÑÑом кабинеÑе.`,o.querySelector(`[data-family-onboarding-logout]`).hidden=!V.emailRequired,o.querySelector(`[data-family-verify-contact]`).hidden=!V.emailRequired||!!V.contactVerified,o.querySelector(`[data-family-link-email-request]`).hidden=!!V.emailRequired&&!V.contactVerified,V.emailRequired&&!V.contactVerified&&(o.querySelector(`[data-family-link-email-confirm]`).hidden=!0));if(U){A.textContent=j(U.subtotalMinor),je.hidden=U.lines.length!==0,Me.textContent=U.lines.length?`ÐÐµÑ ÑоваÑов: ${(U.weightGrams/1e3).toLocaleString(`ru-RU`)} кг${U.unknownWeights?` · Ð²ÐµÑ ÑаÑÑи ÑоваÑов ÑÑоÑнÑеÑÑÑ`:``}`:``,(k.replaceChildren(...U.lines.map((e,t)=>{let n=document.createElement(`article`);n.className=`family-portal__line`;let r=document.createElement(`div`),i=document.createElement(`small`),a=document.createElement(`h3`),o=document.createElement(`p`);i.textContent=ze[e.brandKey]??e.brandKey,a.textContent=e.title,o.textContent=[e.variant,...e.choices.map(e=>`${e.groupName}: ${e.valueLabel}`)].filter(Boolean).join(` · `),r.append(i,a,o);let s=document.createElement(`div`);s.className=`family-portal__line-controls`;let c=document.createElement(`strong`);c.dataset.familyLinePrice=``,c.textContent=j((BigInt(e.unitMinor)*BigInt(e.quantity)).toString()),s.append(c);for(let[n,r]of[[`decrease`,`â`],[`increase`,`+`],[`remove`,`УдалиÑÑ`]]){let i=document.createElement(`button`);i.type=`button`,i.textContent=r,i.dataset.familyAction=n,i.dataset.index=String(t),i.setAttribute(`aria-label`,`${r===`УдалиÑÑ`?`УдалиÑÑ`:r===`â`?`УменÑÑиÑÑ`:`УвелиÑиÑÑ`}: ${e.title}`);let a=U.lines.filter(t=>t.offerId===e.offerId).reduce((e,t)=>e+t.quantity,0);if((n===`decrease`&&(e.quantity<=e.minimumQuantity||a<=e.minimumTotalQuantity)||n===`increase`&&e.quantity>=99)&&(i.disabled=!0),s.append(i),n===`decrease`){let n=document.createElement(`input`);n.type=`number`,n.inputMode=`numeric`,n.min=String(Math.max(e.minimumQuantity,e.minimumTotalQuantity-(a-e.quantity))),n.max=`99`,n.step=`1`,n.value=String(e.quantity),n.dataset.familyQuantity=``,n.dataset.index=String(t),n.setAttribute(`aria-label`,`ÐолиÑеÑÑво: ${e.title}`),s.append(n)}}return n.append(Vt(e),r,s),n})),__bfFamilyChoiceRecovery20261003.attachFamilyCartChoiceRecovery({container:k,items:V.items,rows:U.lines,owner:dn(),version:V.version,currentOwner:dn,currentVersion:()=>V?.version,busy:()=>J||fn.busy||Wt.busy,save:(items,owner,version)=>
843{if(V?.version!==version||dn()!==owner)throw new Error('ÐоÑзина изменилаÑÑ. ÐбновиÑе ÐµÑ Ð¸ повÑоÑиÑе вÑбоÑ.');fn.enqueue({items,owner});}}));}else{A.textContent="â";Me.textContent="";je.hidden=true;let __bfNote=document.createElement("p"),__bfCount=document.createElement("p"),__bfRetry=document.createElement("button");__bfNote.textContent=o.dataset.familyCartLoadProblem||"ÐÑ
од подÑвеÑждÑн. РаÑÑÑÑ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÐ° недоÑÑÑпен. ÐÑоÑÐ¸Ð»Ñ Ð¸ иÑÑоÑÐ¸Ñ Ð´Ð¾ÑÑÑпнÑ, ÑоваÑÑ ÑоÑ
ÑаненÑ. ÐовÑоÑиÑе пÑовеÑÐºÑ ÐºÐ¾ÑзинÑ.";__bfCount.textContent="СоÑ
Ñанено позиÑий: "+V.items.length;__bfRetry.type="button";__bfRetry.textContent="ÐовÑоÑиÑÑ Ð¿ÑовеÑÐºÑ ÐºÐ¾ÑзинÑ";__bfRetry.dataset.familyCartRetry="";__bfRetry.addEventListener("click",()=>void Yt(Q));k.replaceChildren(__bfNote,__bfCount);let __bfActions=document.createElement("div");__bfActions.className="family-portal__line-controls";__bfActions.style.display="flex";__bfActions.style.justifyContent="flex-start";__bfActions.append(__bfRetry);k.append(__bfActions);if(V.items.length){let __bfClear=document.createElement("button");__bfClear.type="button";__bfClear.textContent="ÐÑиÑÑиÑÑ ÑоÑ
ÑанÑннÑÑ ÐºÐ¾ÑзинÑ";__bfClear.dataset.familyCartClear="";__bfClear.addEventListener("click",()=>{if(J||fn.busy||Wt.busy)return;let __bfOwner=dn(),__bfVersion=V?.version;if(!window.confirm("УдалиÑÑ Ð²Ñе ÑоваÑÑ Ð¸Ð· ÑоÑ
ÑанÑнной коÑзинÑ? ÐÑоÑÐ¸Ð»Ñ Ð¸ иÑÑоÑÐ¸Ñ Ð·Ð°ÐºÐ°Ð·Ð¾Ð² оÑÑанÑÑÑÑ."))return;void Yt(async()=>{if(!V||U||dn()!==__bfOwner||V.version!==__bfVersion)throw new __bfPortalError(409,"conflict");fn.enqueue({items:[],owner:__bfOwner});await fn.flush();await Q();if(V.items.length===0&&U)Z("ÐоÑзина оÑиÑена. ÐÑбеÑиÑе акÑÑалÑнÑе ÑоваÑÑ Ð² каÑалоге.")})});__bfActions.append(__bfClear)}}D.elements.namedItem(`displayName`).value=V.profile.displayName,D.elements.namedItem(`phone`).value=V.profile.phone,D.elements.namedItem(`email`).value=Re(V.email??K),D.elements.namedItem(`address`).value=V.profile.address??``,D.elements.namedItem(`birthDate`).value=V.profile.birthDate??``,O===null&&(O=!Object.values(V.profile).some(e=>e?.trim())),D.hidden=!O,De.hidden=!!O,Oe.hidden=!!O;for(let e of[`displayName`,`email`,`phone`,`address`,`birthDate`]){let t=e===`email`?Re(V.email??K):V.profile[e];e===`birthDate`&&t&&(t=t.split(`-`).reverse().join(`.`)),o.querySelector(`[data-
843profile-value="${e}"]`).textContent=t||`Ðе Ñказано`}let t=o.querySelector(`[data-family-email-link]`);t&&(t.hidden=!!Re(V.email??K)),o.querySelector(`[data-family-profile-phone-confirm]`).hidden=!!V.contactVerified,o.querySelector(`[data-family-profile-phone-confirmed]`).hidden=!V.contactVerified,It();for(let e of o.querySelectorAll(`[data-family-phone-login][data-mode=link]`)){let t=e.querySelector(`input[name=phone]`);t&&!t.value&&(t.value=V.profile.phone)}!lt.value&&V.profile.address&&(lt.value=V.profile.address),K=V.email??``,!I.value&&K&&(I.value=K),At();let n=V.loyalty;o.querySelector(`[data-family-bonus-balance]`).textContent=n?M(n.balanceMinor):`â`;let r=o.querySelector(`[data-family-bonus-pending]`);r.hidden=!n?.pendingEarnMinor||n.pendingEarnMinor===`0`,r.textContent=r.hidden?``:`ÐжидаÑÑ Ð½Ð°ÑиÑлениÑ: ${M(n.pendingEarnMinor)} бонÑÑов`;let i=o.querySelector(`[data-family-bonus-debt]`);i.hidden=!n?.debtMinor||n.debtMinor===`0`,i.textContent=i.hidden?``:`Ранее иÑполÑзовано ${M(n.debtMinor)} бонÑÑов, коÑоÑÑе ÑейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпнÑ. СледÑÑÑие наÑиÑÐ»ÐµÐ½Ð¸Ñ ÑнаÑала воÑÑÑановÑÑ Ð±Ð¾Ð½ÑÑнÑй баланÑ. ÐÑо не Ð´ÐµÐ½ÐµÐ¶Ð½Ð°Ñ Ð·Ð°Ð´Ð¾Ð»Ð¶ÐµÐ½Ð½Ð¾ÑÑÑ.`,o.querySelector(`[data-family-bonus-history]`).replaceChildren(...(n?.entries??[]).map(e=>{let t=document.createElement(`p`),n=Ae(e);return t.textContent=`${new Date(e.createdAt).toLocaleDateString(`ru-RU`)} · ${n.sign}${M(e.amountMinor)} · ${n.label}`,t})),document.querySelectorAll(`[data-family-cart-count]`).forEach(e=>{e.textContent=String(V.items.reduce((e,t)=>e+t.quantity,0))}),vt?.sync(),U&&vt?.cartActions(k,V,U),Mt(),kt();if(!U){o.querySelector("[data-family-quote-form]").hidden=true;P.hidden=true;o.querySelector("[data-family-payable]").hidden=true;o.querySelector("[data-family-open-checkout]").disabled=true;o.querySelector("[data-family-bonus-choice]")?.setAttribute("hidden","");};if(o.dataset.familyGuestImportProblem){let __bfNotice=document.createElement("p"),__bfDismiss=document.createElement("button");__bfNotice.textContent=o.dataset.familyGuestImportProblem;__bfDismiss.type="button";__bfDismiss.textContent="Ðе пеÑеноÑиÑÑ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ ÑÑого ÑÑÑÑойÑÑва";__bfDismiss.dataset.familyGuestDismiss="";__bfDismiss.addEventListener("click",()=>{if(J||fn.busy||Wt.busy)return;let __bfToken=B.getItem(d),__bfOwner=dn();if(!p(__bfToken)||!window.confirm("Ðе пеÑеноÑиÑÑ ÑÑÑ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ Ð² кабинеÑ? ÐÑ ÑодеÑжимое оÑÑанеÑÑÑ ÑоÑ
Ñанено; новÑе ÑоваÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ вÑбÑаÑÑ Ð² каÑалоге."))return;void Yt(async()=>{if(dn()!==__bfOwner||__bfToken!==B.getItem(d))throw new __bfPortalError(409,"conflict");B.setItem("bestfurshet:family-guest-import-dismissed:v1",__bfToken);B.setItem("bestfurshet:family-guest-import-archive:v1:"+__bfToken.slice(0,16),__bfToken);B.removeItem(d);delete o.dataset.familyGuestImportProblem;await Q()})});let __bfActions=document.createElement("div");__bfActions.className="family-portal__line-controls";__bfActions.style.display="flex";__bfActions.style.justifyContent="flex-start";__bfActions.append(__bfDismiss);k.append(__bfNotice,__bfActions)}}))(e),Q=async()=>{let t=z();H=null;let n=!pe&&o.dataset.familyIdentitiesEnabled===`true`?C.loadIdentities().catch(()=>null):Promise.resolve(null),r=Pt.restart();Y=void 0,X.disabled=!0,X.hidden=!0,yt++,W=null,P.hidden=!0,ft.hidden=!0,He.textContent=`ÐÑбеÑиÑе даÑÑ Ð¸ ÑпоÑоб полÑÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÑаÑÑÑÑа.`;let i=C.loadOrderHistoryPage().catch(()=>null),[a,s]=await(async()=>{delete o.dataset.familyCartLoadProblem;try{return await ue(C)}catch(__bfError){if(!(__bfError instanceof e)||__bfError.status===401||__bfError.status===403)throw __bfError;let __bfAccount=await C.loadAccount();o.dataset.familyCartLoadProblem=__bfError.code==="catalog_changed"?"ÐÐ°Ð±Ð¸Ð½ÐµÑ Ð¾ÑкÑÑÑ. РкоÑзине еÑÑÑ ÑоваÑÑ, коÑоÑÑе изменилиÑÑ. Ðни ÑоÑ
ÑаненÑ; вÑбеÑиÑе акÑÑалÑнÑе ваÑианÑÑ Ð¿ÐµÑед оÑоÑмлением.":"Ð
843Ñ
од подÑвеÑждÑн. РаÑÑÑÑ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÐ° недоÑÑÑпен. ÐÑоÑÐ¸Ð»Ñ Ð¸ иÑÑоÑÐ¸Ñ Ð´Ð¾ÑÑÑпнÑ, ÑоваÑÑ ÑоÑ
ÑаненÑ. ÐовÑоÑиÑе пÑовеÑÐºÑ ÐºÐ¾ÑзинÑ.";return[__bfAccount,null]}})();if(z()!==t||!C.hasSession()||!Pt.current(r))return;if(s&&(a.version!==s.version||a.items.length!==s.lines.length))throw new e(409,`conflict`);V=a,U=s,Rt(),n.then(e=>{e&&z()===t&&(H=e,It())});let c=await i;z()!==t||!C.hasSession()||!Pt.current(r)||(Nt=c?.orders??[],Y=c?.nextCursor,X.hidden=!Y,X.disabled=!1,Ft(c?Nt:null),Z(o.dataset.familyCartLoadProblem||o.dataset.familyGuestImportProblem||"",!!(o.dataset.familyCartLoadProblem||o.dataset.familyGuestImportProblem)),Ye.hidden||Ye.scrollIntoView({behavior:`smooth`,block:`center`}))};window.addEventListener(`bestfurshet:identity-updated`,()=>{let e=z();!e||!V||pe||o.dataset.familyIdentitiesEnabled!==`true`||C.loadIdentities().then(t=>{z()===e&&(H=t,It())}).catch(()=>{})});let zt=e=>JSON.stringify(e.map(({groupId:e,valueId:t})=>[e,t]).sort((e,t)=>JSON.stringify(e).localeCompare(JSON.stringify(t)))),Bt=e=>e.map(({brandKey:e,publicationId:t,variantId:n,offerId:r,quantity:i,choices:a})=>({brandKey:e,publicationId:t,variantId:n,offerId:r,quantity:i,choices:a.map(({groupId:e,valueId:t})=>({groupId:e,valueId:t}))})),Vt=e=>{let t=document.createElement(`div`);if(t.className=`family-portal__line-photo`,e.imageUrl)try{let n=new URL(e.imageUrl);if(n.protocol===`https:`&&!n.username&&!n.password){let r=document.createElement(`img`);r.src=n.href,r.alt=e.title,r.width=80,r.height=80,r.loading=`lazy`,r.decoding=`async`,r.referrerPolicy=`no-referrer`,t.append(r)}}catch{}return t},Ht=async()=>{if(q){let t=B.getItem(d);if(!p(t)||!w.quoteCart)throw new e(401,`unauthorized`);let[n,r]=await Promise.all([w.readCart(t),w.quoteCart(t)]);if(B.getItem(`bestfurshet:family:guest-token:v1`)!==t)return;if(!n.items||n.revision!==r.revision)throw new e(409,`conflict`);V={...V,version:n.revision,items:n.items},U={...r,version:r.revision}}else{let t=z(),[n,r]=await ue(C);if(z()!==t||!C.hasSession())return;if(n.version!==r.version||n.items.length!==r.lines.length)throw new e(409,`conflict`);V=n,U=r}Ot(),Rt()};vt=le({root:o,client:a({apiOrigin:m,getToken:z}),isSignedIn:()=>C.hasSession()&&!q,getSessionKey:z,getAccount:()=>V,refresh:Q,isCartBusy:()=>J||fn.busy||Wt.busy,mergeItems:async(e,t,n)=>{V=await C.mergeCart(n,e,t)}});let Ut=null,$=null,Wt=se({clone:e=>({...e,items:e.items.map(e=>({...e,choices:e.choices.map(e=>({...e}))}))}),preview:({items:e,owner:t})=>{if(t!==B.getItem(`bestfurshet:family:guest-token:v1`)||!Ut||!$)return;Ut={...Ut,items:e};let n=$.lines,r=e.map(e=>{let t=n.find(t=>t.brandKey===e.brandKey&&t.publicationId===e.publicationId&&t.variantId===e.variantId&&zt(t.choices)===zt(e.choices));return t?{...t,quantity:e.quantity}:null}).filter(e=>!!e);$={...$,lines:r,subtotalMinor:r.reduce((e,t)=>e+BigInt(t.unitMinor)*BigInt(t.quantity),0n).toString()},Kt()},save:async({items:t,owner:n})=>{let r=B.getItem(d);if(n!==r||!p(r)||!w.replaceCart||!Ut)throw new e(401,`unauthorized`);let i=await w.replaceCart(r,{expectedRevision:Ut.revision,operationId:crypto.randomUUID(),items:t});if(B.getItem(`bestfurshet:family:guest-token:v1`)!==r)throw new e(401,`unauthorized`);Ut={...Ut,revision:i.revision}},settled:async()=>{await Gt(),window.dispatchEvent(new CustomEvent(`bestfurshet:family-cart`))},failed:async e=>{await Gt().catch(()=>{}),Z(Lt(e),!0)}}),Gt=async()=>{if(!pe){ge.hidden=!0;let e=B.getItem(d);p(e)&&await fe({token:e,currentToken:()=>B.getItem(d),signedIn:()=>!!z(),readCart:e=>w.readCart(e),showCount:e=>document.querySelectorAll(`[data-family-cart-count]`).forEach(t=>{t.textContent=String(e)})});return}let t=B.getItem(d);if(!p(t)||!w.quoteCart){_e.replaceChildren(),ge.hidden=!1,ve.textContent=j(`0`),o.querySelector(`[data-family-guest-empty]`).hidden=!1,o.querySelector(`[data-family-guest-checkout]`).hidden=!0;return}let[n,r]=await Promise.all([w.readCart(t),w.quoteCart(t)]);if(B.getItem(`bestfurshet:family:guest-token:v1`)===t){if(!n.items||n.revision!==r.revision)throw new e(409,`conflict`);Ut={revision:n.revision,items:n.items},$=r,Kt()}},Kt=()=>{let e=$;e&&(document.querySelectorAll(`[data-family-cart-count]`).forEach(t=>{t.textContent=String(e.lines.reduce((e,t)=>
843e+t.quantity,0))}),ge.hidden=!1,o.querySelector(`[data-family-guest-empty]`).hidden=e.lines.length!==0,o.querySelector(`[data-family-guest-checkout]`).hidden=e.lines.length===0,ve.textContent=j(e.subtotalMinor),(_e.replaceChildren(...e.lines.map((t,n)=>{let r=document.createElement(`article`);r.className=`family-portal__line`;let i=document.createElement(`div`),a=document.createElement(`small`);a.textContent=ze[t.brandKey]??t.brandKey;let o=document.createElement(`h3`);o.textContent=t.title;let s=document.createElement(`p`);s.textContent=[t.variant,...t.choices.map(e=>`${e.groupName}: ${e.valueLabel}`)].filter(Boolean).join(` · `),i.append(a,o,s),r.append(Vt(t),i);let c=document.createElement(`div`);c.className=`family-portal__line-controls`;let l=document.createElement(`strong`);l.textContent=j((BigInt(t.unitMinor)*BigInt(t.quantity)).toString()),c.append(l);for(let[r,i]of[[`decrease`,`â`],[`increase`,`+`],[`remove`,`УдалиÑÑ`]]){let a=document.createElement(`button`);a.type=`button`,a.textContent=i,a.setAttribute(`aria-label`,`${r===`remove`?`УдалиÑÑ`:r===`decrease`?`УменÑÑиÑÑ`:`УвелиÑиÑÑ`}: ${t.title}`);let o=e.lines.filter(e=>e.offerId===t.offerId).reduce((e,t)=>e+t.quantity,0);if(a.disabled=r===`decrease`&&(t.quantity<=t.minimumQuantity||o<=t.minimumTotalQuantity)||r===`increase`&&t.quantity>=99,a.dataset.guestQuantityAction=r,a.dataset.index=String(n),c.append(a),r===`decrease`){let e=document.createElement(`input`);e.type=`number`,e.inputMode=`numeric`,e.min=String(Math.max(t.minimumQuantity,t.minimumTotalQuantity-(o-t.quantity))),e.max=`99`,e.step=`1`,e.value=String(t.quantity),e.dataset.guestQuantity=``,e.dataset.index=String(n),e.setAttribute(`aria-label`,`ÐолиÑеÑÑво: ${t.title}`),c.append(e)}}return r.append(c),r})),Ut&&__bfFamilyChoiceRecovery20261003.attachFamilyCartChoiceRecovery({container:_e,items:Ut.items,rows:e.lines,owner:B.getItem(d),version:Ut.revision,currentOwner:()=>B.getItem(d),currentVersion:()=>Ut?.revision,busy:()=>J||fn.busy||Wt.busy,save:(items,owner,version)=>{if(Ut?.revision!==version||B.getItem(d)!==owner)throw new Error('ÐоÑзина изменилаÑÑ. ÐбновиÑе ÐµÑ Ð¸ повÑоÑиÑе вÑбоÑ.');Wt.enqueue({items,owner});}}),o.querySelector('[data-family-guest-checkout]').disabled=__bfFamilyChoiceRecovery20261003.familyCartChoicesRequired(e.lines)))},qt=(e,t,n=!1)=>
843{if(J||!Ut||!$)return;let r=$.lines[e];if(!r)return;let i=e,a=$.lines.filter((t,n)=>n!==e&&t.offerId===r.offerId).reduce((e,t)=>e+t.quantity,0),o=Math.max(r.minimumQuantity,r.minimumTotalQuantity-a),s=Bt($.lines);if(n)s.splice(i,1);else{if(!Number.isSafeInteger(t)||t<o||t>99){Z(`ÐолиÑеÑÑво: Ð¾Ñ ${o} до 99.`,!0),Kt();return}s[i].quantity=t}Wt.enqueue({items:s,owner:B.getItem(d)})};__bfCartLineControls20261002.installFamilyCartLineControls({container:_e,buttonSelector:"button[data-guest-quantity-action]",quantitySelector:"input[data-guest-quantity]",action:e=>e.dataset.guestQuantityAction,readQuantity:e=>$?.lines[e]?.quantity,changeQuantity:qt});let Jt=async()=>{let __bfGuestToken=B.getItem(d);delete o.dataset.familyGuestImportProblem;if(!p(__bfGuestToken)||B.getItem("bestfurshet:family-guest-import-dismissed:v1")===__bfGuestToken)return;try{V=await C.importGuest(__bfGuestToken);ge.hidden=true}catch(__bfError){if(!(__bfError instanceof e)||__bfError.status===401||__bfError.status===403)throw __bfError;o.dataset.familyGuestImportProblem=__bfError.code==="catalog_changed"?"ÐÑ
од подÑвеÑждÑн. РкоÑзине на ÑÑом ÑÑÑÑойÑÑве еÑÑÑ ÑоваÑÑ Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð²ÑимÑÑ ÑоÑмаÑом. ÐеÑÐµÐ½Ð¾Ñ Ð½Ðµ завеÑÑÑн; ÑоваÑÑ ÑоÑ
ÑаненÑ.":__bfError.code==="outcome_unknown"?"ÐÑ
од подÑвеÑждÑн. РезÑлÑÑÐ°Ñ Ð¿ÐµÑеноÑа коÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÐ° неизвеÑÑен. ТоваÑÑ ÑоÑ
ÑаненÑ; повÑоÑÐ½Ð°Ñ Ð¾ÑпÑавка авÑомаÑиÑеÑки не вÑполнÑеÑÑÑ.":"ÐÑ
од подÑвеÑждÑн. ÐеÑÐµÐ½Ð¾Ñ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ Ð²Ñеменно недоÑÑÑпен. ТоваÑÑ Ð½Ð° ÑÑом ÑÑÑÑойÑÑве ÑоÑ
ÑаненÑ."}},Yt=async(t,n=`change`)=>{if(J||fn.busy||Wt.busy){Z(`ÐоÑзина ÑоÑ
ÑанÑеÑÑÑ. ÐодождиÑе ÑекÑндÑ.`);return}J=!0,o.setAttribute(`aria-busy`,`true`),Z(`СоÑ
ÑанÑемâ¦`);try{await t()}catch(t){if(t instanceof e&&t.code===`conflict`&&await(C.hasSession()?Q():Gt()).catch(()=>{}),t instanceof e&&t.code===`outcome_unknown`){if(n===`request-code`){Z(`СвÑÐ·Ñ Ð¿ÑеÑвалаÑÑ. Ðод мог бÑÑÑ Ð¾ÑпÑавлен â пÑовеÑÑÑе поÑÑÑ Ð¿ÐµÑед повÑоÑнÑм запÑоÑом.`,!0);return}let e=await(C.hasSession()?Q():Gt()).then(()=>!0,()=>!1);Z(e?`СвÑÐ·Ñ Ð¿ÑеÑвалаÑÑ. ÐÑовеÑÑÑе показаннÑе даннÑе пеÑед повÑоÑнÑм дейÑÑвием.`:`СвÑÐ·Ñ Ð¿ÑеÑвалаÑÑ. СоÑÑоÑние не ÑдалоÑÑ Ð¿ÑовеÑиÑÑ; попÑобÑйÑе обновиÑÑ ÐºÐ°Ð±Ð¸Ð½ÐµÑ.`,!0);return}Z(Lt(t),!0)}finally{J=!1,o.removeAttribute(`aria-busy`)}};X.addEventListener(`click`,()=>{if(!Y||J)return;let e=Pt.next();if(!e)return;let t=Y;X.disabled=!0,C.loadOrderHistoryPage(t).then(n=>{if(!Pt.current(e)||Y!==t)return;let r=new Set(Nt.map(e=>e.id));Nt.push(...n.orders.filter(e=>!r.has(e.id))),Y=n.nextCursor,X.hidden=!Y,Ft(Nt)}).catch(t=>{Pt.current(e)&&(Be.textContent=Lt(t))}).finally(()=>{Pt.finish(e)&&(X.disabled=!1)})});let Xt=()=>{E.hidden=!1,E.scrollIntoView({behavior:`smooth`,block:`center`}),Te.elements.namedItem(`email`).focus(),Z(`ÐойдиÑе в кабинеÑ, ÑÑÐ¾Ð±Ñ ÑоÑ
ÑаниÑÑ Ð·Ð°ÐºÐ°Ð· в иÑÑоÑии и полÑÑиÑÑ Ð±Ð¾Ð½ÑÑÑ.`)};o.querySelector(`[data-family-guest-login]`).addEventListener(`click`,Xt),Je.addEventListener(`click`,Xt),o.querySelector(`[data-family-guest-checkout]`).addEventListener(`click`,()=>{if(__bfFamilyChoiceRecovery20261003.familyCartChoicesRequired($?.lines)){Z('ÐÑбеÑиÑе ваÑианÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑоваÑа в коÑзине.',true);return;}if(Wt.busy){Z(`ÐолиÑеÑÑво ÑоÑ
ÑанÑеÑÑÑ. ÐодождиÑе ÑекÑÐ½Ð´Ñ Ð¸ пÑодолжиÑе.`);return}Yt(async()=>{let t=B.getItem(d);if(!p(t)||!w.quoteCart)throw new e(401,`unauthorized`);let[n,r]=await Promise.all([w.readCart(t),w.quoteCart(t)]);if(!n.items?.length||n.revision!==r.revision)throw new e(409,`conflict`);q=!0,G=!1,V={version:n.revision,items:n.items,profile:{displayName:``,phone:``}},U={...r,version:r.revision},o.dataset.guestCheckout=`true`,I.value=``,I.required=!1,I.closest(`label`).hidden=!0,qe.hidden=!1,At(),Rt(),o.dataset.checkoutOpen=`true`,Mt(),Ve.scrollIntoView({behavior:`smooth`,block:`start`}),Z(`УкажиÑе даÑÑ, адÑÐµÑ Ð¸ ÑелеÑон. ÐÑог покажем до оÑпÑавки заказа.`)})}),o.querySelector(`[data-family-open-checkout]`).addEventListener(`click`,()=>{o.dataset.checkoutOpen=`true`,Mt(),Ve.scrollIntoView({behavior:`smooth`,block:`start`})});let Zt=new Map,Qt=new Map,$t=!1,en=(e,t)=>{try{e.source?.postMessage({protocol:i,operationId:e.operationId,status:t},e.origin)}catch{}},tn=async()=>
843{if($t||J||!V||!C.hasSession())return;let t=Zt.values().next().value;if(t){$t=!0,J=!0,o.setAttribute(`aria-busy`,`true`),Z(`ÐобавлÑем ÑоваÑÑ Ð² обÑÑÑ ÐºÐ¾ÑзинÑâ¦`);try{t.expectedVersion??=V.version,V=await C.mergeCart(t.expectedVersion,t.items,t.operationId),await Q().catch(()=>{Z(`ÐаÑвка ÑоÑ
Ñанена, но коÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÐ° не ÑдалоÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ.`,!0)}),Zt.delete(t.operationId),Qt.set(t.operationId,JSON.stringify(t.items)),Qt.size>128&&Qt.delete(Qt.keys().next().value),en(t,`applied`),Z(`ТоваÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð² обÑÑÑ ÐºÐ¾ÑзинÑ.`)}catch(n){n instanceof e&&(n.code===`outcome_unknown`||n.code===`unavailable`)?Z(`СвÑÐ·Ñ Ð¿ÑеÑвалаÑÑ. ÐÑовеÑÑем пеÑÐµÐ½Ð¾Ñ Ð¿Ñи ÑледÑÑÑем оÑвеÑе ÑайÑа.`,!0):(Zt.delete(t.operationId),en(t,`failed`),Z(Lt(n),!0))}finally{$t=!1,J=!1,o.removeAttribute(`aria-busy`)}}};window.addEventListener(`message`,e=>{let r=n(e.origin,h);if(!r||!e.source)return;let i;try{i=t(e.data)}catch{return}if(i.items.some(e=>e.brandKey!==r))return;let a=Qt.get(i.operationId);if(a){a===JSON.stringify(i.items)&&en({...i,origin:e.origin,source:e.source,expectedVersion:null},`applied`);return}let o=Zt.get(i.operationId);if(!(o&&JSON.stringify(o.items)!==JSON.stringify(i.items))){if(!o){if(Zt.size>=4)return;Zt.set(i.operationId,{...i,origin:e.origin,source:e.source,expectedVersion:null})}en(Zt.get(i.operationId),`received`),C.hasSession()?tn():(E.hidden=!1,Z(`ÐойдиÑе, ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ Ð²ÑбÑаннÑе ÑоваÑÑ Ð² обÑÑÑ ÐºÐ¾ÑзинÑ.`))}});let nn=async e=>{C.restoreSession(e);try{localStorage.setItem(R,e),sessionStorage.removeItem(R)}catch{sessionStorage.setItem(R,e)}if(q=!1,o.dataset.guestCheckout=`false`,o.dataset.guestOrderDone=`false`,K=``,I.value=``,I.required=!1,I.closest(`label`).hidden=!1,qe.hidden=!0,At(),o.dataset.checkoutOpen=`true`,await Jt(),await Q(),await Dt(),location.origin!==h[0]){let e=new URL(`/family-sync/`,h[0]);e.searchParams.set(`target`,location.origin),e.searchParams.set(`next`,location.pathname+location.search),location.replace(s(h[0],location.origin,e.pathname+e.search,h))}};Le({root:o,apiOrigin:m,savedSession:z,finishSignIn:nn,processTransfer:tn}),o.dataset.vkMiniApp===`true`&&o.addEventListener(`bestfurshet:vk-authenticated`,e=>{let t=e.detail?.bearerToken;typeof t!=`string`||!/^[0-9a-f-]{36}\.[A-Za-z0-9_-]{43}$/iu.test(t)||Yt(async()=>{await nn(t),Z(`ÐÑ
од ÑеÑез ÐÐонÑакÑе подÑвеÑждÑн.`)})});let rn=Promise.resolve(),an=ye(navigator.userAgent),on=matchMedia(`(display-mode: standalone)`).matches||navigator.standalone===!0;if(be({enabled:o.dataset.vkidEnabled===`true`,androidEnabled:o.dataset.vkidAndroidEnabled===`true`,standaloneEnabled:o.dataset.vkidStandaloneEnabled===`true`,userAgent:navigator.userAgent,standalone:on}))try{let e=new URL(an?o.dataset.vkidAndroidRedirectUri:o.dataset.vkidRedirectUri,location.href);if(e.origin!==location.origin&&an){if(e.origin!==h[0])throw new T(`configuration`);let t=s(e.origin,location.origin,`/app/account/`,h);for(let e of[`[data-family-vkid-signin]`,`[data-family-vkid-link]`]){let n=o.querySelector(e);n&&(n.textContent=`ÐÑодолжиÑÑ Ð² едином пÑиложении`,n.addEventListener(`click`,()=>location.assign(t)))}for(let e of[`[data-family-vkid-signin-status]`,`[data-family-vkid-link-status]`]){let t=o.querySelector(e);t&&(t.textContent=`ÐÑкÑоеÑÑÑ ÐµÐ´Ð¸Ð½Ñй ÐºÐ°Ð±Ð¸Ð½ÐµÑ Ð¿ÑиложениÑ. ÐÑбеÑиÑе ÐÐонÑакÑе Ð´Ð»Ñ Ð²Ñ
ода или пÑивÑзки â коÑзина и бонÑÑÑ ÑоÑ
ÑанÑÑÑÑ.`)}}else{if(e.origin!==location.origin)throw new T(`configuration`);let t=__bfVkRecovery20261006.create({apiOrigin:m,appId:o.dataset.vkidAppId,redirectUri:e.href,sdkUrl:Se,androidNative:an,storage:sessionStorage,getBearer:z,onSignIn:nn,replaceUrl:e=>history.replaceState(null,document.title,e),standalone:(matchMedia("(display-mode: standalone)").matches||navigator.standalone===true),recoveryStorage:__bfVkRecovery20261006.recoveryStore(an||(matchMedia("(display-mode: standalone)").matches||navigator.standalone===true))},T),n=o.querySelector(`[data-family-vkid-signin]`),r=o.querySelector(`[data-family-vkid-signin-status]`),i=o.querySelector(`[data-family-vkid-link]`),a=o.querySelector(`[data-family-vkid-link-status]`),s=e=>e instanceof T&&e.code===`conflict`?`ÐÑÐ¾Ñ Ð¿ÑоÑÐ¸Ð»Ñ VK ID Ñже ÑвÑзан Ñ Ð´ÑÑгим кабинеÑом. ÐбÑаÑиÑеÑÑ Ð² поддеÑÐ¶ÐºÑ Ð±Ð¾Ð½ÑÑного кабинеÑа.`:e instanceof T&&e.code===`rate_limited`?`СлиÑком много попÑÑок. ÐодождиÑе немного и повÑоÑиÑе.`:e instanceof T&&e.code===`account_changed`?`Ðо вÑÐµÐ¼Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ ÑменилÑÑ ÐºÐ°Ð±Ð¸Ð½ÐµÑ. ÐаÑниÑе пÑивÑÐ·ÐºÑ Ð·Ð°Ð½Ð¾Ð²Ð¾ из нÑжного кабинеÑа.`:e instanceof T&&e.code===`network`?`ÐÐµÑ ÑвÑзи Ñ ÑеÑвеÑом. ÐÑовеÑÑÑе инÑеÑÐ½ÐµÑ Ð¸ повÑоÑиÑе.`:`Ðе ÑдалоÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð²Ñ
од ÑеÑез VK ID. ÐопÑобÑйÑе еÑÑ Ñаз.`;n?.addEventListener(`click`,()=>{!r||n.disabled||(n.disabled=!0,r.textContent=`ÐеÑеÑ
одим к подÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ VK IDâ¦`,t.start(`signin`).catch(e=>{r.textContent=s(e),n.disabled=!1}))}),i?.addEventListener(`click`,()=>{!a||i.disabled||(i.disabled=!0,a.textContent=`ÐеÑеÑ
одим к подÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ VK IDâ¦`,t.start(`link`).catch(e=>{a.textContent=s(e),i.disabled=!1}))}),rn=t.callback(new URL(location.href)).then(e=>{e===`signin`&&r&&(r.textContent=`ÐÑ
од ÑеÑез ÐÐонÑакÑе подÑвеÑждÑн.`),e===`link`&&(window.dispatchEvent(new CustomEvent(`bestfurshet:identity-updated`)),a&&(a.textContent=`ÐÐонÑакÑе ÑвÑзан Ñ ÑÑим кабинеÑом. Ðаказ
843Ñ Ð¸ бонÑÑÑ ÑоÑ
ÑаненÑ.`))}).catch(e=>{let t=e instanceof T&&e.action===`link`?a??r:r??a;t&&(t.textContent=s(e))}).finally(()=>{n&&(n.disabled=!1),i&&(i.disabled=!1)})}}catch{o.querySelector(`[data-family-vkid-signin-status]`)?.replaceChildren(document.createTextNode(`ÐÑ
од ÑеÑез VK ID пока не наÑÑÑоен.`))}else o.querySelectorAll(`[data-family-vkid]`).forEach(e=>{e.hidden=!0,e.matches(`[role="tab"]`)&&e.removeAttribute(`data-family-auth-tab`)});let sn=o.querySelector(`[data-family-link-email-request]`),cn=o.querySelector(`[data-family-link-email-confirm]`),ln=o.querySelector(`[data-family-link-email-status]`);o.querySelector(`[data-family-onboarding-logout]`)?.addEventListener(`click`,()=>{Yt(async()=>{await C.logout(),Tt(),localStorage.removeItem(R),sessionStorage.removeItem(R),location.reload()})});let un=``;sn?.addEventListener(`submit`,e=>{e.preventDefault(),un=sn.elements.namedItem(`email`).value.trim(),Yt(async()=>{await C.requestCode(un),cn.hidden=!1,ln.textContent=`Ðод оÑпÑавлен. ÐÑовеÑÑÑе поÑÑÑ.`},`request-code`)}),cn?.addEventListener(`submit`,t=>{t.preventDefault();let n=cn.elements.namedItem(`code`).value;Yt(async()=>{try{await C.linkEmail(un,n)}catch(t){if(t instanceof e&&t.code===`conflict`){ln.textContent=`ÐÑа поÑÑа Ñже пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ Ð´ÑÑÐ³Ð¾Ð¼Ñ ÐºÐ°Ð±Ð¸Ð½ÐµÑÑ. ÐойдиÑе в него по ÐºÐ¾Ð´Ñ Ð¸Ð»Ð¸ обÑаÑиÑеÑÑ Ðº менеджеÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки.`,Z(`Ðе ÑдалоÑÑ Ð¿ÑивÑзаÑÑ Ð¿Ð¾ÑÑÑ Ðº ÑÑÐ¾Ð¼Ñ ÐºÐ°Ð±Ð¸Ð½ÐµÑÑ.`,!0);return}throw t}await Q(),ln.textContent=`ÐоÑÑа пÑивÑзана к ÑÑÐ¾Ð¼Ñ ÐºÐ°Ð±Ð¸Ð½ÐµÑÑ.`})}),Te.addEventListener(`submit`,e=>{e.preventDefault(),K=Te.elements.namedItem(`email`).value.trim(),Yt(async()=>{await C.requestCode(K),Ee.hidden=!1,Z(`Ðод оÑпÑавлен. ÐÑовеÑÑÑе поÑÑÑ.`),Ee.elements.namedItem(`code`).focus()},`request-code`)}),Ee.addEventListener(`submit`,e=>{e.preventDefault();let t=Ee.elements.namedItem(`code`).value;Yt(async()=>{let e=await C.verifyCode(K,t);await nn(e)}).then(()=>{tn()})}),D.addEventListener(`submit`,e=>{if(e.preventDefault(),!V)return;let t={displayName:D.elements.namedItem(`displayName`).value.trim(),phone:D.elements.namedItem(`phone`).value.trim(),address:D.elements.namedItem(`address`).value.trim(),birthDate:D.elements.namedItem(`birthDate`).value};Yt(async()=>{V=await C.saveProfile(V.version,t),O=!1,await Q(),Z(`ÐаннÑе ÑоÑ
ÑаненÑ.`)})}),Oe.addEventListener(`click`,()=>{O=!0,Rt(),D.elements.namedItem(`displayName`).focus()}),o.querySelector(`[data-family-profile-cancel]`).addEventListener(`click`,()=>{O=!1,Rt()}),N.addEventListener(`submit`,t=>{if(__bfFamilyChoiceRecovery20261003.familyCartChoicesRequired(U?.lines)){t.preventDefault();He.textContent='ÐÑбеÑиÑе ваÑианÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑоваÑа в коÑзине.';return;}if(t.preventDefault(),!V?.items.length||J||fn.busy||(it.min=xt(),!N.reportValidity()))return;if(__bfCheckoutRecovery20261002.familyCheckoutSessionStale(__bfCheckoutRoot20261002)){Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}let n=V.items.some(e=>e.brandKey===`loft_pirate`),r=V.items.some(e=>e.brandKey!==`loft_pirate`),i=ct.value,a=n||ce?at.value:``,s={kind:L.value,city:rt.value,date:it.value,time:a,address:``}
843,__bfDetailsSnapshot;if(n&&r)s.address=`СанкÑ-ÐеÑеÑбÑÑг, РаÑÑÑÐ°Ð½Ð½Ð°Ñ ÑлиÑа, 3`,s.selection={longitude:30.34253,latitude:59.908222,quality:0,fiasId:``,window:i};else if(L.value===`delivery`){let e=re(lt);if(!e||e.city!==rt.value){lt.setCustomValidity(`ÐÑбеÑиÑе ÑоÑнÑй адÑÐµÑ Ñ Ð½Ð¾Ð¼ÐµÑом дома из ÑпиÑка.`),lt.reportValidity();return}try{lt.setCustomValidity(``),s.address=(__bfDetailsSnapshot=__bfAddressDetails20261002.captureDeliveryAddressDetails(lt,N,e.value)).address,s.selection={longitude:e.longitude,latitude:e.latitude,quality:e.quality,fiasId:e.fiasId,window:i,...(e.pricingMode?{pricingMode:e.pricingMode}:{}),...(e.proof?{proof:e.proof}:{})}}catch{N.reportValidity();return}}let c=ut.value.trim()?{code:ut.value.trim()}:void 0,l=G,u=++yt,ee=q?B.getItem(d):z();J=!0,Pe.disabled=!0,N.setAttribute(`aria-busy`,`true`),W=null,P.hidden=!0,Ue.hidden=!0,He.textContent=`СÑиÑаем ÑÑоимоÑÑÑâ¦`,__bfFamilyQuoteSafety20261002.quoteWithFreshFamilyAddress({fulfillment:s,addressEndpoint:o.dataset.addressToken??"",isCurrent:()=>u===yt&&(q?B.getItem(`bestfurshet:family:guest-token:v1`):z())===ee,send:()=>__bfFamilyQuoteRetry20261002.retryFamilyQuoteOnce({isCurrent:()=>u===yt&&(q?B.getItem(`bestfurshet:family:guest-token:v1`):z())===ee,send:()=>q?C.quoteGuestCombinedOrder(ee,s,c):C.quoteCombinedOrder(s,c,l)})}).then(t=>{if(u!==yt)return;if((q?B.getItem(`bestfurshet:family:guest-token:v1`):z())!==ee||!q&&!C.hasSession()){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}__bfFamilyQuoteRender20261002.assertFamilyQuoteRenderable(t);__bfFamilyQuoteRender20261002.assertFamilyQuoteLines(U?.lines);if(!V||t.accountVersion!==V.version)throw new e(409,`conflict`);W={preview:t,fulfillment:s,useBonuses:l,...c?{promotion:c}:{}
843,...(__bfDetailsSnapshot?{deliveryDetails:__bfDetailsSnapshot.details}:{}),requestSession:ee};for(let[e,n]of[...k.querySelectorAll(`[data-family-line-price]`)].entries()){let r=U?.lines[e];if(!r)continue;let i=t.lines.findIndex(e=>e.brandKey===r.brandKey&&e.publicationId===r.publicationId&&e.variantId===r.variantId&&zt(e.choices)===zt(r.choices)),a=BigInt(r.unitMinor)*BigInt(r.quantity),o=BigInt(i<0?`0`:t.loyalty?.redemption?.lineSpendMinor[i]??`0`);if(n.replaceChildren(),o>0n&&o<=a){let e=document.createElement(`del`);e.textContent=j(a.toString()),n.append(e,document.createTextNode(j((a-o).toString())));let t=document.createElement(`small`);t.textContent=` · бонÑÑÑ â${j(o.toString())}`,n.append(t)}else n.textContent=j(a.toString())}let n=t.delivery;ft.hidden=!n,n&&(o.querySelector(`[data-family-delivery-zone]`).textContent=n.title,o.querySelector(`[data-family-delivery-base]`).textContent=j(n.baseMinor),o.querySelector(`[data-family-delivery-interval]`).textContent=j(n.intervalMinor),o.querySelector("[data-family-delivery-same-day]").textContent=j(n.sameDayMinor??"0"),o.querySelector(`[data-family-delivery-weight]`).textContent=j(n.weightMinor),o.querySelector(`[data-family-delivery-total]`).textContent=j(n.totalMinor));let r=t.loyalty?.totalBeforeBonusesMinor??t.totalMinor;if(He.textContent=t.totalMinor===null?`ÐÐµÑ ÑаÑÑи ÑоваÑов ÑÑоÑнÑеÑÑÑ. ÐÑог доÑÑавки подÑвеÑÐ´Ð¸Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ.`:`РаÑÑÑÑ Ð³Ð¾Ñов.${t.promotion?` ${t.promotion.message}`:``}`,Ue.hidden=t.totalMinor===null,t.totalMinor!==null&&(We.textContent=`ТоваÑÑ ${j(t.subtotalMinor)} · доÑÑавка ${j((BigInt(r)-BigInt(t.subtotalMinor)).toString())}${t.loyalty&&BigInt(t.loyalty.spendMinor)>0n?` · ÑпиÑание бонÑÑов â${j(t.loyalty.spendMinor)}`:``}`,Ge.textContent=j(t.totalMinor),Ke.textContent=``),t.loyalty?.earnMinor!==null&&t.loyalty?.earnMinor!==void 0){let e=t.loyalty.earningReason===`first_order`?`за пеÑвÑй заказ`:t.loyalty.earningReason===`birthday`?`в пеÑиод Ð´Ð½Ñ ÑождениÑ`:`за заказ`;Ke.textContent=`ÐаÑиÑлим ${M(t.loyalty.earnMinor)} бонÑÑов â ${t.loyalty.earningRatePercent}% ${e}, за веÑÑ Ð·Ð°ÐºÐ°Ð·, вклÑÑÐ°Ñ ÑÑлÑги и доÑÑавкÑ, за вÑÑеÑом поÑÑаÑеннÑÑ
бонÑÑов.`}if(l&&t.loyalty&&(Fe.textContent=`ÐÑÐ´ÐµÑ ÑпиÑано ${M(t.loyalty.spendMinor)} бонÑÑов. ${t.loyalty.earnMinor===null?`ÐождиÑеÑÑ Ð¾ÐºÐ¾Ð½ÑаÑелÑной ÑÑÐ¼Ð¼Ñ Ð·Ð°ÐºÐ°Ð·Ð°.`:`ÐовÑе бонÑÑÑ Ð½Ð°ÑиÑлим на ÑÑÐ¼Ð¼Ñ Ð¿Ð¾Ñле ÑпиÑаниÑ.`}`),t.totalMinor!==null){P.hidden=!1;let e=P.elements.namedItem(`name`),t=P.elements.namedItem(`phone`);e.value||=V.profile.displayName,t.value||=V.profile.phone,!q&&!I.value&&(I.value=K,At())}}).catch(e=>{if(u===yt){if((__bfCheckoutOwner20261002())!==ee){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}__bfFamilyQuoteSafety20261002.recoverFamilyQuoteSession(e,{guest:q,requestSession:ee,readSession:z,forgetSession:()=>C.forgetSession(),sessionKey:R,local:localStorage,session:sessionStorage,signin:E,lines:k,notify:()=>window.dispatchEvent(new CustomEvent("bestfurshet:identity-updated"))});Ue.hidden=!0;W=null;P.hidden=!0;He.textContent=__bfFamilyQuoteRender20261002.familyQuoteRenderFailureMessage(e,__bfFamilyQuoteSafety20261002.familyQuoteFailureMessage(e,Lt(e)))}}).finally(()=>{J=!1,Pe.disabled=!1,N.removeAttribute(`aria-busy`)})}),P.addEventListener(`submit`,t=>{if(t.preventDefault(),!W||!V||J||fn.busy||!P.reportValidity())return;if(__bfCheckoutRecovery20261002.familyCheckoutSessionStale(__bfCheckoutRoot20261002)||W&&((__bfCheckoutOwner20261002())!==W.requestSession||!__bfCheckoutGuest20261002()&&!C.hasSession())){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}let n=St();if(!n){F.textContent=`Ðе ÑдалоÑÑ ÑоÑ
ÑаниÑÑ Ð·Ð°ÑиÑÑ Ð¾Ñ Ð¿Ð¾Ð²ÑоÑной заÑвки. ÐбновиÑе коÑзин
843Ñ.`;return}if(wt(n)){Dt();return}let r=crypto.randomUUID(),i=e=>P.elements.namedItem(e).value.trim(),a=$e.value===`organization`;const __bfSubmitSession=W.requestSession,__bfSubmitGuest=__bfCheckoutGuest20261002(),__bfSubmitKey=n,__bfSubmitId=r;let __bfFinalComment;try{__bfFinalComment=__bfAddressDetails20261002.deliveryDetailsCommentForForm(P,[i(`comment`),tt.value?`ÐеÑÑÐµÐ½Ð´Ð¶ÐµÑ Ð´Ð»Ñ ÑвÑзи: ${tt.value} â ${i(`messengerContact`)}`:``].filter(Boolean).join(` 844`),W.deliveryDetails,2000)}catch(__bfError){F.textContent=__bfError instanceof __bfAddressDetails20261002.DeliveryAddressDetailsError?__bfError.message:`ÐÑовеÑÑÑе комменÑаÑий к заказÑ.`;return}let o={expectedAccountVersion:W.preview.accountVersion,expectedCatalogVersion:W.preview.catalogVersion,quoteFingerprint:W.preview.quoteFingerprint,customer:{name:i(`name`),phone:i(`phone`),email:q?``:i(`email`)},fulfillment:W.fulfillment,buyer:{kind:$e.value,payment:et.value,requisites:a?{name:i(`requisitesName`),inn:i(`inn`),kpp:i(`kpp`),ogrn:i(`ogrn`),address:i(`requisitesAddress`),confirmed:!0}:null},comment:__bfFinalComment,consent:!0,consentDocumentHash:W.preview.consentDocumentHash,source:{brand:b,discoverySource:S,...(e=>e?{clientApp:e}:{})(we(window))},...!q&&W.useBonuses?{useBonuses:!0}:{},...W.promotion?{promotion:W.promotion}:{}};try{sessionStorage.setItem(n,r),sessionStorage.setItem(n+`:request`,JSON.stringify(o))}catch{F.textContent=`ÐаÑиÑа Ð¾Ñ Ð¿Ð¾Ð²ÑоÑной заÑвки недоÑÑÑпна. ÐопÑобÑйÑе позже.`;return}if(me&&!oe(localStorage,n,m,r)){Tt(),F.textContent=`Ðе ÑдалоÑÑ ÑÐ¾Ñ ÑаниÑÑ Ð²Ð¾ÑÑÑановление заказа поÑле закÑÑÑÐ¸Ñ Ð¿ÑиложениÑ. ÐÑовеÑÑÑе наÑÑÑойки Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ повÑоÑиÑе оÑоÑмление.`;return}J=!0,Pe.disabled=!0,P.setAttribute(`aria-busy`,`true`),F.textContent=`Ð¡Ð¾Ñ ÑанÑем заÑвкÑâ¦`,(q?C.submitGuestCombinedOrder(B.getItem(d),o,r):C.submitCombinedOrder(o,r)).then(async e=>{if(__bfSubmitGuest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__bfSubmitSession){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}if(Et(e,r,et.value),bt&&e.payment){F.textContent=`ÐаÑвка ÑÐ¾Ñ Ñанена. ÐеÑÐµÑ Ð¾Ð´Ð¸Ð¼ к оплаÑеâ¦`;try{ae(e.payment)}catch{F.textContent=`Ðаказ ÑÐ¾Ñ ÑанÑн. ÐÑли оплаÑа не оÑкÑÑлаÑÑ, обÑаÑиÑеÑÑ Ð² поддеÑÐ¶ÐºÑ Ð¸Ð»Ð¸ повÑоÑиÑе заказ из кабинеÑа.`}return}bt||Tt(),q?document.querySelectorAll(`[data-family-cart-count]`).forEach(e=>{e.textContent=`0`}):await Q()}).catch(async t=>{if(t instanceof e&&[`outcome_unknown`,`unavailable`,`invalid_response`,`checkout_pending`].includes(t.code)){if(__bfSubmitGuest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__bfSubmitSession){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}await Dt();return}if(await __bfRejectOrder20261002(t,__bfSubmitKey,__bfSubmitId,__bfSubmitSession,__bfSubmitGuest))return;Tt(),F.textContent=Lt(t),t instanceof e&&[`loyalty_changed`,`order_aborted`].includes(t.code)&&(Ot(),await Q())}).finally(()=>{J=!1,Pe.disabled=!1,P.removeAttribute(`aria-busy`)})}),Ze.addEventListener(`click`,()=>{if(__bfCheckoutRecovery20261002.familyCheckoutSessionStale(__bfCheckoutRoot20261002)||W&&(__bfCheckoutOwner20261002())!==W.requestSession){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}let t=St(),n=t?Ct(t):null,r=t?Ct(t+`:request`):null;if(J||!n||!r)return;const __bfRetrySession=(__bfCheckoutOwner20261002()),__bfRetryGuest=__bfCheckoutGuest20261002(),__bfRetryKey=t,__bfRetryId=n;let i;try{i=JSON.parse(r)}catch{F.textContent=`ÐбновиÑе ÑÑÑаниÑÑ Ð¸ пÑовеÑÑÑе иÑÑоÑÐ¸Ñ Ð·Ð°ÐºÐ°Ð·Ð¾Ð².`;return}J=!0,Ze.disabled=!0,(q?C.submitGuestCombinedOrder(B.getItem(d),i,n):C.submitCombinedOrder(i,n)).then(async e=>{if(__bfRetryGuest!==__bfCheckoutGuest20261002()||(__bfCheckoutOwner20261002())!==__bfRetrySession){__bfCheckoutRecovery20261002.quarantineFamilyCheckoutSession(__bfCheckoutRoot20261002);Ot();He.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;F.textContent=__bfCheckoutRecovery20261002.FAMILY_CHECKOUT_SESSION_CHANGED;return;}Et(e,n),bt||Tt(),q||await Q()}).catch(async t=>{if(await __bfRejectOrder20261002(t,__bfRetryKey,__bfRetryId,__bfRetrySession,__bfRetryGuest))return;t instanceof e&&[`loyalty_changed`,`order_aborted`].includes(t.code)&&(Tt(),Ot(),await Q()),F.textContent=Lt(t)}).finally(()=>{J=!1,Ze.disabled=!1})});let dn=()=>q?B.getItem(d):z(),fn=se({clone:e=>({...e,items:e.items.map(e=>({...e,choices:e.choices.map(e=>({...e}))}))}),preview:({items:e,owner:t})=>{if(t!==dn()||!V||!U)return;V={...V,items:e};let n=U.lines,r=e.map(e=>{let t=n.find(t=>t.brandKey===e.brandKey&&t.publicationId===e.publicationId&&t.variantId===e.variantId&&zt(t.choices)===zt(e.choices));return t?{...t,quantity:e.quantity}:null}).filter(e=>!!e);
844U={...U,lines:r,subtotalMinor:r.reduce((e,t)=>e+BigInt(t.unitMinor)*BigInt(t.quantity),0n).toString(),weightGrams:r.reduce((e,t)=>e+(t.weightGrams??0)*t.quantity,0)},Ot(),Rt()},save:async({items:t,owner:n})=>{if(!V||n!==dn())throw new e(401,`unauthorized`);if(q){let r=B.getItem(d);if(!p(r)||!w.replaceCart)throw new e(401,`unauthorized`);let i=await w.replaceCart(r,{expectedRevision:V.version,operationId:crypto.randomUUID(),items:t});if(n!==dn()||!V)throw new e(401,`unauthorized`);V={...V,version:i.revision}}else{let r=await C.replaceCart(V.version,t);if(n!==dn()||!V)throw new e(401,`unauthorized`);V={...V,version:r.version}}},settled:async()=>{await Ht(),window.dispatchEvent(new CustomEvent(`bestfurshet:family-cart`))},failed:async e=>{await Ht().catch(()=>{}),Z(Lt(e),!0)}}),pn=(e,t,n=!1)=>{if(!V||!U||J)return;let r=U.lines[e];if(!r)return;let i=e,a=U.lines.filter((t,n)=>n!==e&&t.offerId===r.offerId).reduce((e,t)=>e+t.quantity,0),o=Math.max(r.minimumQuantity,r.minimumTotalQuantity-a),s=Bt(U.lines);if(n)s.splice(i,1);else{if(!Number.isSafeInteger(t)||t<o||t>99){Z(`ÐолиÑеÑÑво: Ð¾Ñ ${o} до 99.`,!0),Rt();return}s[i].quantity=t}fn.enqueue({items:s,owner:dn()})};__bfCartLineControls20261002.installFamilyCartLineControls({container:k,buttonSelector:"button[data-family-action]",quantitySelector:"input[data-family-quantity]",action:e=>e.dataset.familyAction,readQuantity:e=>U?.lines[e]?.quantity,changeQuantity:pn}),o.querySelector(`[data-family-logout]`).addEventListener(`click`,()=>{Yt(async()=>{await C.logout(),Tt(),localStorage.removeItem(R),sessionStorage.removeItem(R),Pt.invalidate(),Nt=[],Y=void 0,X.hidden=!0,vt?.clear(),V=null,U=null,K=``,I.value=``,O=null,G=!1,Ye.hidden=!0,Xe.textContent=``,Ce.hidden=!0,E.hidden=!1,Ie.replaceChildren(),await Gt(),Z(`ÐÑ Ð²ÑÑли из кабинеÑа.`)})});let mn=async()=>{try{await rn,await u({apiOrigin:m,origins:h}),await ee({brand:x,apiOrigin:m,origins:h,api:w,fetchBindings:async()=>{let e=await fetch(`/family-cart-bindings.json`,{cache:`no-store`});if(!e.ok)throw Error(`Bindings unavailable`);return e.json()}}),await l({brand:o.dataset.hostingBrand,storage:localStorage,api:w,randomId:()=>crypto.randomUUID(),fetchBindings:async()=>{let e=await fetch(`/family-cart-bindings.json`,{cache:`no-store`});if(!e.ok)throw Error(`Bindings unavailable`);return e.json()}});let t=z();t&&C.restoreSession(t),C.hasSession()?Jt().then(()=>Q()).then(()=>{Dt(),tn()}).catch(t=>{t instanceof e&&t.status===401&&(C.forgetSession(),localStorage.removeItem(R),sessionStorage.removeItem(R)),E.hidden=!1,Ce.hidden=!0,Z(Lt(t),!0)}):(E.hidden=pe,Z(pe?`ÐоÑзина ÑÐ¾Ñ ÑанÑеÑÑÑ Ð±ÐµÐ· Ð²Ñ Ð¾Ð´Ð° Ð¼ÐµÐ¶Ð´Ñ Ð¿ÑÑÑÑ ÑайÑами.`:`ÐойдиÑе в кабинеÑ, ÑÑÐ¾Ð±Ñ Ð¾ÑкÑÑÑÑ Ð¿ÑоÑилÑ, Ð·Ð°ÐºÐ°Ð·Ñ Ð¸ бонÑÑÑ.`),Gt().then(()=>{if(!(!me||!p(B.getItem(`bestfurshet:family:guest-token:v1`)))){if(q=!0,!wt(St())){q=!1;return}o.dataset.guestCheckout=`true`,Ce.hidden=!1,ge.hidden=!0,E.hidden=!0,Dt()}}).catch(()=>{E.hidden=false;Z("ÐоÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÐ° не ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ. ТоваÑÑ ÑÐ¾Ñ ÑаненÑ. ÐойдиÑе в кабинеÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑодолжиÑÑ.",true)}))}catch{E.hidden=!1,Z(`Ðе ÑдалоÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ Ð´Ð°Ð½Ð½Ñе. ТоваÑÑ Ð½Ð° ÑÑом ÑÑÑÑойÑÑве ÑÐ¾Ñ ÑаненÑ. ÐовÑоÑиÑе оÑкÑÑÑие ÑÑÑаниÑÑ.`,!0)}};window.addEventListener(`storage`,e=>{if(e.key===R){let e=localStorage.getItem(R);e?J||(C.restoreSession(e),Jt().then(Q).catch(e=>Z(Lt(e),!0))):(Pt.invalidate(),vt?.clear(),C.forgetSession(),V=null,U=null,K=``,I.value=``,O=null,G=!1,Ye.hidden=!0,Xe.textContent=``,Ce.hidden=!0,E.hidden=pe,Ie.replaceChildren(),Nt=[],Y=void 0,X.hidden=!0,Gt(),Z(`ÐÑ Ð²ÑÑли из кабинеÑа в дÑÑгой вкладке.`))}});let hn=0,gn=()=>{fn.busy||document.hidden||!V||!C.hasSession()||J||O&&!V.emailRequired||Date.now()-hn<1e3||(hn=Date.now(),Q().then(()=>{me&&wt(St())&&Dt()}).catch(()=>{}))};window.addEventListener(`focus`,gn),document.addEventListener(`visibilitychange`,gn),window.setInterval(()=>{V?.emailRequired&&!V.contactVerified&&gn()},4e3),mn()} 845for(const root of document.querySelectorAll('[data-family-portal]'))void __bfLocalAssortment20261006.installLocalAssortmentRecovery(root);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.