Онлайн Регистрация На Официальном Сайт

Salsa Loca - Strasbourg Association de danse salsa à Strasbourg

Онлайн Регистрация На Официальном Сайт

Онлайн Регистрация На Официальном Сайте

Казино Пин Ап Онлайн Pin Up Официальное Зеркало Рабочего Сайта Бонусы При Регистрации

Content

Потом система демо должна на протяжении времени от нескольких минут до двух часов проверить информацию и вывести наличные средства. В это время работники нашего заведения проверяют все данные игрока. В случае возникновения каких-либо претензий игрок должен будет пройти верификацию аккаунта, для чего понадобится загрузить копию паспорта или другого документа на сайт. Когда верификация будет получен, вы без проблем выведите ваши деньги. Зеркала казино “Пин Ап” созданы для обеспечения безопасности игроков и сохранения их финансовых данных в случае непредвиденных сбоев и проблем с основным сайтом. Эта международная букмекерская компания действует более 10 лет и ориентирована на пользователей из разных стран.

  • Автоматы запускаются в любом месте вне зависимости от времени суток и без привязок к стационарным устройствам.
  • Если в политику конфиденциальности будут внесены изменения, игроков об этом дополнительно уведомят.
  • Посетители также получают реальные денежные выигрыши, участвуя в ставках букмекерской конторы клуба Pin Ap.
  • При регистрации пользователю будет автоматически предложено выбрать приветственный подарок.
  • Транслируются лайв игры онлайн на нескольких языках, включая русский и английский.

У казино есть активный сертификат eCOGRA, организации, которая контролирует правила азартной игры и защищает права игроков. Это отображает прозрачное отношение заведения подлинность аппаратов для игры, которые предоставляются посетителям клуба. Чтобы войти в личный кабинет, новичкам также разрешается использовать во время регистрации мобильный телефон.

✅ Pin Up Зеркало

В связи с ограничением сайтов российских казино, доступ к основному домену Pin Up Casino иногда может быть невозможен. Причиной этого является запрет на игорную индустрию в Российской Федерации. С помощью зеркала блокировка обходится, чтобы посетители могли спокойно играть в слоты и другие азартные игры на деньги с выводом.

  • Из обзоров отзывов можно увидеть, что рабочие зеркала доступны twenty-four часа в сутки и обеспечивает надежное функционирование всех программ.
  • Если выбран спортивный бонус, отыграть его нужно в 5-кратном размере.
  • При этом играет роль как сумма оплаты, так и банк, который выпустил карту.
  • В первую очередь, в кошельке нужно авторизоваться и проверить остаток средств на счету.

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

Мобильная Версия Рабочего Зеркала Pin Ap Bet Casino

Так как всего программа предусматривает 9 уровней, то каждый игрок сможет обменять PNC по разным условиям. Сразу после обмена деньги подлежит отыграть и только после этого их можно будет вывести. До того как активировать бонусный код, рекомендуется ознакомиться с его условиями. Это позволит подобрать выгодные поощрения и убедиться в том, что его отыгрыш не вызовет особых сложностей. Причиной популярности этой игры выступает не только простота правил, но и отдача от 97%. Для рулетки подойдут как низкорисковые, так и высокорисковые стратегии.

  • Кроме того, функции онлайн-заведения остаются прежними, а доступ к нему можно получить без регистрации. [newline]В рамках любой действующей акции такой подарок, как фриспины или реальные деньги, предусматривает обязательный отыгрыш перед выводом средств.
  • Он отвечает за каждый аспект игрового процесса — от приема ставок до объявления результатов.
  • В личном кабинете зарегистрированному игроку станут доступны такие функции, как внесение депозита, вывод депозита, а также полные версии всех азартных развлечений на сайте.
  • На лимит для вывода влияет величина уровня статуса игрока и наличие у него верификации.

Мобильная версия сайта казино “Пин Ап” предлагает такие же функции и возможности, как и обычная версия сайта. Вы можете зарегистрироваться на сайте, внести депозит, играть в различные игры на деньги, участвовать в бонусных программах и акциях, а также обращаться в службу поддержки. Мобильная версия сайта казино “Пин Ап” адаптирована для удобства пользования на мобильных устройствах и предлагает простой и интуитивно понятный интерфейс.

