Домой культура В преддверии фестивальных выходных в Индио проводится бесплатное мероприятие «Челла», посвященное музыке...

В преддверии фестивальных выходных в Индио проводится бесплатное мероприятие «Челла», посвященное музыке и культуре

20
0

${n}`), (t.onload = () => e(t.contentWindow.render)), document.body.appendChild(t); })) е[n]
); }; })(); }, 3005: (e, t, n) => { nd(t, { $T: () => a, Ni: () => i, OA: () => o, RO: () => s, fR: () => r }); const i = 1, r = 2, o = 1, s = 500; функция a(e) { return (e ?? []).reduce((e, t) => { let { event: n, метод: i, url: r } = t; const o = (e[n] = е[n] ?? {}); вернуться (о[i] = о[i] ?? []).push(r), е; }, {}); } }, 5023: (e, t, n) => { nd(t, { AU: () => m, Ic: () => v, kQ: () => y, on: () => h }); вар i = n(1069), r = n(8969), o = n(6853), s = n(3272); const a = ‘eventHistoryTTL’; пусть d = ноль; const c = (0, oH)({ monotonic: !0, ttl: () => d }); s.$W.getConfig(a, e => { const t = d; (e = e?.[a]), (d = ‘number’ == typeof e ? 1e3 * e : null), t !== d && c.refresh(); }); пусть l = Array.prototype.slice, u = Array.prototype.push, f = Object.values(r.qY); const g = r.cA, p = (function() { let e = {}, t = {}; function n(e) { return f.includes(e); } return ( (t.has = n), (t.on = function(t, r, o) { if (n(t)) { let n = e[t] || { что: [] }; о? ((н[o] = п[o] || { что: [] }), н[o].que.push(r)) : n.que.push(r), (e[t] = п); } else i.vV(‘Неправильное имя события: ‘+t+’ Допустимые имена событий:’+f); }), (t.emit = function(t) { !(function(t, n) { i.OG(‘Отправка события для: ‘ + t); let r = n[0] || {}, о = г[g[t]], s = е[t] || { что: [] }; вар а = Object.keys(s); пусть d = []; c.add({ eventType: t, args: r, id: o, elapsedTime: iV() }), o && a.includes(o) && u.apply(d, s[o].que), u.apply(d, s.que), (d || []).forEach(function(e) { if (e) try { e.apply(null, n); } catch (e) { i.vV( ‘Ошибка выполнения обработчика:’, ‘events.js’, e, t); } }); })(t, l.call(аргументы, 1)); }), (t.off = function(t, n, r) { let o = e[t]; i.Im(o) || (i.Im(o.que) && i.Im(o[r])) || (r && (i.Im(o[r]) || я.Я(о[r].к))) || (р? (о[r].что || []).forEach(function(e) { let t = o[r].что; e === n && t.splice(t.indexOf(e), 1); }) : (что || []).forEach(function(e) { let t = o.que; e === n && t.splice(t.indexOf(e), 1); }), (e[t] = о)); }), (t.get = function() { return e; }), (t.addEvents = function(e) { f = f.concat(e); }), (t.getEvents = function() { return c.toArray().map(e => Object.assign({}, e)); }), t ); })(); i.cD(p.emit.bind(p)); const {вкл.: ч, выкл.: м, get: b, getEvents: y, испускание: v, addEvents: E, имеет: A } = p; }, 687: (e, t, n) => { nd(t, { w: () => I }); var i = n(9214), r = n(7934), o = n(5973), s = n(1069), a = n(3172), d = n(3272), c = n(5555); константа л = [
‘architecture’,
‘bitness’,
‘model’,
‘platformVersion’,
‘fullVersionList’
]ты = [‘brands’, ‘mobile’, ‘platform’]f = (function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: window.navigator?.userAgentData; const t = e && u.some(t => void 0 !== e[t]) ? Object.freeze(p(1, e)) : null; функция возврата () {возвращение т; }; })(), g = (function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: window.navigator?.userAgentData; const t = {}, n = новый WeakMap(); return function() { let i = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: л; if (!n.has(i)) { const e = Array.from(i); e.sort(), n.set(i, e.join(‘|’)); } Const r = n.get(i); if (!t.hasOwnProperty(r)) попробуйте { t[r] = e .getHighEntropyValues(i).then(e => (0, s.Im)(e) ? null : Object.freeze(p(2, e)) ).catch(() => null); } поймать (е) { т[r] = c.U9.resolve(ноль); } вернуть т[r]; }; })(); функция p(e, t) { функция n(e, t) { const n = { марка: e }; return ( (0, s.O8)(t) && !(0, s.xQ)(t) && (n.version = t.split(‘.’)), n ); } Const я = {источник: е}; return ( t.platform && (i.platform = n(t.platform, t.platformVersion)), (t.fullVersionList || t.brands) && (i.browsers = (t.fullVersionList || t.brands).map(e => { let { Brand: t, version: i } = e; return n(t, i); })), void 0 !== t.mobile && (i.mobile = t.mobile ? 1: 0),
[‘model’, ‘bitness’, ‘architecture’].forEach(e => { const n = t[e]; (0, с.O8)(n) && (i[e] = п); }), я ); } var h = n(3858), m = n(5139), b = n(3441), y = n(6811), v = n(5569), E = n(8944); const A = { getRefererInfo: r.EN, findRootDomain: oS, getWindowTop: s.mb, getWindowSelf: s.l4, getHighEntropySUA: g, getLowEntropySUA: f, getDocument: s.YE }, w = (0, h.i8)(‘FPD’),(‘FPD’,(‘), и.с.’). е => { const т = [
e,
C().catch(() => null),
c.U9.resolve(
‘cookieDeprecationLabel’ in navigator &&
(0, m.io)(y.Ue, (0, b.s)(v.tp, ‘cdep’)) &&
navigator.cookieDeprecationLabel.getValue()
).catch(() => null)
]; return c.U9.all(t).then(e => { let [t, n, i] = и; const r = A.getRefererInfo(); if ( (Object.entries(O).forEach(e => { let [n, i] = е; const o = i(t, r); o && Object.keys(o).length > 0 && (t[n] = (0, с.D9)({}, o, t[n])); }), n && (0, aJ)( t, ‘device.sua’, Object.assign({}, n, t.device.sua)), i) ) { const e = { cdep: i }; (0, aJ)( t, ‘device.ext’, Object.assign({}, e, t.device.ext) ); } const o = A.getDocument().documentElement.lang; o && (0, aJ)(t, ‘site.ext.data.documentLang’, o), (t = w(t)); for (пусть e из h.Dy), если ((0, hO$)(t, e)) { t[e] = (0, с.D9)({}, R(t, r), t[e]); перерыв; } Вернуть т; }); }); function T(e) { try { return e(A.getWindowTop()); } catch (t) { return e(A.getWindowSelf()); } } function C() { const e = d.$W.getConfig(‘firstPartyData.uaHints’); return Array.isArray(e) && 0 !== e.length ? A.getHighEntropySUA(e): c.U9.resolve(A.getLowEntropySUA()); } function B(e) { return (0, s.SH)(e, Object.keys(e)); } const O = { site(e, t) { if (!h.Dy.filter(e => ‘site’ !== e).some(hO$.bind(null, e))) return B({page: t.page, ref: t.ref }); }, устройство: () => T(e => { const t = (0, s.Ot)().screen.width, n = (0, s.Ot)().screen.height, { width: i, height: r } = (0, EM)(), o = { w: t, h: n, dnt: (0, s.l9)() ? 1 : 0, ua: e.navigator.userAgent, язык: e.navigator.language.split(‘-‘).shift(), ext: { vpw: i, vph: r } }; return ( e.navigator?.webdriver && (0, aJ)(o, ‘ext.webdriver’, !0), o }), regs() { const e = {}; T(e => e.navigator.globalPrivacyControl) && (0, aJ)(e, ‘ext.gpc’, ‘1’); const t = d.$W.getConfig(‘коппа’); return ‘boolean’ == typeof t && (e.coppa = t? 1: 0), e; } }; function R(e, t) { const n = (0, r.gR)(t.page, { noLeadingWww: !0 }), i = T(e => e.document.querySelector(«meta[name=’keywords’]») )?.content?.replace?.(/s/g, »); return B({ домен: n, ключевые слова: i, издатель: B({ домен: A.findRootDomain(n) }) }); } }, 3858: (e, t, n) => { nd(t, { Dy: () => r, O$: () => s, i8: () => o }); вар я = п (1069); [‘dooh’, ‘app’, ‘site’]; function o(e) { return function(t) { return ( r.reduce( (n, r) => ( s(t, r) && (null != n ? ((0, i.JE)( `${e} указывает как ‘${n}’, так и ‘${r}’; последний удаляется.`), delete t[r]) : (n = r)), n), null), t); }; } function s(e, t) { return null != e[t] && Object.keys(e[t]).длина > 0; } }, 5973: (e, t, n) => { nd(t, { S: () => o }); вар я = п (1069); const r = (0, n(2938).CK)(‘fpdEnrichment’), o = (0, i.Bj)(function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: окно.локация.хост; if (!r.cookiesAreEnabled()) возвращает e; const t = e.split(‘.’); if (2 === t.length) вернуть e; пусть п, о, s = -2; const a = `_rdc${Date.now()}`, d = ‘доступно для записи’; do { n = t.slice(s).join(‘.’); пусть e = новая дата((0, i.vE)() + 1e4).toUTCString(); r.setCookie(a, d, e, ‘Lax’, n, void 0); r.getCookie(a, void 0) === d ? ((o = !1), r.setCookie( a, », ‘Чт, 01 января 1970 г. 00:00:01 GMT’, void 0, n, void 0)) : ((s += -1), (o = Math.abs(s) { nd(t, { A_: () => s, Gc: () => d, Y6: () => g, Yn: () => c, bz: () => f, u2: () => p, xG: () => u }); var i = n(8128), r = nn(i), o = n(5555); let s = r()({готово: r().SYNC | r().ASYNC | r().QUEUE }); const a = (0, o.v6)(); s.ready = (() => { const e = s.ready; return function() { try { return e.apply(s, аргументы); } наконец { a.resolve(); } }; })(); const d = a.promise, c = s.get; константа л = {}; function u(e, t) { let { postInstallAllowed: n = !1 } = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; s( ‘async’, function(i) { i.forEach(e => t(…e)), n && (l[e] = т); }, е )([]); } function f(e) { for (var t = аргументы.длина, n = новый массив(t > 1? t — 1: 0), i = 1; i { t.push(n), e(t); }); } function g(e, t) { return ( Object.defineProperties( t, Object.fromEntries(
[‘before’, ‘after’, ‘getHooks’, ‘removeAll’].map(т => [
t,
{ get: () => e[t] } ]) ) ), т ); } function p(e) { return g(e, function() { for ( var t = аргументы.длина, n = новый массив(t), i = 0; i { nd(t, { D4: () => o, GE: () => a, G_: () => r, LM: () => s, s6: () => i }); const i = «родной», r = «видео», o = «баннер», s = «adpod», a = [i, r, o]; }, 2449: (e, t, n) => { nd(t, { Bm: () => y, IX: () => C, Nh: () => l, Zj: () => A, gs: () => E, l6: () => p, mT: () => c, nk: () => m, vO: () => v, yl: () => B }); вар i = n(1069), r = n(6881), o = n(8969), s = n(9075), a = n(6031), d = n(3005); константа с = []l = Object.keys(o.x5).map(e => o.x5[e]), u = { image: { ortb: { ver: ‘1.2’, assets: [
{
required: 1,
id: 1,
img: { type: 3, wmin: 100, hmin: 100 }
},
{ required: 1, id: 2, title: { len: 140 } },
{ required: 1, id: 3, data: { type: 1 } },
{ required: 0, id: 4, data: { type: 2 } },
{
required: 0,
id: 5,
img: { type: 1, wmin: 20, hmin: 20 }
}
]
}, изображение: { требуется: !0 }, заголовок: { требуется: !0 }, спонсор: { требуется: !0 }, clickUrl: { требуется: !0 }, тело: { требуется: !1 }, значок: { требуется: !1 } } }, f = k(o.h0), g = k(o.jO); function p(e) { return e.native && ‘object’ == typeof e.native; } function h(e) { if ( (e && e.type && (function(e) { if (!e || !Object.keys(u).includes(e)) return (0, i.vV)(`${e} ownParam не поддерживается`), !1; return !0; })(e.type) && (e = u[e.type]), !е || !e.ortb || b(e.ortb)) ) return e; } function m(e) { e.forEach(e => { const t = e.nativeParams || e?.mediaTypes?.native; t && (e.nativeParams = h(t)), e.nativeParams && (e.nativeOrtbRequest = e.nativeParams.ortb || (function(e) { if (!e && !(0, i.Qd)(e)) return void (0, i.vV)( ‘Объект собственных ресурсов пуст или не является объектом: ‘, e const t = { ver: ‘1.2’, assets: [] }; for (let n in e) { if (o._B.includes(n)) continue; if (!o.x5.hasOwnProperty(n)) { (0, i.vV)( `Нераспознанный собственный код актива: ${n}. Актив будет игнорироваться.` ); продолжать; } if (‘privacyLink’ === n) { t.privacy = 1; продолжать; } const г = е[n]; пусть s = 0; r.required && (0, i.Lm)(r.required) && (s = Number(r.required)); const a = { id: t.assets.length, требуется: s }; if (n в o.h0) (a.data = { type: o.jO[o.h0[n]]}), r.len && (a.data.len = r.len); else if (‘icon’ === n || ‘image’ === n) { if ( ((a.img = { type: ‘icon’ === n ? o.oA.ICON : o.oA.MAIN }), r.aspect_ratios)) if ((0, i.cy)(r.aspect_ratios)) if (r.aspect_ratios.length) { const { min_width: е, min_height: t } = r.aspect_ratios[0]; (0, i.Fq)(e) && (0, i.Fq)(t) ? ((a.img.wmin = e), (a.img.hmin = t)) : (0, i.vV)( ‘image.aspect_ratios min_width или min_height недействительны: ‘, e, t ); const n = r.aspect_ratios .filter( e => e.ratio_width && e.ratio_height ) .map( e => `${e.ratio_width}:${e.ratio_height}` ); n.length > 0 && (a.img.ext = { пропорции: n }); } else (0, i.vV)( «image.aspect_ratios был передан, но он пуст:», r.aspect_ratios ); else (0, i.vV)( «image.aspect_ratios было передано, но это не массив:», r.aspect_ratios ); r.sizes && (2 === r.sizes.length && (0, i.Fq)(r.sizes[0]) && (0, i.Fq)(r.sizes[1]) ? ((a.img.w = r.sizes[0]), (a.img.h = r.sizes[1]), удалить a.img.hmin, удалить a.img.wmin) : (0, i.vV)( ‘image.sizes был передан, но его значение не является массивом целых чисел:’, r.sizes )); } еще ‘название’ === n ? (a.title = { len: r.len || 140 }) : ‘ext’ === n && ((a.ext = r), удалить a.required); т.assets.push(а); } Вернуть т; })(e.nativeParams)); }); } function b(e) { const t = e.assets; if (!Array.isArray(t) || 0 === t.length) return ( (0, i.vV)( «assets в mediaTypes.native.ortb не является массивом или пуст. Assets: «, t ), !1 ); const n = t.map(e => e.id); return t.length !== новый Set(n).size || n.some(e => e !== parseInt(e, 10)) ? ((0, i.vV)( «каждый объект актива должен иметь свойство ‘id’, оно должно быть уникальным и должно быть целым числом» ), !1) : e.hasOwnProperty(‘eventtrackers’) && !Array.isArray(e.eventtrackers) ? ((0, i.vV)( ‘ortb.eventtrackers не является массивом. Eventtrackers: ‘, e.eventtrackers ), !1) : t.every(e => (function(e) { if (!(0, i.Qd)(e)) return ( (0, i.vV)( ‘актив должен быть объектом. Предоставленный актив: ‘, e ), !1 ); if (e.img) { if (!(0, i.Et)(e.img.w) && !(0, i.Et)(e.img.wmin)) return ( (0, i.vV)( «для ресурса img должно быть свойство ‘w’ или ‘wmin'»), !1 ); if (!(0, i.Et)(e.img.h) && !(0, i.Et)(e.img.hmin)) return ( (0, i.vV)( «для ресурса img должно быть свойство h» или «hmin» ), !1 } else if (e.title) { if (!(0, i.Et)(e.title.len)) return ( (0, i.vV)( «для ресурса title должно быть определено свойство len» ), !1 } else if (e.data) { if (!(0, i.Et)(e.data.type)) return ( (0, i.vV)( «для свойства ‘type’ ресурса данных должно быть число» ), !1 } else if ( e.video && !( Array.isArray(e.video.mimes) && Array.isArray(e.video.protocols) && (0, i.Et)(e.video.minduration) && (0, i.Et)(e.video.maxduration) ) ) return ( (0, i.vV)(‘видеоресурс настроен неправильно’), !1 !0; })(e) ); } function y(e) { let { index: t = rnindex } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; const n = t.getAdUnit(e); если (!n) вернуть !1; пусть о = n.nativeOrtbRequest; return (function(e, t) { if (!e?.link?.url) return ( (0, i.vV)( «собственный ответ не имеет свойства link. Ответ Ortb: «, e ), !1); let n = t.assets.filter(e => 1 === e.required).map(e => e.id), r = e.assets.map(e => e.id); const o = n.every(e => r.includes(e)); o || (0, i.vV)( `не получена ставка со всеми необходимыми активами. Требуемые идентификаторы: ${n}, но получены идентификаторы в ответ: ${r}` ); return o; })(e.native?.ortb || S(e.native, o), o); } function v(e, t) { const n = t.native.ortb || R(т.родной); return ( ‘click’ === e.action ? (function(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: null, { fetchURL: n = iz$ } = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; if (t) { const i = (e.assets || []) .filter(e => e.link).reduce((e, t) => ((e[t.id] = t.link), e), {}), r = e.link?.clicktrackers || []; пусть о = я[t]с = г; o && (s = o.clicktrackers || []), s.forEach(e => n(e)); } else (e.link?.clicktrackers || []).forEach(e => n(e)); })(n, e?.assetId): (function(e) { let { runMarkup: t = e => (0, i.ro)(e), fetchURL: n = iz$ } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}, { [d.Ni]: р = [], [d.fR]: о = [] } = (0, d.$T)(e.eventtrackers || [])[d.OA] || {}; e.imptrackers && (r = r.concat(e.imptrackers)); r.forEach(e => n(e)), (o = o.map(e => «)), e.jstracker && (o = o.concat([e.jstracker])); o.length && t(o.join(‘n’)); })(n), e.action ); } function E(e, t) { const n = t?.nativeOrtbRequest, i = e.native?.ortb; if (n && i) { const t = (function(e, t) { const n = {}, i = t?.assets || []; (n.clickUrl = e.link?.url), (n.privacyLink = e.privacy); for (const t of e?.assets || []) { const e = i.find(e => t.id === e.id); т.титул? (n.title = t.title.text) : t.img ? (н[e?.img?.type === o.oA.MAIN ? ‘image’ : ‘icon’] = { URL: t.img.url, ширина: t.img.w, высота: t.img.h }) : t.data && (n[f[g[e?.data?.type]]]= t.data.value); } n.impressionTrackers = []; пусть р = []; e.imptrackers && n.impressionTrackers.push(…e.imptrackers); for (const t of e?.eventtrackers || []) t.event === d.OA && t.method === d.Ni && n.impressionTrackers.push(t.url), t.event === d.OA && t.method === d.fR && r.push(t.url); (r = r.map(e => «)), e?.jstracker && r.push(e.jstracker); r.length && (n.javascriptTrackers = r.join(‘n’)); вернуть н; })(в); Object.assign(e.native, t); }
[‘rendererUrl’, ‘adTemplate’].forEach(n => { const i = t?.nativeParams?.[n]; я && (e.родной[n] = О(я)); }); } function A(e) { let { index: t = rnindex } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}, n = {}; const i = t.getAdUnit(e), s = null == i?.nativeParams?.ortb && !1 !== i?.nativeParams?.sendTargetingKeys, a = (function(e) { const t = {}; e?.nativeParams?.ext && Object.keys(e.nativeParams.ext).forEach(e => { t[e] = `hb_native_${e}`; }); return { …o.x5, …t }; })(i), d = { …e.native, …e.native.ext }; return ( delete d.ext, Object.keys(d).forEach(t => { const r = a[t]; пусть o = O(e.native[t]) || O(e?.native?.ext?.[t]); if (‘adTemplate’ === t || !r || !o) return; пусть d = i?.nativeParams?.[t]?.sendId; if ((‘boolean’ != typeof d && (d = i?.nativeParams?.ext?.[t]?.sendId), d) ) { o = `${r}:${e.adId}`; } пусть c = i?.nativeParams?.[t]?.sendTargetingKeys; ‘boolean’ != typeof c && (c = i?.nativeParams?.ext?.[t]?.sendTargetingKeys); (‘boolean’ == typeof c ? c : s) && (n[r] = о); }), н ); } function w(e, t) { let n = аргументы.длина > 2 && void 0 !== аргументы[2] && аргументы[2]я = []; return ( Object.entries(e).filter(e => { let [i, r] = е; return ( r && ((!1 === n && ‘ext’ === i) || null == t || t.includes(i)) ); }) .forEach(e => { let [r, s] = е; !1 === n && ‘ext’ === r ? i.push(…w(s, t, !0)) : (n || o.x5.hasOwnProperty(r)) && i.push({ key: r, value: O(s) }); }), я ); } function I(e, t, n) { let { index: d = rnindex } = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: {}; const c = {сообщение: ‘assetResponse’, adId: e.adId }; пусть l = (0, s.vd)(t).native; return ( l ? ((c.native = Object.assign({}, l)), (c.renderer = (0, a.kj)(t)), (c.rendererVersion = a.xh), null != n && (l.assets = l.assets.filter(e => { let { key: t } = e; return n.includes(t); }))) : (l = (function(e, t, n) { const r = { …(0, i.SH)(e.native, [‘rendererUrl’, ‘adTemplate’]), assets: w(e.native, n),nativeKeys: o.x5 }; return ( e.native.ortb ? (r.ortb = e.native.ortb): t.mediaTypes?.native?.ortb && (r.ortb = S(e.native, t.nativeOrtbRequest)), r ); })(t, d.getAdUnit(t), n)), Object.assign(c, l) ); } const T = Object.fromEntries( Object.entries(o.x5).map(e => { let [t, n] = е; возвращаться [n, t]; }) ); function C(e, t) { const n = e.assets.map(e => T[e]); вернуть I(e, t, n); } function B(e, t) { return I(e, t, null); } function O(e) { return e?.url || е; } function R(e) { const t = { ссылка: {}, трекеры событий: [] }; return ( Object.entries(e).forEach(e => { let [n, i] = е; переключатель (n) {case ‘clickUrl’: t.link.url = i; перерыв; случай «clickTrackers»: t.link.clicktrackers = Array.isArray(i)? я: [i]; перерыв; случай ‘impressionTrackers’: (Array.isArray(i) ? i : [i]).forEach(e => { t.eventtrackers.push({ событие: d.OA, метод: d.Ni, URL: e }); }); перерыв; случай «javascriptTrackers»: t.jstracker = Array.isArray(i)? i.join(»): я; перерыв; случай «privacyLink»: t.privacy = i; } }), т ); } function S(e, t) { const n = { …R(e), активы: [] }; function r(e, r) { let o = t.assets.find(e); null != o && ((o = (0, i.Go)(o)), r(o), n.assets.push(o)); } return ( Object.keys(e).filter(t => !!e[t]) .forEach(t => { const n = O(e[t]); переключатель (t) {case ‘title’: r( e => null != e.title, e => { e.title = { text: n }; } ); перерыв; случай «изображение»: случай «значок»: const e = «изображение» === t ? o.oA.MAIN : o.oA.ICON; r( t => null != t.img && t.img.type === e, e => { e.img = { url: n }; } ); перерыв; по умолчанию: t в o.h0 && r( e => null != e.data && e.data.type === o.jO[o.h0[t]], е => { e.data = { значение: n }; }); } }), n ); } функция k(e) { var t = {}; для (var n в e) t[e[n]]= п; вернуть т; } }, 1e3: (e, t, n) => { nd(t, { Cf: () => a, S3: () => r, Tb: () => o, WR: () => s, e4: () => c, pS: () => u, qN: () => d, yB: () => f, zt: () => i }); константа я = [‘request’, ‘imp’, ‘bidResponse’, ‘response’],
[r, o, s, a] = я,
[d, c] = [‘default’, ‘pbs’]l = новый набор (i); const { RegisterOrtbProcessor: u, getProcessors: f } = (function() { const e = {}; return { RegisterOrtbProcessor (t) { let { type: n, name: r, fn: o, приоритет: s = 0, диалекты: a = [d]
} = т; if (!l.has(n)) throw new Error( `Тип процессора ORTB должен быть одним из: ${i.join(‘, ‘)}` ); a.forEach(t => { e.hasOwnProperty(t) || (e[t] = {}), е[t].hasOwnProperty(n) || (э[t][n] = {}), (е[t][n][r] = {приоритет: s, fn: o }); }); }, getProcessors: t => e[t] || {} }; })(); }, 8934: (e, t, n) => { nd(t, { gH: () => se }); var i = n(7873), r = n(1069), o = n(433), s = n(3172), a = n(2449), d = n(8969), c = n(9075), l = n(6031); const { ЗАПРОС: u, ОТВЕТ: f, NATIVE: g, СОБЫТИЕ: p } = d.nl, h = {
[u]: function(e, t, n) { (0, c.bw)({ renderFn(t) { e( Object.assign( { message: f, renderer: (0, l.kj)(n), rendererVersion: l.xh }, t ) ); }, resizeFn: b(t.adId, n), options: t.options, adId: t.adId, bidResponse: n }); },
[p]: function(e, t, n) { if (null == n) return void (0, r.vV)( `Невозможно найти объявление ‘${t.adId}’ для запроса события x-origin` ); if (n.status !== d.tl.RENDERED) return void (0, r.JE)( `Получен запрос события x-origin без соответствующего запроса на отрисовку объявления ‘${n.adId}’` ); вернуть (0, c.Uc)(t, n); } }; function m() { window.addEventListener( ‘message’, function(e) { !(function(e) { var t = e.message ? ‘message’ : ‘data’, n = {}; try { n = JSON.parse(e[t]); } поймать (е) {вернуться; } if (n && n.adId && n.message && h.hasOwnProperty(n.message)) (0, c.$A)(n.adId, n.message === d.nl.REQUEST).then(t => { var i, o; h[n.message]( ((i = n.adId), (o = (function(e) { return null == e.origin && 0 === e.ports.length ? function() { const e = ‘Невозможно опубликовать сообщение в кадре с нулевым источником. Обновите объявления для использования MessageChannel, см. https://github.com/prebid/Prebid.js/issues/7870’; throw ((0, r.vV)(e), новая ошибка(e)); } : e.ports.length > 0 ? function(t) { e.ports[0].postMessage(JSON.stringify(t)); } : function(t) { e.source.postMessage(JSON.stringify(t), e.origin); }; })(e)), function(e) { for ( var t = аргументы.длина, n = новый массив (t > 1 ? t — 1 : 0), r = 1; r t) .getTargetingKeys() .find(n => t.getTargeting(n).includes(e)) ); return t ? t.getSlotElementId() : null; } function u(e) { let t = window.apntag.getTag(e); return t && t.targetId;
[‘div’, ‘iframe’].forEach(e => { let t = d(e + ‘:not([style*=»display: none»])’); if (t) { let e = t.style; (e.width = a(o)), (e.height = a(s)); } else (0, r.vV)( `Невозможно найти соответствующий элемент страницы для adUnitCode ${i}. Невозможно изменить его размер до размеров объявления. Пожалуйста, проверьте настройку.` ); }); })({ …t, ширина: n, высота: i, adId: e }); }; } Object.assign(h, {
[g]: function(e, t, n) { if (null == n) return void (0, r.vV)( `Невозможно найти объявление для запроса события x-origin: ‘${t.adId}’` ); переключатель (t.action) {case ‘assetRequest’: (0, c.Hh)(n, () => e((0, a.IX)(t, n))); перерыв; case ‘allAssetRequest’: (0, c.Hh)(n, () => e((0, a.yl)(t, n))); перерыв; по умолчанию: (0, c.vW)(t, n, { resizeFn: b(t.adId, n) }), (0, c.Pk)(n); } } }); var y = n(8230), v = n(3272), E = n(6881), A = n(7779), w = n(9214), I = n(3597), T = n(1580), C = n(5555), B = n(5569); const O = ‘__tlpbjs_debugging__’; function R() { return (0, im)().installedModules.includes(‘отладка’); } function S(e) { return new C.U9(t => { (0, TR)(e, B.tp, ‘debugging’, t); }); } function k() { let { ужеInstalled: e = R, скрипт: t = S } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, n = ноль; return function() { return ( null == n && (n = new C.U9((n, o) => { setTimeout(() => { if (e()) n(); else { const e = ‘https://cdn.jsdelivr.net/npm/prebid.js@9.50.0/dist/debugging-standalone.js’; (0, r.OG)( `Модуль отладки не установлен, загружаем его из «${e}»…` ), ((0, im)()._installDebugging = !0), t(e) .then(() => { (0, im)()._installDebugging({ DEBUG_KEY: O, ловушка: w.A_, config: v.$W, createBid: IO, logger: (0, r.h0)(‘DEBUG:’) }); }) .then(n, o); } })), n ); }; } const U = (function() { let { load: e = k(), ловушка: t = (0, w.Yn)(‘requestBids’) } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, n = ноль, я = !1; функция r(e) { for (var t = аргументы.длина, я = новый массив(t > 1? t — 1: 0), r = 1; r e.apply(this, i)); } function o() { t.getHooks({крючок: r }).remove(), (i = !1); } return {enable: function() { i || ((n = e()), t.before(r, 99), (i = !0)); }, отключить: о, сброс: function() { (n = null), o(); } }; })(); U.сброс; v.$W.getConfig(‘debugging’, function(e) { let { debugging: t } = e; t?.enabled ? U.enable() : U.disable(); }); var D = n(2938), _ = n(1445), $ = n(5023), j = n(6894), x = n(687), q = n(6916), N = n(2713), W = n(3895); const P = новая карта([
[
‘format’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘object’ == typeof e)
],
[‘w’, r.Fq],
[‘h’, r.Fq],
[‘btype’, r.Uu],
[‘battr’, r.Uu],
[‘pos’, r.Fq],
[
‘mimes’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘string’ == typeof e)
],
[‘topframe’, e => [1, 0].includes(e)],
[‘expdir’, r.Uu],
[‘api’, r.Uu],
[‘id’, r.O8],
[‘vcm’, e => [1, 0].includes(e)]]); вар V = n(1371); function M(e, t) { return function() { if (document.prerendering && e()) { const e = this, n = Array.from(arguments); return new Promise(i => { document.addEventListener( ‘prerenderingchange’, () => { (0, r.fH)( ‘Аукционы были приостановлены во время предварительного рендеринга страницы’ ), i(t.apply(e, n)); }, { Once: !0 } ); }); } return Promise.resolve(t.apply(this, аргументы)); }; } вар G = n(7377); const F = (0, im)(), { триггерUserSyncs: H } = y.zt, { ADD_AD_UNITS: L, REQUEST_BIDS: z, SET_TARGETING: J } = d.qY, Q = { bidWon: function(e) { if ( !En .getBidsRequested() .map(e => e.bids.map(e => e.adUnitCode)) .reduce(r.Bq).filter(r.hj) .includes(e) ) return void (0, r.vV)( ‘Размещение «‘ + e + ‘» не определено.’ ); вернуть !0; } }; функция K(e, t) { пусть n = []; return ( (0, r.cy)(e) && (t ? e.length === t : e.length > 0) && (e.every(e => (0, r.Uu)(e, 2)) ? (n = e) : (0, r.Uu)(e, 2) && n.push(e)), n ); } function Y(e, t) { const n = (0, oA)(e, `ortb2Imp.${t}`), i = (0, oA)(e, `mediaTypes.${t}`); if (!n && !i) return; константа а = { [V.G_]: В.Зы, [V.D4]: П }[t]; &&
[…a].forEach(n => { let [i, a] = п; const d = (0, oA)(e, `mediaTypes.${t}.${i}`), c = (0, oA)(e, `ortb2Imp.${t}.${i}`); (ноль == d && ноль == c) || (null == d ? (0, sJ)(e, `mediaTypes.${t}.${i}`, c) : null == c ? (0, sJ)(e, `ortb2Imp.${t}.${i}`, d) : ((0, r.JE)( `adUnit ${e.code}: указывает конфликтующий ortb2Imp.${t}.${i} и mediaTypes.${t}.${i}, последний будет игнорироваться`, e ), (0, sJ)(e, `mediaTypes.${t}.${i}`, c))); }); } function X(e) { const t = (0, r.Go)(e), n = t.mediaTypes.banner, i = null == n.sizes ? null : K(n.sizes), o = e.ortb2Imp?.banner?.format ?? н?.формат; пусть а; if (null != o) { (0, sJ)(t, ‘ortb2Imp.banner.format’, o), (n.format = o); try { a = o .filter(t => { let { w: n, h: i, wratio: o, hratio: s } = t; return null != (n ?? i) && null != (o ?? s) ? ((0, r.JE)( ‘Рекламный блок баннер.формат указывает как w/h, так и wratio/hratio’, e ), !1) : (null != n && null != i) || (null != o && null != s }) .map(e => { let { w: t, h: n, wratio: i, hratio: r } = e; return [t ?? i, n ?? r]; }); } catch (t) { (0, r.vV)(`Неверное определение формата в рекламном блоке ${e.code}`, o); } ноль == а || ноль == я || (0, г.бД)(i, а) || (0, r.JE)( `Рекламный блок ${e.code} имеет конфликтующие размеры и определения формата`, e ); } const d = а ?? я ?? []c = e.ortb2Imp?.banner?.expdir ?? н.эксдир; return ( null != c && ((n.expdir = c), (0, sJ)(t, ‘ortb2Imp.banner.expdir’, c)), d.length > 0 ? ((n.sizes = d), (t.sizes = d)) : ((0, r.vV)( ‘Обнаружен объект mediaTypes.banner без поля правильного размера. Убедитесь, что размеры указаны следующим образом: [[300, 250]…]. Удаление недопустимого объекта mediaTypes.banner из запроса.’ ), удалить t.mediaTypes.banner), Y(t, ‘banner’), t ); } function Z(e) { const t = (0, r.Go)(e), n = t.mediaTypes.video; if (n.playerSize) { let e = ‘number’ == typeof n.playerSize[0] ? 2:1; const я = K(n.playerSize, e); i.длина > 0? (2 === e && (0, r.fH)( «Преобразование video.playerSize из [640,480] к [[640,480]]поэтому он в правильном формате.» ), (n.playerSize = i), (t.sizes = i)) : ((0, r.vV)( ‘Обнаружена неверная конфигурация mediaTypes.video.playerSize. Укажите только один набор размеров в формате, например: [[640, 480]]. Удаление недопустимого свойства mediaTypes.video.playerSize из запроса.’ ), удалить t.mediaTypes.video.playerSize); } return (0, W.aP)(t), Y(t, ‘видео’), t; } function ee(e) { function t(t) { return ( (0, r.vV)( `Ошибка в adUnit «${e.code}»: ${t}. Удаление собственного запроса из рекламного блока`, e), delete i.mediaTypes.native, i); } function n(e) { for (const t of [‘sendTargetingKeys’, ‘types’]) if (o.hasOwnProperty(t)) { const n = e(t); если (n) вернуть n; } } const я = (0, r.Go)(e), o = i.mediaTypes.native; if (o.ortb) { if ( o.ortb.assets?.some( e => !(0, r.Et)(e.id) || e.id t(`собственные запросы ORTB не могут указывать «${e}»`))) return i; const e = Object.keys(d.x5).filter(e => d.x5[e].includes(‘hb_native_’) ), s = Object.keys(o).filter(t => e.includes(t)); s.length > 0 && ((0, r.vV)( `при использовании собственного формата OpenRTB вы не можете использовать устаревшие собственные свойства. Удаление ключей ${s} из запроса.` ), s.forEach(e => delete i.mediaTypes.native[e])); } else n( e => `mediaTypes.native.${e} устарел, рассмотрите возможность использования вместо него собственного ORTB` ); return ( o.image && o.image.sizes && !Array.isArray(o.image.sizes) && ((0, r.vV)( ‘Пожалуйста, используйте массив размеров для поля Native.image.sizes. Удаление недопустимого свойства mediaTypes.native.image.sizes из запроса.’ ), удалите i.mediaTypes.native.image.sizes), o.image && o.image.aspect_ratios && !Array.isArray(o.image.aspect_ratios) && ((0, r.vV)( ‘Пожалуйста, используйте массив размеров для поля Native.image.aspect_ratios. Удаление недопустимого свойства mediaTypes.native.image.aspect_ratios из запроса.’ ), удалите i.mediaTypes.native.image.aspect_ratios), o.icon && o.icon.sizes && !Array.isArray(o.icon.sizes) && ((0, r.vV)( ‘Пожалуйста, используйте массив размеров для поля Native.icon.sizes. Удаление недопустимого свойства mediaTypes.native.icon.sizes из запроса.’ ), удалите i.mediaTypes.native.icon.sizes), i ); } function te(e, t) { let n = e?.mediaTypes?.[t]?.поз; if (!(0, r.Et)(n) || isNaN(n) || !isFinite(n)) { let n = `Значение свойства ‘pos’ в рекламном блоке ${e.code} должно иметь тип: Number`; (0, r.JE)(n), удалить e.mediaTypes[t].поз; } Вернуть е; } function ne(e) { const t = t => `adUnit.code ‘${e.code}’ ${t}`, n = e.mediaTypes, i = e.bids; вернуть ноль == я || (0, r.cy)(i) ? null == я && null == e.ortb2Imp ? ((0, r.vV)( t( «не имеет ‘adUnit.bids’ и ‘adUnit.ortb2Imp’. Удаление adUnit с аукциона» ) ), null): n && 0 !== Object.keys(n).length ? (null == e.ortb2Imp || (null != i && 0 !== i.length) || ((e.bids = [{ bidder: null }]), (0, r.OG)( t( «определяет ‘adUnit.ortb2Imp’ без ‘adUnit.bids’; его будут видеть только адаптеры S2S» ) )), e) : ((0, r.vV)( t( «не определяет объект ‘mediaTypes’. Это обязательное поле для аукциона, поэтому этот adUnit был удален.» ) ), null): ((0, r.vV)( t( «определяет ‘adUnit.bids’, который не является массивом. Удаление adUnit с аукциона» )), null); } !(function() { let e = null; try { e = window.sessionStorage; } catch (e) {} if (null !== e) { let t = U, n = null; try { n = e.getItem(O); } catch (e) {} null !== n && t.enable(); } })(), (F.bidderSettings = F.bidderSettings || {}), (F.libLoaded = !0), (F.version = ‘v9.50.0’), (0, r.fH)(‘Prebid.js v9.50.0 загружен’), (F.installedModules = F.installedModules || []), (F.adUnits = F.adUnits || []), (F.triggerUserSyncs = H); const ie = { validateAdUnit: ne, validateBannerMediaType: X, validateSizes: K }; Object.assign(т.е. { validateNativeMediaType: ee }), Object.assign(т.е. { validateVideoMediaType: Z }); const re = (0, w.A_)( ‘sync’, function(e) { const t = []; return ( e.forEach(e => { if (null == (e = ne(e))) return; const n = e.mediaTypes; let i, r, o; n.banner && ((i = X(e)), n.banner.hasOwnProperty(‘pos’) && (i = te(i, ‘banner’))), n.video && ((r = Z(i || e)), n.video.hasOwnProperty(‘pos’) && (r = te(r, ‘video’))), n.native && (o = ee(r || i || e)); const s = Object.assign({}, i, r, o); t.push(s }), t ); }, ‘checkAdUnitSetup’); функция oe(e) { const t = En[e]().filter(e => EngetAdUnitCodes().includes(e.adUnitCode) ), n = EngetLastAuctionId(); return t .map(e => e.adUnitCode) .filter(r.hj) .map(e => t.filter(t => t.auctionId === n && t.adUnitCode === e) ) .filter(e => e && e[0] && е[0].adUnitCode).map(e => ({ [e[0].adUnitCode]: { bids: e } })) .reduce((e, t) => Object.assign(e, t), {}); } (F.getAdserverTargetingForAdUnitCodeStr = function(e) { if ( ((0, r.fH)( ‘Вызов tlpbjs.getAdserverTargetingForAdUnitCodeStr’, аргументы ), e) ) { var t = F.getAdserverTargetingForAdUnitCode(e); return (0, r.$D)(t); } (0, r.OG)( ‘Необходимо вызвать getAdserverTargetingForAdUnitCodeStr с adunitCode’ }), (F.getHighestUnusedBidResponseForAdUnitCode = function(e) { if (e) { const t = EngetAllBidsForAdUnitCode(e).filter(A.Yl); return t.length ? t.reduce(N.Vk) : {}; } (0, r.OG)( ‘Необходимо вызвать getHighestUnusedBidResponseForAdUnitCode с помощью adunitCode’ }), (F.getAdserverTargetingForAdUnitCode = function(e) { return F.getAdserverTargeting(e)[e]; }), (F.getAdserverTargeting = function(e) { return ( (0, r.fH)(‘Вызов tlpbjs.getAdserverTargeting, аргументы), A.iS.getAllTargeting(e) ); }), (F.getConsentMetadata = function() { return ( (0, r.fH)(‘Вызов tlpbjs.getConsentMetadata’), q.SL.getConsentMeta() ); }), (F.getNoBids = function() { return ( (0, r.fH)(‘Вызов tlpbjs.getNoBids’, аргументы), oe(‘getNoBids’) ); }), (F.getNoBidsForAdUnitCode = function(e) { return { bids: EngetNoBids().filter(t => t.adUnitCode === e) } }), (F.getBidResponses = function() { return ( (0, r.fH)(‘Вызов tlpbjs.getBidResponses’, аргументы), oe(‘getBidsReceived’) ); }), (F.getBidResponsesForAdUnitCode = function(e) { return { bids: EngetBidsReceived().filter(t => t.adUnitCode === e) }; }), (F.setTargetingForGPTAsync = function(e, t) { (0, r.fH)(‘Вызов tlpbjs.setTargetingForGPTAsync’, аргументы), (0, r.II)() ? A.iS.setTargetingForGPT(e, t) : (0, r.vV)(‘window.googletag не определено на странице’); }), (F.setTargetingForAst = function(e) { (0, r.fH)(‘Вызов tlpbjs.setTargetingForAn’, аргументы), A.iS.isApntagDefined() ? (A.iS.setTargetingForAst(e), $.Ic(J, A.iS.getAllTargeting()))) : (0, r.vV)(‘window.apntag не определен на странице’); (F.renderAd = (0, w.A_)(‘async’, function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.renderAd’, аргументы), (0, r.OG)(‘Вызов renderAd с adId :’ + t), (0, c.BS)(e, t, n })), (F.removeAdUnit = function(e) { if (((0, r.fH)(‘Вызов tlpbjs.removeAdUnit’, аргументы), !e)) return void (F.adUnits =); []); пусть т; (t = (0, r.cy)(e) ? e : [e]), t.forEach(e => { for (let t = F.adUnits.length — 1; t >= 0; t—) F.adUnits[t].code === e && F.adUnits.splice(t, 1); }); }), (F.requestBids = (function() { const e = (0, w.A_)( ‘async’, function() { let { bidsBackHandler: e, timeout: t, adUnits: n, adUnitCodes: i, labels: o, AuctionId: s, ttlBuffer: a, ortb2: d, metrics: c, defer: l } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; $.Ic(г); константа и знак равно т || v.$W.getConfig(‘bidderTimeout’); (0, r.fH)(‘Вызов tlpbjs.requestBids’, аргументы), null == i || Array.isArray(i) || (я = [i]), я && i.длина ? (n = n.filter(e => i.includes(e.code))) : (i = n && n.map(e => e.code)), (i = i.filter(r.hj)); const f = { global: (0, r.D9)( {}, v.$W.getAnyConfig(‘ortb2’) || {}, d || {} ), претендент: Object.fromEntries( Object.entries(v.$W.getBidderConfig()) .map(e => { let [t, n] = е; возвращаться [t, (0, r.Go)(n.ortb2)]; }) .filter(e => { let [t, n] = е; вернуть ноль!= n; }) ) }; return (0, xw)(C.U9.resolve(f.global)).then( t => ( (f.global = t), se({ bidsBackHandler: e, timeout: u, adUnits: n, adUnitCodes: i, labels: o, AuctionId: s, ttlBuffer: a, ortb2Fragments: f, metrics: c, defer: l }) ) ); }, ‘requestBids’); return (0, w.Y6)( e, M( () => !v.$W.getConfig(‘allowPrerendering’), function() { let t = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, n = t.adUnits || F.adUnits; return ( (t.adUnits = (0, r.cy)(n) ? n.slice() : [n]), (t.metrics = (0, j.K7)()), t.metrics.checkpoint(‘requestBids’), (t.defer = (0, C.v6)({ PromiseFactory: e => new Promise(e) })), e.call(this, t), t.defer.promise ); } ) ); })()); const se = (0, w.A_)( ‘async’, function() { let { bidsBackHandler: e, timeout: t, adUnits: n, ttlBuffer: i, adUnitCodes: o, labels: a, AuctionId: d, ortb2Fragments: c, metrics: l, defer: u } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; const f = (0, _.pX)(v.$W.getConfig(‘s2sConfig’) || []); function g(t, n, i) { if (‘function’ == typeof e) try { e(t, n, i); } catch (e) { (0, r.vV)(‘Ошибка выполнения bidsBackHandler’, null, e); } u.resolve({bids: t, timedOut: n, AuctionId: i }); } !(function(e) { e.forEach(e => (0, W.V0)(e)); })(n), (n = (0, j.BO)(l).measureTime(‘requestBids.validate’, () => re(n) )); константа р = {}; if ( (n.forEach(e => { const t = Object.keys(e.mediaTypes || { баннер: ‘banner’ }), n = e.bids.map(e => e.bidder), o = _.Ay.bidderRegistry, s = n.filter(e => !f.has(e)); e.adUnitId = (0, r.lk)(); const a = e.ortb2Imp?.ext?.tid; a && (p.hasOwnProperty(e.code) ? (0, r.JE)( `Для двойных рекламных блоков ‘${e.code}’` предоставлено несколько различных ortb2Imp.ext.tid ): (p[e.code] = а)), ноль == я || e.hasOwnProperty(‘ttlBuffer’) || (e.ttlBuffer = i), s.forEach(n => { const i = o[n]s = i && i.getSpec && i.getSpec(), a = (s && s.supportedMediaTypes) || [‘banner’]; t.some(e => a.includes(e)) || ((0, r.JE)((0, r.bz)(e, n)), (e.bids = e.bids.filter(e => e.bidder !== n))); }); }), n && 0 !== n.length)) { n.forEach(e => { const t = e.ortb2Imp?.ext?.tid || p[e.code] || (0, р.лк)(); p.hasOwnProperty(e.code) || (п[e.code] = t), (e.transactionId = t), (0, sJ)(e, ‘ortb2Imp.ext.tid’, t); }); const e = EncreateAuction({ adUnits: n, adUnitCodes: o, обратный вызов: g, cbTimeout: t, метки: a, AuctionId: d, ortb2Fragments: c, метрики: l }); пусть я = n.length; i > 15 && (0, r.fH)( `Текущий аукцион ${e.getAuctionId()} содержит ${i} adUnits.`, n), o.forEach(t => A.iS.setLatestAuctionForAdUnit(t, e.getAuctionId())), e.callBids(); } else (0, r.OG)(‘Рекламные блоки не настроены. Ставки не запрошены.’), g(); }, ‘НачатьАукцион’); F.requestBids.before(function(e, t) { function n(e) { for (var t; (t = e.shift()); ) t(); } n(D.s0), n(ae), e.call(this, t); }, 49), (F.addAdUnits = function(e) { (0, r.fH)(‘Вызов tlpbjs.addAdUnits’, аргументы), F.adUnits.push.apply(F.adUnits, (0, r.cy)(e) ? e : [e]), $.Ic(L); }), (F.onEvent = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.onEvent’, аргументы), (0, r.fp)(t) ? !n || Q[e].call(ноль, n) ? $.on(e, t, n) : (0, r.vV)( ‘Указанный идентификатор недействителен для события «‘ + e + ‘» и обработчик не установлен.’ ): (0, r.vV)( ‘Предоставленный обработчик событий не является функцией и не был установлен для события «‘ + e + ‘».’ ); }), (F.offEvent = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.offEvent’, аргументы), (n && !Q[e].call(ноль, n)) || $.AU(е, т, п); }), (F.getEvents = function() { return (0, r.fH)(‘Вызов tlpbjs.getEvents’), $.kQ(); }), (F.registerBidAdapter = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.registerBidAdapter’, аргументы); try { const i = n ? (0, G.xb)(n) : e(); _.Ay.registerBidAdapter(i, t); } catch (e) { (0, r.vV)(‘Ошибка регистрации адаптера участника торгов: ‘ + e.message } }), (F.registerAnalyticsAdapter = function(e) { (0, r.fH)( ‘Вызов tlpbjs.registerAnalyticsAdapter’, аргументы ); try { _.Ay.registerAnalyticsAdapter(e); } catch (e) { (0, r.vV)( ‘Ошибка регистрации адаптера аналитики: ‘ + e.message } }), (F.createBid = function(e) { return ( (0, r.fH)(‘Вызов tlpbjs.createBid’, аргументы), (0, IO)(e) ); }); константа аэ = []de = (0, w.A_)( ‘async’, function(e) { e && !(0, r.Im)(e) ? ((0, r.fH)(‘Вызов tlpbjs.enableAnalytics для: ‘, e), _.Ay.enableAnalytics(e)) : (0, r.vV)( ‘tlpbjs.enableAnalytics следует вызывать с опцией {}’ }, ‘enableAnalyticsCb’); function ce(e) { if (‘function’ == typeof e) try { e.call(); } catch (e) { (0, r.vV)(‘Ошибка команды обработки:’, e.message, e.stack); } else (0, r.vV)( ‘Команды, записанные в tlpbjs.cmd.push, должны быть обернуты функцией’ ); } function le(e) { e.forEach(function(e) { if (void 0 === e. Called) try { e.call(), (e.called = !0); } catch (e) { (0, r.vV)(‘Ошибка команды обработки :’, ‘prebid.js’, e); } }); } (F.enableAnalytics = function(e) { ae.push(de.bind(this, e)); }), (F.aliasBidder = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.aliasBidder’, аргументы), e && t ? _.Ay.aliasBidAdapter(e, t, n) : (0, r.vV)( ‘bidderCode и псевдоним должны быть переданы в качестве аргументов’, ‘tlpbjs.aliasBidder’ ); }), (F.aliasRegistry = _.Ay.aliasRegistry), v.$W.getConfig(‘aliasRegistry’, e => { ‘private’ === e.aliasRegistry && delete F.aliasRegistry; }), (F.getAllWinningBids = function() { return EngetAllWinningBids(); }), (F.getAllPrebidWinningBids = function() { return ( (0, r.JE)( ‘getAllPrebidWinningBids может быть удален или переименован в будущей версии. Эта функция возвращает ставки, которые выиграли в предварительной ставке и для которых был установлен таргетинг, но (еще?) не выиграли на рекламном сервере. Она исключает ставки, которые были обработаны.’), En .getBidsReceived() .filter(e => e.status === d.tl.BID_TARGETING_SET) }), (F.getHighestCpmBids = function(e) { return A.iS.getWinningBids(e); }), (F.clearAllAuctions = function() { EnclearAllAuctions(); }), (F.markWinningBidAsUsed = function(e) { let t, { adId: n, adUnitCode: i, Analytics: o = !1, event: s = !1 } = e; i && null == n ? (t = A.iS.getWinningBids(i)) : n ? (t = EngetBidsReceived().filter(e => e.adId === n)) : (0, r.JE)( ‘Неправильное использование markWinningBidAsUsed. Для работы требуется adUnitCode или adId.’), t.length > 0 && (o || s ? (0, c.n6)(t[0]) : EnaddWinningBid(t[0]), (0, c.qn)(t[0])); }), (F.getConfig = v.$W.getAnyConfig), (F.readConfig = v.$W.readAnyConfig), (F.mergeConfig = v.$W.mergeConfig), (F.mergeBidderConfig = v.$W.mergeBidderConfig), (F.setConfig = v.$W.setConfig), (F.setBidderConfig = v.$W.setBidderConfig), F.que.push(() => m()), (F.processQueue = M( ( () => (0, im)().delayPrerendering, function() { (F.que.push = F.cmd.push = ce), (0, c.XO)(), w.A_.ready(), le(F.que), le(F.cmd); } )), (F.triggerBilling = e => { let { adId: t, adUnitCode: n } = e; En .getAllWinningBids() .filter( e => e.adId === t || (null == t && e.adUnitCode === n) ) .forEach(e => { _.Ay.triggerBilling(e), (0, с.vB)(е); }); }, 7873: (e, t, n) => { nd(t, { E: () => s, m: () => o }); const i = окно, r = (i.tlpbjs = i.tlpbjs || {}); функция о () {возвращение г; } функция s(e) { r.installedModules.push(e); } (r.cmd = r.cmd || []), (r.que = r.que || []), i === окно && ((i._pbjsGlobals = i._pbjsGlobals || []), i._pbjsGlobals.push(‘tlpbjs’)); }, 7934: (e, t, n) => { nd(t, { EN: () => d, gR: () => s }); вар я = п(3272), г = п(1069); function o(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: окно; if (!e) вернуть e; if (/w+:///.exec(e)) возвращает e; пусть n = t.location.protocol; попробуйте { n = t.top.location.protocol; } catch (e) {} return /^///.exec(e) ? n + e : `${n}//${e}`; } function s(e) { let { noLeadingWww: t = !1, noPort: n = !1 } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; попробуйте {e = новый URL(o(e)); } поймать (е) {вернуться; } return ( (e = n ? e.hostname : e.host), t && e.startsWith(‘www.’) && (e = e.substring(4)), e ); } function a(e) { try { const t = e.querySelector(«link[rel=’canonical’]»); if (null !== t) return t.href; } catch (e) {} return null; } const d = (function(e) { let t, n, i, r = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: окно; вернуть r.top !== r ? e : function() { const o = a(r.document), s = r.location.href; return ( (t === o && s === n) || ((t = o), (n = s), (i = e())), i ); }; })( ((c = окно), function() { const e = []t = (function(e) { try { if (!e.location.ancestorOrigins) return; return e.location.ancestorOrigins; } catch (e) {} })(c), n = i.$W.getConfig(‘maxNestedIframes’); пусть d, l, u, f, g = !1, p = 0, h = !1, m = !1, b = !1; do {const n = d, я = m; пусть o, s = !1, f = ноль; (m = !1), (d = d? d.parent: c); попробуйте { o = d.location.href || нулевой; } catch (e) { s = !0; } if (s) if (i) { const e = n.context; try { (f = e.sourceUrl), (l = f), (b = !0), (h = !0), d === c.top && (g = !0), e.canonicalUrl && (u = e.canonicalUrl); } catch (e) {} } else { (0, r.JE)( ‘Пытаюсь получить доступ к междоменному iframe. Продолжаем без реферера и местоположения’); попробуйте {const e = n.document.referrer; e && ((f = e), d === c.top && (g = !0)); } catch (e) {} !f && t && t[p — 1] && ((f = t[p — 1]), d === c.top && (b = !0)), f && !h && (l = f); } else { if (o && ((f = o), (l = f), (h = !1), d === c.top)) { g = !0; const e = a(d.document); е && (и = е); } d.context && d.context.sourceUrl && (m = !0); } e.push(f), p++; } while (d !== c.top && p -1 && -1 === E.indexOf(‘?’) && (E = `${E}${y.substring(y.indexOf(‘?’))}`), { достигнутыйTop: g, isAmp: h, numIframes: p — 1, stack: e, topmostLocation: l || null, location: y, canonicalUrl: v, страница: E, домен: s(E) || null, ref: f || null, Legacy: { достигнутыйTop: g, isAmp: h, numIframes: p — 1, стек: e, реферер: l || null, canonicalUrl: v } } ); }) ); вар с; }, 2938: (e, t, n) => { nd(t, { CK: () => b, X0: () => g, qk: () => f, s0: () => p, vM: () => m }); var i = n(1069), r = n(2693), o = n(5569), s = n(5139), a = n(2604), d = n(6811), c = n(3272), l = n(1445), u = n(3441); const f = ‘html5’, g = ‘cookie’; пусть р = []; function h() { let { имя_модуля: e, тип_модуля: t } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, { isAllowed: n = s.io } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; функция r(i, r) { пусть s = e; const f = c.$W.getCurrentBidder(); f && t === o.tW && l.Ay.aliasRegistry[f] === е && (s = f); return i({действительно: n(d.Ue, (0, us)(t, s, { [a.Zw]:р })) }); } function h(e, t, n) { if (!n || ‘function’ != typeof n) return r(e, t); p.push(function() { let i = r(e, t); n(i); }); } function m(e) { const t = e.charAt(0).toUpperCase() + e.substring(1), n ​​= () => окно[e]r = function(t) { return h( function(t) { if (t && t.valid) try { return !!n(); } catch (t) { (0, i.vV)(`${e} api Disabled`); } return !1; }, f, t ); }; возвращаться {
[`has${t}`]: р,
[`${e}IsEnabled`]: e => h( function(e) { if (e && e.valid) try { return ( n().setItem(‘prebid.cookieTest’, ‘1’), ‘1’ === n().getItem(‘prebid.cookieTest’) ); } catch (e) { } наконец { try { n().removeItem(‘prebid.cookieTest’); } catch (e) {} } вернуть !1 }, е, е),
[`setDataIn${t}`]: (e, t, i) => h( function(i) { i && i.valid && r() && n().setItem(e, t); }, f, i ),
[`getDataFrom${t}`]: (e, t) => h( function(t) { return t && t.valid && r() ? n().getItem(e) : null; }, f, t ),
[`removeDataFrom${t}`]: (e, t) => h( function(t) { t && t.valid && r() && n().removeItem(e); }, f, t ) }; } return { setCookie: function(e, t, n, i, r, o) { return h( function(o) { if (o && o.valid) { const o = r && » !== r ? ` ;domain=${encodeURIComponent(r)}` : », s = n && » !== n ? ` ;expires=${n}` : », a = null != i && ‘none’ == i.toLowerCase() ? ‘; Secure’ : »; document.cookie = `${e}=${encodeURIComponent(t)}${s}; path=/${o}${i `; SameSite=${i}` : »}${a}`; }, getCookie: function(e, t) { return h( function(t) { if (t && t.valid) { let t = window.document.cookie.match( ‘(^|;)\s*’ + e + ‘\s*=\s*([^;]*)\s*(;|$)’ ); вернуть т? декодироватьURIComponent(t[2]) : нулевой; } Вернуть ноль; }, г, т ); }, cookiesAreEnabled: function(e) { return h( function(e) { return !(!e || !e.valid) && (0, i.GE)(); }, g, e ); }, …m(‘localStorage’), …m(‘sessionStorage’), findSimilarCookies: function(e, t) { return h( function(t) { if (t && t.valid) { const t = []; if ((0, i.N9)()) { const n = document.cookie.split(‘;’); for (; n.length; ) { const i = n.pop(); пусть r = i.indexOf(‘=’); р = р = 0 && t.push(decodeURIComponent(i.slice(r + 1))); } } Вернуть т; } }, г, т ); } }; } function m() { let { ModuleType: e, ModuleName: t, bidderCode: n } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; function i() { throw new Error(‘Неверный вызов getStorageManager: необходимо установить либо bidderCode, либо ModuleType + ModuleName’); } return ( n ? (((e && e !== o.tW) || t) && i(), (e = o.tW), (t = n)) : (t && e) || i(), h({moduleType: e, ModuleName: t }) ); } function b(e) { return h({имя_модуля: e, тип_модуля: o.tp }); } (0, s.qB)(d.Ue, ‘deviceAccess config’, function() { if (!(0, i.N9)()) return {allow: !1 }; }), (0, s.qB)(d.Ue, ‘bidderSettings.*.storageAllowed’, function(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: ру; если (е[a.Dk] !== o.tW) return; пусть n = t.get(e[a.q7]’разрешено хранилище’); if (n && !0 !== n) { const t = e[a.Zw]; n = Array.isArray(n) ? n.some(e => e === t) : n === t; } Еще n = !!n; вернуть? пустота 0: {разрешить: п}; }); }, 7779: (e, t, n) => { nd(t, { Yl: () => w, iS: () => B, uW: () => A }); var i = n(6881), r = n(7863), o = n(2693), s = n(3272), a = n(8969), d = n(5023), c = n(9214), l = n(1371), u = n(2449), f = n(1069), g = n(433), p = n(2713), h = []; const m = 20, b = ‘targetingControls.allowTargetingKeys’, y = ‘targetingControls.addTargetingKeys’, v = `Можно установить только один из «${b}» или «${y}», E = Object.keys(a.xS).map(e => a.xS[e]); let A = { isActualBid: e => e.getStatusCode() === a.XQ.GOOD, isBidNotExpired: e => e.responseTimestamp + 1e3 * (0, r.cT)(e) > (0, f.vE)(), isUnusedBid: e => e && ((e.status && ![a.tl.RENDERED].includes(e.status)) || !e.status) }; function w(e) { return !Object.values(A).some(t => !t(e)); } const I = (0, c.A_)(‘sync’, function(e, t) { let n = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: 0, i = аргументы.длина > 3 && void 0 !== аргументы[3] && аргументы[3]r = аргументы.длина > 4 && void 0 !== аргументы[4]
? аргументы[4]
: f.Q0; если (!i) { const i = []o = s.$W.getConfig(‘sendBidsControl.dealPrioritization’); пусть a = (0, f.$z)(e, ‘adUnitCode’); return ( Object.keys(a).forEach(e => { let s = []d = (0, f.$z)(a[e]’Код покупателя’); Object.keys(d).forEach(e => { s.push(d[e].reduce(т)); }), н ? ((s = o ? s.sort(T(!0)) : s.sort((e, t) => t.cpm — e.cpm)), i.push(…s.slice(0, n))) : ((s = s.sort(r)), i.push(…s)); }), я ); } Вернуть е; }); function T() { let e = аргументы.длина > 0 && void 0 !== аргументы[0] && аргументы[0]; return function(t, n) { return void 0 !== t.adserverTargeting.hb_deal && void 0 === n.adserverTargeting.hb_deal ? -1 : void 0 === t.adserverTargeting.hb_deal && void 0 !== n.adserverTargeting.hb_deal ? 1: е? n.cpm – t.cpm: n.adserverTargeting.hb_pb – t.adserverTargeting.hb_pb; }; } function C(e, t) { return (arguments.length > 2 && void 0 !== аргументы[2]
? аргументы[2]
: () => window.googletag.pubads().getSlots())().reduce( (e, n) => { const i = (0, f.fp)(t) && t(n); return ( Object.keys(e) .filter((0, f.fp)(i) ? i : (0, f.iC)(n)) .forEach(t => e[t].push(n)), e ); }, Object.fromEntries(e.map(e => [e, []])) ); } const B = (function(e) { let t = {}, n = {}; function i(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1] && аргументы[1]n = аргументы.длина > 2 && void 0 !== аргументы[2] && аргументы[2]; const i = E.concat(u.Nh), r = s.$W.getConfig(‘targetingControls.allowSendAllBidsTargetingKeys’), o = r? r.map(e => a.xS[e]) : я; return e.reduce((e, r) => { if (t || (n && r.dealId)) { const t = (function(e, t) { return t.reduce( (t, n) => ( e.adserverTargeting[n] && t.push({
[`${n}_${e.bidderCode}`.substring(0, 20)]: [
e.adserverTargeting[n]
]}), т ),
[]
); })( r, i.filter( e => void 0 !== r.adserverTargeting[e] && (n || -1 !== o.indexOf(e)) ) ); t && e.push({ [r.adUnitCode]: т }); } Вернуть е; }, []); } function r(t) { return ‘string’ == typeof t ? [t]
: (0, f.cy)(t) ? t: e.getAdUnitCodes() || []; } function A() { let t = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: p.Bq, i = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: void 0, r = e.getBidsReceived().reduce((e, t) => { const i = s.$W.getConfig(‘useBidCache’), r = s.$W.getConfig(‘bidCacheFilterFunction’), o = n[t.adUnitCode] === t.auctionId, a = !(i && !o && ‘function’ == typeof r) || !!р(т); return ( (i || o) && a && (0, gA)(t, ‘video.context’) !== l.LM && w(t) && ((t.latestTargetedAuctionId = n[t.adUnitCode]), e.push(t)), e ); }, []); return I(r, t, void 0, void 0, void 0, i); } function B(e, n) { let i = t.getWinningBids(n, e), r = O(); return ( (i = i.map(e => ({
[e.adUnitCode]: Object.keys(e.adserverTargeting).filter( t => void 0 === e.sendStandardTargeting || e.sendStandardTargeting || -1 === r.indexOf(t) ).reduce((t, n) => { const i = [e.adserverTargeting[n]], р знак равно { [n.substring(0, m)]: я }; if (n === a.xS.DEAL) { const o = `${n}_${e.bidderCode}`.substring(0, m), s = { [o]: я }; возвращаться […t, r, s]; } возвращаться […t, r]; }, []) }))), я ); } function O() { return e .getStandardBidderAdServerTargeting() .map(e => e.key).concat(E).filter(f.hj); } return ( (t.setLatestAuctionForAdUnit = function(e, t) { n[e] = т; }), (t.resetPresetTargeting = function(e, t) { if ((0, f.II)()) { const n = r(e); Object.values(C(n, t)).forEach(e => { e.forEach(e => { !(function(e) { h.forEach(t => { e.getTargeting(t) && e.clearTargeting(t); }); })(e); }); }); } }), (t.resetPresetTargetingAST = function(e) { r(e).forEach(function(e) { const t = window.apntag.getTag(e); if (t && t.keywords) { const n = Object.keys(t.keywords), i = {}; n.forEach(e => { h.includes(e.toLowerCase()) ||[e] = т.ключевые слова[e]); }), window.apntag.modifyTag(e, {keywords: i }); } }); }), (t.getAllTargeting = function(t, n, d) { let c = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: p.Vk, l = аргументы.длина > 4 && void 0 !== аргументы[4]
? аргументы[4]
: f.Q0; d ||= A(c, l); const g = r(t), E = s.$W.getConfig(‘enableSendAllBids’), w = s.$W.getConfig(‘sendBidsControl.bidLimit’), C = (E && (n || w)) || 0, { customKeysByUnit: R, filteredBids: S } = (function(e, t) { const n = []я = {}, r = s.$W.getConfig(‘targetingControls.alwaysIncludeDeals’); return ( t.forEach(t => { const s = e.includes(t.adUnitCode), a = !0 === ouget(t.bidderCode, ‘allowZeroCpmBids’) ? t.cpm >= 0 : t.cpm > 0, d = r && t.dealId; s && (d || a) && (n.push(t), Object.keys(t.adserverTargeting) .filter( (function() { let e = O(); e = e.concat(u.Nh); return function(t) { return -1 === e.indexOf(t); }; })() ).forEach(e => { const n = e.substring(0, m), r = i[t.adUnitCode] || {}, о = [t.adserverTargeting[e]]; р[n]
? (р[n] = р[n].concat(o).filter(f.hj)) : (r[n] = о), (я[t.adUnitCode] = г); })); }), { filteredBids: n, customKeysByUnit: i }); })(г, г); let k = (function(t, n, r) { const o = !1 !== s.$W.getConfig( ‘targetingControls.allBidsCustomTargeting’), d = B(t, r).concat( (function(e) { const t = s.$W.getConfig( ‘targetingControls.alwaysIncludeDeals’); return i(e, s.$W.getConfig(‘enableSendAllBids’), t); })(t) ) .concat( (function(t) { function n(e) { return e?.[a.iD.ADSERVER_TARGETING]; } function i(e) { const t = n(e); return Object.keys(t).map(function(e) { return ( (0, f.O8)(t[e]) && (т[e] = т[e].split(‘,’).map(e => e.trim())), (0, f.cy)(t[e]) || (т[e] = [t[e]]), { [e]: т[e] }); }); } return e .getAdUnits() .filter(e => t.includes(e.code) && n(e)) .reduce((e, t) => { const n = i(t); return n && e.push({ [t.code]: н }), е; }, []); })(г) ); o && d.push( …(function(e, t) { return e.reduce((e, n) => { const i = Object.assign({}, n), r = t[i.adUnitCode]о = []; return ( r && Object.keys(r).forEach(e => { e && r[e] && o.push({ [e]: р[e] }); }), e.push({ [i.adUnitCode]: о }), и ); }, []); })(t, n) ); return ( d.forEach(e => { !(function(e) { Object.keys(e).forEach(t => { e[t].forEach(e => { const t = Object.keys(e); -1 === h.indexOf(t[0]) && (h = t.concat(h)); }); }); })(е); }), г ); })(I(S, c, C, пустота 0, l), R, g); const U = Object.keys(Object.assign({}, a.Zh, a.x5)); пусть D = s.$W.getConfig(b); const _ = s.$W.getConfig(y); if (null != _ && null != D) выдать новую ошибку(v); (D = null != _ ? U.concat(_) : D || U), Array.isArray(D) && D.length > 0 && (k = (function(e, t) { const n = Object.assign({}, a.xS, a.x5), i = Object.keys(n), r = {}; (0, f.fH)( `allowTargetingKeys — разрешенные ключи [ ${t
.map(e => n[e]) .join(‘, ‘)} ]` ), e.map(e => { const o = Object.keys(e)[0]s = е[o].filter(e => { const o = Object.keys(e)[0]s = 0 === i.filter(e => 0 === o.indexOf(n[e])) .длина || t.find(e => { const t = n[e]; вернуть 0 === o.indexOf(t); }); возврат (р[o] = !s), с; }); е[o] = с; }); const o = Object.keys(r).filter(e => r[e]); return ( (0, f.fH)( `allowTargetingKeys — удаленные ключи [ ${o.join(
‘, ‘
)} ]` ), e.filter(e => e[Object.keys(e)[0]].длина > 0) ); })(k, D)), (k = (function(e) { let t = e.map(e => ({
[Object.keys(e)[0]]: е[Object.keys(e)[0]].map(e => ({
[Object.keys(e)[0]]: е[Object.keys(e)[0]].join(‘,’) })) .reduce((e, t) => Object.assign(t, e), {}) })); return ( (t = t.reduce(function(e, t) { var n = Object.keys(t)[0]; возврат (э[n] = Object.assign({}, е[n]т[n])) е; }, {})) т ); })(к)); const $ = s.$W.getConfig(‘targetingControls.auctionKeyMaxChars’); return ( $ && ((0, f.fH)( Для этого аукциона был активен `targetingControls.auctionKeyMaxChars’; задано ограничение в ${$} символов. Выполнение проверок ключей аукциона…` ), (k = (function(e, t) { let n = (0, f.Go)(e), i = Object.keys(n).map(e => ({ adUnitCode: e, таргетинг рекламного сервера: n[e]
})) .sort(T()); return i.reduce(function(e, i, r, o) { let s = ((a = i.adserverTargeting), Object.keys(a).reduce(function(e, t) { return ( e + `${t}%3d${encodeURIComponent(a[t])}%26`); }, »)); вар а; r + 1 === o.length && (s = s.slice(0, -3)); пусть d = i.adUnitCode, c = s.length; return ( c { k[e] || (к[e] = {}); }), к ); }), s.$W.getConfig(‘targetingControls’, function(e) { null != (0, gA)(e, b) && null != (0, gA)(e, y) && (0, f.vV)(v); }), (t.setTargetingForGPT = (0, c.A_)( ‘sync’, function(n, i) { let r = t.getAllTargeting(n), o = Object.fromEntries(h.map(e => [e, null])); Object.entries(C(Object.keys(r), i)).forEach(e => {let [t, n] = е; n.length > 1 && (0, f.JE)( `Несколько слотов найдены совпадающими: ${t}. Таргетинг будет установлен на все соответствующие слоты, что может привести к дублированию показов, если из GAM запрошено более одного показа. Чтобы решить эту проблему, убедитесь, что аргументы setTargetingForGPTAsync разрешаются в один слот, явно сопоставляя желаемый slotElementID.` ), n.forEach(e => { Object.keys(r)[t]).forEach(e => { let n = r[t][e]; ‘string’ == typeof n && -1 !== n.indexOf(‘,’) && (n = n.split(‘,’)), (r[t][e] = п); }), (0, f.OG)( `Попытка установить карту таргетинга для слота: ${e.getSlotElementId()} с помощью карты таргетинга:`, r[t]
), e.updateTargetingFromMap( Object.assign({}, o, r[t]) ); }); }), Object.keys(r).forEach(t => { Object.keys(r[t]).forEach(n => { ‘hb_adid’ === n && e.setStatusForBids(r[t][n]a.tl.BID_TARGETING_SET); }); }), t.targetingDone(r), d.Ic(a.qY.SET_TARGETING, r); }, ‘setTargetingForGPT’ )), (t.targetingDone = (0, c.A_)( ‘sync’, function(e) { return e; }, ‘targetingDone’ )), (t.getWinningBids = function(e, t) { let n = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: p.Vk, i = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: f.Q0; константа s = т || А(п, i), а = г(е); return s .filter(e => a.includes(e.adUnitCode)) .filter(e => !0 === ouget(e.bidderCode, ‘allowZeroCpmBids’) ? e.cpm >= 0 : e.cpm > 0 ) .map(e => e.adUnitCode).filter(f.hj) .map(e => s .filter(t => (t.adUnitCode === e ? t : null)) .reduce(p.Vk) ); }), (t.setTargetingForAst = function(e) { let n = t.getAllTargeting(e); try { t.resetPresetTargetingAST(e); } catch (e) { (0, f.vV)(‘невозможно сбросить таргетинг для AST’ + e); } Object.keys(n).forEach(e => Object.keys(n)[e]).forEach(t => { if ( ((0, f.OG)( `Попытка установить таргетинг для targetId: ключ ${e}: значение ${t}: ${n[e][t]}` ), (0, f.O8)(n[e][t]) || (0, ф.су)(n[e][t])) ) { пусть я = {}, r = /pt[0-9]/; t.search(r) { nd(t, { qh: () => u, zt: () => g }); var i = n(1069), r = n(3272), o = n(2938), s = n(5139), a = n(6811), d = n(2604), c = n(5569), l = n(3441); const u = { syncEnabled: !0, filterSettings: { image: { bidders: ‘*’, filter: ‘include’ } }, syncsPerBidder: 5, syncDelay: 3e3, AuctionDelay: 500 }; r.$W.setDefaults({userSync: (0, i.Go)(u) }); const f = (0, o.CK)(‘usersync’); const g = (function(e) { let t = {}, n = { image: []iframe: [] }, o = new Set(), s = {}, u = { image: !0, iframe: !1 }, f = e.config; function g() { if (f.syncEnabled && e.browserSupportsCookies) { try { !(function() { if (!u.iframe) return; p(n.iframe, e => { let [t, r] = е; (0, i.OG)(`Вызов синхронизации пользователя iframe для участника торгов: ${t}`), (0, i.SG)(r), (function(e, t) { e.image = e.image.filter(e => e[0] !== т); })(п, т); }); })(), (function() { if (!u.image) return; p(n.image, e => { let [t, n] = е; (0, i.OG)( `Вызов пользовательской синхронизации пикселей изображения для участника торгов: ${t}` ), (0, iz$)(n); }); })(); } catch (e) { return (0, i.vV)(‘Ошибка запуска пользовательской синхронизации’, e); } n = {изображение: []iframe: [] }; } } function p(e, t) { (0, i.k4)(e).forEach(t); } function h(e, t) { let n = f.filterSettings; if ( (function(e, t) { if (e.all && e[t]) return ( (0, i.JE)( `Обнаружено наличие «filterSettings.all» и «filterSettings.${t}» в конфигурации userSync. Вы не можете смешивать «all» с конфигурациями «iframe/image»; они являются взаимоисключающими.` ), !1 ); пусть n = e.all? е.все : е[t]r = e.all ? ‘все’: т; если (!n) вернуть !1; пусть o = n.filter, s = n.bidders; if (o && ‘include’ !== o && ‘exclude’ !== o) return ( (0, i.JE)( Параметр `UserSync «filterSettings.${r}.filter» ‘${o}’ не является допустимым вариантом; используйте либо ‘include’, либо ‘exclude’.`), !1 ); if ( ‘*’ !== s && !( Array.isArray(s) && s.length > 0 && s.every(e => (0, i.O8)(e) && ‘*’ !== e)) ) return ( (0, i.JE)( `Обнаружена неверная настройка в userSync «filterSettings.${r}.bidders»; используйте либо ‘*’ (для представления всех участники торгов) или массив участников торгов.` ), !1 ); вернуть !0; })(n, e) ) { ты[e] = !0; пусть я = n.all? н.все : н[e]r = ‘*’ === i.bidders ? [t] : i.участники торгов; const o = {include: (e, t) => !e.includes(t), исключаем: (e, t) => e.includes(t) }; вернуться о[i.filter || ‘include’](р, т); } вернуть !у[e]; } return ( r.$W.getConfig(‘userSync’, e => { if (e.userSync) { let t = e.userSync.filterSettings; (0, i.Qd)(t) && (t.image || t.all || (e.userSync.filterSettings.image = { bidders: ‘*’, filter: ‘include’ })); } f = Object.assign(f, e.userSync); }), e.regRule(a.Ml, ‘userSync config’, e => { if (!f.syncEnabled) return {allow: !1, причина: ‘синхронизация отключена’ }; if (e.userSync);[d.Dk] === c.tW) { const n = e[d.bt]я = е[d.iK]; if (!t.canBidderRegisterSync(n, i)) return {allow: !1, причина: `${n} синхронизация не включена для ${i}` }; } }), (t.registerSync = (t, r, u) => o.has(r) ? (0, i.OG)( `уже запущена синхронизация для «${r}», игнорируя вызов RegisterSync` ): f.syncEnabled && (0, i.cy)(n[t]) ? р? 0 !== f.syncsPerBidder && Число(а)[r]) >= f.syncsPerBidder ? (0, i.JE)(`Превышено количество пользовательских синхронизаций для «${r}»`) : void ( e.isAllowed( a.Ml, (0, ls)(c.tW, r, { [d.bt]: т, [d.e3]: ты })) ) && (n[t].толкать([r, u]), (s = (function(e, t) { return e[t] ? (э[t] += 1) : (е[t] = 1), е; })(s, r))) ) : (0, i.JE)(‘Для регистрации синхронизации требуется программа назначения ставок’) : (0, i.JE)(`Тип пользовательской синхронизации «${t}» не поддерживается`)), (t.bidderDone = o.add.bind(o)), (t.syncUsers = function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: 0; if (e) вернуть setTimeout(g, Number(e)); г(); }), (t.triggerUserSyncs = () => { f.enableOverride && t.syncUsers(); }), (t.canBidderRegisterSync = (e, t) => !f.filterSettings || !h(e, t)), t ); })( Object.defineProperties( { config: r.$W.getConfig(‘userSync’), isAllowed: s.io, regRule: s.qB }, { BrowseSupportsCookies: { get: function() { return !(0, i.Vt)() && f.cookiesAreEnabled(); } } } ) ); }, 1069: (e, t, n) => { nd(t, { $D: () => U, $z: () => Ue, Bg: () => Ke, Bj: () => Qe, Bk: () => ge, Bq: () => he, CA: () => K, D4: () => me, D9: () => Le, Dl: () => Ge, Эл: () => Йе, Et: () => ne, Ez: () => Y, Fq: () => We, GE: () => Se, Go: () => we, II: () => ye, Im: () => oe, JE: () => F, Lm: () => re, N9: () => Re, O8: () => ee, OG: () => M, От: () => Т, ПБ: () => Е, Q0: () => Ее, Qд: () => т.е., ШБ: () => $е, СГ: () => уе, Ш: () => Дэ, Тз: () => фе, У6: () => ке, Уп: () => Пе, Уу: () => Вэ, В: () => Оэ, Вт: () => Те, ЙЕ: () => П, ЗА: () => быть, ЗК: () => Зе, _s: () => ае, ал: () => Ie, bD: () => He, bL: () => k, bz: () => Ne, c$: () => Fe, cD: () => w, ср: () => j, cy: () => te, dp: () => J, fH: () => G, fp: () => Z, gM: () => Ce, h0: () => L, hj: () => pe, hw: () => Q, iC: () => qe, k4: () => Ae, kK: () => _, l4: () => N, l9: () => je, lk: () => S, mM: () => C, mb: () => q, nT: () => Xe, ro: () => le, s0: () => R, t1: () => ve, vE: () => Be, vV: () => H, wD: () => _e, xQ: () => se, y$: () => D, z$: () => ce }); var i = n(3272), r = n(5751), o = n(8969), s = n(5555), a = n(7873), d = «Строка», c = «Функция», l = «Число», u = «Объект», f = «Логическое значение», g = Object.prototype.toString; let p, h, m = Boolean(window.console), b = Boolean(m && window.console.log), y = Boolean(m && window.console.info), v = Boolean(m && window.console.warn), E = Boolean(m && window.console.error); const A = (0, am)(); функция w(e) { p = e; } function I() { null != p && p(…аргументы); } const T = (function() { let e; return () => ( (!h || !e || Date.now() — e > 20) && (C.resetWinDimensions(), (e = Date.now())), h ); })(); const C = { checkCookieSupport: Se, createTrackPixelIframeHtml: function(e) { let t = !(arguments.length > 1 && void 0 !== аргументы[1]) || аргументы[1]n = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: »; если (! e) return »; t &&(e = encodeURI(e)); n &&(n = `sandbox=»${n}»`); вернуть «; }, getWindowSelf: N, getWindowTop: q, canAccessWindowTop: V, getWindowLocation: W, InsertUserSyncIframe: ue, InsertElement: ae, isFn: Z, триггерPixel: ce, logError: H, logWarn: F, logMessage: M, logInfo: G, parseQS: Me, formatQS: функция (e ) {возврат объекта. ключи ( е ) . карта ( t => Array . isArray ( e )[t]) ? е[t].map(e => `${t}[]=${e}`).join(‘&’) : `${t}=${e[t]}` ) .join(‘&’); }, deepEqual: He, resetWinDimensions: function() { const e = V() ? C.getWindowTop(): C.getWindowSelf(); h = { screen: { width: e.screen?.width, height: e.screen?.height, AvailWidth: e.screen?.availWidth, AvailHeight: e.screen?.availHeight, colorDepth: e.screen?.colorDepth }, InnerHeight: e.innerHeight, InnerWidth: e.innerWidth, OuterWidth: e.outerWidth, OuterHeight: e.outerHeight, VisualViewport: { высота: e.visualViewport?.height, ширина: e.visualViewport?.width }, документ: { documentElement: { clientWidth: e.document?.documentElement?.clientWidth, clientHeight: e.document?.documentElement?.clientHeight, ScrollTop: e.document?.documentElement?.scrollTop, ScrollLeft: e.document?.documentElement?.scrollLeft }, body: { ScrollTop: document.body?.scrollTop, ScrollLeft: document.body?.scrollLeft, clientWidth: document.body?.clientWidth, clientHeight: document.body?.clientHeight } } }; } }; var B, O = ((B = 0), function() { return ++B; }); function R() { return ( O() + Math.random() .toString(16).substr(2) ); } функция S(e) { return e ? ( e ^ ((window && window.crypto && window.crypto.getRandomValues ​​? crypto.getRandomValues(new Uint8Array(1))[0] % 16 : 16 * Math.random()) >> (e / 4)) ).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/г, С); } function k(e) { let t = »; for (var n in e) e.hasOwnProperty(n) && (t += n + ‘=’ + encodeURIComponent(e[n]) + ‘&’); return (t = t.replace(/&$/, »)), t; } function U(e) { return e && Object.getOwnPropertyNames(e).length > 0 ? Object.keys(e).map(t => `${t}=${encodeURIComponent(e[t])}`) .join(‘&’) : »; } function D(e) { return ‘string’ == typeof e ? e .split(/s*,s*/) .map(e => e.match(/^(d+)x(d+)$/i)) .filter(e => e) .map(e => { let [t, n, i] = е; возвращаться [parseInt(n, 10), parseInt(i, 10)]; }) : Array.isArray(e) ? х (е) ? [e]
: e.filter(x) : []; } function _(e) { return D(e).map($); } функция $(e) { return e[0] + ‘х’ + е[1]; } function j(e) { return { w: e[0]он[1] }; } function x(e) { return height(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1]); } Функция q() { return window.top; } Функция N() { return window.self; } функция W() { return window.location; } функция P() {возврат документа; } function V() { try { if (C.getWindowTop().location.href) return !0; } catch (e) { return !1; } } function M() { J() && b && console.log.apply(console, z(arguments, ‘MESSAGE:’)); } function G() { J() && y && console.info.apply(console, z(arguments, ‘INFO:’)); } function F() { J() && v && console.warn.apply(console, z(arguments, ‘WARNING:’)), I(o.qY.AUCTION_DEBUG, { type: ‘WARNING’, аргументы }); } function H() { J() && E && console.error.apply(console, z(arguments, ‘ERROR:’)), I(o.qY.AUCTION_DEBUG, { type: ‘ERROR’, аргументы }); } function L(e) { function t(t) { return function() { for ( var n = аргументы.длина, i = новый массив(n), r = 0; r { const e = { border: ‘0px’, hspace: ‘0’, vspace: ‘0’, MarginWidth: ‘0’, MarginHeight: ‘0’, прокрутка: ‘нет’, FrameBorder: ‘0’,allowtransparency: ‘true’ }; return function(t, n) { let i = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; const r = t.createElement(‘iframe’); return ( Object.assign(r, Object.assign({}, e, n)), Object.assign(r.style, i), r ); }; })(); function K() { return Q( document, { id: R(), ширина: 0, высота: 0, src: ‘about:blank’ }, { display: ‘none’, высота: ‘0px’, ширина: ‘0px’, граница: ‘0px’ }); } функция Y(e) { return Me(W().search)[e] || »; } function X(e, t) { return g.call(e) === ‘[object ‘ + t + ‘]’; } функция Z(e) { return X(e, c); } function ee(e) { return X(e, d); } const te = Array.isArray.bind(Array); функция ne(e) { return X(e, l); } function ie(e) { return X(e, u); } function re(e) { return X(e, f); } function oe(e) { return ( !e || (te(e) || ee(e) ? !(e.length > 0) : Object.keys(e).length { const r = function() { e.removeEventListener(‘load’, r), e.removeEventListener(‘error’, r), null != n && window.clearTimeout(n), i(); }; e.addEventListener(‘load’, r), e.addEventListener(‘error’, r), null != t && (n = window.setTimeout(r, t)); } function ce(e, t, n) {const i = new Image(); t && C.isFn(t) && de(i, n).then(t), (i.src = e); } function le(e) { if (!e) return; константа т = К(); вар н; C.insertElement(t, document, ‘body’), (n = t.contentWindow.document).open(), n.write(e), n.close(); } function ue(e, t, n) { let i = C.createTrackPixelIframeHtml(e, !1, ‘allow-scriptsallow-same-origin’), r = document.createElement(‘div’); r.innerHTML = я; пусть о = r.firstChild; t && C.isFn(t) && de(o, n).then(t), C.insertElement(o, document, ‘html’, !0); } function fe(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: кодироватьURI; if (!e) return »; пусть n = ‘

‘; возврат (n += ‘

‘), н; } function ge(e) { return Array.from(e.matchAll(/$({[^}]+})/g)) .map(e => e[1]) .reduce( (e, t) => e.replace(‘$’ + encodeURIComponent(t), ‘$’ + t), encodeURI(e) ); } function pe(e, t, n) { return n.indexOf(e) === t; } function he(e, t) { return e.concat(t); } function me(e, t) { if (e) return t .flatMap(e => e.bids) .find(t => [‘bidId’, ‘adId’, ‘bid_id’].some(n => t[n] === е)); } function be() { return (arguments.length > 0 && void 0 !== аргументы[0]
? аргументы[0]
: A.adUnits ) .map(e => e.bids.map(e => e.bidders).reduce(he, [])) .reduce(он, []) .filter(e => void 0 !== e).filter(pe); } function ye() { if ( window.googletag && Z(window.googletag.pubads) && Z(window.googletag.pubads().getSlots)) return !0; } function ve() { if (window.apntag && Z(window.apntag.getTag)) return !0; } const Ee = (e, t) => t.cpm — e.cpm; function Ae(e) { let t = e.length; for (; t > 0; ) { let n = Math.floor(Math.random() * t); т—; пусть я = е[t]; (э[t] = е[n]), (э[n] = я); } Вернуть е; } function we(e) { return (0, rQ)(e) || {}; } function Ie() { try { return C.getWindowSelf() !== C.getWindowTop(); } catch (e) { return !0; } } function Te() { return /^((?!chrome|android|crios|fxios).)*safari/i.test( navigator.userAgent); } function Ce(e, t) { if (e) return Object.entries(t).reduce((e, t) => { let [n, i] = т; return e.replace( new RegExp(‘\$\{‘ + n + ‘\}’, ‘g’), i || » ); }, е); } function Be() { return new Date().getTime(); } function Oe() { return ( (window. Performance && window. Performance.now && window. Performance.now()) || 0 ); } function Re() { return !1 !== i.$W.getConfig(‘deviceAccess’); } function Se() { if (window.navigator.cookieEnabled || document.cookie.length) return !0; } function ke(e, t) { if (t e[t]) .reduce((t, n) => Object.assign(t, { [n]: е[n] }), {}); } функция _e(e) { const t = [‘banner’, ‘native’, ‘video’]п = [‘instream’, ‘outstream’, ‘adpod’]; return ( !!Object.keys(e).every(e => t.includes(e)) && (!e.video || !e.video.context || n.includes(e.video.context)) ); } function $e(e, t, n) { return e .filter(e => e.code === t) .flatMap(e => e.bids) .filter(e => e.bidder === n) .map(e => e.params || {}); } function je() { return ( ‘1’ === navigator.doNotTrack || ‘1’ === window.doNotTrack || ‘1’ === navigator.msDoNotTrack || ‘yes’ === navigator.doNotTrack ); } const xe = (e, t) => e.getAdUnitPath() === t || e.getSlotElementId() === т; функция qe(e) { return t => xe(e, t); } function Ne(e, t) { const n = Object.keys(e.mediaTypes || { Banner: ‘banner’ }).join( ‘, ‘ ); return `n ${e.code} — это рекламный блок ${n},n содержащий системы назначения ставок, которые не поддерживают ${n}: ${t}.n Эта система назначения ставок не будет удовлетворять спрос.n `; } Const We = Number.isInteger.bind(Number); function Pe(e, t) { return ‘object’ != typeof e ? {} : t.reduce((n, i, r) => { if (‘function’ == typeof i) возвращает n; пусть o = i, s = i.match(/^(.+?)sass(.+?)$/i); s && ((i = s[1]), (о = s[2])); пусть а = е[i]; return (‘function’ == typeof t[r + 1] && (а = т[r + 1](a, n)), void 0 !== a && (n[o] = а), п ); }, {}); } function Ve(e, t) { return te(e) && (!t || e.length === t) && e.every(e => We(e)); } функция Me(e) { return e ? e .replace(/^?/, ») .split(‘&’) .reduce((e, t) => { let [n, i] = t.split(‘=’); возвращаться ( /[]$/.test(n) ? ((n = n.replace(‘[]’, »)) (е[n] = е[n] || []), е[n].push(i)) : (e[n] = я || »), е ); }, {}) : {}; } function Ge(e, t) { let n = document.createElement(‘a’); t && ‘noDecodeWholeURL’ в t && t.noDecodeWholeURL ? (n.href = e) : (n.href = decodeURIComponent(e)); let i = t && ‘decodeSearchAsString’ в t && t.decodeSearchAsString; return { href: n.href, протокол: (n.protocol || »).replace(/:$/, »), имя хоста: n.hostname, порт: +n.port, путь: n.pathname.replace(/^(?!/)/, ‘/’), search: i ? n.search : C.parseQS(n.search || »), хеш: (n.hash || »).replace(/^#/, »), хост: n.host || окно.местоположение.хост }; } function Fe(e) { return ( (e.protocol || ‘http’) + ‘://’ + (e.host || e.hostname + (e.port ? `:${e.port}` : »)) + (e.pathname || ») + (e.search ? `?${C.formatQS(e.search || »)}` : ») + (e.hash ? `#${e.hash}` : ») ); } function He(e, t) { let { checkTypes: n = !1 } = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; if (e === t) вернуть !0; if ( ‘object’ != typeof e || null === e || ‘object’ != typeof t || null === t ) return !1; const i = Array.isArray(e), r = Array.isArray(t); if (i && r) { if (e.length !== t.length) return !1; for (пусть i = 0; i < e.length; i++), если (!He(e[i]т[i]{checkTypes: n })) return !1; вернуть !0; } if (i || r) return !1; if (n && e.constructor !== t.constructor) return !1; const o = Object.keys(e), s = Object.keys(t); if (o.length !== s.length) return !1; for (const i of o) { if (!Object.prototype.hasOwnProperty.call(t, i)) return !1; если (!Он(е[i]т[i]{checkTypes: n })) return !1; } вернуть !0; } function Le(e) { for ( let t = 0; t < (arguments.length <= 1 ? 0 : аргументы.length — 1); t++ ) { const n = t + 1 < 1 || аргументы.длина <= т + 1? void 0: аргументы[t + 1]; т.е.(n) && ze(e, n); } Вернуть е; } function ze(e, t) { if (!ie(e) || !ie(t)) return; const n = Object.keys(t); for (пусть i = 0; i { e[r].some(e => He(e, t)) || е[r].push(т); }) : (е[r] = […o]) : (э[r] = о); } } function Je(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: 0, n = function(e, t) { if (Z(Math.imul)) return Math.imul(e, t); вар n = (4194303 & e) * (t |= 0); return ( 4290772992 & e && (n += ((4290772992 & e) * t) | 0), 0 | n ); }, я = 3735928559 ^ т, г = 1103547991 ^ т; for (let t, o = 0; o >> 16), 2246822507) ^ n(r ^ (r >>> 13), 3266489909)), (r = n(r ^ (r >>> 16), 2246822507) ^ n(i ^ (i >>> 13), 3266489909)), (4294967296 * (2097151 & r) + (i >>> 0)).toString() ); } function Qe(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: function(e) { return e; }; const n = new Map(), я = function() { const я = t.apply(this, аргументы); return ( n.has(i) || n.set(i, e.apply(this, аргументы)), n.get(i) ); }; return (i.clear = n.clear.bind(n)), i; } function Ke(e, t) { Object.entries(t).forEach(t => { let [n, i] = т; вернуть e.setAttribute(n, i); }); } function Ye(e, t) { let n = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: e => e, i = 0, r = e.length && e.length — 1; константа о = п(т); for (; r — i > 1; ) { const t = i + Math.round((r — i)/2); о > n(е[t]) ? (i = t): (r = t); } for (; e.length > i && o > n(e[i]); ) я++; вернуть я; } const Xe = (function() { let e; return function() { if (void 0 !== e) return e; try { void 0 === window.CompressionStream ? (e = !1) : (new window.CompressionStream(‘gzip’), (e = !0)); } catch (t) { e = !1; } return e; }; })(); асинхронная функция Ze(e) { ‘string’ != typeof e && (e = JSON.stringify(e)); const t = новый TextEncoder().encode(e), n = новый Blob([t]) .stream() .pipeThrough(new window.CompressionStream(‘gzip’)), i = жду нового ответа(n).blob(), r = жду i.arrayBuffer(); вернуть новый Uint8Array(r); } }, 2621: (e, t, n) => { function i(e) { return ( !e?.gdprApplies || !0 === e?.vendorData?.function?.consents?.[1]
); } nd(t, { C: () => i }); }, 6894: (e, t, n) => { nd(t, { Ak: () => m, BO: () => g, K7: () => p }); вар я = п (3272); const r = ‘ PerformanceMetrics’, o = window. Performance && window. Performance.now ? () => window. Performance.now() : () => Date.now(), s = new WeakMap(); function a() { let { now: e = o, mkNode: t = l, mkTimer: n = c, mkRenamer: i = e => e, nodes: r = s } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; return function() { return (function o(s) { let a = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: e => ({ forEach(t) { t(e); } }); а = я(а); const d = ((c = ‘метки времени’), function(e) { return s.dfWalk({ visit(t, n) { const i = n[c]; if (i.hasOwnProperty(e)) возвращает я[e]; } }); }); вар с; функция l(e, t) { const n = a(e); s.dfWalk({follow: (e, t) => t.propagate && (!e || !e.stopPropagation), visit(e, i) { n.forEach(n => { null == e ? (i.metrics[n] = t) : (i.groups.hasOwnProperty(n) || (i.groups[n] = []), т.е. группы[n].push(т)); }); } }); } function u(t) { return n(e, e => l(t, e)); } функция f() { let e = {}; return ( s.dfWalk({ visit(t, n) { e = Object.assign( {}, !t || t.includeGroups ? n.groups : null, n.metrics, e ); } }), e ); } const g = { startTiming: u, MeasureTime: function(e, t) { return u(e).stopAfter(t)(); }, MeasureHookTime: function(e, t, n) { const i = u(e); return n( (function(e) { const t = i.stopBefore(e); return ( (t.bail = e.bail && i.stopBefore(e.bail)), (t.stopTiming = i), (t.untimed = e), t ); })(t) ); }, контрольная точка: function(t) { s.timestamps[t] = е(); }, timeSince: function(t, n) { const i = d(t), r = null != i ? е() — я: ноль; вернуть ноль != n && l(n, r), r; }, timeBetween: function(e, t, n) { const i = d(e), r = d(t), o = null != i && null != r ? р — я: ноль; return null != n && l(n, o), o; }, setMetric: l, getMetrics: f, fork: function() { let { propagate: e = !0, stopPropagation: n = !1, includeGroups: i = !1 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; вернуть о( т([
[
s,
{
propagate: e,
stopPropagation: n,
includeGroups: i
}
]
]), а ); }, join: function(e) { let { propagate: t = !0, stopPropagation: n = !1, includeGroups: i = !1 } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; const o = r.get(e); null != o && o.addParent(s, { propagate: t, stopPropagation: n, includeGroups: i }); }, newMetrics: function() { return o(s.newSibling(), a); }, renameWith: function(e) { return o(s, e); }, toJSON: () => f() }; вернуть r.set(g, s), g; })(т([])); }; } function d(e, t, n) { return function() { t && t(); попробуйте { return e.apply(this, аргументы); } наконец { n && n(); } }; } function c(e, t) { const n = e(); пусть я = !1; функция г() { я || (t(e() — n), (i = !0)); } return ( (r.stopBefore = e => d(e, r)), (r.stopAfter = e => d(e, null, r)), r ); } function l(e) { return { metrics: {}, timestamps: {}, groups: {}, addParent(t, n) { e.push([t, n]); }, newSibling: () => l(e.slice()), dfWalk() { let t, { visit: n, Follow: i = () => !0, visit: r = new Set(), inEdge: o } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; if (!r.has(this)) { if ((r.add(this), (t = n(o, this)), null != t)) return t; для (константа [s, a] из e) if ( i(o, a) && ((t = s.dfWalk({ visit: n, Follow: i, visit: r, inEdge: a })), null != t)) return t; } } }; } const u = (() => { const e = function() {}, t = () => ({}), n = { forEach: e }, i = () => null; (i.stopBefore = e => e), (i.stopAfter = e => e); const r = Object.defineProperties( { dfWalk: e, newSibling: () => r, addParent: e }, Object.fromEntries(
[‘metrics’, ‘timestamps’, ‘groups’].map(е => [e, { get: t }]) ) ); return a({ now: () => 0, mkNode: () => r, mkRenamer: () => () => n, mkTimer: () => i, nodes: { get: e, set: e } })(); })(); пусть f = !0; функция g(e) { return (f && e) || ты; } i.$W.getConfig(r, e => { f = !!e[r]; }); const p = (() => { const e = a(); return function() { return f ? e() : u; }; })(); function h(e, t) { return function(n, i) { return function(r) { for ( var o = аргументы.длина, s = new Array(o > 1 ? o — 1 : 0), a = 1; a e.metrics); h(‘addBidResponse.’, (e, t) => t.metrics); }, 5555: (e, t, n) => { nd(t, { U9: () => s, cb: () => a, v6: () => d }); вар i = n(43), r = n(7873); const o = (0, rm)().setTimeout ?? iw, s = (0, rm)(). Обещание ?? ок; function a() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: 0; return new s(t => { o(t, e); }); } function d() { let e, t, { PromiseFactory: n = e => new s(e) } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; функция я (е) {возвращение т => е (т); } return {обещание: n((n, i) => { (e = n), (t = i); }), разрешить: i(e), отклонить: i(t) }; } }, 2713: (e, t, n) => { function i(e, t) { return e === t ? 0: е 0 && void 0 !== аргументы[0]
? аргументы[0]
: е => е; return (t, n) => i(e(t), e(n)); } function o() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: я; return (t, n) => -e(t, n) || 0; } function s() { for (var e = аргументы.длина, t = новый массив(e), n = 0; n 0 && void 0 !== аргументы[0]
? аргументы[0]
: я; return (t, n) => (e(n, t) 0 && void 0 !== аргументы[0]
? аргументы[0]
: я ) ); } nd(t, { Bp: () => a, Bq: () => f, NV: () => r, Vk: () => u }); const c = r(e => e.cpm), l = r(e => e.responseTimestamp), u = d(s(c, o(r(e => e.timeToRespond)))), f = d(s(c, o(l))); d(s(c, l)); }, 6853: (e, t, n) => { nd(t, { H: () => l }); вар я = п(5555), г = п(1069); пусть o = ноль, s = 0, a = []; функция d() { document.hidden ? (o = Date.now()) : ((s += Date.now() — (o ?? 0)), (o = null), a.forEach(e => { let { callback: t, startTime: n, setTimerId: i } = e; return i(c(t, s — n)()); }), (a = [])); } функция c(e, t) { const n = s; let i = setTimeout(() => { s === n && null == o ? e() : null != o ? a.push({ callback: e, startTime: n, setTimerId(e) { i = e; } }) : (i = c(e, s — n)()); }, t); возврат () => я; } function l() { let { startTime: e = r.vE, ttl: t = () => null, monotonic: n = !1, slack: o = 5e3 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; const s = новая карта(), a = []д = []л = п ? e => d.push(e) : e => d.splice( (0, r.El)(d, e, e => e.expiry), 0, e ); пусть ты, ж; function g() { if ((f &&clearTimeout(f), d.length > 0)) { const e = (0, r.vE)(); (u = Math.max(e, d[0].expiry + o)), (f = c(() => { const e = (0, r.vE)(); let t = 0; for (const n of d) { if (n.expiry > e) Break; a.forEach(e => { try { e(n.item); } catch (e) { (0, r.vV)(e); } }), s.delete(n.item), t++; } d.splice(0, t), (f = null), g() }, u — e)); } Еще е = ноль; } function p(n) { const r = {}, s = h; пусть а; константа [d, c] = Object.entries({ start: e, delta: t }).map(e => { let t,
[d, c] = е; return function() { const e = (t = {}); i.U9.resolve(c(n)).then(n => { e === t && ((r[d] = n), s === h && null != r.start && null != r.delta && ((a = r.start + r.delta), l(p), (null == f || u > a + o) && g())); }); }; }), p = { item: n, обновить: c, get expiry() { return a; } }; вернуть д(), с(), р; } пусть h = {}; возвращаться {
[Symbol.iterator]: () => s.keys(), add(e) { !s.has(e) && s.set(e, p(e)); }, Clear() { (d.length = 0), g(), s.clear(), (h = {}); }, toArray: () => Array.from(s.keys()), обновить() { (d.length = 0), g(); for (const e of s.values()) e.refresh(); }, onExpiry: e => ( a.push(e), () => { const t = a.indexOf(e); t >= 0 && a.splice(t, 1); } ) }; } document.addEventListener(‘visibilitychange’, d); }, 3895: (e, t, n) => { nd(t, { H6: () => a, V0: () => c, Zy: () => d, aP: () => l, vk: () => u }); вар i = n(1069), r = n(3272), o = n(9214), s = n(6881); const a = ‘outstream’, d = новая карта([
[
‘mimes’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘string’ == typeof e)
],
[‘minduration’, i.Fq],
[‘maxduration’, i.Fq],
[‘startdelay’, i.Fq],
[‘maxseq’, i.Fq],
[‘poddur’, i.Fq],
[‘protocols’, i.Uu],
[‘w’, i.Fq],
[‘h’, i.Fq],
[‘podid’, i.O8],
[‘podseq’, i.Fq],
[‘rqddurs’, i.Uu],
[‘placement’, i.Fq],
[‘plcmt’, i.Fq],
[‘linearity’, i.Fq],
[‘skip’, e => [1, 0].includes(e)],
[‘skipmin’, i.Fq],
[‘skipafter’, i.Fq],
[‘sequence’, i.Fq],
[‘slotinpod’, i.Fq],
[‘mincpmpersec’, i.Et],
[‘battr’, i.Uu],
[‘maxextended’, i.Fq],
[‘minbitrate’, i.Fq],
[‘maxbitrate’, i.Fq],
[‘boxingallowed’, i.Fq],
[‘playbackmethod’, i.Uu],
[‘playbackend’, i.Fq],
[‘delivery’, i.Uu],
[‘pos’, i.Fq],
[‘api’, i.Uu],
[‘companiontype’, i.Uu],
[‘poddedupe’, i.Uu]
]); функция c(e) { const t = e?.mediaTypes?.video; null != t && null == t.plcmt && (t.context === a || [2, 3, 4].includes(t.placement) ? (t.plcmt = 4): t.context !== a &&
[2, 6].includes(t.playbackmethod) && (t.plcmt = 2)); } function l(e, t) { const n = e?.mediaTypes?.video; (0, i.Qd)(n) ? null != n && Object.entries(n).forEach(r => { let [o, s] = р; if (!d.has(o)) return; d.get(o)(s) || (‘function’ == typeof t ? t(o, s, e) : (удалить n[o](0, i.JE)( `Недопустимое свойство в adUnit «${e.code}»: Недопустимое значение для свойства mediaTypes.video.${o} ORTB. Свойство было удалено.` ))); }) : (0, i.JE)( ‘validateOrtbVideoFields: videoParams должен быть объектом.’); } function u(e) { let { index: t = snindex } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; const n = t.getMediaTypes(e)?.video, i = n && n?.context, r = n && n?.useCacheKey, o = t.getAdUnit(e); вернуть f(e, o, n, i, r); } const f = (0, o.A_)( ‘sync’, function(e, t, n, o, s) { if (n && (s || o !== a)) { const { url: t, useLocal: n } = r.$W.getConfig(‘cache’) || {}; return t || n || !e.vastXml || e.vastUrl ? !(!e.vastUrl && !e.vastXml) : ((0, i.vV)( ‘n Эта ставка содержит только обширныйXml и не будет работать, если не указан URL-адрес кэша предварительных ставок.n Попробуйте включить кэш предварительных ставок с помощью tlpbjs.setConfig({ кэш: {url: «…»} });n или локальный кеш с tlpbjs.setConfig({ кэш: { useLocal: true }});n ‘ ), !1); } return ( !(o === a && !s) || !!(e.renderer || (t && t.renderer) || n.renderer) }, ‘checkVideoBidSetup’ ); } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[769]{ 8944: (t, e, n) => { nd(e, { M: () => i }); вар c = n(1069); функция i() { const t = (0, c.Ot)(); попробуйте {const e = t.innerHeight || t.document.documentElement.clientHeight || t.document.body.clientHeight || 0; return { ширина: t.innerWidth || t.document.documentElement.clientWidth || t.document.body.clientWidth || 0, высота: е }; } поймать (т) {вернуться {}; } } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[139]{ 43: (t, e, n) => { nd(e, { k: () => c, w: () => r }); const s = 0, l = 1; класс с {#t; #е; конструктор(t) { if (‘function’ != typeof t) throw new Error(‘resolver not a function’); константа е = []п = []; позволять [c, r] = [s, l].map( t => function(l) { if (t === s && ‘function’ == typeof l?.then) l.then(c, r); else if (!e.length) for (e.push(t, l); n.length; ) n.shift()(); } ); попробуйте {т(с, г); } поймать (т) { г (т); } (this.#t = e), (this.#e = n); } then(t, e) { const n = this.#t; return new this.constructor((l, c) => { const r = () => { let r = n[1],
[h, i] = п[0] === с ? [t, l] : [e, c]; if (‘function’ == typeof h) { try { r = h(r); } catch (т) { return void c(t); } я = л; } Я (г); }; n.длина? r() : this.#e.push(r); }); } catch(t) { return this.then(null, t); } Final(t) {let e; return this.then( n => ((e = n), t()), n => ((e = this.constructor.reject(n)), t()) ).then(() => e); } static #n(t, e, n) { let s = t.length; функция l() { e.apply(this, аргументы), —s this.resolve(t).then( t => l(!0, t, e), t => l(!1, t, e) ) ); } static Race(t) { return new this((e, n) => { this.#n(t, (t, s) => (t ? e(s) : n(s))); }); } static all(t) { return new this((e, n) => { let s = []; this.#n( t, (t, e, l) => (t ? (s[l] = e) : n(e)), () => e(s) ); }); } static allSettled(t) { return new this(e => { let n = []; this.#n( t, (t, e, s) => (n[s] = т ? { статус: ‘выполнено’, значение: e } : { статус: ‘отклонено’, причина: e }), () => e(n) ); }); } staticsolve(t) { return new this(e => e(t)); } static ignore(t) { return new this((e, n) => n(t)); } } function r(t) { let e = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: 0; если (e > 0) вернуть setTimeout(t, e); т(); } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[85]{ 4595: (e, t, n) => { nd(t, { G: () => s }); const s = ‘(()=>{«use strict»;window.render=function({ad:e,adUrl:t,width:n,height:i,instl:d},{mkFrame:r},s){if(!e&&!t)throw{reason:»noAd»,message:»Отсутствует рекламная разметка или URL»};{if(null==i){const е=s.document?.body;[e,e?.parentElement].filter((e=>null!=e?.style)).forEach((e=>e.style.height=»100%»))}const h=s.document,o={width:n??»100%»,height:i??»100%»};if(t&&!e?o.src=t:o.srcdoc=e,h.body.appendChild(r(h,o)),d&&s.frameElement){const e=s.frameElement.style;e.width=n?`${n}px`:»100vw»,e.height=i?`${i}px`:»100vh»}}}})();’; } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[109]{965: (t, e, n) => { nd(e, { c5: () => o }); вар а = п (5555); const l = 0, c = 1, r = 2; function o(t) { let { apiName: e, apiVersion: n, apiArgs: o = [‘command’, ‘callback’, ‘parameter’, ‘version’]callbackArgs: s = [‘returnValue’, ‘success’]режим: i = l } = t, u = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: окно; const f = {}, d = `${e}Call`, p = `${e}Return`; function b(t) { const e = ‘string’ == typeof t.data && t.data.includes(p) ? JSON.parse(t.data): t.data; если (е?.[p]?.callId) { const t = e[p]; f.hasOwnProperty(t.callId) && f[t.callId](…s.map(e => t[e])); } } константа [k, m] = (function() { let t, n = u, a = !1; for (; null != n; ) { try { if (‘function’ == typeof n[e]) { (t = n), (a = !0); перерыв; } } catch (t) {} try { if (n.frames[`${e}Locator`]) { т = п; перерыв; } } catch (t) {} if (n === u.top) Break; n = n.родитель; } возвращаться [t, a]; })(); если (!k) возврат; function g(t) { return ( (t = Object.assign({version: n }, t)), o.map(e => [e, t[e]]) ); } function h(t, e, n, a) { const l = ‘function’ == typeof t; return function(r, o) { if ((a && a(), i !== c)) { (null == o || o ? e : n)(l ? void 0 : r); } l && t.apply(this, аргументы); }; } Пусть v; return ( m ? (v = function() { let t = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; вернуть новый a.U9((n, a) => { const o = k[e]( …g({ …t, обратный вызов: t.callback || i === r ? h(t.callback, n, a) : void 0 }).map(t => { let [e, n] = т; вернуть н; }) ); (i === c || (null == t.callback && i === l)) && n(o); }); }) : (u.addEventListener(‘message’, b, !1), (v = function(t) { let e = аргументы.длина > 1 && void 0 !== аргументы[1] && аргументы[1]; return new a.U9((n, a) => { const l = Math.random().toString(), r = {
[d]: { …Object.fromEntries( g(t).filter(t => { let [e] = т; вернуть ‘обратный вызов’ !== e; }) ), callId: l } }; (ф[l] = h( t?.callback, n, a, (e || null == t?.callback) && (() => { delete f[l]; }) )) k.postMessage(r, ‘*’), i === c && n(); }); })), Object.assign(v, { isDirect: m, close() { !m && u.removeEventListener(‘message’, b); } }) ); } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[10]{ 3806: (t, n, e) => { ed(n, { yq: () => c }); вар о = е(6894), а = е(1069), s = е(7873), я = е(5555), г = е(2604); function c() { let t, n, e, { namespace: c, displayName: l, согласияDataHandler: u, parseConsentData: m, getNullConsent: d, cmpHandlers: f, DEFAULT_CMP: g = ‘iab’, DEFAULT_CONSENT_TIMEOUT: p = 1e4 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; function C(t) { return `consentManagement.${c} ${t}`; } function D(t, n) { return t( Object.assign({ [`${c}Consent`]: u.getConsentData() }, n) ); } function h() { return n().then(t => { let { error: n } = t; return { error: n, AcceptData: u.getConsentData() }; }); } function T() { null == t && ((t = (function(t, n) { const e = new WeakSet(); return (0, o.Ak)(t, function(t, o) { return n() .then(n => { let { согласияData: s, error: i } = n; !i || (s && e.has(i)) || (e.add(i), (0, a.JE)(i.message, …(i.args || []))), t.call(это, о); }) .catch(n => { (0, a.vV)( `${n?.message} Отмена аукциона согласно конфигурации ConsentManagement.`, …(n?.args || []) ), t.stopTiming(), ‘function’ == typeof o.bidsBackHandler ? o.bidsBackHandler() : (0, a.vV)(‘Ошибка выполнения bidsBackHandler’); }); }); })(c, () => n())), (0, sm)().requestBids.before(t, 50), r.U3.before(D), (0, a.fH)( `${l} Модуль согласияManagement активирован…` )); } return function(o) { if (((o = o?.[c]), !о || ‘object’ != typeof o)) return ( (0, a.JE)( C(‘конфигурация не определена, выход из модуля диспетчера согласия’)), null != t && ((0, sm)() .requestBids.getHooks({ловушка: t }) .remove(), r.U3.getHooks({крючок: D }).remove(), (t = null)), {}); пусть б, к; (0, a.O8)(o.cmpApi) ? (b = o.cmpApi): ((b = g), (0, a.fH)( C( `config не указал cmp. Использование системных настроек по умолчанию (${g}).` ) )), (0, a.Et)(o.timeout) ? (k = o.timeout): ((k = p), (0, a.fH)( C( `config не указал таймаут. Использование системных настроек по умолчанию (${p}).` ) )); const H = (0, a.Et)(o.actionTimeout)? o.actionTimeout: ноль; пусть ш; ‘статический’ === б ? (0, a.Qd)(o.consentData) ? ((e = o.consentData), (k = null), (w = () => new i.U9(t => t(u.setConsentData(m(e)))))) : (0, a.vV)( C( «конфигурация с cmpApi: ‘static’ не указала согласиеData. Адаптерам не будут доступны никакие согласия.» ) ): f.hasOwnProperty(b) ? (ш = ж[b]) : (u.setConsentData(null), (0, a.JE)( `${l} Платформа CMP (${b}) не является поддерживаемой платформой. Прерывание модуля согласия и возобновление аукциона.` ), (w = () => i.U9.resolve()))); const y = () => (function(t) { let n, { name: e, ConsentDataHandler: o, setupCmp: a, cmpTimeout: s, actionTimeout: i, getNullConsent: r } = t; return ( o.enable(), new Promise((t, c) => { let l, u = !1; function m(a) { null != n &&clearTimeout(n), (n = null != a ? setTimeout(() => { const n = o.getConsentData() ?? (u ? l : r()), a = ‘тайм-аут ожидания ‘ + (u ? ‘действие пользователя на CMP’ : ‘CMP для загрузки’); o.setConsentData(n), t({consentData: n, error: new Error(`${e} ${a}`) }); }, a) : null); } a(function(t) { (l = t), u || ((u = !0), null != i && m(i)); }).then( () => t({ согласияData: o.getConsentData() }), c ), null != s && m(s }) .finally(() => { n &&clearTimeout(n); }) .catch(t => { throw (o.setConsentData(null), t); }) })({ name: l, consentDataHandler: u, setupCmp: w, cmpTimeout: k, actionTimeout: H, getNullConsent: d }); return ( (n = (() => { let t; return function() { return ( null == t && (t = y().catch(n => { throw ((t = null), n); })), t ); }; })()), T(), { cmpHandler: b, cmpTimeout: k, actionTimeout: H, staticConsentData: e, loadConsentData: h, requestBidsHook: t } ); }; } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[618]{ 981: (e, t, i) => { id(t, { m: () => h }); var r = i(9466), d = i(1e3), n = i(433), a = i(1069), s = i(5825), b = i(1445), o = i(3272), p = i(3172); вар с = я (3323); вар л = я (7873); вар ж = я (1371); вар и = я (3005); константа v = {
[d.S3]: { extPrebid: { fn: function(e, t) { (0, pJ)( e, ‘ext.prebid’, (0, a.D9)( { Auctiontimestamp: t.auctionStart, targeting: { includewinners: !0, includebidderkeys: !1 } }, e.ext?.prebid ) ), o.$W.getConfig(‘debug’) && (e.ext.prebid.debug = !0); } }, extPrebidChannel: { fn: function(e) { (0, pJ)( e, ‘ext.prebid.channel’, Object.assign( { name: ‘pbjs’, version: (0, lm)().version }, e.ext?.prebid?.channel ) ); } }, extPrebidAliases: { fn: function(e, t, i) { let { am: r = b.Ay } = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: {}; если (r.aliasRegistry[t.bidderCode]) { const i = r.bidderRegistry[t.bidderCode]; if (!i || !i.getSpec().skipPbsAliasing) { (0, pJ)( e, `ext.prebid.aliases.${t.bidderCode}`, r.aliasRegistry[t.bidderCode]
); const d = o.$W.getConfig(`gvlMapping.${t.bidderCode}`) || я?.getSpec?.().gvlid; d && (0, pJ)( e, `ext.prebid.aliasgvlids.${t.bidderCode}`, d); } } } } },
[d.Tb]: { params: { fn: cW }, adUnitCode: { fn: function(e, t) { const i = t.adUnitCode; я && (0, pJ)(e, ‘ext.prebid.adunitcode’, i); } } },
[d.WR]: { mediaType: { fn: so, Priority: 99 }, videoCache: { fn: function(e, t) { if (e.mediaType === f.G_) { let {cacheId: i, url: r } = (0, nA)(t, ‘ext.prebid.cache.vastXml’) || {}; if (!i || !r) { const { hb_uuid: e, hb_cache_host: d, hb_cache_path: a } = (0, nA)(t, ‘ext.prebid.targeting’) || {}; e && d && a && ((i = e), (r = `https://${d}${a}?uuid=${e}`)); } i && r && Object.assign(e, {videoCacheKey: i, обширныйUrl: r }); } }, приоритет: -10 }, bidderCode: { fn(e, t, i) { (e.bidderCode = i.seatbid.seat), (e.adapterCode = (0, nA)(t, ‘ext.prebid.meta.adaptercode’) || i.bidRequest?.bidder || e.bidderCode); } }, pbsBidId: { fn(e, t) { const i = (0, nA)(t, ‘ext.prebid.bidid’); (0, a.O8)(i) && (e.pbsBidId = i); } }, adserverTargeting: { fn(e, t) { const i = (0, nA)(t, ‘ext.prebid.targeting’); (0, a.Qd)(i) && (e.adserverTargeting = i); } }, extPrebidMeta: { fn(e, t) { e.meta = (0, a.D9)( {}, (0, nA)(t, ‘ext.prebid.meta’), e.meta ); } }, pbsWinTrackers: { fn: function(e, t) { (e.eventtrackers = e.eventtrackers || []),
[
[t.burl, u.OA],
[t?.ext?.prebid?.events?.win, u.RO]
].filter(t => { let [i, r] = т; return ( i && null == e.eventtrackers.find(e => { let { метод: t, event: d, url: n } = e; return d === r && t === u.Ni && n === i; }) ); }) .forEach(t => { let [i, r] = т; e.eventtrackers.push({метод: u.Ni, событие: r, URL: я }); }); } } },
[d.Cf]: { serverSideStats: { fn(e, t, i) { Object.entries({ error: ‘serverErrors’, responsetimemillis: ‘serverResponseTimeMs’ }).forEach(e => { let [r, d] = е; const a = (0, nA)( t, `ext.${r}.${i.bidderRequest.bidderCode}` ); a && ((i.bidderRequest[d] = а), i.bidRequests.forEach(e => (e[d] = а))); }); } } } }; вар г = я (9766); const h = (0, a.Bj)(() => (0, rU)((0, gT)(), v, (0, d.yB)(d.e4))); }, 5825: (e, t, i) => { id(t, { o: () => a, s: () => n }); вар г = я (1371), d = я (5561); константа п = { [r.D4]: ‘баннер’, [r.s6]: ‘родной’, [r.G_]: ‘видео’ }; function a(e, t, i) { let a = i.mediaType; а || ((a = dXhasOwnProperty(t.mtype) ? dX[t.mtype]
: t.ext?.prebid?.type), n.hasOwnProperty(a) || (a = r.D4)), (e.mediaType = a); } }, 3323: (e, t, i) => { id(t, { W: () => d }); вар г = я (3172); function d(e, t) { let i = t.params; i && (0, rJ)(e, `ext.prebid.bidder.${t.bidder}`, i); } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[498]{ 9766: (e, t, r) => { rd(t, { T: () => f, A: () => m }); const n = новый WeakMap(); вар я = г (1069), s = г (1371); вар о = г (3895); вар а = г (5561); вар d = r(1e3), p = r(3858); константа с = {
[d.S3]: { fpd: { Priority: 99, fn(e, t) { (0, i.D9)(e, t.ortb2); } }, onlyOneClient: { Priority: -99, fn: (0, p.i8)(‘ORTB-запрос’) }, props: { fn(e, t) { Object.assign(e, { id: e.id || (0, i.lk)(), test: e.test || 0 }); const r = parseInt(t.timeout, 10); isNaN(r) || (e.tmax = r); } } },
[d.Tb]: { fpd: { Priority: 99, fn(e, t) { (0, i.D9)(e, t.ortb2Imp); } }, id: { fn(e, t) { e.id = t.bidId; } }, баннер: { fn: function(e, t, r) { if (r.mediaType && r.mediaType !== s.D4) return; const n = t?.mediaTypes?.banner; if (n) { const r = { topframe: !0 === (0, i.al)() ? 0:1}; n.sizes && null == t.ortb2Imp?.banner?.format && (r.format = (0, iy$)(n.sizes).map(i.cf)), n.hasOwnProperty(‘pos’) && (r.pos = n.pos), (e.banner = (0, i.D9)(r, e.banner)); } } }, pbadslot: { fn(e) { const t = e.ext?.data?.pbadslot; (t && ‘string’ == typeof t) || удалить e.ext?.data?.pbadslot; } }, безопасно: { fn(e, t) { e.secure = e.secure ?? 1; } } },
[d.WR]: { mediaType: { Priority: 99, fn: aK }, баннер: { fn: (function() { let { createPixel: e = e => (0, i.Tz)(decodeURIComponent(e), i.Bk) } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; return function(t, r) { t.mediaType === s.D4 && (r.adm && r.nurl ? (t.ad = e(r.nurl) + r.adm) : r.adm ? (t.ad = r.adm): r.nurl && (t.adUrl = r.nurl)); }; })() }, props: { fn(e, t, r) { Object.entries({ requestId: r.bidRequest?.bidId, SeatBidId: t.id, cpm: t.price, валюта: r.ortbResponse.cur || r.currency, ширина: tw, высота: th, wratio: t.wratio, hratio: t.hratio, DealId: t.dealid, Creative_id: t.crid, CreativeId: t.crid, burl: t.burl, ttl: t.exp || r.ttl, netRevenue: r.netRevenue }) .filter(e => { let [t, r] = е; вернуть void 0 !== r; }) .forEach(t => { let [r, n] = т; возврат (э[r] = п); }), e.meta || (e.meta = {}), t.adomain && (e.meta.advertiserDomains = t.adomain), t.ext?.dsa && (e.meta.dsa = t.ext.dsa), t.cat && ((e.meta.primaryCatId = t.cat[0]), (e.meta. SecondaryCatIds = t.cat.slice(1))), t.attr && (e.meta.attr = t.attr), t.ext?.eventtrackers && (e.eventtrackers = (e.eventtrackers ?? [].concat( t.ext.eventtrackers )); } } } }; (с[d.Tb].native = { fn: function(e, t, r) { if (r.mediaType && r.mediaType !== s.s6) return; пусть n = t.nativeOrtbRequest; n && ((n = Object.assign({}, r.nativeRequest, n)), n.assets?.length ? (e.native = (0, i.D9)( {}, { request: JSON.stringify(n), ver: n.ver }, e.native )) : (0, i.JE)( ‘mediaTypes.native установлен, но активы не указаны. Собственный запрос пропущен.’, t )); } }), (с[d.WR].native = { fn: function(e, t) { if (e.mediaType === s.s6) { let r; if ( ((r = ‘string’ == typeof t.adm ? JSON.parse(t.adm) : t.adm), !(0, i.Qd)(r) || !Array.isArray(r.assets)) throw new Error( ‘Собственный ответ ORTB не содержит ресурсов’); е.native = {ортб: р}; } } }), (c[d.Tb].video = { fn: function(e, t, r) { if (r.mediaType && r.mediaType !== s.G_) return; const n = t?.mediaTypes?.video; if (!(0, i.Im)(n)) { const t = Object.fromEntries( Object.entries(n).filter(e => { let [t] = е; вернуть o.Zy.has(t); }) ); if (n.playerSize) { const e = (0, iy$)(n.playerSize).map(i.cf); e.length > 1 && (0, i.JE)( ‘запрос видео указывает более одного playerSize; все, кроме первого, будут игнорироваться’), Object.assign(t, e[0]); } e.video = (0, i.D9)(t, e.video); } } }), (c[d.WR].video = { fn: function(e, t, r) { e.mediaType === s.G_ && (r?.imp?.video?.w && r?.imp?.video?.h && ([e.playerWidth, e.playerHeight] = [
r.imp.video.w,
r.imp.video.h
]), t.adm && (e.vastXml = t.adm), t.nurl && (e.vastUrl = t.nurl)); } }); вар и = г (9466); function m() { let { context: e = {}, процессоры: t = f, переопределения: r = {},imp: s, запрос: o, bidResponse: a, ответ: p } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; const c = новый WeakMap(); функция u(e, i, s, o) { let a; return function() { return ( null == a && (a = (function() { let a = s.bind( this, (function(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; if (!n.has(e)) { const t = Object.entries(e); t.sort((e, t) => (e = e[1].приоритет || 0) === (т = т[1].приоритет || 0) ? 0: е > т? -1 : 1), n.set( e, t.map(e => { let [t, r] = е; возвращаться [t, r.fn]; }) ); } const r = n .get(e).filter(e => { let [r] = е; return !t.hasOwnProperty(r) || т[r]; }) .map(function(e) { let [r, n] = е; вернуть t.hasOwnProperty(r)? т[r].bind(this, n) : n; }); return function() { const e = Array.from(arguments); r.forEach(t => { t.apply(this, e); }); }; })(т()[e] || {}, р[e] || {}) ); return ( i && (a = i.bind(this, a)), function() { try { return a.apply(this, аргументы); } catch (e) { o.call(this, e, …arguments); } } ); })()), a.apply(this, аргументы) ); }; } const m = u( d.Tb, s, function(e, t, r) { const n = {}; return e(n, t, r), n; }, function(e, t, r) { (0, i.vV)( ‘Ошибка при преобразовании bidRequest в ORTBimp; запрос пропущен.’, { error: e, bidRequest: t, context: r } ); } ), l = u( d.S3, o, function(e, t, r, n) { const i = {imp: t }; return e(i, r, n), i; }, function(e, t, r, n) { throw ((0, i.vV)(‘Ошибка при преобразовании в запрос ORTB’, { error: e, imps: t, bidderRequest: r, context: n }), e } ), b = u( d.WR, a, function(e, t, r) { const n = {}; return e(n, t, r), n }, function(e, t, r) { (0, i.vV)( ‘Ошибка при преобразовании ORTB seabid.bid в bidResponse; ставка пропущена.’, { error: e, bid: t, context: r } } ), y = u( d.Cf, p, function(e, t, r, n) { const i = { bids: t }; return e(i, r, n), i }, function(e, t, r, n) { throw ((0, i.vV)(‘Ошибка при преобразовании из ответа ORTB’, { error: e, bidResponses: t, ortbResponse: r, context: n }), e }); return {toORTB(t) {let {bidderRequest: r, bidRequests: n, context: s = {} } = t; п = п || ставки; const o = {req: Object.assign({ bidRequests: n }, e, s), imp: {} }; o.req.impContext = o.imp; const a = n .map(t => { const n = Object.assign( { bidderRequest: r, reqContext: o.req }, e, s ), a = m(t, n); if (null != a) { if (a.hasOwnProperty(‘id’)) return ( Object.assign(n, { bidRequest: t,imp: a }), (o.imp[a.id] = п), а ); (0, i.vV)( ‘Преобразованный ORTB-импорт не указывает идентификатор, игнорируя запрос ставки’, t, a ); } }) .filter(Boolean), d = l(a, r, o.req); return (o.req.bidderRequest = r), null != d && c.set(d, o), d; }, fromORTB(e) {let {запрос: т, ответ: р} = е; const n = c.get(t); if (null == n) throw new Error(‘ortbRequest, переданный в `fromORTB`, должен быть тем же объектом, который возвращается `toORTB`’ ); function s(e) { let r = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; return Object.assign(e, { ortbRequest: t }, r); } const o = Object.fromEntries( (t.imp || []).map(е => [e.id, e]) ), a = (r.seatbid || []) .flatMap(e => (e.bid || []).map(t => { if ( o.hasOwnProperty(t.impid) && n.imp.hasOwnProperty(t.impid) ) return b( t, s(n.impid)[t.impid]{ имп: о[t.impid]ставка на место: e, ortbResponse: r }) ); (0, i.vV)( ‘Ответ ORTB на предложение места[].делать ставку[].impid не соответствует ни одному запросу в запросе; игнорируя заявку’, t ); }) ) .filter(Boolean); вернуть y(a, r, s(n.req)); } }; } const f = (0, i.Bj)(() => (0, uU)(c, (0, d.yB)(d.qN))); }, 9466: (e, t, r) => { rd(t, { U: () => i }); вар п = г (1e3); функция i() { for (var e = аргументы.длина, t = новый массив(e), r = 0; r 1? я(…т) : т[0]; return Object.fromEntries( n.zt.map(e => [e, Object.assign({}, s[e]о[e])]) ); } }, 5561: (e, t, r) => { rd(t, { K: () => s, X: () => i }); вар п = г (1371); const i = { 1: n.D4, 2: n.G_, 4: n.s6 }; функция s(e, t, r) { if (e.mediaType) return; const n = r.mediaType; if (!n && !i.hasOwnProperty(t.mtype)) throw new Error(‘Невозможно определить mediaType для ответа’); e.mediaType = n || я[t.mtype]; } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[225]{ 6743: (n, t, l) => { ld(t, { x4: () => i }); вар е = l(7873), r = l(2713); function u(n, t, l) { let r = !(arguments.length > 3 && void 0 !== аргументы[3]) || аргументы[3]; if (t === l) вернуть n; пусть и = п; попробуйте { u = (0, em)().convertCurrency(n, t, l); } catch (n) { if (!r) throw n; } Вернуть тебя; } function i() { let n = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: н => [n.cpm, n.currency]t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: (function() { let n = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: null, t = !( аргументы.длина > 1 && void 0 !== аргументы[1]
) || аргументы[1]l = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: ты; return function(e, r) { return null == n && (n = r), l(e, r, n, t); }; })(); return (0, r.NV)(l => t.apply(null, n(l))); } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[764]{ 2339: (o, n, t) => { function e(o, n) { return function() { const t = document.domain.split(‘.’), e = `_gd${Date.now()}_${n}`; for (let n, i, s = 0; s e }); } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[81]{ 6117: (e, t, n) => { var r = n(7873), s = n(1069), a = n(3172), o = n(3272), c = n(6916), i = n(1e3), p = n(687), d = n(965), l = n(3806); пусть u, g, f = {}; const C = 2, m = { iab: function(e) { return new Promise((t, n) => { const r = (0, d.c5)({ apiName: ‘__tcfapi’, apiVersion: C, apiArgs: [‘command’, ‘version’, ‘callback’, ‘parameter’]
}); р || n(новая ошибка(‘TCF2 CMP не найден.’)), r.isDirect ? (0, s.fH)( ‘Обнаруженный CMP API доступен напрямую, вызываю его сейчас…’ ) : (0, s.fH)( ‘Обнаруженный CMP находится за пределами текущего iframe, где находится Prebid.js, вызываю его сейчас…’ ), r({ команда: ‘addEventListener’, callback: function(r, a) { if ( ((0, s.fH)(‘Получен ответ от CMP’, r), a) ) { try { e(b(r)); } catch (e) {} if ( !1 === r.gdprApplies || ‘tcloaded’ === r.eventStatus || ‘useractioncomplete’ === r.eventStatus ) try { c.mW.setConsentData(b(r)), t(); } catch (e) { n(e } } else n( Error( ‘CMP не удалось); для регистрации функции обратного вызова. Проверьте настройку CMP.’ } }); }); } }; function b(e) { if ( (function() { const t = e && ‘boolean’ == typeof e.gdprApplies ? e.gdprApplies : u, n = e && e.tcString; return !( ‘boolean’ == typeof t && (!0 !== t || (n && (0, s.O8)(n))) ); })() ) throw Object.assign( new Ошибка(‘CMP вернул неожиданное значение во время поиска.’), { args: [e] }); вернуть D(е); } function D(e) {const t = {consentString: e? e.tcString: void 0,vendorData: e || void 0, gdprApplies: e && ‘boolean’ == typeof e.gdprApplies ? например.gdprApplies : u }; return ( e && e.addtlConsent && (0, s.O8)(e.addtlConsent) && (t.addtlConsent = e.addtlConsent), (t.apiVersion = C), t ); } const v = (0, l.yq)({ namespace: ‘gdpr’, displayName: ‘TCF’, согласияDataHandler: c.mW, cmpHandlers: m, parseConsentData: b, getNullConsent: () => D(null) }); o.$W.getConfig(‘consentManagement’, e => (function(e) { return ( (e = e && (e.gdpr || e.usp || e.gpp ? e.gdpr : e)), null != e?.consentData?.getTCData && (e.consentData = e.consentData.getTCData), (u = !0 === e?.defaultGdprScope), (g = !!e?.dsaPlatform), (f = v({ gdpr: e })), f.loadConsentData?.()?.catch?.(() => null) })(e.consentManagement) ), pwbefore(function(e, t) { return e( t.then(e => { const t = c.mW.getConsentData(); return ( t && (‘boolean’ == typeof t.gdprApplies && (0, aJ)(e, ‘regs.ext.gdpr’, t.gdprApplies ? 1 : 0), (0, aJ)(e, ‘user.ext.consent’, t.consentString)), g && (0, aJ)(e, ‘regs.ext.dsa.dsarquired’, 3), e }) }), (0, i.pS)({ type: i.S3, name: ‘gdprAddtlConsent’, fn: function(e, t) { const n = t.gdprConsent?.addtlConsent; n && ‘string’ == typeof n && (0, aJ)( e, ‘user.ext.ConsentedProvidersSettings.consented_providers’, n } }), (0, rE)(‘consentManagementTcf’); } }, е => { eO(0, [802, 109, 10, 769, 139, 85]() => { return (t = 6117), e((es = t)); вар т; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[662]{ 6056: (n, t, e) => { var o = e(7873), a = e(1069), s = e(3172), i = e(3272), c = e(1445), r = e(6916), u = e(6894), l = e(9214), f = e(687), g = e(965); константа d = ‘iab’; пусть p, m, P = d, v = 50, S = !1; const b = {iab: function (n) { let { onSuccess: t, onError: e } = n; let o = (function() { const n = {}; return { constDataCallback: (o, a) => { a && o.uspString && (n.usPrivacy = o.uspString), n.usPrivacy ? h(n, { onSuccess: t, onError: e }) : e(‘Невозможно получить строку согласия USP.’); } }; })(); const s = (0, g.c5)({ apiName: ‘__uspapi’, apiVersion: 1, apiArgs: [‘command’, ‘version’, ‘callback’]
}); if (!s) return e(‘USP CMP не найден.’); s.isDirect ? (0, a.fH)( ‘Обнаруженный USP CMP доступен напрямую, вызываем его сейчас…’ ) : (0, a.fH)( ‘Обнаруженный USP CMP находится за пределами текущего iframe, где находится Prebid.js, вызываем его сейчас…’ ); s({ команда: ‘getUSPData’, обратный вызов: o.consentDataCallback }), s({ команда: ‘registerDeletion’, обратный вызов: (n, t) => (null == t || t) && c.Ay.callDataDeletionRequest(n) }).catch(n => { (0, a.vV)(‘Ошибка при вызове CMP `registerDeletion`:’, н); }); }, static: function (n) { let { onSuccess: t, onError: e } = n; ч (р, { onSuccess: т, onError: е }); } }; функция D(n) { пусть t = null, e = !1; function o(o, a) { if ( (null != t &&clearTimeout(t), (e = !0), r.t6.setConsentData(o), null != n) ) { for ( var s = аргументы.длина, i = new Array(s > 2 ? s — 2 : 0), c = 2; c 1? t — 1 : 0), a = 1; a 1 ? s — 1 : 0), c = 1; c 0 && void 0 !== аргументы[0] && аргументы[0]; С || ((0, a.fH)( ‘Модуль управления согласием USPAPI активирован’ + (n ? » : ` с использованием значений по умолчанию (api: ‘${P}’, тайм-аут: ${v}ms)`) ), (S = !0), r.t6.enable()), D(); } i.$W.getConfig(‘consentManagement’, n => (function(n) { ((n = n && n.usp) && ‘object’ == typeof n) || (0, a.JE)( ‘конфигурация consentManagement.usp не определена, используются значения по умолчанию’), n && (0, a.O8)(n.cmpApi) ? (P = n.cmpApi) : ((P = d), (0, a.fH)( `в конфигурации consentManagement.usp не указан cmpApi. Использование системных настроек по умолчанию (${d}).` )), n && (0, a.Et)(n.timeout) ? (v = n.timeout): ((v = 50), (0, a.fH)( ‘в конфигурации consentManagement.usp не указан таймаут. Использование системных значений по умолчанию установка (50).’ )), ‘static’ === P && ((0, a.Qd)(n.consentData) && (0, a.Qd)(n.consentData.getUSPData) ? (n.consentData.getUSPData.uspString && (p = { usPrivacy: n.consentData.getUSPData.uspString }), (v = 0)) : (0, a.vV)( «Конфигурация consentManagement с cmpApi: ‘static’ не указала согласие. Адаптерам не будут доступны согласия.» )), U(!0); })(n.consentManagement) ), (0, l.Yn)(‘requestBids’).before(y, 50), fwbefore(function(n, t) { return n( t.then(n => { const t = r.t6.getConsentData(); return t && (0, sJ)(n, ‘regs.ext.us_privacy’, t), n; }) }), (0, oE)(‘consentManagementUsp’); } }, n => { nO(0, [109, 802, 769, 139, 85]() => { return (t = 6056), n((ns = t)); вар т; }); нет(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[931]{ 2843: (e, t, o) => { var n = o(7873), r = o(1069), a = o(8044), c = o(7934), i = o(9214), s = o(2938), d = o(5569), l = o(6916); const p = ‘criteo’, g = (0, s.vM)({ ModuleType: d.fW, ModuleName: p }), u = ‘cto_bidid’, m = ‘cto_bundle’, b = ‘html5’, I = ‘cookie’, y = new Date(0).toString(), f = new Date((0, r.vE)() + 33696e6).toString(); function S(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1] && аргументы[1]; const o = (0, r.Dl)(e, { noDecodeWholeURL: !0 }); вернуть т? `${o.hostname}` : `${o.protocol}://${o.hostname}${o.port ? ‘:’ + o.port: »}/`; } function h(e, t) { return e?.storage?.type === b ? g.getDataFromLocalStorage(t) : e?.storage?.type === I ? g.getCookie(t) : g.getCookie(t) || g.getDataFromLocalStorage(т); } function C(e, t, o, n) { t && o && (e?.storage?.type === b ? g.setDataInLocalStorage(t, o) : (e?.storage?.type === I || g.setDataInLocalStorage(t, o), v(t, o, f, n, !0))); } function v(e, t, o, n, r) { const a = n.split(‘.’); for (let n = 0; n { const n = JSON.parse(т); if ( (n.pixels && n.pixels.forEach(t => (function(e, t, o) { o.writeBundleInStorage && o.bundlePropertyName && o.storageKeyName ? (0, a.RD)( o.pixelUrl, { Success: n => { if (n) { const r = JSON.parse(n); r && r[o.bundlePropertyName] && C( e, o.storageKeyName, r[o.bundlePropertyName]т ); } }, ошибка: e => { (0, r.vV)( ‘criteoIdSystem: невозможно синхронизировать идентификатор пользователя’, e); } }, void 0, { метод: ‘GET’, withCredentials: !0 } ): (0, rz$)(o.pixelUrl); })(e, d, t) ), n.acwsUrl)) { (‘string’ == typeof n.acwsUrl ? [n.acwsUrl]
: n.acwsUrl .forEach(e => (0, rz$)(e)); } Еще n.bundle && C(e, m, n.bundle, d); if (n.bidId) { C(e, u, n.bidId, d); const t = {criteoId: n.bidId}; о(т); } else v((c = u), », y, d, !0), g.removeDataFromLocalStorage(c), o(); вар с; }, ошибка: e => { (0, r.vV)(‘criteoIdSystem: невозможно синхронизировать идентификатор пользователя’, e), o(); } }; (0, a.RD)(f, h, void 0, { метод: ‘GET’, contentType: ‘application/json’, withCredentials: !0 }); } const D = { name: p, gvlid: 91, decode: e => e, getId(e) { let t = (function(e) { return { Bundle: h(e, m), dnaBundle: h(e, ‘cto_dna_bundle’), bidId: h(e, u) }; })(e); вернуть {идентификатор: t.bidId? { criteoId: t.bidId }: void 0, обратный вызов: o => U(e, t, o) }; }, eids: { criteoId: { источник: ‘criteo.com’, atype: 1 } } }; (0, i.bz)(‘userId’, D), (0, nE)(‘criteoIdSystem’); } }, е => { eO(0, [802, 769, 139, 85]() => { return (t = 2843), e((es = t)); вар т; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[328]{ 1134: (e, t, n) => { nd(t, { Gk: () => M }); var r = n(7873), s = n(9759), i = n(1069), d = n(8969), o = n(1445), a = n(3272), c = n(7377), u = n(5023); const p = { appnexuspsp: { адаптер: ‘prebidServer’, Enabled: !0, конечная точка: { p1Consent: ‘https://ib.adnxs.com/openrtb2/prebid’, noP1Consent: ‘https://ib.adnxs-simple.com/openrtb2/prebid’ }, syncEndpoint: { p1Consent: ‘https://prebid.adnxs.com/pbs/v1/cookie_sync’, noP1Consent: ‘https://prebid.adnxs-simple.com/pbs/v1/cookie_sync’ }, maxTimeout: 1e3 }, Rubicon: { адаптер: ‘prebidServer’, Enabled: !0, конечная точка: { p1Consent: ‘https://prebid-server.rubiconproject.com/openrtb2/auction’, noP1Consent: ‘https://prebid-server.rubiconproject.com/openrtb2/auction’ }, syncEndpoint: { p1Consent: ‘https://prebid-server.rubiconproject.com/cookie_sync’, noP1Consent: ‘https://prebid-server.rubiconproject.com/cookie_sync’ }, maxTimeout: 500 }, openwrap: { адаптер: ‘prebidServer’, Enabled: !0, конечная точка: { p1Consent: ‘https://ow.pubmatic.com/openrtb2/auction?source=pbjs’, noP1Consent: ‘https://ow.pubmatic.com/openrtb2/auction?source=pbjs’ }, maxTimeout: 500 } }; var l = n(8044), b = n(9214), f = n(2621), g = n(9766), m = n(3172), h = n(3597), C = n(981), y = n(3323), B = n(5825), v = n(1e3), R = n(6953), q = n(3441), E = n(5569), x = n(5139), O = n(6811), S = n(6743), I = n(2713), j = n(433); функция T(e) { let { global: t, претендент: n } = e; return Object.fromEntries( Object.entries(n).map(e => { let [n, r] = е; возвращаться [n, A(r, (0, i.D9)({}, t, r))]; }) ); } function A(e, t) { return Object.fromEntries( Object.entries(e).map(e => { let [n, r] = е; константа с = т[n]; return (Array.isArray(r)?!(0,i.bD) (r,s) && Array.isArray(s) & & (r = s): null!= r & & ‘object’ == typeof r && (r = A (r, s));
[n, r]
); }) ); } function P(e, t) { let { global: n, bidder: r } = e; const s = (function(e) { let { eids: t, конфликты: n = new Set() } = e; const r = []с = []я = {}; return ( t.forEach(e => { (!1 === e.bidders ? r : s).push(e); }), s.forEach(e => { let { eid: t, bidders: s } = e; n.has(t.source) ? s.forEach(e => { (i[e] = я[e] || []).push(т); }) : r.push({ eid: t, претенденты: s }); }), { global: r.map(e => { let { eid: t } = e; return t; }), Permissions: r .filter(e => { let { bidders: t } = e; return !1 !== t; }) .map(e => { let { eid: t, bidders: n } = e; return { source: t.source, bidders: n }; }), bidder: i }); })( (function(e) { let { global: t, bidder: n } = e; const r = []s = {}, d = новый Set(); function o(e) { let t = r.find(t => (0, i.bD)(t.eid, e)); return ( null == t && ((t = { eid: e, претенденты: новый Set() }), r.push(t)), null == s[e.source]
? (с[e.source] = t.eid) : t.eid === e && d.add(e.source), t ); } return ( R.Vx.forEach(e => { ((0, jA)(t, e) || []).forEach(e => { o(e).bidders = !1; }); }), Object.entries(n).forEach(e => { let [t, n] = е; R.Vx.forEach(e => { ((0, jA)(n, e) || []).forEach(e => { const n = o(e); !1 !== n.bidders && n.bidders.add(t); }); }); }), { eids: r.map(e => { let { eid: t, претенденты: n } = e; return { eid: t, претенденты: n && Array.from(n) }; }), конфликты: d } ); })({ global: n, претендент: r }) ); function d(e) { delete e?.user?.eids, delete e?.user?.ext?.eids; } return ( (n = (0, i.Go)(n)), (r = (0, i.Go)(r)), d(n), Object.values(r).forEach(d), s.global.length && (0, mJ)(n, ‘user.ext.eids’, s.global), t?.length && s.permissions.forEach( e => (e.bidders = e.bidders.filter(e => t.includes(e))) ), s.permissions.length && (0, мДж)(n, ‘ext.prebid.data.eidpermissions’, s.permissions), Object.entries(s.bidder).forEach(e => { let [t, n] = е; n.длина && (0, мДж)(r[t]’user.ext.eids’, n); }), { global: n, претендент: r } ); } function w(e, t) { return null == e || 0 === Object.keys(e.bidder || {}).length ? e : ((e = P(e, t)), { …e, участник торгов: T(e) }); } вар D = n(1371); const U = новый набор([
‘bidderCode’,
‘bidderRequestId’,
‘uniquePbsTid’,
‘bids’,
‘timeout’
]), $ = (() => { const e = (0, I.Bp)( (0, S.x4)(e => [e.bidfloor, e.bidfloorcur]) ); return function(t) {let n; for (const r of t) { if (null == r?.bidfloorcur || null == r?.bidfloor) return null; n = ноль == n? г : е(п, г); } Вернуть n; }; })(), J = (0, gA)({ процессоры: Cm, context: { netRevenue: !0 },imp(e, t, n) { Object.assign(n, t.pbsData); const r = e(t, n); if ( ((t.bids || []).forEach(e => { e.ortb2Imp && Object.keys(e.ortb2Imp).length > 0 && (0, мДж)(r, `ext.prebid.imp.${e.bidder}`, e.ortb2Imp); }), Object.values(Bs).some(e => r[e])) ) return (r.secure = t.ortb2Imp?.secure ?? 1), r; }, request(e, t, n, r) { if (t.length) { let { s2sBidRequest: s } = r; const i = e(t, n, r); return ( (i.tmax = Math.floor( s.s2sConfig.timeout ?? Math.min( 0,75 * s.requestBidsTimeout, s.s2sConfig.maxTimeout ?? M.maxTimeout ))), (i.ext.tmaxmax = i.ext.tmaxmax || s.requestBidsTimeout),
[i.app, i.dooh, i.site].forEach(e => { e && !e.publisher?.id && (0, mJ)(e, ‘publisher.id’, s.s2sConfig.accountId); }), r.transmitTids || (0, мДж)(i, ‘ext.prebid.createtids’, !1), i ); } (0, i.vV)( ‘Запрос к серверу Prebid отклонен из-за недопустимых типов мультимедиа в adUnit.’ ); }, bidResponse(e, t, n) { let r = n.actualBidRequests.get(n.seatbid.seat); null == r && (r = n.actualBidRequests.get(null)), r && Object.assign(n, {bidRequest: r, bidderRequest: n.actualBidderRequests.find(e => e.bidderCode === r.bidder) }); const s = е(т, п); return ( (s.requestBidder = r?.bidder), s.native?.ortb && (s.adm = s.native.ortb), (s.requestTimestamp = n.requestTimestamp), { bid: Object.assign( (0, hO)(d.XQ.GOOD, { src: d.RW.SRC, bidId: r ? r.bidId || r.bid_Id : null, идентификатор транзакции: n.adUnit.transactionId, adUnitId: n.adUnit.adUnitId, AuctionId: n.bidderRequest.auctionId }), s, { deferRendering: !!n.adUnit.deferBilling, deferBilling: !!n.adUnit.deferBilling } ), adUnit: n.adUnit.code } ); }, переопределяет: {
[v.Tb]: { id(e, t, n, r) { t.id = r.impId; }, params(e, t, n, r) {const s = r.s2sBidRequest.s2sConfig.adapterOptions; for (const e of r.actualBidRequests.values()) (0, yW)(t, e, r, r), s && s[e.bidder] && Object.assign( t.ext.prebid.bidder[e.bidder]с[e.bidder]
); }, bidfloor(e, t, n, r) { const s = $( (function*() { for (const t of r.actualBidRequests.values()) { const n = {}; e(n, t, r), доходность n; } })() ); null != s && Object.assign(t, s); }, extBidfloor(e, t, n, r) { function s(e, t) { null != t && ((0, mJ)(e, ‘ext.bidfloor’, t.bidfloor), (0, mJ)(e, ‘ext.bidfloorcur’, t.bidfloorcur)); } const d = Array.from(r.actualBidRequests.values()).map( n => { const s = (0, i.Go)(t); return e(s, n, r), s; } ); Object.values(D.GE).forEach(e => { s(t[e]$(d.map(t => t[e]?.ext))); }), (т[D.D4]?.формат || []).forEach((e, t) => { s(e, $(d.map(e => e[D.D4].формат[t]?.ext))); }); } },
[v.S3]: { fpd(e, t, n, r) { r.transmitTids && (0, mJ)(t, ‘source.tid’, n.auctionId), (0, i.D9)(t, r.s2sBidRequest.ortb2Fragments?.global), r.s2sBidRequest.s2sConfig.extPrebid && ‘object’ == typeof r.s2sBidRequest.s2sConfig.extPrebid && (0, mJ)( t, ‘ext.prebid’, (0, i.D9)( t.ext?.prebid || {}, r.s2sBidRequest.s2sConfig.extPrebid )), r.getRedactor().ortb2(t); const s = Object.entries( r.s2sBidRequest.ortb2Fragments?.bidder || {} ).filter(e => { let [t] = е; const n = r.s2sBidRequest.s2sConfig.bidders; return ( r.s2sBidRequest.s2sConfig.allowUnknownBidderCodes || (n && n.includes(t)) ); }) .map(e => { let [t, n] = е; возврат {участников торгов: [t]config: { ortb2: r.getRedactor(t).ortb2(n) } }; }); s.length && (0, мДж)(t, ‘ext.prebid.bidderconfig’, s); }, extPrebidAliases(e, t, n, r) { r.actualBidderRequests.forEach(n => e(t, n, r)); }, sourceExtSchain(e, t, n, r) { let s = t?.ext?.prebid?.schains || []; const i = new Set(s.flatMap(e => e.bidders)); (s = Object.values( s .concat( r.actualBidderRequests .filter(e => !i.has(e.bidderCode)) .map(e => ({ bidders: [e.bidderCode]цепочка: e?.bids?.[0]?.schain })) ) .filter(e => { let { bidders: t, schain: n } = e; return t?.length > 0 && n; }) .reduce((e, t) => { let { bidders: n, schain: r } = t; const s = JSON.stringify(r); return ( e.hasOwnProperty(s) || (e[s] = {участники торгов: новый Set(), цепочка: r }), n.forEach(t => e[s].bidders.add(t)), e ); }, {}) ).map(e => { let { bidders: t, schain: n } = e; return { bidders: Array.from(t), schain: n }; })), s.length && (0, mJ)(t, ‘ext.prebid.schains’, s); } },
[v.Cf]: { serverSideStats(e, t, n, r) { r.actualBidderRequests.forEach(s => e(t, n, { …r, bidderRequest: s, bidRequests: s.bids }) ); }, paapiConfigs(e, t, n, r) { const s = Object.values(r.impContext).flatMap(e => (e.paapiConfigs || []).map(t => { const n = e.actualBidderRequests.find( e => e.bidderCode === t.bidder), r = e.actualBidRequests.get(t.bidder); return { adUnitCode: e.adUnit.code, ortb2: n?.ortb2, ortb2Imp: r?.ortb2Imp, bidder: t.bidder, конфигурация: t.config }; s.length > 0 && (t.paapi = s); } } } }); вар к = п(6894); const _ = a.$W.getConfig, V = d.RW.SRC; пусть N, W = 0; const M = { претенденты: Object.freeze([]), syncTimeout: 1e3, maxBids: 1, адаптер: ‘prebidServer’,allowUnknownBidderCodes: !1, адаптерOptions: {}, syncUrlModifier: {}, ortbNative: { eventtrackers: [{ event: 1, methods: [1, 2] }]}, maxTimeout: 1500 }; функция G(e) { if (!e) return; е = Array.isArray(e)? И : [e]; const t = новый Set(); return e.filter(e => { var n; if ( ((n = e),
[‘endpoint’, ‘syncEndpoint’].forEach(e => { if ((0, i.O8)(n[e])) { пусть t = n[e]; н[e] = {p1Consent: т, noP1Consent: т}; } !(0, i.Qd)(n[e]) || (н[e].p1Согласие && н[e].noP1Consent) ||
[‘p1Consent’, ‘noP1Consent’].forEach(t => { n[e][t] || (0, i.JE)( `s2sConfig.${e}.${t} не определен. Запрос PBS будет пропущен в некоторых сценариях P1.` ); }); }), (function(e) { if (e.defaultVendor) { let t = e.defaultVendor, n = Object.keys(e); if (!p[t]) return ( (0, i.vV)( ‘Неверная или недоступная опция поставщика сервера предварительной заявки по умолчанию: ‘ + t ), !1 ); Object.keys(p[t]).forEach(r => { (M[r] !== е[r] && n.includes(r)) || (э[r] = п[t][r]); }); } Еще null == e.adapter && (e.adapter = ‘prebidServer’); вернуть !0; })(e) && (function(e) { for (const t of [‘accountId’, ‘endpoint’]) if (null == e[t]) return ( (0, i.vV)( t + ‘отсутствует в конфигурации сервера к серверу’), !1); вернуть !0; })(e) && e.enabled) ) return ( Array.isArray(e.bidders) && (e.bidders = e.bidders.filter( e => !t.has(e) && (t.add(e), !0) )), !0 ); (0, i.JE)(‘prebidServer: конфигурация s2s отключена’, e); }); } function F(e, t, n, r, s) { if (N.length === W) return; В++; пусть d = {}; const o = _(‘userSync.filterSettings’); if (o) { const { all: e, iframe: t, image: n } = o, r = t || е, s = n || е; r && (d = Object.assign({ iframe: r }, d)), s && (d = Object.assign({ image: s }, d)); } const a = { uuid: (0, i.lk)(), участники торгов: e, аккаунт: s.accountId, filterSettings: d }; пусть c = s.userSyncLimit; (0, i.Et)(c) && c > 0 && (a.limit = c), t && ((a.gdpr = t.gdprApplies ? 1 : 0), !1 !== t.gdprApplies && (a.gdpr_consent = t.consentString)), n && (a.us_privacy = n), r && ((a.gpp_sid = r.applicableSections.join()), (a.gpp = r.gppString)), ‘boolean’ == typeof s.coopSync && (a.coopSync = s.coopSync); const u = JSON.stringify(a); (0, l.RD)( H(s.syncEndpoint, t), e => { try { L((e = JSON.parse(e)).bidder_status, s); } catch (e) { (0, i.vV)(e); } }, u, { contentType: ‘text/plain’, withCredentials: !0 } ); } function L(e, t) { if (0 === e.length) return; const n = e.shift(); н.но_куки ? (function(e, t, n, r, s) { s.syncUrlModifier && ‘function’ == typeof s.syncUrlModifier[n] && (t = s.syncUrlModifier[n](е, т, н)); !(function(e, t, n, r, s) { t ? ‘image’ === e || ‘redirect’ === e ? ((0, i.OG)( `Вызов синхронизации пользователя пикселя изображения для участника торгов: «${n}»` ), (0, iz$)(t, r, s)) : ‘iframe’ === e ? ((0, i.OG)( `Вызов синхронизации пользователя iframe для претендент: «${n}»` ), (0, i.SG)(t, r, s)) : ((0, i.vV)( `Тип пользовательской синхронизации «${e}» не поддерживается для участника торгов: «${n}»` ), r()) : ((0, i.vV)(`Нет URL-адрес синхронизации для участника торгов «${n}»: ${t}`), r()); n, r, s.syncTimeout); })( n.usersync.type, n.usersync.url, n.bidder, L.bind(null, e, t), t): L(e, t); } function H(e, t) { const n = (0, fC)(t), r = n ? е.p1Consent : е.noP1Consent; return ( r || (0, i.JE)(‘Отсутствует соответствующий URL-адрес согласия, когда gdpr=’ + n), r ); } function Y(e) { let t, n, r; return ( Array.isArray(e) && e.length > 0 && ((t = e[0].gdprConsent), (n = e[0].uspConsent), (r = e[0].gppConsent)) { gdprConsent: t, uspConsent: n, gppConsent: r } ); } a.$W.setDefaults({ s2sConfig: M }), _(‘s2sConfig’, e => { let { s2sConfig: t } = e; var n; (n = G((n = t))).length && (N = n); }); const z = (0, b.A_)( ‘async’, function(e, t, n, r) { let { onResponse: s, onError: c, onBid: p, onFledge: l } = r, { gdprConsent: b } = Y (t); const f = (0, i.Go)(e.ad_units), g = f .map(e => e.bids.map(e => e.bidder).filter(i.hj)) .reduce(i.Bq, []) .filter(i.hj), m = e.metrics.measureTime(‘buildRequests’, () => (function(e, t, n, r) { const s = (0, i.vE)(), d = new Set(), c = []u = (0, o.K5)(e.s2sConfig), p = (() => { const e = (0, R.$p)(u), t = {}; return n => null == n ? e : (t.hasOwnProperty(n) || (t[n] = (0, R.$p)((0, qs)(E.tW, n))), t[n]); })(); (n = n.map(e => p().bidRequest(e))).forEach(e => { const r = new Map(); (n.bids = e.bids.map(e => p(e.bidder).bidRequest(e))), e.bids.forEach(n => { null != n.mediaTypes && (0, i.JE)( `Адаптер Prebid Server (пока) не поддерживает специфичные для системы назначения ставок mediaTypes для одного и того же adUnit. Конфигурация сопоставления размеров будет игнорироваться для adUnit: ${e.code}, bidder: ${n.bidder}` ), r.set(n.bidder, (0, i.D4)(n.bid_id, t)); let s = e.code, o = 1; for (; d.has(s); ) o++, (s = `${e.code}-${o}`); d.add(s), c.push({ …e, adUnitCode: e.code, pbsData: {impId: s, actualBidRequests: r, adUnit: e } }); const l = { …Object.fromEntries( Object.entries(t[0]).filter(e => { let [t] = е; вернуть !U.has(t); }) ), paapi: { Enabled: t.some(e => e.paapi?.enabled) } }; return J.toORTB({ bidderRequest: l, bidRequests: c, context: { валюта: a.$W.getConfig(‘currency.adServerCurrency’) || ‘USD’, ttl: e.s2sConfig.defaultTtl || 60, requestTimestamp: s, s2sBidRequest: { …e, ortb2Fragments: w(e.ortb2Fragments, r) }, RequestBidders: r, factBidderRequests: t, NativeRequest: e.s2sConfig.ortbNative, getRedactor: p, TransmissionTids: (0, x.io)(O.VJ, u) } }); })(e, t, f, g)), h = { endpointUrl: H(e.s2sConfig.endpoint, b), requestJson: m && JSON.stringify(m), customHeaders: e?.s2sConfig?.customHeaders ?? {} }; if ( (u.Ic(d.qY.BEFORE_PBS_HTTP, h), (0, i.fH)(‘BidRequest: ‘ + h), m && h.requestJson && h.endpointUrl)) { const t = e.metrics.startTiming(‘net’); n( h.endpointUrl, { успех: function(n) { let r; t(); try { r = JSON.parse(n); const { bids: t, paapi: s } = e.metrics.measureTime( ‘interpretResponse’, () => (function(e, t) { return J.fromORTB({Response: e, request: t }); })(r, m)); t.forEach(p), s && s.forEach(l); } catch (e) { (0, i.vV)(e); !r || (r.status && r.status.includes(‘Error’)) ? ((0, i.vV)( ‘ответ ошибки анализа: ‘, r ? r.status : ‘недействительный JSON’), s(!1, g)) : s(!0, g, r); }, error: function() { t(), c.apply(this, аргументы); } }, h.requestJson, { contentType: ‘text/plain’, withCredentials: !0, reviewTopics: (0, x.io)(O.DL, (0, o.K5)(e.s2sConfig)), customHeaders: h.customHeaders } ); } else (0, i.vV)(‘Запрос PBS не выполнен. Проверьте конечные точки.’); }, ‘processPBSRequest’); функция K(e, t) { return e?.extPrebid?.returnallbidstatus ? t?.ext?.seatnonbid : void 0; } function Q(e) { return e?.ext?.prebid?.analytics?.tags; } o.Ay.registerBidAdapter( new (function() { const e = new sA(‘prebidServer’); return ( (e.callBids = function(e, t, n, r, s) { const p = (e.metrics = (0, k.BO)(t?.[0]?.metrics) .newMetrics() .renameWith(t => [
`adapter.s2s.${t}`,
`adapters.s2s.${e.s2sConfig.defaultVendor}.${t}`
])); (r = p.startTiming(‘total’).stopBefore(r)), t.forEach(e => (0, k.BO)(e.metrics).join(p, { continuePropagation: !1 }) ); let {gdprConsent: l, uspConsent: b, gppConsent: f} = Y (t); if (Array.isArray(N)) { if ( e.s2sConfig && e.s2sConfig.syncEndpoint && H(e.s2sConfig.syncEndpoint, l) ) { const t = (e.s2sConfig.extPrebid && e.s2sConfig.extPrebid.aliases) ?? {}; F( e.s2sConfig.bidders .map(e => o.Ay.aliasRegistry[e] || т[e] || д) .filter((e, t, n) => n.indexOf(e) === t), l, b, f, e.s2sConfig ); } z(e, t, s, { onResponse: function(n, s, i) { n && t.forEach(e => u.Ic(d.qY.BIDDER_DONE, e)); const { SeatNonBidData: c, atagData: g } = (function( e, t ) { return { atagData: Q(t), SeatNonBidData: K(e, t) }; })(e.s2sConfig, i); if ( (c && u.Ic(d.qY.SEAT_NON_BID, { Seatnonbid: i.ext.seatnonbid, AuctionId: t[0].auctionId, RequestBidders: s, ответ: i, адаптерМетрики: p }), c || g) ) { const e = { Seatnonbid: c, atag: g, AuctionId: t[0].auctionId, RequestBidders: s, ответ: я, адаптерМетрики: р}; u.Ic(d.qY.PBS_ANALYTICS, e); } r(!1), (function(e, t, n, r) { e.forEach(e => { let s = o.Ay.getBidAdapter(e); s && s.registerSyncs && a.$W.runWithBidder( e, s.registerSyncs.bind(s, []т, н, г) ); }); })(s, l, b, f); }, onError(n, s) { const { p1Consent: o = », noP1Consent: a = » } = e?.s2sConfig?.endpoint || {}; о === а ? (0, i.vV)( `Ошибка вызова сервера предварительного предложения: ‘${n}’. Конечная точка: «${o}»}`, s ): (0, i.vV)( `Ошибка вызова сервера предварительного предложения: ‘${n}’. Конечные точки: p1Consent «${o}», noP1Consent «${a}»}`, s ), t.forEach(e => u.Ic(d.qY.BIDDER_ERROR, {ошибка: s, bidderRequest: e })), r(s.timedOut); }, onBid: function (t) { let { adUnit: r, bid: s } = t; const o = (s.metrics = e.metrics.fork().renameWith()); o.checkpoint(‘addBidResponse’), (null != s.requestId && null != s.requestBidder) || e.s2sConfig.allowUnknownBidderCodes ? o.measureTime(‘addBidResponse.validate’, () => (0, c.fn)(r, s) ) ? n(r, s) : n.reject(r, s, d.Tf.INVALID) : ((0, i.JE)( `Адаптер PBS получил предложение от неизвестного участника торгов (${s.bidder}), но ‘s2sConfig.allowUnknownBidderCodes’ не установлен. Игнорирование предложения.` ), n.reject(r, s, d.Tf.BIDDER_DISALLOWED)); }, onFledge: e => { a.$W.runWithBidder(e.bidder, () => { (0, c.JN)( { AuctionId: t[0].auctionId, …e }, { config: e.config } ); }); } }); } }), Object.assign(this, { callBids: e.callBids, setBidderCode: e.setBidderCode, type: V }) ); })(), ‘prebidServer’ ), (0, rE)(‘prebidServerBidAdapter’); } }, е => { eO(0, [802, 618, 498, 225, 769, 139, 85]() => { return (t = 1134), e((es = t)); вар т; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[41]{ 2115: (d, e, n) => { var t = n(7873), s = n(9214), i = n(1069); const o = { name: ‘pubProvidedId’, gvlid: n(6916).B1, decode(d) {const e = d? {pubProvidedId: d}: void 0; return ( (0, i.fH)( ‘PubProvidedId: декодированное значение ‘ + JSON.stringify(e)), e); }, getId(d) { const e = (d && d.params) || {}; пусть n = []; return ( (0, i.cy)(e.eids) && (n = n.concat(e.eids)), ‘function’ == typeof e.eidsFunction && (n = n.concat(e.eidsFunction())), { id: n } ); } }; (0, s.bz)(‘userId’, o), (0, tE)(‘pubProvidedIdSystem’); } }, d => { dO(0, [802, 769, 139, 85]() => { return (e = 2115), d((ds = e)); вар е; }); делать(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[496]{ 5862: (e, o, t) => { var n = t(7873), r = t(1069), d = t(9214), i = t(2938), a = t(6916), u = t(5569), c = t(2339); const s = (0, i.vM)({moduleType: u.fW, имя модуля: ‘sharedId’ }), l = ‘cookie’, m = ‘html5’, p = ‘_pubcid_optout’, f = ‘PublisherCommonId’; function g(e, o) { if (o === l) return s.getCookie(e); if (o === m && s.hasLocalStorage()) { const o = s.getDataFromLocalStorage(`${e}_exp`); if (!o) return s.getDataFromLocalStorage(e); if (new Date(o).getTime() — Date.now() > 0) return s.getDataFromLocalStorage(e); } } function b(e, o) { return function(t, n) { o ? v(o, e, () => { t(n() || e); })() : t(e); }; } function v(e) { let o = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: », t = аргументы.длина > 2? аргументы[2] : пустота 0; если (!e) возврат; const n = (0, r.Dl)(e); n.search.id = encodeURIComponent(‘pubcid:’ + o); const d = (0, rc$)(n); return function() { (0, rz$)(d, t); }; } function h() { return !!( (s.cookiesAreEnabled() && g(p, l)) || (s.hasLocalStorage() && g(p, m)) ); } const I = { name: ‘sharedId’, aliasName: ‘pubCommonId’, gvlid: a.B1, decode(e, o) { if (h()) return void (0, r.fH)(‘PubCommonId decode: Отказ от участия’); (0, r.fH)(‘ Декодированное значение PubCommonId ‘ + e); вернуть {pubcid: е}; }, getId: function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, o = аргументы.длина > 1? аргументы[1] : void 0, t = аргументы.длина > 2? аргументы[2] : пустота 0; if (h()) return void (0, r.fH)(‘PubCommonId: Отказ от участия’); if (o?.coppa) return void (0, r.fH)( ‘PubCommonId: идентификаторы не предоставлены для запросов коппы, выход из PubCommonId’ ); const { params: { create: n = !0, PixelUrl: d } = {} } = e; пусть я = т; if (!i) { try { ‘object’ == typeof window[f] && (я = окно[f].getId()); } catch (e) {} я || (i = n && (0, r.N9)() ? (0, r.lk)() : void 0); } return {id: i, обратный вызов: b(i, d)}; }, ExtendId: function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, o = аргументы.длина > 1? аргументы[1] : void 0, t = аргументы.длина > 2? аргументы[2] : пустота 0; if (h()) return ( (0, r.fH)(‘PubCommonId: отказался от участия’), { id: void 0 } ); if (o?.coppa) return void (0, r.fH)( ‘PubCommonId: идентификаторы не предоставлены для запросов коппы, выход из PubCommonId’ ); const { params: { Extend: n = !1, PixelUrl: d } = {} } = e; if (n) { if (d) { return { обратный вызов: v(d, t) }; } Возврат {идентификатор: т}; } }, domainOverride: (0, cw)(s, ‘sharedId’), eids: { pubcid(e, o) { const t = { source: ‘pubcid.org’, uids: e.map(e => ({ id: e, atype: 1 })) }; return ( null != o?.params?.inserter && (t.inserter = o.params.inserter), t ); } } }; (0, d.bz)(‘userId’, I), (0, nE)(‘sharedIdSystem’); } }, е => { eO(0, [764, 802, 769, 139, 85]() => { return (o = 5862), e((es = o)); вар о; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[469]{ 4836: (e, t, n) => { var r = n(7873), o = n(3272), s = n(5023), i = n(1445), a = n(8969), c = n(9214), u = n(1069); const l = новая карта(); function d(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: л; константа п = {}; function r(e) { const t = JSON.stringify([
e.source?.toLowerCase(),
…Object.keys(e)
.filter(e => ![‘uids’, ‘source’].includes(e)) .sort() .map(t => e[t]) ]); n.hasOwnProperty(t) ? н[t].uids.push(…e.uids) : (n[t] = е); } return ( Object.entries(e).forEach(e => { let [n, o] = и; о = Array.isArray(o) ? о: [o]; const s = t.get(n); позволь мне; if (‘pubProvidedId’ === n) i = (0, u.Go)(o); else if (‘function’ == typeof s) try { (i = s(o)), Array.isArray(i) || (я = [i]), i.forEach( e => (e.uids = e.uids.filter(e => { let { id: t } = e; return (0, u.O8)(t); })) ), (i = i.filter(e => { let { uids: t } = e; return t?.length > 0; })); } catch (e) { (0, u.vV)(`Не удалось сгенерировать EID для «${n}»`, e); } else i = o.map(e => (function(e, t, n) { if (n && e) { let t = {}; t.source = (0, u.fp)(n.getSource) ? n.getSource(e) : n.source; const r = (0, u.fp)(n.getValue) ? n.getValue(e) : e; if ((0, u.O8)(r)) { const o = { id: r, atype: n.atype }; if ((0, u.fp)(n.getUidExt)) { const t = n.getUidExt(e); t && (o.ext = t); if ( ((t.uids =); [o]), n.inserter || (0, u.fp)(n.getInserter)) ) { const r = (0, u.fp)(n.getInserter) ? n.getInserter(e): n.inserter; null != r && (t.inserter = r); } if (n.matcher || (0, u.fp)(n.getMatcher)) { const r = (0, u.fp)(n.getMatcher) ? n.getMatcher(e): n.matcher; null != r && (t.matcher = r); } if ( (null != n.mm && (t.mm = n.mm), (0, u.fp)(n.getEidExt)) ) { const r = n.getEidExt(e); р && (t.ext = r); } Вернуть т; } } вернуть ноль; })(е, 0, с) ); Array.isArray(i) && i.filter(e => null != e).forEach(r); }), Object.values(n) ); } function f(e) {const t = new Map(), n = {}; return ( Object.entries(e).forEach(e => { let [r, o] = е; константа с = о (); если (s) { n[r] = s.idObj[r]; пусть e = s.submodule.eids?.[r]; ‘function’ == typeof e && ((i = e), (e = function() { for ( var e = аргументы.длина, t = новый массив(e), n = 0; n { let e; return () => (null == e && (e = (0, p.K7)()), e); })(); функция F(e) { return V() .fork() .renameWith(t => [`userId.mod.${t}`, `userId.mods.${e}.${t}`]); } функция W(e, t) { t = t || e.storageMgr; const n = ‘function’ == typeof e.submodule.domainOverride? e.submodule.domainOverride(): ноль, r = e.config.storage.name; return function(e, o, s) { t.setCookie(r + (e || »), o, s, ‘Lax’, n); }; } function G(e, t) { const n = e.config.storage; try {const r = new Date( Date.now() + 864e5 * n.expires).toUTCString(), o = (0, u.Qd)(t)? JSON.stringify(т): т; e.enabledStorageTypes.forEach(t => { switch (t) { case $: !(function(e, t, n) { const r = e.config.storage, o = W(e); o(null, t, n), o(‘_cst’, me(), n), ‘number’ == typeof r.refreshInSeconds && o(‘_last’, new Date().toUTCString(), n); })(e, o, r); time j: !(function(e, t, n) { const r = e.config.storage, o = e.storageMgr; o.setDataInLocalStorage(`${r.name}_exp`, n), o.setDataInLocalStorage(`${r.name}_cst`, me()), o.setDataInLocalStorage( r.name, encodeURIComponent(t) ), ‘number’ == typeof r.refreshInSeconds && o.setDataInLocalStorage( `${r.name}_last`, new Date().toUTCString() })(e, o, r } }); } catch (e) { (0, u.vV)(e); } } function R(e) { ve(e), e.enabledStorageTypes.forEach(t => { switch (t) { case $: !(function(e) { const t = W(e, U), n = new Date(Date.now() — 864e5).toUTCString();
[», ‘_last’, ‘_cst’].forEach(e => { try { t(e, », n); } catch (e) { (0, u.vV)(e); } }); })(е); перерыв; случай j: !(function(e) {
[», ‘_last’, ‘_exp’, ‘_cst’].forEach(t => { try { U.removeDataFromLocalStorage(e.config.storage.name + t); } catch (e) { (0, u.vV)(e); } }); })(е); } }); } function B(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: пустота 0; const n = e.config.storage, r = t? `${n.name}_${t}` : n.name; отпусти; try { e.enabledStorageTypes.find(t => { switch (t) { case $: o = (function(e, t) { return e.storageMgr.getCookie(t); })(e, r); Break; case j: o = (function(e, t) { const n = e.storageMgr, r = e.config.storage, o = n.getDataFromLocalStorage(`${r.name}_exp`); return » === o ? n.getDataFromLocalStorage(t) : o && new Date(o).getTime() — Date.now() > 0 ? decodeURIComponent(n.getDataFromLocalStorage(t)) : void 0; })(e, r); == typeof o && ‘{‘ === o.trim().charAt(0) && (o = JSON.parse(o)); } catch (e) { (0, u.vV)(e); } Вернуться о; } function Q(e, t, n) { t = V() .fork() .startTiming(‘userId.callbacks.total’) .stopBefore(t); const r = (0, u.U6)(() => {clearTimeout(x), t(); }, e.length); e.forEach(function(e) { const t = F(e.submodule.name).startTiming(‘callback’) .stopBefore(r); (0, u.fH)( `${k}: ${e.submodule.name} — идентификатор запроса ответил пустым значением` ), t(); }, B.bind(null, e)); catch (n) { (0, u.vV)(`Ошибка в модуле userID ‘${e.submodule.name}’:`, t() }; } function K(e) { return Object.fromEntries( Object.entries(e) .map(e => { let [t, n] = е; возвращаться [t, n()?.idObj?.[t]]; }) .filter(e => { let [t, n] = е; вернуть ноль!= n; }) ); } функция Y(e, t, n) { const r = {}; return ( e.forEach(e => { const o = n(e), s = (function(e) { if (e.primaryIds) return e.primaryIds; const t = Object.keys(e.eids ?? {}); if (t.length > 1) throw new Error( `ID субмодуля ${e.name} может предоставлять несколько идентификаторов, но не указывает ‘primaryIds’`); return t; })(о); t(e).forEach(t => { const n = (r[t] = р[t] ?? []), я = J[t]?.indexOf(o.name) ?? (s.includes(t) ? 0 : -1), a = n.findIndex(e => { let [t] = е; вернуть т { let [t, n] = е; возвращаться [
t,
n.map(e => {
let [t, n] = е; вернуть н; }) ]; }) ) ); } function z() { const e = { подмодули: []глобальный: {}, участник торгов: {}, комбинированный: {}, обновить() { let t = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: []; const n = новый Set(t.map(e => e.submodule)); (e.submodules = e.submodules .filter(e => !n.has(e.submodule)) .concat(t)), (function() { const t = Y( e.submodules, e => Object.keys(e.idObj ?? {}), e => e.submodule ), n = {}, r = {}; function o(e, t, n) { return function() { for (const { разрешено: r, участники торгов: o, модуль: s } of n) { if ( !T.isAllowed( S.yl, (0, Ds)(w.fW, s?.config?.name, { init: !1 }) ) ) const i = s.idObj?.[e]; if (null != i) { if (r) return s; if (t) { const t = e => e .map(e => e.module.submodule.name).join(‘, ‘); return ( (0, u.JE)( `userID модули ${t( n )} предоставляют тот же идентификатор (‘${e}’); ${ s.submodule.name } является предпочтительным источником, но он настраивается только для некоторых участников торгов, в отличие от ${t( n.filter(e => null == e.bidders) )}. Другие участники торгов не увидят идентификатор «${e}» ` ), null ); } Если (нуль == о) вернуть ноль; } } вернуть ноль; }; } Object.entries(t).forEach(e => { let [t, s] = е, я = !0; const a = новый Set(); (s = s.map(e => { let t = null; return ( Array.isArray(e.config.bidders) && e.config.bidders.length > 0 ? ((t = e.config.bidders), t.forEach(e => a.add(e))) : (i = !1), { модуль: e, bidders: t } ); })), i || (н[t] = o( t, !0, s.map(e => { let { претенденты: t, модуль: n } = e; return { разрешено: null == t, претенденты: t, модуль: n }; }) )), a.forEach(e => { (r[e] = р[e] ?? {}), (р[e][t] = o( t, !1, s.map(t => { let { претенденты: n, модуль: r } = t; return { разрешено: n?.includes(e), претенденты: n, модуль: r }; }) )); }); }); const s = Object.values(r).concat([n]) .reduce((e, t) => Object.assign(e, t), {}); Object.assign(e, { global: n, претендент: r, комбинированный: s }); })(); } }; вернуть е; } function X(e) { let { adUnits: t, ortb2Fragments: n } = e; if ( ((n = n ?? { global: {}, bidder: {} }), (function(e) { const { global: t, bidder: n } = e, { global: r, bidder: o } = C, s = f(r); s.length > 0 && (0, mJ)( t, ‘user.ext.eids’, (t.user?.ext?.eids ?? []).concat(s) ), Object.entries(o).forEach(e => { let [t, r] = е; константа о = е (г); o.length > 0 && (0, мДж)( n, `${t}.user.ext.eids`, (n[t]?.user?.ext?.eids ?? []).concat(o) ); }); })(п),
[t].some(e => !Array.isArray(e) || !e.length)) return; const r = K(C.global), o = n.global.user?.ext?.eids || []; t.forEach(e => { e.bids && (0, u.cy)(e.bids) && e.bids.forEach(e => { const t = Object.assign({}, r, K(C.bidder)[e.bidder] ?? {})) s = o.concat(n.bidder?.[e.bidder]?.user?.ext?.eids || []); Object.keys(t).length > 0 && (e.userId = t), s.length > 0 && (e.userIdAsEids = s); }); }); } Конст Z = {}; пусть ее; function te() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: т.е.() || []; const t = _ && e.find(e => e.source === _); if (t && ‘string’ == typeof t?.uids?.[0]?.id) { const e = t.uids[0].id.replace(/[W_]/г, »); if (e.length >= 32 && e.length 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; h.U9.race([r().catch(() => null), n(L)]).then(() => { X(t), V().join((0, p.BO)(t.metrics), { propagate: !1, includeGroups: !0 }), e.call(this, t); }); }), re = (0, p.Ak)(‘userId’, function(e, t) { X(t), e.call(this, t); }); function oe() { return !!O.gH.getHooks({крючок: ne }).length; } Функция se() { return K(C.combined); } Функция ie() { return f(C.combined); } function ae(e) { return ie().filter(t => t.source === e)[0]; } function ce(e, t, n) { return de().then(() => { let r = {}; if ((0, u.fp)(n)) { (0, u.fH)( `${k} — Получение зашифрованного сигнала из пользовательской функции: ${n.name} & source: ${e} ` ); const t = n(e); r[e] = т ? ue(t): ноль; } Еще {const n = ae(e); (0, u.fH)( `${k} — Получение зашифрованного сигнала для eids :${JSON.stringify( n )}` ), (0, u.Im)(n) || (р[n.source] = !0 === т ? ue(n) : n.uids[0].идентификатор); } return ( (0, u.fH)(`${k} — Получение зашифрованных eids: ${r[e]}`), р[e]
); }); } function ue(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: 1, n = »; if (1 === t) n = ‘object’ == typeof e ? window.btoa(JSON.stringify(e)) : window.btoa(e); вернуть `${t}||${n}`; } function le() { if (!(0, u.II)()) return; window.googletag.secureSignalProviders = window.googletag.secureSignalProviders || []; const e = o.$W.getConfig(‘userSync.encryptedSignalSources’); if (e) { const t = e.registerDelay || 0; setTimeout(() => { e.sources && e.sources.forEach(e => { let { source: t, encrypt: n, customFunc: r } = e; t.forEach(e => { window.googletag.secureSignalProviders.push({ id: e, CollectorFunction: () => ce(e, n, r) }); }); }); }, t); } else (0, u.JE)( `${k} — ESP: конфигурация EncryptedSignalSources не определена в объекте userSync`); } function de(e) { return ee(e).then( () => se(), e => e === Z ? Promise.resolve().then(ge) : ((0, u.vV)(‘Ошибка инициализации userId’, e), h.U9.reject(e)) ); } function fe() { let { submoduleNames: e } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, t = аргументы.длина > 1? аргументы[1] : пустота 0; return de({ обновить: !0, submoduleNames: e }).then( e => (t && (0, u.fp)(t) && t(), e) ); } функция ge() { return de(); } function me() { let e = Number(I.SL.hash); константа т = []; for (; e > 0; ) t.push(String.fromCharCode(255 & e)), (e >>>= 8); вернуть btoa(t.join()); } function be(e, t) { const n = I.SL.getConsentData(); if (e.config.storage) { let r, o = B(e), s = !1; if (‘number’ == typeof e.config.storage.refreshInSeconds) {const t = new Date(B(e, ‘last’)); s = t && Date.now() — t.getTime() > 1e3 * e.config.storage.refreshInSeconds; } if ( !o || s || t || (function(e) { const t = B(e, ‘cst’); return !t || t !== me(); })(e) ) { const t = Object.assign( { EnableStorageTypes: e.enabledStorageTypes }, e.config ); r = e.submodule.getId(t, n, o); } else ‘function’ == typeof e.submodule.extendId && (r = e.submodule.extendId(e.config, n, o)); (0, u.Qd)(r) && (r.id && (G(e, r.id), (o = r.id)), ‘function’ == typeof r.callback && (e.callback = r.callback)), o && (e.idObj = e.submodule.decode(o, e.config)); } Еще если (e.config.value) e.idObj = e.config.value; еще {const t = e.submodule.getId(e.config, n); (0, u.Qd)(t) && (‘function’ == typeof t.callback && (e.callback = t.callback), t.id && (e.idObj = e.submodule.decode(t.id, e.config))); } } function he(e) { const t = f(e.combined); if (t.length && _) { const e = te(t); e && ((0, u.II)() ? window.googletag.pubads().setPublisherProvidedId(e) : ((window.googletag = window.googletag || {}), (window.googletag.cmd = window.googletag.cmd || []), window.googletag.cmd.push(function() { window.googletag.pubads().setPublisherProvidedId(e); }))); } } function pe(e, t) { let n = аргументы.длина > 2 && void 0 !== аргументы[2] && аргументы[2]; return V() .fork() .measureTime(‘userId.init.modules’, function() { if (!t.length) return []; if ( (t.forEach(e => ve(e)), !(t = t.filter( e => (!e.config.storage || !!e.enabledStorageTypes.length) && T.isAllowed(S.yl, (0, Ds)(w.fW, e.config.name)) )).length) ) return (0, u.JE)(`${k} — модуль идентификатора не настроен`), []; const r = t.reduce( (e, t) => F(t.submodule.name).measureTime(‘init’, () => { try { be(t, n), e.push(t); } catch (e) { (0, u.vV)( `Ошибка в модуле userID ‘${t.submodule.name}’:`, e ); } return e; }),
[]
); вернуть e.refresh(r), he(e), r; }); } function ye(e) { return e?.storage?.type?.trim().split(/s*&s*/) || []; } function Ie(e) { function t(e) { for ( var t = аргументы.длина, n = новый массив (t > 1 ? t — 1 : 0), r = 1; r { if (!e?.name) return t(‘необходимо указать «name»‘, e); if (e.storage) { if (!e.storage.name || !e.storage.type) return t( ‘необходимо указать «storage.name» и «storage.type»‘, e ); if ( !(function(e) { return ye(e).every(e => we.has(e)); })(e) ) return t(‘invalid «storage.type»‘, e);
[‘expires’, ‘refreshInSeconds’].forEach(n => { let r = e.storage[n]; null != r && ‘number’ != typeof r && ((r = Number(r)), isNaN(r) ? (t( `storage.${n} должно быть числом и будет игнорироваться`, e ), удалить e.storage[n]) : (электронное хранилище[n] = г)); }); } вернуть !0; }) : (null != e && t(‘должен быть массив’, e), []); } const we = новый Set([j, $]); функция ve(e) { if (e.enabledStorageTypes) return; const т = да (e.config); e.enabledStorageTypes = t.filter(t => { switch (t) { case j: return (function(e) { return !( !e.storageMgr.localStorageIsEnabled() || (U.getDataFromLocalStorage(A) && ((0, u.fH)( `${k} — отказ от локального хранилища найден, хранилище отключено`), 1)) ); })(e); case $: return (function(e) { return !( !e.storageMgr.cookiesAreEnabled() || (U.getCookie(A) && ((0, u.fH)( `${k} — обнаружен файл cookie для отказа, 1)) ); })(e); return !1 }); } function Se(e) { l.clear(), Object.entries( Y( e, e => Object.keys(e.eids || {}), e => e ) ).forEach(e => { let [t, n] = е; вернуть l.set(t, n[0].eids[t]); }); } функция De() { Se(q); const e = Ie(M); if (!e.length) return; const t = q.filter(e => !(H || []).find(t => t.name === e.name)); H.splice(0, H.length), t .map(t => { const n = (e || []).find( e => e.name && (e.name.toLowerCase() === t.name.toLowerCase() || (t.aliasName && e.name.toLowerCase() === t.aliasName.toLowerCase()))) ); return ( n && t.name !== n.name && (n.name = t.name), n ? { submodule: t, config: n, обратный вызов: void 0, idObj: void 0, StorageMgr: (0, g.vM)({ ModuleType: w.fW, ModuleName: n.name }) } : null ); }) .filter(e => null !== e) .forEach(e => H.push(e)), H.length && (oe() || (O.gH.getHooks({ook: re }).remove(), O.gH.before(ne, 100), i.Ay.callDataDeletionRequest.before(Ee), bQafter(e => e(te()))), (0, u.fH)( `${k} — конфигурация usersync обновлена для подмодулей ${H.length}: `, H.map(e => e.submodule.name) )); } function Ee(e) { for (var t = аргументы.длина, n = новый массив(t > 1? t — 1: 0), r = 1; r { if (‘function’ == typeof e.submodule.onDataDeletionRequest) try { e.submodule.onDataDeletionRequest( e.config, e.idObj, …n); } catch (t) { (0, u.vV)( `Ошибка вызова onDataDeletionRequest для идентификатора подмодуля ${e.submodule.name}`, t } R(e }), e.apply(this, n); } function Oe(e) { return function() { return Promise.resolve(e.apply(this, аргументы)); }; } function ke(e) { let { mkDelay: t = h.cb } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; (_ = пустота 0), (H = []), (М = []), (C = z()), (ee = (function() { let { mkDelay: e = h.cb } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; const t = (0, h.v6)(), n = (0, h.v6)(); пусть r, o, i = !1; function l(e) { return ( (o = V().fork()), null != r && r.reject(Z), (r = (0, h.v6)()), h.U9.race([e, r.promise]).finally( o.startTiming(‘userId.total’) ) ); } пусть d = C, f = H; function g(e) { return function() { if (d === C && f === H) return e(…arguments); }; } function m() { return I.SL.promise.finally( o.startTiming(‘userId.init.consent’) ); } пусть b = l( h.U9.all([c.Gc, t.promise]) .then(m) .then( g(() => { pe(d, f); }) ) .then(() => n.promise.finally( o.startTiming(‘userId.callbacks.pending’) ) ) .then( g(() => { const e = d.submodules.filter(e => (0, u.fp)(e.callback) ); if (e.length) return new h.U9(t => Q(e, t, d) }) ); return function() { let { обновить: r = !1, submoduleNames: o = null, готово: c = !1 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; return ( c && !i && ((i = !0), t.resolve(), L > 0 ? n.resolve() : s.on(a.qY.AUCTION_END, function t() { s.AU(a.qY.AUCTION_END, t), e(N).then(n.resolve); })), r && i && (b = l( b .catch(() => null) .then(m) .then( g(() => { const e = pe( d, f.filter( e => null == o || o.includes(e.submodule.name) ), !0 ).filter(e => null != e.callback); if (e.length) return new h.U9(t => Q(e, t, d)); }) )), b ); }; })({ mkDelay: t })), null != P && P(), (q = []), (P = e.getConfig(‘userSync’, e => { const t = e.userSync; t && ((_ = t.ppid), t.userIds && ((M = t.userIds), (N = (0, u.Et)(t.syncDelay) ? t.syncDelay : E.qh.syncDelay), (L = (0, u.Et)(t.auctionDelay) ? t.auctionDelay : E.qh.auctionDelay), De(), (function(e, t) { if (e) { const n = {}, r = new Map( t.map(e => e.aliasName ? [e.aliasName, e.name] : []
) ); Object.keys(e).forEach(t => { const o = (0, u.cy)(e[t]) ? […e[t]].обеспечить регресс() : []; н[t] = o.map(e => (r.has(e) ? r.get(e) : e)); }), (J = n); } Еще J = {}; C.refresh(), См.(т); })( t.idPriority, q),yes({ready: !0 }))); })), ((0, rm)().getUserIds = se), ((0, rm)().getUserIdsAsEids = ie), ((0, rm)().getEncryptedIdsForSource = Oe(ce)), ((0, rm)().registerSignalSources = le), ((0, rm)().refreshUserIds = Oe(fe)), ((0, rm)().getUserIdAsync = Oe(ge)), ((0, rm)().getUserIdAsAidBySource = ae), oe() || O.gH.before(re, 100); } ke(o.$W), (0, c.xG)( ‘userId’, function(e) { (e.findRootDomain = yS), (q || []).find(t => t.name === e.name) || (q.push(e), I.o2.register(w.fW, e.name, e.gvlid), De(), ee({refresh: !0, submoduleNames: [e.name] })); }, { postInstallAllowed: !0 } ), (0, rE)(‘userId’); } }, е => { eO(0, [802, 769, 139, 85]() => { return (t = 4836), e((es = t)); вар т; }); еО(); } ]); })(), tlpbjs.processQueue(); tlpbjs.config = {}; tlpbjs.config.domain = window.location.hostname.replace(‘www.’, »); если (учетная запись) {tlpbjs.config.account = учетная запись; } Еще { tlpbjs.config.account = ‘tl’; } tlpbjs.config.debug = window.location.search.indexOf(‘tlpbjs=debug’) > -1; tlpbjs.defineSlot = window.googletag.defineSlot; tlpbjs.nativeRender = function(state) { var Winners = tlpbjs.getHighestCpmBids([state.divId]); if (tlpbjs.config.debug) console.log(‘tlpbjs: Winners: ‘ + Winners.length); for (var i = 0; i { if (a.mediaTypes && a.mediaTypes.banner && a.mediaTypes.banner.sizes) { delete a.mediaTypes.banner.sizes; } }); }); window.pbjs = window.pbjs || окно.tlpbjs; }); tlpbjs.renderTlDynamicAd = function(state) { tlpbjs.que.push(function() { if (!tlpbjs.adUnits.find(e => e.code === state.divId)) { var new_unit = [
{
code: state.divId,
mediaTypes: {
banner: {
sizes: [[1, 1]]} }, ortb2Imp: { ext: { prebid: {storerequest: { id:state.storedImp }, …(window.location.search.indexOf(‘tl=test’) > -1 && {storeauctionresponse: { id: ‘test-placement300x250’ } }) } } }, ставки: [
{
bidder: ‘teal-s2s’
}
]
} ]; tlpbjs.addAdUnits(new_unit); } вар другие_эйды; if (window.owpbjs && window.owpbjs.getUserIdsAsEids) {other_eids = window.owpbjs.getUserIdsAsEids(); } else if (window.ihowpbjs && window.ihowpbjs.getUserIdsAsEids) {other_eids = window.ihowpbjs.getUserIdsAsEids(); } else if (window.pbjs && window.pbjs.getUserIdsAsEids) {other_eids = window.pbjs.getUserIdsAsEids(); } if (other_eids &&other_eids.filter) {other_eids =other_eids.filter(e => ![‘criteo.com’, tlpbjs.config.domain, ‘pubcid.org’].includes( е[‘source’]
) ); tlpbjs.mergeConfig({ ortb2: { user: { ext: { eids:other_eids } } } }); } tlpbjs.tlRequestBids(состояние); }); }; tlpbjs.initGam = функция (состояние) { window.googletag = window.googletag || {коммд: [] }; window.googletag.cmd.push(function() { if (state.gamSlotId) {state.gamSlot = window.googletag .pubads() .getSlots() .find(element => element.getSlotElementId() === state.divId); if (!state.gamSlot) { if (state.size && Array.isArray(state.size)) { if (state.size && Array.isArray(state.size)) { if (!state.size.includes(1)) {state.size = [state.size, [1, 1]]; } } еще {state.size = [[1, 1]]; } state.gamSlot = tlpbjs .defineSlot(state.gamSlotId,state.size,state.divId) .addService(googletag.pubads()); } Еще {вар размеры = state.gamSlot.getSizes(); if (!sizes.find(e => e[‘width’] == 1)) { var sizeArray = [[1, 1]]; size.forEach(e => sizeArray.push([e[‘width’]е[‘height’]])); state.gamSlot.defineSizeMapping( googletag .sizeMapping() .addSize([0, 0]sizeArray) .build() ); } } } }); }; } функция триггерTealReplace(account) { window.googletag = window.googletag || {коммд: [] }; window.googletag.cmd.push(function() { if (window.location.search.indexOf(‘tl=disable’) > -1) return; var идентификатор = ‘восстановленное рекламное место-‘; var gptDefineSlot = window.googletag.defineSlot; var adCounter = 0; if (!window.tlpbjs || !window.tlpbjs.config) loadTlpbjs(account ? account : ‘npg’); function defineSlotOverride(adUnitPath,sized, divId) { // передаем только 0,0, если родительский узел уже восстановил дочерний узел var div = document.getElementById(divId); var пустойParent = true; if ( div.parentNode && div.parentNode.children && div.parentNode.children.forEach ) { div.parentNode.children.forEach(e => { if (e.id.startsWith(identifier)) {emptyParent = false; } }); var slot = gptDefineSlot(adUnitPath, пустойParent? Размеры: [0, 0]делитель); runAuctionForSlot(divId, slot.getSizes()); возвратный слот; } function runAuctionForSlot(divId,sized, isRefresh) { //проверяем размеры — не отображать, если ширина или высота { if (Array.isArray(e) && e[0] > максимальный размер[0]) { maxSize[0] = е[0]; } else if (e.width > maxSize[0]) { maxSize[0] = е.ширина; } if (Array.isArray(e) && e[1] > максимальный размер[1]) { maxSize[1] = е[1]; } else if (e.height > maxSize[1]) { maxSize[1] = e.высота; } }); } если (maxSize[0] <= 2 || МаксСизе[1] { if (e.id.startsWith(identifier)) {emptyParent = false; } }); } if (emptyParent || isRefresh) { slot.innerHTML = »; if (!isRefresh) slot.id = идентификатор + adCounter++; если (!tooSmall) {вар urlParams = новый URLSearchParams(window.location.search); var state = { divId: slot.id, div: slot, …(urlParams.get(‘tlgamslot’) && { gamSlotId: urlParams.get(‘tlgamslot’) }), size: maxSize }; если (maxSize[0] >= 728) state.storedImp = ‘recovered728x90’; иначе, если (maxSize[0] = 250) state.storedImp = ‘recovered300x250’; иначе, если (maxSize[0] >= 320) state.storedImp = ‘recovered320x100’; if (state.storedImp) { if (state.gamSlotId) { if (isRefresh) state.gamSlot = window.googletag .pubads() .getSlots() .find( element => element.getSlotElementId() === state.divId ); иначе window.tlpbjs.initGam(состояние); } Window.tlpbjs.renderTlDynamicAd(состояние); наблюдатьSlotInView (состояние); // запускаем таймер обновления } } } } } function ObserveSlotInView(state) { var Observer = new IntersectionObserver( function(entries) { elements.forEach(entry => { if (entry.isIntersecting) { Observer.unobserve(state.div); // прекращаем наблюдение, как только оно появится в представлении setTimeout( () => runAuctionForSlot(state.divId, state.size, true), 30000 ); // Вызов через 30 секунд } }, { порог: 0.1 }); // Триггер, когда в поле зрения находится хотя бы 10 % слота Observer.observe(state.div); } window.googletag.defineSlot = defineSlotOverride; window.googletag .pubads() .getSlots() .forEach(e => { runAuctionForSlot(e.getSlotElementId(), e.getSizes()); }); }); }

круг-стрелка

Кнопка воспроизведения

Кнопка остановки

шеврон-правый

шеврон-левый

шеврон вверх

поиск

предупреждение

шеврон-левый-худой

шеврон-правый-худой

х

часы

календарь

кнопка воспроизведения

отмена-круг

пользователь

Твиттер

Фейсбук

ютуб

инстаграм

электронная почта

LinkedIn

Перейти к содержимому

ИНДИО, Калифорния (KESQ) – Центр города Индио снова открывает сезон фестивалей с возвращением «Челлы», бесплатного семейного мероприятия, объединяющего музыку, культуру и сообщество.

Празднование в середине недели, проводимое на центральной сцене, включает в себя живые выступления, в том числе выступление братского дуэта Tropa Magica, который поделился посланием единства через музыку на фоне продолжающихся проблем в латиноамериканском сообществе.

«Это хороший способ объединить людей на празднике жизни», — сказал Дэвид Пачеко, гитарист и певец.

На мероприятии также будет представлен «Ambiente y Café x Más Vida Market», вдохновленный Tropicoqueta.

Городские власти заявили, что цель состоит в том, чтобы дать жителям и гостям почувствовать атмосферу фестиваля в доступной для всех возрастов обстановке.

«Челла» продлится до 22:00, посещение бесплатное.

Оставайтесь на Новостном канале 3, чтобы увидеть полный репортаж в прямом эфире в 22:00 и 23:00.

Шей Лоусон

БУДЬТЕ ЧАСТЬЮ РАЗГОВОРА

Новостной канал 3 стремится предоставить форум для гражданского и конструктивного разговора.

Пожалуйста, оставляйте свои комментарии уважительными и актуальными. Вы можете ознакомиться с нашими Правилами сообщества, нажав здесь.

Если вы хотите поделиться идеей истории, отправьте ее здесь.