Игровой Ассортимент

Зеркало Pin Up Casino — это альтернативный способ входа на официальный сайт. Доступно несколько вариаций рабочих зеркал, позволяющих обойти блокировку Пин Ап бет. Каждая из вариаций имеет особенности, но оформление и функционал казино дублируются. Это позволяет пользователям не просто насладиться игрой или ставками на спорт, но и с легкостью вывести выигранные деньги, а также получить щедрые бонусы. В современном мире онлайн-ставок казино Пин Ап занимает заслуженное место благодаря своему разнообразному подходу к азартным играм. Одним из наиболее захватывающих аспектов, которые привлекают внимание игроков, являются ставки на спорт.

Запуск любого игорного сайта, подключение к живому покеру, игра на реальные деньги, использование бонусов и пополнение счета – все это чрезвычайно просто из программы. По сравнению с выводом денег с компьютера, использование платежной системы требует всего нескольких кликов и занимает гораздо меньше времени. Онлайн-казино Pin Upwards регулярно предлагает депозитные и бездепозитные поощрения как новичкам, так и лояльным, активным игрокам. При игре на реальные деньги эти поощрения очень полезны и могут помочь вам быстрее получить выигрыш. Промокоды в 2022 году – довольно редкое явление; вы можете найти их только в рассылках по электронной почте или в мессенджерах. Вы можете играть в слоты с гарантированным выигрышем в онлайн-казино Пин Ап в безопасности.

Pin Up Casino : Доступное Зеркало На Сегодня

Для игры на деньги нужно пройти быструю регистрацию на платформе. Активируйте кнопку регистрации (расположилась в правом верхнем углу), заполните предложенные поля и выберите валюту счета. Обязательно согласитесь с правилами работы Клуба и подтвердите, что вам исполнилось 20 лет.

  • Наличие учетной записи позволяет запускать любые игры виртуального клуба в формате платной версии, вне зависимости от наличия сетевых ограничений и скорости интернета.
  • С его помощью вы можете играть на реальные деньги, не будучи привязанным к определенному месту.
  • VIP Статус также позволяет игрокам пополнять счет и выводить выигрыши на премиальных условиях.

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

Скачать Приложение Pin Up Casino

На указанный в анкете номер администрация казино Пин Ап отправит смс-сообщение с уникальным кодом. Авторизация на игровом портале позволяет гемблеру запускать лучшие автоматы на реальные деньги. Дополнительно загрузить Pin Up на устройство получится через QR-код.

  • Это время может немного вырасти при повышенной нагрузке на сервер.
  • Для этого нужно найти иконку и нажать на кнопку «Прямая трансляция».
  • Кроме того, знать, что не сможете изменить выбранную валюту после завершения регистрации.
  • Вы должны зарегистрироваться, подтвердить профиль, пополнить счет и начать выигрывать реальные деньги в игровых автоматах.

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

Пополнение Депозита И Вывод Выигрыша В Интернет Казино Pin Up

Главное отличие Пин Ап от других площадок для игры — наличие лицензии. В качестве отличительных параметров выделяют разнообразие игр от топовых разработчиков и программу промо-предложений. Они выражены как в условиях участия, так и в разыгрываемых призах. Категория настольных игр представлена многочисленными вариациями автоматов с картами.

  • Скачать приложение Пин Ап для Google android можно с помощью кнопки в нижнем колонтитуле внизу каждой страницы.
  • Онлайн-казино Pin Up регулярно предлагает депозитные и бездепозитные поощрения как новичкам, так и лояльным, активным игрокам.
  • Они включают в себя еженедельную викторину и бонусы за депозит, которые дают игроку дополнительные кредиты.
  • На текущий момент посетители онлайн-казино и одноименной букмекерской конторы имеют право на загрузку приложения для Android-систем.
  • Далее вам придет СМС на телефон или письмо на почту, следуйте приложенным в них инструкциями, и вы сможете восстановить ваш профиль.

На фотографиях должны быть перечисленные в прошлом абзаце данные. Сделайте фото паспорта, а лучше сделайте фото вместе с паспортом, чтобы у сотрудников технической поддержки не осталось сомнений о том, кто верифицирует профиль. Идентификация или верификация — процедура подтверждения личности клиента казино с помощью действительных данных клиента. Чтобы пройти ее, вам нужно иметь зарегистрированный аккаунт и полностью заполненный профиль.

Разнообразные Автоматы Казино Сайта Игры Пин Ап Для Гемблинга

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

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

🎰онлайн Казино Pin Up: Многофункциональный Игровой Клуб С Доступным Мобильным Приложением

После того как вы зарегистрировались на сайте Pin number Up и создали свой аккаунт, вы можете приступить к пополнению счета и игре со ставками в казино. На лимит для вывода влияет величина уровня статуса игрока и наличие у него верификации. Старайтесь подниматься в статусной системе и подтвердите ваш аккаунт, так вы максимально увеличите уровень лимитов. Если вы начали замечать за собой нездоровую зависимость от игровых автоматов, следует незамедлительно записаться на прием к психическому аналитику. [newline]Помимо этого, надо сразу же ограничить себя от азартных игр, ограничив доступ к своему аккаунту. Администрация идет вам навстречу, и заморозит или даже вовсе удалит ваш аккаунт. Не забывайте о том, что в случае удаления аккаунта ваши деньги необходимо будет вывести, или они пропадут.

  • Это делает зеркало полноценной альтернативой, не уступающей ни по удобству, ни по возможностям.
  • Все игровые слоты прошли лицензирование, они могут гарантировать вам честную игру и реальные выигрыши, так как у них реально хорошая отдача.
  • Служба технической поддержки всегда рада прийти на помощь игрокам и решить любой вопрос по поводу игры.
  • На главной странице расположены яркие и заметные баннеры, которые информирует игрока о возможности получить привлекательные бонусы.

Используя зеркало PinUP 634 KZ, теперь можно отслеживать любые виды активности в казино в режиме реального времени. Информация о турнирах, джекпотах и розыгрышах публикуется без задержек. На основе полученных данных игроки могут быстро регулировать свою активность и не упустить выгодную возможность получить солидный денежный куш. Чтобы создать учетную запись Pin-Up, перейдите на официальный сайт или зеркало и нажмите кнопку Кнопка «Зарегистрироваться». Затем введите свои личные данные в форму и поставьте галочку, означающую, что вы согласны с условиями портала.

Настольные Игры

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

  • Вы можете зарегистрироваться на сайте, внести депозит, играть в различные игры на деньги, участвовать в бонусных программах и акциях, а также обращаться в службу поддержки.
  • Перечень кодов регулярно обновляется, поэтому выгодные поощрения доступны каждому.
  • Он позволяет легко делать прогнозы на спорт на букмекерской площадке Pin Up.
  • Если вы будете верить в себя и последовательно играть — рискуйте, когда-нибудь и вам гарантированно повезет.

Оно обеспечивает удобство, безопасность и непрерывное развлечение для всех любителей азартных приключений. Современные технологии делают возможным наслаждаться азартными играми и ставками в интернете. Однако, иногда доступ к любимым играм может быть ограничен по техническим или географическим причинам. Зеркало Пин Ап казино – это ответ на такие ограничения, предоставляя игрокам возможность погрузиться в азартный мир без каких-либо преград. Одним из ключевых моментов в мире ставок на спорт являются коэффициенты. Казино Пин Ап предоставляет конкурентоспособные коэффициенты, которые позволяют игрокам получать более значительные выигрыши при удачных прогнозах.

Пин Ап Казино Мобильная Версия

Для максимального удобства игроки могут выбрать один из 7 предложенных языков сайта. Использование сайта будет удобным и понятным даже для тех, кто посетил его впервые. Сейчас онлайн платформа находится в распоряжении Carletta Partial, известной своим лояльным отношением к клиентам и щедрыми бонусными предложениями. На первый взгляд сайт pin up casino имеет простой интерфейс и оптимальный набор функций. Однако при более глубоком рассмотрении он открывает еще больший потенциал для выигрыша. Устанавливая мобильную версию игровой платформы, можно удобно входить на сайт казино, в обход блокировок провайдеров.

  • Чтобы осуществить у Пин Ап вход в личный кабинет, требуется кликнуть по одноименной кнопке управления.
  • Внесите депозит на свой счет, выбрав один из предлагаемых методов оплаты.
  • В это время сотрудники заведения Пин-Ап проверяют указанные пользователем данные и сопоставляют их с фотографиями.

Мобильное приложение практически идентично официальному сайту, и содержит ту же коллекцию игр. Многие игры в каталоге оптимизированы для мобильных устройств и очень хорошо работают на большинстве современных смартфонов. Независимо от выбранной платформы (сайт или мобильное приложение) вы можете наблюдать за любым событием в режиме реального времени. Для этого нужно найти иконку и нажать на кнопку «Прямая трансляция».

Какие Игры Доступны В Пин Ап Казино?

Специальные алгоритмы и методы шифровки позволяют гарантировать 100% защиты счета депозита в азартном казино Pin Upwards. Любые финансовые транзакции в Пинап проводятся при помощи различных платежных систем, что довольно удобно для пользователей. Если возникли любые проблемы — напишите суппорту из техподдержки и получите быструю помощь, которая связана с функционированием домена или выводом денег. Интернет-казино функционирует при помощи лицензии островного государства Кюрасао, которое оно получило в 2016 году. Сайт клуба казино доступен для игроков из России и Украины как для денежной игры, так и бесплатно в режиме демо.

  • Игровой клуб Pin Up, известная в России организация, станет величайшей организацией в 2022 году и имеет первоклассный официальный сайт.
  • Казино Пин Ап также предоставляет возможность играть в игровые автоматы бесплатно в демо-режиме, что позволяет новичкам познакомиться с игрой без риска потери реальных денег.
  • Эти бонусы предназначены для того, чтобы помочь новым игрокам начать игру и повысить их шансы на выигрыш реальных денег.
  • Используя карту для оплаты, деньги зачисляются на баланс в течение нескольких часов.

После этого вы получите СМС на смартфон или письмо на помощь, это позволит вам легко восстановить ваш профиль на сайте казино. Все клиенты казино Пин Ап смогут выгодно приумножить свое первое пополнение на сумму от 2000 рублей на 150 процентов. Также у вас появится до 250 дополнительных freespins для использования их в ваших любимых слотах.

Официальное Онлайн-казино Пин-ап

Чтобы получить доступ к разнообразию игр в казино и возможность участвовать в акциях, сначала нужно зарегистрироваться в Pin-Up Casino. Регистрация через зеркало выполняется точно по такому же алгоритму, как и на официальном сайте. Зеркало остается оптимальным способом входа на сайт Пин Ап из-за качественной адаптации.

  • Получить более подробную информацию о бонусах можно в разделе «Бонусы» Личного Кабинета.
  • Покер, блэкджек, монополия при участии профессиональных крупье позволит выигрывать, участвуя в настоящих событиях с другими игроками.
  • Зеркало Пин Ап казино – это возможность для игроков получить доступ к азартным играм и ставкам без ограничений.
  • Например, они не смогут выводить выигрыши на основные счета, получать опыт за ставки, а также использовать бонусы от саппорта и участвовать в розыгрышах и турнирах.
  • Процент индивидуален, и назначается в личном порядке при обращению в техподдержку.
  • Они возникают из-за того, что на поддельных зеркалах чаще представлен пиратский игровой софт.

Чтобы снять выигрыш, гемблеру необходимо подать соответствующий запрос с указанием суммы и обязательных платежных реквизитов. Если гемблер получил выигрыш с помощью бездепа, ему необходимо внести на свой баланс минимальную сумму. Выводить деньги можно через те же платежные системы, которые использовались для внесения средств. После подачи запроса на получение денег сформированная заявка появится в разделе «История операций» личного кабинета. Зачисление денег на баланс доступно только зарегистрированным пользователям в разделе «Касса». Чтобы пополнить счет или снять выигрыш, игроку необходимо авторизоваться в системе и выбрать подходящий финансовый инструмент для проведения транзакций.

Резервный Внешний Сайт Pin-up 134

Эта процедура подчеркивает безопасность и удобство пользования сайтом, что является ключевым фактором для современных онлайн-казино. В отзывах игроков подтверждается устойчивая и стабильная работа актуальных зеркал клуба Пин Ап и скоростное функционирование игровых автоматов. Зеркало Pin-up 134 Casino защищено от блокировок, что усиливает его популярность среди игроков.

  • Все это делается абсолютно бесплатно и без предварительной регистрации.
  • Устанавливая мобильную версию игровой платформы, можно удобно входить на сайт казино, в обход блокировок провайдеров.
  • То же самое касается остальных форм представления онлайн-казино.
  • Казино ПинАп предлагает различные способы оплаты для депозитов и снятия средств.
  • Список можно продолжать и дальше, но лучше ознакомьтесь со всеми приятными привилегиями сразу в приложении казино Пин Ап.

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

Обзор Онлайн Казино Pinup – Официальный Сайт, Игровые Автоматы, Букмекерская Контора, Бонусы

Официальный сайт онлайн-казино Pinup отличается сложной версткой, четким стилем написания и элементами меню, которые при нажатии ведут на нужные страницы. На сайте представлено множество игровых автоматов, разновидностей рулетки и карточных игр. Имеется широкий выбор методов оплаты депозитов, включающий все самые популярные предложения. Вы можете лучше понять особенности и преимущества Pin-up Club, прочитав его краткую оценку.

  • Перейдите на официальный сайт казино “Пин Ап”
  • Тем, кто намерен заниматься беттингом, требуется создать аккаунт в ЦУПИС-2 и подключиться к букмекерской конторе Пин ап бет.
  • На компьютере с ОС Windows или с помощью мобильной версии/приложения создание учетной записи и вход в систему – простые процессы.
  • Ничто не делает геймеров казино Pin Up счастливее, чем возможность мгновенно внести деньги, играть на реальные деньги, а затем также быстро вывести эти деньги.
  • Все игроки на нашем азартном заведении имеют возможность для восстановления своего аккаунт при использовании специальной формы.

Денежная игра является дополнительной опцией, которая активируется исключительно по желанию пользователя. Это компании разрабатывают современный софт, который славится своим разнообразием контента и качеством. Live игры расположены в отдельной категории, и доступны только тем клиентам casino PinUp, которые прошли этап регистрации. Данный режим позволит пользователям сражаться под руководством профессиональных дилеров.

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}hasAdblocker(){if(void 0===window.google)return!0;const e=document.querySelectorAll("style");return Array.from(e).some((e=>!!e.innerHTML.includes("adblockkey")))}handleAdblocked(){this.removeAdblockKey(),this.state=Blocking.BLOCKED}removeAdblockKey(){var e;null===(e=document.documentElement.dataset)||void 0===e||delete e.adblockkey}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.5.2";const APP_ENV="production",TRACKING_DOMAIN="https://click-euw1.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",GOOGLE_MV3_URL_PARAMS="abp=1&bodis=true",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=(e="",t=!1)=>{const n=`${e}/${FIND_DOMAIN_URL}${window.location.search}`,i=e?"include":"same-origin",s=Object.assign({Accept:"application/json","Content-Type":"application/json"},t?{"X-HOST":window.location.host}:{});return fetch(n,{method:"POST",headers:s,credentials:i}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s,status:a}=e,o=document.createElement("div"),r=n||"",d="HIGHLIGHT"===s?"is-highlighted":"";o.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(o.style.marginTop="30px",document.body.appendChild(o)):document.body.prepend(o)}loading(e){let t="a few";e>0&&(t=`${e}`),this.message(`\n
\n
\n
\n
\n
\n
\n \n `)}adBlockMessage(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")}errorParkingServicesDisabled(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")}errorParkingNoSponsors(e){this.message(`\n
\n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"

Content blocked

Please turn off your ad blocker.";case"disabled_mr":return`

Invalid URL

Referral traffic for ${this.domain} does not meet requirements.`;default:return`

No sponsors

${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n

No Sponsors

\n

${this.domain} currently does not have any sponsors for you.

`;case"disabled_mr":return`\n

Invalid URL

\n

Referral traffic for ${this.domain} does not meet requirements.

`;case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o,status:e}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(window.location.pathname.startsWith("/listing")&&["EXTERNAL_MARKET","URL"].includes(null==i?void 0:i.status)){if(null==i?void 0:i.external)return Redirect.toState(i.external,"sales");if(null==i?void 0:i.link)return Redirect.toState(i.link,"sales")}if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",buildSignature=({callbacks:e,context:t},n)=>{var i,s,a,o;return Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_client_id:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.pubId,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.channel,desktop:t.desktop,terms:null===(a=null==t?void 0:t.pageOptions)||void 0===a?void 0:a.terms,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(o=null==t?void 0:t.pageOptions)||void 0===o?void 0:o.ivt,js_error:t.js_error,mobile:t.mobile,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,reportable_style_id:t.reportableStyleId,tablet:t.tablet,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState())},trackVisit=({callbacks:e,context:t},n,i="")=>{const s=`${i}/${TRACKING_URL}`,a=i?"include":"same-origin",o=buildSignature({callbacks:e,context:t},n);let r={};"click"===n&&(r={click:"true",session:t.uuid,nc:Date.now().toString()}),fetch(s,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},credentials:a,body:JSON.stringify(Object.assign({signature:encode(o)},r))})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.filter((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&(e.custom?window.fbq("trackCustom",e.event):window.fbq("track",e.event))}))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window._tfa.push({notify:"event",name:e.event,id:e.pixel_id})}))}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{e&&window.ttq.instance(this.identifier).track(e.event)}))}isLoaded(){return!!window.ttq}}const ADS_PARAM$1="?caf",MESSAGE_PREFIX="FSXDC,.aCS:",ALLOWED_ORIGINS=["https://www.google.com","https://www.adsensecustomsearchads.com","https://syndicatedsearch.goog","https://googleadservices.com"];class Pixels{static build(e){const t=unpackPHPArrayObject(e,"pixel_tracking_data");if(t)return t.useAltTikTokEventsForAdsPlatformUser=e.is_ads,new Pixels(t)}constructor(e){this.onPixelEvent=e=>{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC=`https://www.google.com/adsense/domains/caf.js?${GOOGLE_MV3_URL_PARAMS}`,TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i},s,a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t));let d=null==e?void 0:e.resultsPageBaseUrl;d||(d=window.location.origin);return new Google(s.uuid,n,r,i,d,o)}constructor(e,t,n,i,s,a){this._blocks=t,this._pageOptions=n,this.uuid=e,this._baseURL=new URL(s),this._signature=a,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=this.baseURL;new URLSearchParams(window.location.search).forEach(((e,n)=>{t.searchParams.has(n)||t.searchParams.append(n,e)}));const n=Object.assign({},e);if(n.resultsPageBaseUrl=t.toString(),this.wantsToServeAds){const e=new URLSearchParams;e.append("click","true"),e.append("session",this.uuid);const t=Object.assign({},this._signature);delete t.ad_loaded_callback,delete t.caf_loaded_ms,delete t.caf_timed_out,delete t.flex_rule,delete t.frame,delete t.js_error,delete t.no_ads_redirect,delete t.page_headers,delete t.page_request,delete t.page_loaded_callback,delete t.popup,delete t.screen_resolution,delete t.user_has_ad_blocker,delete t.user_preference,delete t.user_supports_darkmode,delete t.user_using_darkmode,delete t.zeroclick,e.append("signature",encode(t)),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}?${e.toString()}`}return n}))}get baseURL(){const e=new URL(this._baseURL.origin);return e.searchParams.append(ADS_PARAM,"1"),this._baseURL.searchParams.forEach(((t,n)=>{e.searchParams.append(n,t)})),e}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return new URLSearchParams(window.location.search).has(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e,t;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock,buildSignature({context:this.context,callbacks:null===(t=this.google)||void 0===t?void 0:t.callbacks},"click")),this.google.injectTagManager();const n=Parking.build(this.findDomainResponse,this.google);Render.prerender(n),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let i=Failed.cannotPark(this.findDomainResponse);if(i)return void(yield this.transitionToFailed(i));yield this.google.injectAds();let s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s));const a=this.adblock.hasAdblocker();a&&this.adblock.handleAdblocked();const o=Sales.build(this.findDomainResponse);if(o)return void(yield this.transitionToSales(o));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const r=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);if(r)yield this.transitionToRedirect(r);else{if(a)return s=Disabled.build(this.findDomainResponse,this.adblock.state),void(yield this.transitionToDisabled(s));i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i):yield this.transitionToParking(n)}}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return this.adblock.state!==Blocking.BLOCKED&&(!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason))))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION},s),a),r),d),o),c),{zeroClick:l})}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));