Загрузка данных


(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function a(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(s){if(s.ep)return;s.ep=!0;const i=a(s);fetch(s.href,i)}})();const Br={num:{tn:"трлн ₽",bn:"млрд ₽",mn:"млн ₽"},nav:{buy:"За покупками",inventory:"Инвентарь",sales:"Мои продажи",cases:"Кейсы",chats:"Переписки",shop:"Магазин",gifts:"Подарки",season:"Сезон",work:"РАБОТА"},work:{title:"РАБОТА",perClick:"Доход за клик",level:"Уровень {n}",maxLevel:"Уровень {n} · макс.",upgrade:"Прокачать за {price}",maxed:"Максимальный уровень",hint:"Жми по компьютеру и зарабатывай"},common:{title:"Мой ресейл",close:"Закрыть",player:"Игрок",leaders:"ЛИДЕРЫ",lang:"РУ",cancel:"Отмена",ok:"Понятно",got:"Получено",unavailable:"НЕДОСТУПНО"},settings:{title:"Настройки",music:"Музыка",sounds:"Звуки",language:"ЯЗЫК",ru:"Русский",en:"English",tr:"Türkçe",es:"Español",promo:"ПРОМОКОД",promoPlaceholder:"Введите промокод",promoApply:"ПРИМЕНИТЬ",promoEmpty:"Введите промокод",promoInvalid:"Промокод не найден",promoApplied:"Подарок получен!"},buy:{title:"ЗА ПОКУПКАМИ!",writeSeller:"Написать продавцу",estimate:"Оценка стоимости",stolen:"Товар уже не доступен.",notFound:"Товар не найден.",selectInv:"Выберите вещь в инвентаре.",tutLocked:"Соверши первую продажу, чтобы покупать товары",skip:"НЕ ЖДАТЬ",untilRefresh:"До обновления:"},tut:{pickCase:"Открой бесплатный кейс",openCase:"Нажми, чтобы открыть",keep:"Забери предмет",goInv:"Открой инвентарь",list:"Выставь на продажу",price:"Двигай ползунок и назначь цену",goBuy:"Загляни за покупками",pickGoods:"Выбери товар",write:"Напиши продавцу",greet:"Поздоровайся",ask:"Спроси о товаре",buyNow:"Купи товар",goChat:"Тебе написал покупатель",sellAccept:"Согласись на продажу",skip:"ПРОПУСТИТЬ ОБУЧЕНИЕ"},inventory:{title:"ИНВЕНТАРЬ",sell:"НА ПРОДАЖУ",quickSell:"БЫСТРАЯ ПРОДАЖА",repair:"ПОЧИНИТЬ",tabInv:"ИНВЕНТАРЬ",tabCol:"КОЛЛЕКЦИЯ",collectionMain:"ОСНОВНАЯ",collectionAutumn2026:"ОСЕНЬ 2026",collected:"Собрано: {n} / {total}",confirmSell:"Продать «{name}» за {price}?",empty:"Инвентарь пуст. Открой кейс или купи товар!",colNotOwned:"НЕ СОБРАН",inInv:"В ИНВЕНТАРЕ",quickTitle:"Быстрая продажа",quickConfirm:"Продать за {price}",brokenTag:" БУ"},sales:{title:"МОИ ПРОДАЖИ",empty:"Нет товаров на продаже.",detail:"ПОДРОБНЕЕ",unlist:"СНЯТЬ С ПРОДАЖИ"},sellSetup:{title:"ВЫСТАВЛЯЕМ НА ПРОДАЖУ",submit:"Выставить на продажу",yourPrice:"Твоя цена",zoneBelow:"ниже рынка",zoneMarket:"рыночная",zoneAbove:"выше рынка"},cases:{title:"КЕЙСЫ",forAd:"ЗА РЕКЛАМУ",free:"БЕСПЛАТНЫЙ КЕЙС!",freeBtn:"БЕСПЛАТНО",contents:"Содержимое кейса",buyMulti:"Купить несколько",freeTitle:"БЕСПЛАТНЫЕ КЕЙСЫ",mineTitle:"МОИ КЕЙСЫ",seasonalTitle:"СЕЗОННЫЕ КЕЙСЫ",regularTitle:"ОБЫЧНЫЕ КЕЙСЫ",openOwned:"ОТКРЫТЬ"},caseName:{ad:"Бесплатный кейс",vk:"ВК-кейс",tier1:"Картонный кейс",tier2:"Деревянный кейс",tier3:"Золотой кейс",tier4:"Кейс-аквариум",tier5:"Премиальный кейс",tier6:"Рубиновый кейс",tier7:"Королевский кейс",tier8:"Эксклюзивный кейс"},roulette:{opening1:"Открываем кейс…",openingN:"Открываем {n} кейса…",won:"Вы получили:",keep:"Забрать",sell:"Продать {price}",allToInv:"Всё в инвентарь",inInv:"В ИНВЕНТАРЕ",rerollFree:"ЕЩЁ РАЗ БЕСПЛАТНО",rerollWarning:"ВНИМАНИЕ! Текущие предметы не сохранятся!"},chats:{title:"ПЕРЕПИСКИ",empty:"Переписок пока нет.",optGreet:"Здравствуйте, заинтересовал ваш товар!",optTakeNow:"Заберу прямо сейчас!",optDiscount:"Скидка будет? Возьму за…",optTrade:"Предлагаю обмен на…",optAsk:"Задать вопрос о товаре",optSmalltalk:"Как дела у вас?",optAcceptTrade:"Согласиться на обмен",optDeclineTrade:"Отказаться от обмена",optAskCond:"Спросить о состоянии товара",optProposeSur:"Предложить доплату",optAnswerCond:"Ответить на вопрос",optRefuseCond:"Не скажу",optSell:"Продать за {price}",optCounter:"Предложить новую цену",optDecline:"Отказаться",optAcceptSur:"Согласиться (доплата {amount})",optCounterSur:"Предложить свою цену",optDeclineSur:"Отказаться от обмена",optBye:"До свидания",done:"Диалог завершён",report:"Пожаловаться",tradePick:"ВЫБЕРИТЕ ВЕЩЬ ДЛЯ ОБМЕНА",tradeEmpty:"В инвентаре нет вещей для обмена.",noTradeItems:"Нет вещей для обмена",tradeOfferHint:"Предлагает на обмен (нажмите для оценки):",tradeLabel:"Предложено на обмен",sellerYou:"Продаёте вы",hobby:"Увлечение: {hobby}",wants:"Что ему нужно: {items}"},shop:{title:"МАГАЗИН",starter:"Набор новичка",autumnBundle:"Осенний набор",megaBundle:"Мега-набор",promo:"АКЦИЯ",details:"ПОДРОБНЕЕ",bought:"Куплено",offers:"АКЦИИ",currency:"ВАЛЮТА",noAds:"Отключение рекламы",disclaimer:"Внимание! Это игровая валюта, а не настоящие деньги. Совершая покупку, вы подтверждаете что ознакомлены с этой информацией и не имеете претензий",starterList1:"10 000 000 ₽",starterList2:"Мерседес",starterList3:"3 премиальных кейса",starterList4:"Отключение рекламы",autumnList1:"Рыжий БМВ",autumnList2:"10 000 000 ₽",autumnList3:"5 дубовых кейсов",autumnList4:"Отключение рекламы",megaList1:"Авиакомпания",megaList2:"3 эксклюзивных кейса",megaList3:"10 млрд ₽",megaList4:"Отключение рекламы",megaBenefit:"ВЫГОДА 30%",megaOfferTitle:"Мгновенно стань богаче 90% игроков!",offerDays:{one:"{n} день",few:"{n} дня",many:"{n} дней"},starterAdvantage:"ПОЛУЧИ УНИКАЛЬНОЕ ПРЕИМУЩЕСТВО!",autumnProgressFaster:"ПРОДВИГАЙСЯ ПО СЕЗОНУ БЫСТРЕЕ!",noAdsPrompt:"НАДОЕЛА РЕКЛАМА?",dontWant:"НЕ ХОЧУ"},gifts:{title:"ПОДАРКИ",claim:"ЗАБРАТЬ",day:"ДЕНЬ",review:"ОТЗЫВ",forReview:"ЗА ОТЗЫВ",subscription:"ЗА ПОДПИСКУ",get:"ПОЛУЧИТЬ",g1:"Школьный кейс",g2:"Кейс-тыква",g3:"Кейс путешественника",g4:"Айпад",g5:"4К Телевизор",g6:"Дубовый кейс",g7:"Ретрокар"},season:{title:"ОСЕННИЙ СЕЗОН",eyebrow:"СЕЗОН 1",heroTitle:"Осень 2026",heroDaysOne:"Остался {n} день до конца",heroDaysFew:"Осталось {n} дня до конца",heroDaysMany:"Осталось {n} дней до конца",heroEnded:"СЕЗОН ЗАВЕРШЕН",activeDates:"Продажи засчитываются с 1 сентября по 30 ноября · серверное время",endedDates:"Сезонные продажи завершены · коллекция и награды доступны",leaves:"листья",collected:"коллекция",sales:"продажи",tab:{collection:"КОЛЛЕКЦИЯ",rewards:"НАГРАДЫ",leaders:"ЛИДЕРЫ СЕЗОНА"},chest:{school:"Школьный кейс",pumpkin:"Кейс-тыква",traveler:"Кейс путешественника",premium:"Дубовый кейс",autumnPremium:"Осенний премиум",mythic:"Мифический кейс"},chestHint:{school:"Школа, урожай и полезные мелочи",pumpkin:"Дом, дождь и Хэллоуин",traveler:"Походы, сад и сезонная техника",premium:"Техника, транспорт и недвижимость",autumnPremium:"Крупные активы стоимостью от одного миллиарда рублей",mythic:"Содержит секретный предмет"},chestPool:"В коллекции кейса: {n}",owned:"В наличии: {n}",buyForLeaves:"КУПИТЬ · {n} 🍁",open:"ОТКРЫТЬ",adEyebrow:"БЕСПЛАТНАЯ ПОПЫТКА",adChest:"Осенний кейс",adChestHint:"Один из {n} предметов школьного, тыквенного, походного или дубового кейса · без Осеннего премиума",adChestOdds:"Чем дешевле предмет, тем выше шанс выпадения",watchAd:"СМОТРЕТЬ РЕКЛАМУ",guideTitle:"Новый сезон! Осень 2026.",guideIntro:"Собирайте осенние предметы до 30 ноября и заполняйте сезонную коллекцию. Соревнуйтесь с другими игроками в таблицах лидеров, проходите этапы коллекционера и получайте призы!",guideStart:"ОТКРЫТЬ КЕЙСЫ",collectionTitle:"Осенняя коллекция",notFound:"ЕЩЁ НЕ НАЙДЕНО",secretItem:"Секретный предмет",secretChance:"0,01%",duplicateBonus:"Дубликаты: {n}",notEnoughLeaves:"Недостаточно средств",chestBought:"Сезонный кейс куплен",chestOpened:"Осенний кейс открыт!",duplicates:"Повторных предметов: {n}",rewardClaimed:"Сезонная награда получена",rewardReadyEyebrow:"СЕЗОННЫЙ ПРОГРЕСС",rewardReadyTitle:"СЕЗОННАЯ НАГРАДА ДОСТУПНА!",rewardReadyText:{one:"Этап за {n} уникальный предмет пройден",few:"Этап за {n} уникальных предмета пройден",many:"Этап за {n} уникальных предметов пройден"},rewardReadyAction:"ЗАБРАТЬ НАГРАДУ",rewardEyebrow:"ПУТЬ КОЛЛЕКЦИОНЕРА",rewardTitle:"Сезонный прогресс",forItems:{one:"За {n} уникальный предмет",few:"За {n} уникальных предмета",many:"За {n} уникальных предметов"},claim:"ЗАБРАТЬ",claimed:"ПОЛУЧЕНО",needMore:"НУЖНО ЕЩЁ {n}",rewardLeaves:"{n} осенних листьев",scrollPrevious:"Предыдущие награды",scrollNext:"Следующие награды",leaderTitle:"Лидеры сезона",leaderDaysOne:"{n} день до конца сезона",leaderDaysFew:"{n} дня до конца сезона",leaderDaysMany:"{n} дней до конца сезона",leaderEnded:"СЕЗОН ЗАВЕРШЕН",leaderSales:"Продавцы сезона",leaderCollection:"Коллекционеры сезона",leaderEmpty:"Участников пока нет",sold:{one:"{n} продажа",few:"{n} продажи",many:"{n} продаж"},itemsCount:{one:"{n} предмет",few:"{n} предмета",many:"{n} предметов"},item:{pencil:"Карандаш",corn_cob:"Початок",notebook:"Тетрадь",ruler:"Линейка",mushroom:"Гриб",marker_set:"Набор маркеров",candle:"Свеча",jam:"Варенье",walnuts:"Грецкие орехи",pumpkin:"Тыква",mask:"Маска",pencil_case:"Пенал",rake:"Грабли",apple_basket:"Корзина яблок",heating_pad:"Грелка",potato_sack:"Мешок картошки",chanterelle_basket:"Корзина лисичек",jack_o_lantern:"Фонарь Джека",umbrella:"Зонтик",thermos:"Термос",headlamp:"Налобный фонарь",calculator:"Калькулятор",school_backpack:"Портфель школьный",pruning_shears:"Секатор",shoe_dryer:"Сушилка для обуви",shirt:"Рубашка",halloween_costume:"Костюм на Хэллоуин",raincoat:"Дождевик",rubber_boots:"Резиновые сапоги",blanket:"Плед",moccasins:"Мокасины",hiking_backpack:"Походный рюкзак",trekking_shoes:"Обувь для треккинга",wheelbarrow:"Тачка",heater:"Обогреватель",inflatable_ghost:"Надувной призрак",leaf_blower:"Воздуходувка",fruit_dryer:"Сушилка для фруктов",tent:"Палатка",scarecrow:"Пугало",pump:"Насос",microscope:"Микроскоп",rocking_chair:"Кресло-качалка",ipad:"Айпад",tv_4k:"4К Телевизор",wood_stove:"Дровяная печь",sofa:"Диван",tame_owl:"Сова ручная",fireplace:"Камин",interactive_board:"Интерактивная доска",forest_atv:"Лесной квадроцикл",retro_car:"Ретрокар",orange_bmw:"Рыжий БМВ",school_bus:"Школьный автобус",cottage:"Коттедж",haunted_castle:"Замок с призраками",private_school:"Частная школа",country_residential_complex:"Загородный ЖК",university:"Университет",historic_estate:"Историческая усадьба",classic_car_museum:"Музей ретроавтомобилей",education_platform:"Образовательная платформа",country_hotel_chain:"Сеть загородных отелей",agricultural_holding:"Агрохолдинг",heating_equipment_plant:"Завод отопительной техники",horror_film_studio:"Киностудия фильмов ужасов",halloween_theme_park:"Тематический парк Хэллоуина",vast_forest:"Огромный лес",mountain_resort:"Горный курорт",orange_bugatti:"Оранжевый Бугатти"}},leaders:{collectors:"КОЛЛЕКЦИОНЕРЫ",rich:"БОГАЧИ",sellers:"ПРОДАВЦЫ",you:"Вы",items:{one:"{n}/{total}",few:"{n}/{total}",many:"{n}/{total}"},sold:{one:"{n} продажа",few:"{n} продажи",many:"{n} продаж"},loading:"Загрузка рейтинга…"},cond:{new:"НОВЫЙ",used:"Б/У",worn:"СРЕДНЕЕ",broken:"ПОВРЕЖДЁН"},tier:{1:"ОБЫЧНЫЙ",2:"НЕОБЫЧНЫЙ",3:"РЕДКИЙ",4:"ЦЕННЫЙ",5:"ПРЕМИАЛЬНЫЙ",6:"ПРЕСТИЖНЫЙ",7:"КОРОЛЕВСКИЙ",8:"ЭКСКЛЮЗИВНЫЙ",9:"УНИКАЛЬНЫЙ"},npcType:{troll:"Тролль",businessman:"Бизнесмен",talker:"Болтун",economist:"Экономный",hasty:"Торопыга",ordinary:"Обычный",collector:"Коллекционер",appraiser:"Оценщик",impulsive:"Импульсивный",pushy:"Наглец",hypehunter:"Хайпхантер"},hobby:{fishing:"рыбалка",basketball:"баскетбол",football:"футбол",music:"музыка",cooking:"готовка",photo:"фотография"},popup:{yourSurcharge:"Ваша доплата",sellerAsksSurcharge:"Продавец просит доплату {amount}",propose:"Предложить",requestSurcharge:"Запросить доплату",proposeHint:"Сколько покупатель доплатит сверх обмена (до {max})",counterTitle:"Ваша цена",buyerOfferedYourPrice:"Покупатель предложил {min} · ваша цена {max}",countTitle:"Сколько купить",buyN:"Купить {n} — {total}",codewordsTitle:"Выберите кодовое слово",reviewTitle:"Оцените игру",authMsg:"Авторизуйся, чтобы оценить игру и получить подарок",login:"Войти",reviewOffer:"Оцени игру и получи «{name}»",review:"Оценить",vkCommunityMessage:"Подпишись на сообщество игры ВКонтакте и получи бесплатный кейс!",vkCommunityGo:"ПЕРЕЙТИ",caseBonusTitle:"БОНУС ЗА 10 КЕЙСОВ!",caseBonusMessage:"Открой «{name}» ещё раз бесплатно за рекламу!",caseBonusSaved:"Предметы из предыдущего открытия сохранятся!",caseBonusWatch:"СМОТРЕТЬ РЕКЛАМУ",caseBonusDismiss:"НЕ ХОЧУ",refreshMsg:"Обнови страницу, чтобы оценить игру",reviewGiven:"Подарок за отзыв уже получен",leaderboardAuthMsg:"Авторизуйтесь, чтобы попасть в таблицу лидеров и соревноваться с другими игроками",estimate:"Оценка стоимости",market:"Рынок: {min}–{max} ₽",countQ:"Сколько купить?",chooseCount:"Выберите количество",codeword:"Кодовое слово"},dlg:{npcGreet:"Здравствуйте! Интересует?",collectorSellerWant:"Здравствуйте! Ищу «{wanted}» для коллекции. Если есть — можем обсудить обмен.",collectorSellerDuplicate:"Здравствуйте! Ищу «{wanted}» для коллекции. Этот товар у меня повторный, поэтому готов обсудить хорошую цену.",appraiserSellerGreet:"Здравствуйте! Я сверил состояние и рынок — цена честная. Разумный торг уместен.",impulsiveSellerGreet:"Выставил прямо сейчас. Предлагайте разумную цену — могу быстро согласиться.",pushySellerGreet:"Товар отличный, поэтому цена высокая. Сильно уступать не планирую.",hypeSellerGreet:"Люблю сезонные и статусные предметы. Предложите что-нибудь хайповое — обсудим обмен.",npcHello:"Здравствуйте! Да, всё в наличии.",playerTakeNow:"Заберу прямо сейчас!",npcDealOk:"Отлично, договорились!",playerAsk:"Расскажите подробнее о товаре",condNew:"Состояние отличное, почти новый.",condUsed:"Пользовались активно, но всё работает.",condWorn:"Среднее состояние, есть следы использования.",condBroken:"Честно скажу — есть поломка.",condFine:"Всё в порядке.",playerSmalltalk:"Как дела у вас?",hastyNoTalk:"Вы совсем не цените моё время!",talkerSmalltalk:"Отлично, спасибо что спросили! Приятно поболтать 😊",bizSmalltalk:"Так, к чему эти вопросы? Давайте ближе к делу.",ordSmalltalk:"Нормально, а к чему вопрос?",playerDiscount:"Скидка будет? Возьму за {price}",playerTradeOffer:"Предлагаю обмен на «{name}»",surchargeOffer:"Это неравноценный обмен, но с вашей доплатой {amount} — согласен.",playerTrade:"Согласен на обмен!",npcSwap:"Отлично, меняемся!",playerCounterSur:"А если доплачу {amount}?",npcSurDeal:"Идёт, по рукам!",npcSurLow:"Маловато. Меньше {amount} не возьму.",playerDeclineTrade:"Нет, без обмена.",npcOkWhatever:"Ну ладно, как хотите.",playerBye:"До свидания",npcBye:"Всего доброго!",gateRefuse:"Ха-ха. Я на такое не ведусь. И до свидания",gateBail:"Ну и ладно :(",gatePass:"Окей, теперь вижу тебя. Что хотел?",trollBuy:"Оо, свой человек! Беру, по рукам.",trollCounterReject:"О, свой человек! Шаришь! Но это слишком дорого, не потяну.",trollStillHigh:"Всё равно дорого. Мой потолок: {price}.",trollSell:"Оо, свой человек! Для тебя отдам за {price}.",stolen:"Ой, уже продал другому, извините!",gateWarn:"⚠️ Собеседник не видит ваше сообщение! Для отправки сообщения напишите «{word}»",askTradeCond:"А в каком состоянии ваш товар?",suspicious:"Хм, подозрительно… ну ладно. Возьму за {price}.",playerAgree:"Договорились!",flake:"Ой, передумал, извините!",npcThanks:"Отлично, спасибо!",hastyNoBargain:"Я же назвал цену! Некогда торговаться, всего доброго.",aboveCap:"Нет, это выше моего потолка. Остаюсь при своём предложении.",counterOk:"Хорошо, договорились!",playerCounter:"Давайте за {price}?",playerDeclineSale:"Нет, не отдам. До свидания",npcGoodLuck:"Жаль, удачи!",notEnoughMoney:"У вас не хватает денег :(",notEnoughSur:"У вас не хватает на доплату :(",playerAcceptSur:"Согласен, доплачу {amount}.",surTooMuch:"Столько не доплачу. Максимум {amount} сверху.",playerProposeSur:"Махнёмся, но доплатите {amount}?",playerProposeNoSur:"Махнёмся без доплаты?",surAcceptedSwap:"Идёт, доплачу. Меняемся!",ignoredLeave:"Долго не отвечаете, я передумал.",playerRefuse:"Не скажу.",toldNew:"Товар новый, всё идеально.",toldUsed:"Б/У, пользовались, но всё работает.",toldWorn:"Состояние среднее, есть следы использования.",toldBroken:"Поломанный, надо будет чинить."},toast:{sold:"Продано за {price}",bought:"Куплено: {name}",boughtStarter:"Куплено: Набор новичка",boughtAutumnBundle:"Куплено: Осенний набор",boughtMegaBundle:"Куплено: Мега-набор",listed:"Выставлено на продажу",unlisted:"Снято с продажи",repaired:"Починено",maxListings:"Максимум 6 позиций",notEnough:"Недостаточно средств",tradeGot:"Обмен: получено «{name}»",tradeGotSur:"Обмен: «{name}» + {amount}",newSaleMsg:"Новое сообщение по продаже",marketRefreshed:"Обновился ассортимент «За покупками»",reportSent:"Жалоба отправлена. +{reward}",adsOff:"Реклама отключена",adsAlreadyOff:"Реклама уже отключена",rewardClaimed:"Награда получена",giftGot:"Получено: {name}"},buyer:{biz:"Беру! Но цена кусается — скиньте до {price}?",bizFull:"Беру за {price}, по рукам?",tradeOffer:"Махнёмся? Предлагаю «{name}» на обмен.",econ:"Дороговато. {price} — и заберу.",econFull:"{price} — беру.",hasty:"Тороплюсь! Скиньте до {price} — заберу сейчас.",hastyFull:"Беру прямо сейчас за {price}! Отдаёте?",talker:"Здравствуйте! А в каком состоянии товар, давно пользовались?",troll:"Беру за {price}, отдаёте?",ord:"Скидку до {price} сделаете?",ordFull:"Беру за {price}, отдаёте?",pushy:"Заберу за {price}. Да, скидка большая — но моё предложение действует сейчас.",collector:"Ищу именно «{name}» в коллекцию. Готов взять за {price}.",appraiser:"Оцениваю товар как {condition}. Если это так, то хочу купить за {price}. По рукам?",impulsive:"Решил сразу: забираю за {price}!",pushyType:"Дам {price}. Да, скидка большая — но если предложите разумную встречную цену, подумаю.",hypeWanted:"Обожаю сезонные и статусные вещи! За «{name}» дам {price}.",hypeRegular:"Обычно охочусь за сезонными вещами, но «{name}» тоже возьму за {price}.",fairFull:"Цена устраивает. Беру за {price} без торга.",lucky:"Очень нужная вещь! Беру за {price}, не торгуясь.",newOk:"Отлично, новый! Беру за {price}.",condThenDiscount:"Раз {cond} — тогда скиньте. Возьму за {price}."},condShort:{new:"новый",used:"Б/У",worn:"средний",broken:"повреждённый"},trade:{discountOk:"Договорились, по рукам!",sellAtYourPrice:"Готов отдать по вашей цене — {price} ₽!",discountNo:"Нет, это слишком большая скидка за такой товар.",discountNo2:"Не, по такой цене не отдам.",tradeYes:"Ха, а почему бы и нет? По рукам, меняемся!",tradeYes2:"Идёт, меняемся!",tradeNo:"Обмен не интересует, спасибо.",collectorWishlistYes:"Вот это как раз предмет из моего списка! По рукам, меняемся.",trollTrade:"Ха, я тебя затролил! Ищи себя в тиктоке",trollNice:"Оо, свой человек! Скину тебе хорошо.",condThenDiscount:"Раз {cond} — тогда скиньте. Возьму за {price}."},trollCodewords:["бурмалда","хаммам","массажные столы","турецкая баня","черемша","брдыщ"],namesMale:["Владислав","Олег","Дмитрий","Игорь","Сергей","Кирилл","Артём","Роман","Павел"],namesFemale:["Марина","Светлана","Анна","Юлия","Наталья","Екатерина"]},Nr={num:{tn:"T RUB",bn:"B RUB",mn:"M RUB"},nav:{buy:"Shopping",inventory:"Inventory",sales:"My sales",cases:"Cases",chats:"Chats",shop:"Shop",gifts:"Gifts",season:"Season",work:"WORK"},work:{title:"WORK",perClick:"Income per click",level:"Level {n}",maxLevel:"Level {n} · max",upgrade:"Upgrade for {price}",maxed:"Max level reached",hint:"Tap the computer and earn"},common:{title:"My Resale",close:"Close",player:"Player",leaders:"LEADERS",lang:"EN",cancel:"Cancel",ok:"Got it",got:"Claimed",unavailable:"LOCKED"},settings:{title:"Settings",music:"Music",sounds:"Sounds",language:"LANGUAGE",ru:"Русский",en:"English",tr:"Türkçe",es:"Español",promo:"PROMO CODE",promoPlaceholder:"Enter promo code",promoApply:"APPLY",promoEmpty:"Enter a promo code",promoInvalid:"Promo code not found",promoApplied:"Gift received!"},buy:{title:"SHOPPING!",writeSeller:"Message seller",estimate:"Price estimate",stolen:"Item is no longer available.",notFound:"Item not found.",selectInv:"Select an item in your inventory.",tutLocked:"Make your first sale to start buying",skip:"DON'T WAIT",untilRefresh:"Refresh in:"},tut:{pickCase:"Open the free case",openCase:"Tap to open",keep:"Take the item",goInv:"Open inventory",list:"Put it up for sale",price:"Drag the slider to set a price",goBuy:"Go shopping",pickGoods:"Pick an item",write:"Message the seller",greet:"Say hello",ask:"Ask about the item",buyNow:"Buy the item",goChat:"A buyer messaged you",sellAccept:"Agree to the sale",skip:"SKIP TUTORIAL"},inventory:{title:"INVENTORY",sell:"SELL",quickSell:"QUICK SELL",repair:"REPAIR",tabInv:"INVENTORY",tabCol:"COLLECTION",collectionMain:"MAIN",collectionAutumn2026:"AUTUMN 2026",collected:"Collected: {n} / {total}",confirmSell:"Sell “{name}” for {price}?",empty:"Inventory is empty. Open a case or buy an item!",colNotOwned:"NOT COLLECTED",inInv:"IN INVENTORY",quickTitle:"Quick sell",quickConfirm:"Sell for {price}",brokenTag:" BR"},sales:{title:"MY SALES",empty:"No items for sale.",detail:"DETAILS",unlist:"REMOVE FROM SALE"},sellSetup:{title:"LISTING FOR SALE",submit:"List for sale",yourPrice:"Your price",zoneBelow:"below market",zoneMarket:"market",zoneAbove:"above market"},cases:{title:"CASES",forAd:"FOR AD",free:"FREE CASE!",freeBtn:"FREE",contents:"Case contents",buyMulti:"Buy several",freeTitle:"FREE CASES",mineTitle:"MY CASES",seasonalTitle:"SEASONAL CASES",regularTitle:"REGULAR CASES",openOwned:"OPEN"},caseName:{ad:"Free case",vk:"VK case",tier1:"Cardboard case",tier2:"Wooden case",tier3:"Golden case",tier4:"Aquarium case",tier5:"Premium case",tier6:"Ruby case",tier7:"Royal case",tier8:"Exclusive case"},roulette:{opening1:"Opening case…",openingN:"Opening {n} cases…",won:"You got:",keep:"Keep",sell:"Sell {price}",allToInv:"All to inventory",inInv:"IN INVENTORY",rerollFree:"REROLL FOR FREE",rerollWarning:"WARNING! Current items will not be saved!"},chats:{title:"CHATS",empty:"No chats yet.",optGreet:"Hello, I am interested in your item!",optTakeNow:"I will take it right now!",optDiscount:"Any discount? I will take it for…",optTrade:"I propose a trade for…",optAsk:"Ask about the item",optSmalltalk:"How are you?",optAcceptTrade:"Accept the trade",optDeclineTrade:"Decline the trade",optAskCond:"Ask about the item condition",optProposeSur:"Ask for a surcharge",optAnswerCond:"Answer the question",optRefuseCond:"Won’t say",optSell:"Sell for {price}",optCounter:"Offer a new price",optDecline:"Decline",optAcceptSur:"Accept (surcharge {amount})",optCounterSur:"Offer your price",optDeclineSur:"Decline the trade",optBye:"Goodbye",done:"Chat ended",report:"Report",tradePick:"CHOOSE AN ITEM TO TRADE",tradeEmpty:"No items in your inventory to trade.",noTradeItems:"No items to trade",tradeOfferHint:"Offers for trade (tap to estimate):",tradeLabel:"Offered for trade",sellerYou:"You are selling",hobby:"Hobby: {hobby}",wants:"Wants: {items}"},shop:{title:"SHOP",starter:"Starter pack",autumnBundle:"Autumn Bundle",megaBundle:"Mega Bundle",promo:"SALE",details:"DETAILS",bought:"Bought",offers:"OFFERS",currency:"CURRENCY",noAds:"Remove ads",disclaimer:"Disclaimer: This is in-game currency, not real money. By making a purchase, you acknowledge that you have read this notice and have no claims.",starterList1:"10,000,000 RUB",starterList2:"Mercedes",starterList3:"3 premium cases",starterList4:"Remove ads",autumnList1:"Orange BMW",autumnList2:"10,000,000 RUB",autumnList3:"5 Oak Cases",autumnList4:"Remove ads",megaList1:"Airline",megaList2:"3 Exclusive Cases",megaList3:"10 billion RUB",megaList4:"Remove ads",megaBenefit:"SAVE 30%",megaOfferTitle:"Instantly become richer than 90% of players!",offerDays:{one:"{n} day",few:"{n} days",many:"{n} days"},starterAdvantage:"GET A UNIQUE ADVANTAGE!",autumnProgressFaster:"PROGRESS THROUGH THE SEASON FASTER!",noAdsPrompt:"TIRED OF ADS?",dontWant:"NOT NOW"},gifts:{title:"GIFTS",claim:"CLAIM",day:"DAY",review:"REVIEW",forReview:"FOR REVIEW",subscription:"FOR SUBSCRIPTION",get:"GET",g1:"School Case",g2:"Pumpkin Case",g3:"Traveler's Case",g4:"iPad",g5:"4K Television",g6:"Oak Case",g7:"Retro Car"},season:{title:"AUTUMN SEASON",eyebrow:"SEASON 1",heroTitle:"Autumn 2026",heroDaysOne:"{n} day left",heroDaysFew:"{n} days left",heroDaysMany:"{n} days left",heroEnded:"SEASON ENDED",activeDates:"Sales count from September 1 through November 30 · server time",endedDates:"Season sales have ended · collection and rewards remain available",leaves:"leaves",collected:"collection",sales:"sales",tab:{collection:"COLLECTION",rewards:"REWARDS",leaders:"SEASON LEADERS"},chest:{school:"School Case",pumpkin:"Pumpkin Case",traveler:"Traveler's Case",premium:"Oak Case",autumnPremium:"Autumn Premium",mythic:"Mythic Case"},chestHint:{school:"School, harvest and useful little things",pumpkin:"Home, rain and Halloween",traveler:"Hiking, gardening and seasonal gear",premium:"Tech, transport and real estate",autumnPremium:"Major assets worth at least one billion rubles",mythic:"Contains a secret item"},chestPool:"Case collection: {n}",owned:"Owned: {n}",buyForLeaves:"BUY · {n} 🍁",open:"OPEN",adEyebrow:"FREE ATTEMPT",adChest:"Autumn Case",adChestHint:"One of {n} School, Pumpkin, Traveler or Oak Case items · no Autumn Premium drops",adChestOdds:"Cheaper items have a higher drop chance",watchAd:"WATCH AN AD",guideTitle:"New season! Autumn 2026.",guideIntro:"Collect autumn items through November 30 and complete the seasonal collection. Compete with other players on the leaderboards, reach collector milestones, and earn prizes!",guideStart:"OPEN CASES",collectionTitle:"Autumn collection",notFound:"NOT FOUND YET",secretItem:"Secret Item",secretChance:"0.01%",duplicateBonus:"Duplicates: {n}",notEnoughLeaves:"Not enough funds",chestBought:"Seasonal case purchased",chestOpened:"Autumn case opened!",duplicates:"Duplicate items: {n}",rewardClaimed:"Season reward claimed",rewardReadyEyebrow:"SEASON PASS",rewardReadyTitle:"SEASON REWARD AVAILABLE!",rewardReadyText:{one:"Milestone for {n} unique item completed",few:"Milestone for {n} unique items completed",many:"Milestone for {n} unique items completed"},rewardReadyAction:"CLAIM REWARD",rewardEyebrow:"COLLECTOR PATH",rewardTitle:"Season Pass",forItems:{one:"For {n} unique item",few:"For {n} unique items",many:"For {n} unique items"},claim:"CLAIM",claimed:"CLAIMED",needMore:"NEED {n} MORE",rewardLeaves:"{n} autumn leaves",scrollPrevious:"Previous rewards",scrollNext:"Next rewards",leaderTitle:"Season leaders",leaderDaysOne:"{n} day until the season ends",leaderDaysFew:"{n} days until the season ends",leaderDaysMany:"{n} days until the season ends",leaderEnded:"SEASON ENDED",leaderSales:"Sellers of the season",leaderCollection:"Collectors of the season",leaderEmpty:"No participants yet",sold:{one:"{n} sale",few:"{n} sales",many:"{n} sales"},itemsCount:{one:"{n} item",few:"{n} items",many:"{n} items"},item:{pencil:"Pencil",corn_cob:"Corn Cob",notebook:"Notebook",ruler:"Ruler",mushroom:"Mushroom",marker_set:"Marker Set",candle:"Candle",jam:"Jam",walnuts:"Walnuts",pumpkin:"Pumpkin",mask:"Mask",pencil_case:"Pencil Case",rake:"Rake",apple_basket:"Basket of Apples",heating_pad:"Heating Pad",potato_sack:"Sack of Potatoes",chanterelle_basket:"Basket of Chanterelles",jack_o_lantern:"Jack-o'-lantern",umbrella:"Umbrella",thermos:"Thermos",headlamp:"Headlamp",calculator:"Calculator",school_backpack:"School Backpack",pruning_shears:"Pruning Shears",shoe_dryer:"Shoe Dryer",shirt:"Shirt",halloween_costume:"Halloween Costume",raincoat:"Raincoat",rubber_boots:"Rubber Boots",blanket:"Blanket",moccasins:"Moccasins",hiking_backpack:"Hiking Backpack",trekking_shoes:"Trekking Shoes",wheelbarrow:"Wheelbarrow",heater:"Heater",inflatable_ghost:"Inflatable Ghost",leaf_blower:"Leaf Blower",fruit_dryer:"Fruit Dryer",tent:"Tent",scarecrow:"Scarecrow",pump:"Pump",microscope:"Microscope",rocking_chair:"Rocking Chair",ipad:"iPad",tv_4k:"4K Television",wood_stove:"Wood-burning Stove",sofa:"Sofa",tame_owl:"Tame Owl",fireplace:"Fireplace",interactive_board:"Interactive Board",forest_atv:"Forest ATV",retro_car:"Retro Car",orange_bmw:"Orange BMW",school_bus:"School Bus",cottage:"Cottage",haunted_castle:"Haunted Castle",private_school:"Private School",country_residential_complex:"Country Residential Complex",university:"University",historic_estate:"Historic Estate",classic_car_museum:"Classic Car Museum",education_platform:"Education Platform",country_hotel_chain:"Country Hotel Chain",agricultural_holding:"Agricultural Holding",heating_equipment_plant:"Heating Equipment Plant",horror_film_studio:"Horror Film Studio",halloween_theme_park:"Halloween Theme Park",vast_forest:"Vast Forest",mountain_resort:"Mountain Resort",orange_bugatti:"Orange Bugatti"}},leaders:{collectors:"COLLECTORS",rich:"TYCOONS",sellers:"SELLERS",you:"You",items:{one:"{n}/{total}",few:"{n}/{total}",many:"{n}/{total}"},sold:{one:"{n} sale",few:"{n} sales",many:"{n} sales"},loading:"Loading ranking…"},cond:{new:"NEW",used:"USED",worn:"WORN",broken:"BROKEN"},tier:{1:"COMMON",2:"UNCOMMON",3:"RARE",4:"VALUABLE",5:"PREMIUM",6:"PRESTIGE",7:"ROYAL",8:"EXCLUSIVE",9:"UNIQUE"},npcType:{troll:"Troll",businessman:"Businessman",talker:"Talker",economist:"Thrifty",hasty:"Hasty",ordinary:"Ordinary",collector:"Collector",appraiser:"Appraiser",impulsive:"Impulsive",pushy:"Pushy",hypehunter:"Hype hunter"},hobby:{fishing:"fishing",basketball:"basketball",football:"football",music:"music",cooking:"cooking",photo:"photography"},popup:{yourSurcharge:"Your surcharge",sellerAsksSurcharge:"Seller asks for a surcharge {amount}",propose:"Offer",requestSurcharge:"Request a surcharge",proposeHint:"How much the buyer pays on top of the trade (up to {max})",counterTitle:"Your price",buyerOfferedYourPrice:"Buyer offered {min} · your price {max}",countTitle:"How many to buy",buyN:"Buy {n} — {total}",codewordsTitle:"Choose a code word",reviewTitle:"Rate the game",authMsg:"Sign in to rate the game and get a gift",login:"Sign in",reviewOffer:"Rate the game and get “{name}”",review:"Rate",vkCommunityMessage:"Subscribe to the game community on VKontakte and get a free case!",vkCommunityGo:"OPEN",caseBonusTitle:"BONUS FOR 10 CASES!",caseBonusMessage:"Open “{name}” one more time for free by watching an ad!",caseBonusSaved:"Items from the previous opening will be kept!",caseBonusWatch:"WATCH AD",caseBonusDismiss:"NOT NOW",refreshMsg:"Refresh the page to rate the game",reviewGiven:"Review gift already claimed",leaderboardAuthMsg:"Sign in to join the leaderboard and compete with other players",estimate:"Price estimate",market:"Market: {min}–{max} RUB",countQ:"How many to buy?",chooseCount:"Choose amount",codeword:"Code word"},dlg:{npcGreet:"Hello! Interested?",collectorSellerWant:"Hello! I’m looking for “{wanted}” for my collection. If you have one, we can discuss a trade.",collectorSellerDuplicate:"Hello! I’m looking for “{wanted}” for my collection. This item is a duplicate, so I’m open to a good price.",appraiserSellerGreet:"Hello! I checked the condition and the market — the price is fair. A reasonable offer is welcome.",impulsiveSellerGreet:"Just listed it. Make a reasonable offer — I might agree quickly.",pushySellerGreet:"It’s a great item, so the price is high. Don’t expect a big discount.",hypeSellerGreet:"I love seasonal and high-status items. Offer me something trendy and we can discuss a trade.",npcHello:"Hello! Yes, it’s all in stock.",playerTakeNow:"I will take it right now!",npcDealOk:"Great, deal!",playerAsk:"Tell me more about the item?",condNew:"Condition is excellent, almost new.",condUsed:"Used a lot, but everything works.",condWorn:"Average condition, some wear.",condBroken:"Honestly — there is a defect.",condFine:"Everything is fine.",playerSmalltalk:"How are you?",hastyNoTalk:"You don’t value my time at all!",talkerSmalltalk:"Great, thanks for asking! Nice to chat 😊",bizSmalltalk:"So, what’s with these questions? Let’s get to the point.",ordSmalltalk:"Fine, why do you ask?",playerDiscount:"Any discount? I’ll take it for {price}",playerTradeOffer:"I propose a trade for “{name}”",surchargeOffer:"It’s an uneven trade, but with your surcharge of {amount} — I agree.",playerTrade:"I accept the trade!",npcSwap:"Great, let’s swap!",playerCounterSur:"What if I pay {amount}?",npcSurDeal:"Deal, let’s do it!",npcSurLow:"Too little. I won’t take less than {amount}.",playerDeclineTrade:"No, without a trade.",npcOkWhatever:"Fine, as you wish.",playerBye:"Goodbye",npcBye:"All the best!",gateRefuse:"Ha-ha. I won’t fall for that. Goodbye",gateBail:"Oh well :(",gatePass:"Okay, now I see you. What did you want?",trollBuy:"Oh, one of us! Deal, I’ll take it.",trollCounterReject:"Oh, you’re one of us! You get it! But that’s too expensive—I can’t afford it.",trollStillHigh:"Still too expensive. My limit is {price}.",trollSell:"Oh, one of us! For you I’ll sell it for {price}.",stolen:"Oops, already sold it to someone else, sorry!",gateWarn:"⚠️ The other person can’t see your message! To send a message, type “{word}”",askTradeCond:"What condition is your item in?",suspicious:"Hmm, that seems suspicious… Fine, I’ll take it for {price}.",playerAgree:"Deal!",flake:"Oops, changed my mind, sorry!",npcThanks:"Great, thank you!",hastyNoBargain:"I already named my price! No time to haggle, goodbye.",aboveCap:"No, that’s above my limit. I’ll keep my offer.",counterOk:"Okay, deal!",playerCounter:"How about {price}?",playerDeclineSale:"No, I won’t sell it. Goodbye",npcGoodLuck:"Too bad, good luck!",notEnoughMoney:"You don’t have enough money :(",notEnoughSur:"You don’t have enough for the surcharge :(",playerAcceptSur:"Okay, I’ll pay {amount}.",surTooMuch:"I won’t pay that much. Max {amount} on top.",playerProposeSur:"Let’s swap, but pay {amount} extra?",playerProposeNoSur:"Let’s swap with no surcharge?",surAcceptedSwap:"Deal, I’ll pay extra. Let’s swap!",ignoredLeave:"You took too long to reply, I changed my mind.",playerRefuse:"Won’t say.",toldNew:"The item is new, everything’s perfect.",toldUsed:"Used, but everything works.",toldWorn:"Average condition, some wear.",toldBroken:"Broken, will need fixing."},toast:{sold:"Sold for {price}",bought:"Bought: {name}",boughtStarter:"Bought: Starter pack",boughtAutumnBundle:"Bought: Autumn Bundle",boughtMegaBundle:"Bought: Mega Bundle",listed:"Listed for sale",unlisted:"Removed from sale",repaired:"Repaired",maxListings:"Maximum 6 listings",notEnough:"Not enough funds",tradeGot:"Trade: got “{name}”",tradeGotSur:"Trade: “{name}” + {amount}",newSaleMsg:"New message about your sale",marketRefreshed:"The “Shopping” lineup has refreshed",reportSent:"Report sent. +{reward}",adsOff:"Ads removed",adsAlreadyOff:"Ads already removed",rewardClaimed:"Reward claimed",giftGot:"Got: {name}"},buyer:{biz:"I’ll take it! But the price bites — lower it to {price}?",bizFull:"I’ll take it for {price}, deal?",tradeOffer:"Wanna swap? I offer “{name}” for trade.",econ:"A bit pricey. {price} and I’ll take it.",econFull:"{price} and I’ll take it.",hasty:"In a hurry! Lower it to {price} — I’ll take it now.",hastyFull:"I’ll take it right now for {price}! Will you sell?",talker:"Hello! What condition is the item in, used it long?",troll:"I’ll take it for {price}, will you sell?",ord:"Can you discount it to {price}?",ordFull:"I’ll take it for {price}, will you sell?",pushy:"I’ll take it for {price}. Yes, that’s a big discount — but my offer is good right now.",collector:"I need “{name}” for my collection. I’m ready to pay {price}.",appraiser:"I think this item is {condition}. If so, I’d like to buy it for {price}. Deal?",impulsive:"Decided right away: I’ll take it for {price}!",pushyType:"I’ll pay {price}. Yes, that’s a big discount — but I may consider a reasonable counteroffer.",hypeWanted:"I love seasonal and high-status items! I’ll pay {price} for “{name}”.",hypeRegular:"I usually hunt for seasonal items, but I’ll take “{name}” for {price}.",fairFull:"The price works for me. I’ll take it for {price}, no haggling.",lucky:"Really need this! I’ll take it for {price}, no haggling.",newOk:"Great, it’s new! I’ll take it for {price}.",condThenDiscount:"Since it’s {cond} — then lower it. I’ll take it for {price}."},condShort:{new:"new",used:"used",worn:"worn",broken:"broken"},trade:{discountOk:"Agreed, deal!",sellAtYourPrice:"I’ll sell it at your price — {price} RUB!",discountNo:"No, that’s too big a discount for such an item.",discountNo2:"Nah, I won’t sell it for that price.",tradeYes:"Ha, why not? Deal, let’s swap!",tradeYes2:"Deal, let’s swap!",tradeNo:"Not interested in a trade, thanks.",collectorWishlistYes:"That’s exactly what’s on my wishlist! Deal, let’s swap.",trollTrade:"Ha, I trolled you! Look for yourself on TikTok",trollNice:"Oh, one of us! I’ll give you a good deal.",condThenDiscount:"Since it’s {cond} — then lower the price. I’ll take it for {price}."},trollCodewords:["balderdash","hammam","massage tables","Turkish bath","wild garlic","kaboom"],namesMale:["Vladislav","Oleg","Dmitry","Igor","Sergey","Kirill","Artyom","Roman","Pavel"],namesFemale:["Marina","Svetlana","Anna","Yulia","Natalya","Ekaterina"]},xr={num:{tn:"trln RUB",bn:"mlr RUB",mn:"mln RUB"},nav:{buy:"Alışveriş",inventory:"Envanter",sales:"Satışlarım",cases:"Kasalar",chats:"Mesajlar",shop:"Mağaza",gifts:"Hediyeler",season:"Sezon",work:"İŞ"},work:{title:"İŞ",perClick:"Tıklama başına kazanç",level:"Seviye {n}",maxLevel:"Seviye {n} · maks.",upgrade:"{price} karşılığında geliştir",maxed:"Maksimum seviyeye ulaşıldı",hint:"Bilgisayara dokun ve para kazan"},common:{title:"İkinci El Dükkânım",close:"Kapat",player:"Oyuncu",leaders:"LİDERLER",lang:"TR",cancel:"İptal",ok:"Anladım",got:"Alındı",unavailable:"KİLİTLİ"},settings:{title:"Ayarlar",music:"Müzik",sounds:"Sesler",language:"DİL",ru:"Русский",en:"English",tr:"Türkçe",es:"Español",promo:"PROMOSYON KODU",promoPlaceholder:"Promosyon kodunu gir",promoApply:"UYGULA",promoEmpty:"Bir promosyon kodu gir",promoInvalid:"Promosyon kodu bulunamadı",promoApplied:"Hediyen alındı!"},buy:{title:"ALIŞVERİŞ!",writeSeller:"Satıcıya yaz",estimate:"Fiyat değerlendirmesi",stolen:"Bu ürün artık satışta değil.",notFound:"Ürün bulunamadı.",selectInv:"Envanterinden bir ürün seç.",tutLocked:"Ürün satın almak için ilk satışını yap",skip:"BEKLEME",untilRefresh:"Yenilenmeye kalan:"},tut:{pickCase:"Ücretsiz kasayı aç",openCase:"Açmak için dokun",keep:"Ürünü al",goInv:"Envanteri aç",list:"Satışa çıkar",price:"Kaydırıcıyı sürükleyip fiyat belirle",goBuy:"Alışverişe git",pickGoods:"Bir ürün seç",write:"Satıcıya yaz",greet:"Selam ver",ask:"Ürün hakkında soru sor",buyNow:"Ürünü satın al",goChat:"Bir alıcı sana yazdı",sellAccept:"Satışı kabul et",skip:"EĞİTİMİ ATLA"},inventory:{title:"ENVANTER",sell:"SATIŞA ÇIKAR",quickSell:"HIZLI SAT",repair:"ONAR",tabInv:"ENVANTER",tabCol:"KOLEKSİYON",collectionMain:"ANA",collectionAutumn2026:"SONBAHAR 2026",collected:"Toplanan: {n} / {total}",confirmSell:"“{name}” adlı ürünü {price} karşılığında satmak istiyor musun?",empty:"Envanterin boş. Bir kasa aç veya ürün satın al!",colNotOwned:"TOPLANMADI",inInv:"ENVANTERDE",quickTitle:"Hızlı satış",quickConfirm:"{price} karşılığında sat",brokenTag:" HSR"},sales:{title:"SATIŞLARIM",empty:"Satışta ürün yok.",detail:"AYRINTILAR",unlist:"SATIŞTAN KALDIR"},sellSetup:{title:"SATIŞA ÇIKAR",submit:"Satışa çıkar",yourPrice:"Senin fiyatın",zoneBelow:"piyasanın altında",zoneMarket:"piyasa fiyatı",zoneAbove:"piyasanın üstünde"},cases:{title:"KASALAR",forAd:"REKLAMLA",free:"ÜCRETSİZ KASA!",freeBtn:"ÜCRETSİZ",contents:"Kasa içeriği",buyMulti:"Birden fazla al",freeTitle:"ÜCRETSİZ KASALAR",mineTitle:"KASALARIM",seasonalTitle:"SEZONLUK KASALAR",regularTitle:"KLASİK KASALAR",openOwned:"AÇ"},caseName:{ad:"Ücretsiz kasa",vk:"VK kasası",tier1:"Karton kasa",tier2:"Ahşap kasa",tier3:"Altın kasa",tier4:"Akvaryum kasası",tier5:"Premium kasa",tier6:"Yakut kasa",tier7:"Kraliyet kasası",tier8:"Özel kasa"},roulette:{opening1:"Kasa açılıyor…",openingN:"{n} kasa açılıyor…",won:"Kazandıkların:",keep:"Al",sell:"{price} karşılığında sat",allToInv:"Tümünü envantere al",inInv:"ENVANTERDE",rerollFree:"ÜCRETSİZ TEKRAR ÇEVİR",rerollWarning:"DİKKAT! Mevcut ürünler kaydedilmeyecek!"},chats:{title:"MESAJLAR",empty:"Henüz mesaj yok.",optGreet:"Merhaba, ürününüzle ilgileniyorum!",optTakeNow:"Hemen alıyorum!",optDiscount:"İndirim olur mu? Şu fiyata alırım…",optTrade:"Şununla takas teklif ediyorum…",optAsk:"Ürün hakkında sor",optSmalltalk:"Nasılsınız?",optAcceptTrade:"Takası kabul et",optDeclineTrade:"Takası reddet",optAskCond:"Ürünün durumunu sor",optProposeSur:"Üstüne para iste",optAnswerCond:"Soruyu yanıtla",optRefuseCond:"Söylemeyeceğim",optSell:"{price} karşılığında sat",optCounter:"Yeni fiyat teklif et",optDecline:"Reddet",optAcceptSur:"Kabul et (ek ödeme {amount})",optCounterSur:"Kendi fiyatını teklif et",optDeclineSur:"Takası reddet",optBye:"Hoşça kal",done:"Sohbet sona erdi",report:"Şikâyet et",tradePick:"TAKAS İÇİN BİR ÜRÜN SEÇ",tradeEmpty:"Envanterinde takas edilecek ürün yok.",noTradeItems:"Takas edilecek ürün yok",tradeOfferHint:"Takas teklifi (değerini görmek için dokun):",tradeLabel:"Takas teklifi",sellerYou:"Satıcı sensin",hobby:"Hobisi: {hobby}",wants:"Aradığı ürünler: {items}"},shop:{title:"MAĞAZA",starter:"Başlangıç Paketi",autumnBundle:"Sonbahar Paketi",megaBundle:"Mega Paket",promo:"FIRSAT",details:"AYRINTILAR",bought:"Satın alındı",offers:"FIRSATLAR",currency:"PARA BİRİMİ",noAds:"Reklamları kaldır",disclaimer:"Uyarı: Bu gerçek para değil, oyun içi para birimidir. Satın alma işlemi yaparak bu bildirimi okuduğunuzu ve kabul ettiğinizi onaylarsınız.",starterList1:"10.000.000 RUB",starterList2:"Mercedes",starterList3:"3 premium kasa",starterList4:"Reklamları kaldır",autumnList1:"Turuncu BMW",autumnList2:"10.000.000 RUB",autumnList3:"5 Meşe Kasa",autumnList4:"Reklamları kaldır",megaList1:"Havayolu şirketi",megaList2:"3 Özel Kasa",megaList3:"10 milyar RUB",megaList4:"Reklamları kaldır",megaBenefit:"%30 TASARRUF",megaOfferTitle:"Anında oyuncuların %90’ından daha zengin ol!",offerDays:{one:"{n} gün",few:"{n} gün",many:"{n} gün"},starterAdvantage:"BENZERSİZ BİR AVANTAJ KAZAN!",autumnProgressFaster:"SEZONDA DAHA HIZLI İLERLE!",noAdsPrompt:"REKLAMLARDAN BIKTIN MI?",dontWant:"ŞİMDİ DEĞİL"},gifts:{title:"HEDİYELER",claim:"AL",day:"GÜN",review:"DEĞERLENDİR",forReview:"DEĞERLENDİRME ÖDÜLÜ",subscription:"TAKİP ÖDÜLÜ",get:"AL",g1:"Okul Kasası",g2:"Balkabağı Kasası",g3:"Gezgin Kasası",g4:"iPad",g5:"4K Televizyon",g6:"Meşe Kasası",g7:"Klasik Otomobil"},season:{title:"SONBAHAR SEZONU",eyebrow:"1. SEZON",heroTitle:"Sonbahar 2026",heroDaysOne:"Bitmesine {n} gün kaldı",heroDaysFew:"Bitmesine {n} gün kaldı",heroDaysMany:"Bitmesine {n} gün kaldı",heroEnded:"SEZON SONA ERDİ",activeDates:"Satışlar 1 Eylül–30 Kasım arasında sayılır · sunucu saati",endedDates:"Sezon satışları sona erdi · koleksiyon ve ödüller hâlâ erişilebilir",leaves:"yaprak",collected:"koleksiyon",sales:"satış",tab:{collection:"KOLEKSİYON",rewards:"ÖDÜLLER",leaders:"SEZON LİDERLERİ"},chest:{school:"Okul Kasası",pumpkin:"Balkabağı Kasası",traveler:"Gezgin Kasası",premium:"Meşe Kasası",autumnPremium:"Sonbahar Premium",mythic:"Efsanevi Kasa"},chestHint:{school:"Okul, hasat ve işe yarar küçük eşyalar",pumpkin:"Ev, yağmur ve Cadılar Bayramı",traveler:"Doğa yürüyüşü, bahçe ve sezonluk ekipman",premium:"Teknoloji, ulaşım ve gayrimenkul",autumnPremium:"En az bir milyar ruble değerindeki büyük varlıklar",mythic:"Gizli bir ürün içerir"},chestPool:"Kasadaki koleksiyon ürünü: {n}",owned:"Sende: {n}",buyForLeaves:"AL · {n} 🍁",open:"AÇ",adEyebrow:"ÜCRETSİZ DENEME",adChest:"Sonbahar Kasası",adChestHint:"Okul, Balkabağı, Gezgin veya Meşe kasalarındaki {n} üründen biri · Sonbahar Premium ürünü çıkmaz",adChestOdds:"Daha ucuz ürünlerin çıkma ihtimali daha yüksek",watchAd:"REKLAM İZLE",guideTitle:"Yeni sezon! Sonbahar 2026.",guideIntro:"30 Kasım’a kadar sonbahar ürünlerini topla ve sezon koleksiyonunu tamamla. Liderlik tablolarında diğer oyuncularla yarış, koleksiyon hedeflerine ulaş ve ödülleri kazan!",guideStart:"KASALARI AÇ",collectionTitle:"Sonbahar koleksiyonu",notFound:"HENÜZ BULUNMADI",secretItem:"Gizli Ürün",secretChance:"%0,01",duplicateBonus:"Tekrarlar: {n}",notEnoughLeaves:"Yeterli bakiyen yok",chestBought:"Sezonluk kasa satın alındı",chestOpened:"Sonbahar kasası açıldı!",duplicates:"Tekrarlanan ürünler: {n}",rewardClaimed:"Sezon ödülü alındı",rewardReadyEyebrow:"SEZON İLERLEMESİ",rewardReadyTitle:"SEZON ÖDÜLÜ HAZIR!",rewardReadyText:{one:"{n} benzersiz ürün hedefi tamamlandı",few:"{n} benzersiz ürün hedefi tamamlandı",many:"{n} benzersiz ürün hedefi tamamlandı"},rewardReadyAction:"ÖDÜLÜ AL",rewardEyebrow:"KOLEKSİYONCU YOLU",rewardTitle:"Sezon İlerlemesi",forItems:{one:"{n} benzersiz ürün için",few:"{n} benzersiz ürün için",many:"{n} benzersiz ürün için"},claim:"AL",claimed:"ALINDI",needMore:"{n} TANE DAHA GEREKİYOR",rewardLeaves:"{n} sonbahar yaprağı",scrollPrevious:"Önceki ödüller",scrollNext:"Sonraki ödüller",leaderTitle:"Sezon liderleri",leaderDaysOne:"Sezonun bitmesine {n} gün kaldı",leaderDaysFew:"Sezonun bitmesine {n} gün kaldı",leaderDaysMany:"Sezonun bitmesine {n} gün kaldı",leaderEnded:"SEZON SONA ERDİ",leaderSales:"Sezonun satıcıları",leaderCollection:"Sezonun koleksiyoncuları",leaderEmpty:"Henüz katılımcı yok",sold:{one:"{n} satış",few:"{n} satış",many:"{n} satış"},itemsCount:{one:"{n} ürün",few:"{n} ürün",many:"{n} ürün"},item:{pencil:"Kurşun Kalem",corn_cob:"Mısır Koçanı",notebook:"Defter",ruler:"Cetvel",mushroom:"Mantar",marker_set:"Keçeli Kalem Seti",candle:"Mum",jam:"Reçel",walnuts:"Ceviz",pumpkin:"Balkabağı",mask:"Maske",pencil_case:"Kalem Kutusu",rake:"Tırmık",apple_basket:"Elma Sepeti",heating_pad:"Sıcak Su Torbası",potato_sack:"Patates Çuvalı",chanterelle_basket:"Tilki Mantarı Sepeti",jack_o_lantern:"Cadılar Bayramı Feneri",umbrella:"Şemsiye",thermos:"Termos",headlamp:"Kafa Lambası",calculator:"Hesap Makinesi",school_backpack:"Okul Çantası",pruning_shears:"Budama Makası",shoe_dryer:"Ayakkabı Kurutucusu",shirt:"Gömlek",halloween_costume:"Cadılar Bayramı Kostümü",raincoat:"Yağmurluk",rubber_boots:"Lastik Çizme",blanket:"Battaniye",moccasins:"Mokasen",hiking_backpack:"Yürüyüş Sırt Çantası",trekking_shoes:"Trekking Ayakkabısı",wheelbarrow:"El Arabası",heater:"Isıtıcı",inflatable_ghost:"Şişme Hayalet",leaf_blower:"Yaprak Üfleme Makinesi",fruit_dryer:"Meyve Kurutucusu",tent:"Çadır",scarecrow:"Korkuluk",pump:"Pompa",microscope:"Mikroskop",rocking_chair:"Sallanan Sandalye",ipad:"iPad",tv_4k:"4K Televizyon",wood_stove:"Odun Sobası",sofa:"Kanepe",tame_owl:"Evcil Baykuş",fireplace:"Şömine",interactive_board:"Akıllı Tahta",forest_atv:"Orman ATV’si",retro_car:"Klasik Otomobil",orange_bmw:"Turuncu BMW",school_bus:"Okul Otobüsü",cottage:"Kır Evi",haunted_castle:"Perili Şato",private_school:"Özel Okul",country_residential_complex:"Kırsal Konut Sitesi",university:"Üniversite",historic_estate:"Tarihî Malikâne",classic_car_museum:"Klasik Otomobil Müzesi",education_platform:"Eğitim Platformu",country_hotel_chain:"Kır Otelleri Zinciri",agricultural_holding:"Tarım Holding Şirketi",heating_equipment_plant:"Isıtma Ekipmanı Fabrikası",horror_film_studio:"Korku Filmi Stüdyosu",halloween_theme_park:"Cadılar Bayramı Tema Parkı",vast_forest:"Uçsuz Bucaksız Orman",mountain_resort:"Dağ Tatil Merkezi",orange_bugatti:"Turuncu Bugatti"}},leaders:{collectors:"KOLEKSİYONCULAR",rich:"ZENGİNLER",sellers:"SATICILAR",you:"Sen",items:{one:"{n}/{total}",few:"{n}/{total}",many:"{n}/{total}"},sold:{one:"{n} satış",few:"{n} satış",many:"{n} satış"},loading:"Sıralama yükleniyor…"},cond:{new:"YENİ",used:"KULLANILMIŞ",worn:"YIPRANMIŞ",broken:"BOZUK"},tier:{1:"SIRADAN",2:"SIRA DIŞI",3:"NADİR",4:"DEĞERLİ",5:"PREMİUM",6:"PRESTİJLİ",7:"KRALİYET",8:"ÖZEL",9:"EŞSİZ"},npcType:{troll:"Trol",businessman:"İş İnsanı",talker:"Geveze",economist:"Tutumlu",hasty:"Aceleci",ordinary:"Sıradan",collector:"Koleksiyoncu",appraiser:"Eksper",impulsive:"Fevri",pushy:"Yüzsüz",hypehunter:"Trend Avcısı"},hobby:{fishing:"balıkçılık",basketball:"basketbol",football:"futbol",music:"müzik",cooking:"yemek yapmak",photo:"fotoğrafçılık"},popup:{yourSurcharge:"Senin ek ödemen",sellerAsksSurcharge:"Satıcı {amount} ek ödeme istiyor",propose:"Teklif et",requestSurcharge:"Ek ödeme iste",proposeHint:"Alıcının takasa ekleyeceği tutar (en fazla {max})",counterTitle:"Senin fiyatın",buyerOfferedYourPrice:"Alıcının teklifi {min} · senin fiyatın {max}",countTitle:"Kaç tane alınacak?",buyN:"{n} tane al — {total}",codewordsTitle:"Bir parola seç",reviewTitle:"Oyunu değerlendir",authMsg:"Oyunu değerlendirip hediye almak için giriş yap",login:"Giriş yap",reviewOffer:"Oyunu değerlendir, “{name}” kazan",review:"Değerlendir",vkCommunityMessage:"Oyunun VKontakte topluluğunu takip et ve ücretsiz bir kasa kazan!",vkCommunityGo:"GİT",caseBonusTitle:"10 KASA AÇMA BONUSU!",caseBonusMessage:"Reklam izleyerek “{name}” kasasını bir kez daha ücretsiz aç!",caseBonusSaved:"Önceki açılıştan çıkan eşyalar korunacak!",caseBonusWatch:"REKLAM İZLE",caseBonusDismiss:"ŞİMDİ DEĞİL",refreshMsg:"Oyunu değerlendirmek için sayfayı yenile",reviewGiven:"Değerlendirme hediyesi zaten alındı",leaderboardAuthMsg:"Liderlik tablosuna katılıp diğer oyuncularla yarışmak için giriş yap",estimate:"Fiyat değerlendirmesi",market:"Piyasa: {min}–{max} RUB",countQ:"Kaç tane almak istiyorsun?",chooseCount:"Adet seç",codeword:"Parola"},dlg:{npcGreet:"Merhaba! İlgileniyor musunuz?",collectorSellerWant:"Merhaba! Koleksiyonum için “{wanted}” arıyorum. Elinizde varsa takası konuşabiliriz.",collectorSellerDuplicate:"Merhaba! Koleksiyonum için “{wanted}” arıyorum. Bu ürün bende fazladan var, bu yüzden iyi bir fiyata açığım.",appraiserSellerGreet:"Merhaba! Ürünün durumunu ve piyasayı inceledim; fiyat makul. Mantıklı bir teklif sunabilirsiniz.",impulsiveSellerGreet:"Daha yeni ilana koydum. Mantıklı bir fiyat söyleyin, hemen kabul edebilirim.",pushySellerGreet:"Ürün harika, o yüzden fiyatı yüksek. Büyük bir indirim beklemeyin.",hypeSellerGreet:"Sezonluk ve prestijli ürünleri severim. Trend bir şey teklif edin, takası konuşalım.",npcHello:"Merhaba! Evet, ürün hâlâ bende.",playerTakeNow:"Hemen alıyorum!",npcDealOk:"Harika, anlaştık!",playerAsk:"Ürün hakkında biraz daha bilgi verir misiniz?",condNew:"Durumu mükemmel, neredeyse sıfır.",condUsed:"Çok kullanıldı ama her şeyi çalışıyor.",condWorn:"Orta durumda, kullanım izleri var.",condBroken:"Açıkçası bir arızası var.",condFine:"Her şey yolunda.",playerSmalltalk:"Nasılsınız?",hastyNoTalk:"Zamanıma hiç saygı duymuyorsunuz!",talkerSmalltalk:"Harikayım, sorduğunuz için teşekkürler! Sohbet etmek güzel 😊",bizSmalltalk:"Bu sorular da nereden çıktı? Konuya gelelim.",ordSmalltalk:"İyiyim, neden sordunuz?",playerDiscount:"İndirim olur mu? {price} karşılığında alırım.",playerTradeOffer:"“{name}” ile takas teklif ediyorum.",surchargeOffer:"Takas denk değil ama {amount} ek ödeme yaparsanız kabul ederim.",playerTrade:"Takası kabul ediyorum!",npcSwap:"Harika, takas yapalım!",playerCounterSur:"{amount} eklesem nasıl olur?",npcSurDeal:"Tamamdır, anlaştık!",npcSurLow:"Az oldu. {amount} altına olmaz.",playerDeclineTrade:"Hayır, takas olmasın.",npcOkWhatever:"Peki, siz bilirsiniz.",playerBye:"Hoşça kalın",npcBye:"İyi günler!",gateRefuse:"Ha ha. Buna kanmam. Hoşça kal.",gateBail:"Neyse artık :(",gatePass:"Tamam, şimdi seni görüyorum. Ne istiyordun?",trollBuy:"Ooo, bizdensin! Tamam, alıyorum.",trollCounterReject:"Ooo, bizdensin! Bu işi biliyorsun! Ama o fiyat bana fazla, gücüm yetmez.",trollStillHigh:"Hâlâ pahalı. Çıkabileceğim en yüksek fiyat: {price}.",trollSell:"Ooo, bizdensin! Sana {price} karşılığında bırakırım.",stolen:"Eyvah, başkasına sattım bile. Kusura bakma!",gateWarn:"⚠️ Karşı taraf mesajını göremiyor! Mesaj göndermek için “{word}” yaz.",askTradeCond:"Ürününüz ne durumda?",suspicious:"Hmm, bu biraz şüpheli… Peki, {price} karşılığında alıyorum.",playerAgree:"Anlaştık!",flake:"Pardon, vazgeçtim!",npcThanks:"Harika, teşekkürler!",hastyNoBargain:"Fiyatımı zaten söyledim! Pazarlığa vaktim yok, hoşça kalın.",aboveCap:"Hayır, bu bütçemi aşıyor. Teklifim değişmedi.",counterOk:"Peki, anlaştık!",playerCounter:"{price} olsa?",playerDeclineSale:"Hayır, satmıyorum. Hoşça kalın.",npcGoodLuck:"Üzüldüm, bol şans!",notEnoughMoney:"Yeterli paranız yok :(",notEnoughSur:"Ek ödeme için yeterli paranız yok :(",playerAcceptSur:"Tamam, {amount} ekleyeceğim.",surTooMuch:"O kadar eklemem. En fazla {amount} veririm.",playerProposeSur:"Takas yapalım ama siz {amount} ekleyin?",playerProposeNoSur:"Ek ödeme olmadan takas yapalım mı?",surAcceptedSwap:"Anlaştık, farkı öderim. Takas yapalım!",ignoredLeave:"Çok geç yanıt verdiniz, vazgeçtim.",playerRefuse:"Söylemeyeceğim.",toldNew:"Ürün sıfır, her şeyi kusursuz.",toldUsed:"Kullanılmış ama her şeyi çalışıyor.",toldWorn:"Orta durumda, kullanım izleri var.",toldBroken:"Bozuk, onarılması gerekecek."},toast:{sold:"{price} karşılığında satıldı",bought:"Satın alındı: {name}",boughtStarter:"Satın alındı: Başlangıç Paketi",boughtAutumnBundle:"Satın alındı: Sonbahar Paketi",boughtMegaBundle:"Satın alındı: Mega Paket",listed:"Satışa çıkarıldı",unlisted:"Satıştan kaldırıldı",repaired:"Onarıldı",maxListings:"En fazla 6 ilan verebilirsin",notEnough:"Yeterli bakiyen yok",tradeGot:"Takastan gelen: “{name}”",tradeGotSur:"Takas: “{name}” + {amount}",newSaleMsg:"İlanınla ilgili yeni mesaj",marketRefreshed:"Alışveriş ürünleri yenilendi",reportSent:"Şikâyet gönderildi. +{reward}",adsOff:"Reklamlar kaldırıldı",adsAlreadyOff:"Reklamlar zaten kaldırılmış",rewardClaimed:"Ödül alındı",giftGot:"Alındı: {name}"},buyer:{biz:"Alıyorum! Ama fiyat biraz yüksek; {price} olur mu?",bizFull:"{price} karşılığında alıyorum, anlaştık mı?",tradeOffer:"Takas yapalım mı? “{name}” teklif ediyorum.",econ:"Biraz pahalı. {price} olursa alırım.",econFull:"{price} olursa alırım.",hasty:"Acelem var! {price} yapın, hemen alayım.",hastyFull:"{price} karşılığında hemen alıyorum! Satıyor musunuz?",talker:"Merhaba! Ürün ne durumda, uzun süredir mi kullanıyorsunuz?",troll:"{price} karşılığında alıyorum, satar mısınız?",ord:"{price} olur mu?",ordFull:"{price} karşılığında alıyorum, satar mısınız?",pushy:"{price} veririm. Evet, büyük indirim istiyorum ama teklifim şu an geçerli.",collector:"Koleksiyonum için tam olarak “{name}” arıyorum. {price} ödemeye hazırım.",appraiser:"Bence bu ürün {condition}. Öyleyse {price} karşılığında almak istiyorum. Anlaştık mı?",impulsive:"Kararımı verdim: {price} karşılığında alıyorum!",pushyType:"{price} veririm. Evet, büyük indirim istiyorum ama makul bir karşı teklif düşünürüm.",hypeWanted:"Sezonluk ve prestijli ürünlere bayılırım! “{name}” için {price} veririm.",hypeRegular:"Genelde sezonluk ürünlerin peşindeyim ama “{name}” için {price} veririm.",fairFull:"Fiyat bana uyar. Pazarlıksız {price} karşılığında alıyorum.",lucky:"Bu tam ihtiyacım olan şey! Pazarlıksız {price} karşılığında alıyorum.",newOk:"Harika, sıfırmış! {price} karşılığında alıyorum.",condThenDiscount:"{cond} durumundaysa indirim yapın. {price} karşılığında alırım."},condShort:{new:"sıfır",used:"kullanılmış",worn:"yıpranmış",broken:"bozuk"},trade:{discountOk:"Tamamdır, anlaştık!",sellAtYourPrice:"Sizin fiyatınızdan veriyorum: {price} RUB!",discountNo:"Hayır, bu ürün için bu kadar büyük indirim yapamam.",discountNo2:"Yok, o fiyata satmam.",tradeYes:"Ha, neden olmasın? Tamam, takas yapalım!",tradeYes2:"Anlaştık, takas yapalım!",tradeNo:"Takas düşünmüyorum, teşekkürler.",collectorWishlistYes:"Bu tam da istek listemdeki ürün! Anlaştık, takas yapalım.",trollTrade:"Ha, seni trolledim! Kendini TikTok’ta ara.",trollNice:"Ooo, bizdensin! Sana güzel bir indirim yaparım.",condThenDiscount:"{cond} durumundaysa indirim yapın. {price} karşılığında alırım."},trollCodewords:["zırvalık","hamam","masaj masaları","Türk hamamı","yabani sarımsak","bam"],namesMale:["Vladislav","Oleg","Dmitri","İgor","Sergey","Kirill","Artyom","Roman","Pavel"],namesFemale:["Marina","Svetlana","Anna","Yulia","Natalya","Ekaterina"]},qr={num:{tn:"bill. RUB",bn:"mil M RUB",mn:"M RUB"},nav:{buy:"Compras",inventory:"Inventario",sales:"Mis ventas",cases:"Cajas",chats:"Mensajes",shop:"Tienda",gifts:"Regalos",season:"Temporada",work:"TRABAJO"},work:{title:"TRABAJO",perClick:"Ingresos por clic",level:"Nivel {n}",maxLevel:"Nivel {n} · máx.",upgrade:"Mejorar por {price}",maxed:"Nivel máximo alcanzado",hint:"Toca la computadora para ganar dinero"},common:{title:"Mi Negocio de Reventa",close:"Cerrar",player:"Jugador",leaders:"LÍDERES",lang:"ES",cancel:"Cancelar",ok:"Entendido",got:"Obtenido",unavailable:"BLOQUEADO"},settings:{title:"Ajustes",music:"Música",sounds:"Sonidos",language:"IDIOMA",ru:"Русский",en:"English",tr:"Türkçe",es:"Español",promo:"CÓDIGO PROMOCIONAL",promoPlaceholder:"Introduce el código",promoApply:"CANJEAR",promoEmpty:"Introduce un código promocional",promoInvalid:"No se encontró el código",promoApplied:"¡Regalo recibido!"},buy:{title:"¡DE COMPRAS!",writeSeller:"Escribir al vendedor",estimate:"Tasación",stolen:"Este artículo ya no está disponible.",notFound:"No se encontró el artículo.",selectInv:"Elige un artículo de tu inventario.",tutLocked:"Haz tu primera venta para poder comprar",skip:"NO ESPERAR",untilRefresh:"Se actualiza en:"},tut:{pickCase:"Abre la caja gratis",openCase:"Toca para abrir",keep:"Quédate el artículo",goInv:"Abre el inventario",list:"Ponlo a la venta",price:"Arrastra el control para fijar el precio",goBuy:"Ve de compras",pickGoods:"Elige un artículo",write:"Escribe al vendedor",greet:"Saluda",ask:"Pregunta por el artículo",buyNow:"Compra el artículo",goChat:"Te ha escrito un comprador",sellAccept:"Acepta la venta",skip:"SALTAR TUTORIAL"},inventory:{title:"INVENTARIO",sell:"VENDER",quickSell:"VENTA RÁPIDA",repair:"REPARAR",tabInv:"INVENTARIO",tabCol:"COLECCIÓN",collectionMain:"PRINCIPAL",collectionAutumn2026:"OTOÑO 2026",collected:"Conseguidos: {n} / {total}",confirmSell:"¿Vender “{name}” por {price}?",empty:"Tu inventario está vacío. ¡Abre una caja o compra un artículo!",colNotOwned:"NO CONSEGUIDO",inInv:"EN EL INVENTARIO",quickTitle:"Venta rápida",quickConfirm:"Vender por {price}",brokenTag:" RTO"},sales:{title:"MIS VENTAS",empty:"No tienes artículos a la venta.",detail:"DETALLES",unlist:"RETIRAR DE LA VENTA"},sellSetup:{title:"PONER A LA VENTA",submit:"Poner a la venta",yourPrice:"Tu precio",zoneBelow:"por debajo del mercado",zoneMarket:"precio de mercado",zoneAbove:"por encima del mercado"},cases:{title:"CAJAS",forAd:"CON ANUNCIO",free:"¡CAJA GRATIS!",freeBtn:"GRATIS",contents:"Contenido de la caja",buyMulti:"Comprar varias",freeTitle:"CAJAS GRATIS",mineTitle:"MIS CAJAS",seasonalTitle:"CAJAS DE TEMPORADA",regularTitle:"CAJAS CLÁSICAS",openOwned:"ABRIR"},caseName:{ad:"Caja gratis",vk:"Caja de VK",tier1:"Caja de cartón",tier2:"Caja de madera",tier3:"Caja de oro",tier4:"Caja acuario",tier5:"Caja prémium",tier6:"Caja de rubí",tier7:"Caja real",tier8:"Caja exclusiva"},roulette:{opening1:"Abriendo la caja…",openingN:"Abriendo {n} cajas…",won:"Has conseguido:",keep:"Guardar",sell:"Vender por {price}",allToInv:"Todo al inventario",inInv:"EN EL INVENTARIO",rerollFree:"VOLVER A GIRAR GRATIS",rerollWarning:"¡ATENCIÓN! Los artículos actuales no se guardarán."},chats:{title:"MENSAJES",empty:"Todavía no tienes conversaciones.",optGreet:"¡Hola! Me interesa tu artículo.",optTakeNow:"¡Me lo llevo ahora mismo!",optDiscount:"¿Me haces un descuento? Lo compro por…",optTrade:"Te propongo cambiarlo por…",optAsk:"Preguntar por el artículo",optSmalltalk:"¿Cómo estás?",optAcceptTrade:"Aceptar el intercambio",optDeclineTrade:"Rechazar el intercambio",optAskCond:"Preguntar por el estado",optProposeSur:"Pedir una diferencia",optAnswerCond:"Responder la pregunta",optRefuseCond:"No decirlo",optSell:"Vender por {price}",optCounter:"Proponer otro precio",optDecline:"Rechazar",optAcceptSur:"Aceptar (diferencia de {amount})",optCounterSur:"Proponer tu precio",optDeclineSur:"Rechazar el intercambio",optBye:"Adiós",done:"Conversación finalizada",report:"Denunciar",tradePick:"ELIGE UN ARTÍCULO PARA INTERCAMBIAR",tradeEmpty:"No tienes artículos para intercambiar.",noTradeItems:"No hay artículos para intercambiar",tradeOfferHint:"Ofrece a cambio (toca para tasar):",tradeLabel:"Ofrecido a cambio",sellerYou:"Tú vendes",hobby:"Afición: {hobby}",wants:"Busca: {items}"},shop:{title:"TIENDA",starter:"Pack de inicio",autumnBundle:"Pack de Otoño",megaBundle:"Mega Pack",promo:"OFERTA",details:"DETALLES",bought:"Comprado",offers:"OFERTAS",currency:"MONEDA",noAds:"Quitar anuncios",disclaimer:"Aviso: Esta es una moneda del juego, no dinero real. Al realizar una compra, confirmas que has leído y aceptado este aviso.",starterList1:"10.000.000 RUB",starterList2:"Mercedes",starterList3:"3 cajas prémium",starterList4:"Quitar anuncios",autumnList1:"BMW naranja",autumnList2:"10.000.000 RUB",autumnList3:"5 Cajas de Roble",autumnList4:"Quitar anuncios",megaList1:"Aerolínea",megaList2:"3 Cajas Exclusivas",megaList3:"10 mil millones de RUB",megaList4:"Quitar anuncios",megaBenefit:"AHORRA UN 30 %",megaOfferTitle:"¡Hazte más rico que el 90 % de los jugadores al instante!",offerDays:{one:"{n} día",few:"{n} días",many:"{n} días"},starterAdvantage:"¡CONSIGUE UNA VENTAJA ÚNICA!",autumnProgressFaster:"¡AVANZA MÁS RÁPIDO EN LA TEMPORADA!",noAdsPrompt:"¿CANSADO DE LOS ANUNCIOS?",dontWant:"AHORA NO"},gifts:{title:"REGALOS",claim:"RECLAMAR",day:"DÍA",review:"VALORAR",forReview:"POR VALORAR",subscription:"POR SEGUIRNOS",get:"CONSEGUIR",g1:"Caja Escolar",g2:"Caja Calabaza",g3:"Caja del Viajero",g4:"iPad",g5:"Televisor 4K",g6:"Caja de Roble",g7:"Coche Clásico"},season:{title:"TEMPORADA DE OTOÑO",eyebrow:"TEMPORADA 1",heroTitle:"Otoño 2026",heroDaysOne:"Queda {n} día",heroDaysFew:"Quedan {n} días",heroDaysMany:"Quedan {n} días",heroEnded:"TEMPORADA FINALIZADA",activeDates:"Las ventas cuentan del 1 de septiembre al 30 de noviembre · hora del servidor",endedDates:"Las ventas de temporada han terminado · la colección y las recompensas siguen disponibles",leaves:"hojas",collected:"colección",sales:"ventas",tab:{collection:"COLECCIÓN",rewards:"RECOMPENSAS",leaders:"CLASIFICACIÓN"},chest:{school:"Caja Escolar",pumpkin:"Caja Calabaza",traveler:"Caja del Viajero",premium:"Caja de Roble",autumnPremium:"Otoño Prémium",mythic:"Caja Mítica"},chestHint:{school:"Escuela, cosecha y pequeños objetos útiles",pumpkin:"Hogar, lluvia y Halloween",traveler:"Senderismo, jardín y equipo de temporada",premium:"Tecnología, transporte e inmuebles",autumnPremium:"Grandes activos con un valor mínimo de mil millones de rublos",mythic:"Contiene un artículo secreto"},chestPool:"Colección de la caja: {n}",owned:"Tienes: {n}",buyForLeaves:"COMPRAR · {n} 🍁",open:"ABRIR",adEyebrow:"INTENTO GRATIS",adChest:"Caja de Otoño",adChestHint:"Uno de los {n} artículos de las cajas Escolar, Calabaza, del Viajero o de Roble · sin artículos de Otoño Prémium",adChestOdds:"Los artículos más baratos tienen más probabilidades de salir",watchAd:"VER ANUNCIO",guideTitle:"¡Nueva temporada! Otoño 2026.",guideIntro:"Consigue artículos de otoño hasta el 30 de noviembre y completa la colección de temporada. Compite con otros jugadores en las clasificaciones, alcanza los hitos de coleccionista y gana premios.",guideStart:"ABRIR CAJAS",collectionTitle:"Colección de otoño",notFound:"AÚN NO ENCONTRADO",secretItem:"Artículo Secreto",secretChance:"0,01 %",duplicateBonus:"Repetidos: {n}",notEnoughLeaves:"No tienes saldo suficiente",chestBought:"Caja de temporada comprada",chestOpened:"¡Caja de otoño abierta!",duplicates:"Artículos repetidos: {n}",rewardClaimed:"Recompensa de temporada reclamada",rewardReadyEyebrow:"PROGRESO DE TEMPORADA",rewardReadyTitle:"¡RECOMPENSA DE TEMPORADA DISPONIBLE!",rewardReadyText:{one:"Hito de {n} artículo único completado",few:"Hito de {n} artículos únicos completado",many:"Hito de {n} artículos únicos completado"},rewardReadyAction:"RECLAMAR RECOMPENSA",rewardEyebrow:"RUTA DEL COLECCIONISTA",rewardTitle:"Progreso de temporada",forItems:{one:"Por {n} artículo único",few:"Por {n} artículos únicos",many:"Por {n} artículos únicos"},claim:"RECLAMAR",claimed:"RECLAMADA",needMore:"FALTAN {n}",rewardLeaves:"{n} hojas de otoño",scrollPrevious:"Recompensas anteriores",scrollNext:"Recompensas siguientes",leaderTitle:"Líderes de temporada",leaderDaysOne:"Queda {n} día de temporada",leaderDaysFew:"Quedan {n} días de temporada",leaderDaysMany:"Quedan {n} días de temporada",leaderEnded:"TEMPORADA FINALIZADA",leaderSales:"Vendedores de la temporada",leaderCollection:"Coleccionistas de la temporada",leaderEmpty:"Todavía no hay participantes",sold:{one:"{n} venta",few:"{n} ventas",many:"{n} ventas"},itemsCount:{one:"{n} artículo",few:"{n} artículos",many:"{n} artículos"},item:{pencil:"Lápiz",corn_cob:"Mazorca de Maíz",notebook:"Cuaderno",ruler:"Regla",mushroom:"Seta",marker_set:"Juego de Rotuladores",candle:"Vela",jam:"Mermelada",walnuts:"Nueces",pumpkin:"Calabaza",mask:"Máscara",pencil_case:"Estuche",rake:"Rastrillo",apple_basket:"Cesta de Manzanas",heating_pad:"Bolsa de Agua Caliente",potato_sack:"Saco de Patatas",chanterelle_basket:"Cesta de Rebozuelos",jack_o_lantern:"Calabaza de Halloween",umbrella:"Paraguas",thermos:"Termo",headlamp:"Linterna Frontal",calculator:"Calculadora",school_backpack:"Mochila Escolar",pruning_shears:"Tijeras de Podar",shoe_dryer:"Secador de Calzado",shirt:"Camisa",halloween_costume:"Disfraz de Halloween",raincoat:"Impermeable",rubber_boots:"Botas de Agua",blanket:"Manta",moccasins:"Mocasines",hiking_backpack:"Mochila de Senderismo",trekking_shoes:"Calzado de Trekking",wheelbarrow:"Carretilla",heater:"Calefactor",inflatable_ghost:"Fantasma Inflable",leaf_blower:"Soplador de Hojas",fruit_dryer:"Deshidratador de Frutas",tent:"Tienda de Campaña",scarecrow:"Espantapájaros",pump:"Bomba",microscope:"Microscopio",rocking_chair:"Mecedora",ipad:"iPad",tv_4k:"Televisor 4K",wood_stove:"Estufa de Leña",sofa:"Sofá",tame_owl:"Búho Domesticado",fireplace:"Chimenea",interactive_board:"Pizarra Interactiva",forest_atv:"Quad de Bosque",retro_car:"Coche Clásico",orange_bmw:"BMW naranja",school_bus:"Autobús Escolar",cottage:"Casa de Campo",haunted_castle:"Castillo Encantado",private_school:"Colegio Privado",country_residential_complex:"Urbanización Rural",university:"Universidad",historic_estate:"Finca Histórica",classic_car_museum:"Museo de Automóviles Clásicos",education_platform:"Plataforma Educativa",country_hotel_chain:"Cadena de Hoteles Rurales",agricultural_holding:"Grupo Agroindustrial",heating_equipment_plant:"Fábrica de Equipos de Calefacción",horror_film_studio:"Estudio de Cine de Terror",halloween_theme_park:"Parque Temático de Halloween",vast_forest:"Bosque Inmenso",mountain_resort:"Complejo Turístico de Montaña",orange_bugatti:"Bugatti naranja"}},leaders:{collectors:"COLECCIONISTAS",rich:"MAGNATES",sellers:"VENDEDORES",you:"Tú",items:{one:"{n}/{total}",few:"{n}/{total}",many:"{n}/{total}"},sold:{one:"{n} venta",few:"{n} ventas",many:"{n} ventas"},loading:"Cargando clasificación…"},cond:{new:"NUEVO",used:"USADO",worn:"DESGASTADO",broken:"ROTO"},tier:{1:"COMÚN",2:"POCO COMÚN",3:"RARO",4:"VALIOSO",5:"PRÉMIUM",6:"PRESTIGIOSO",7:"REAL",8:"EXCLUSIVO",9:"ÚNICO"},npcType:{troll:"Trol",businessman:"Empresario",talker:"Hablador",economist:"Ahorrador",hasty:"Impaciente",ordinary:"Normal",collector:"Coleccionista",appraiser:"Tasador",impulsive:"Impulsivo",pushy:"Descarado",hypehunter:"Cazatendencias"},hobby:{fishing:"pesca",basketball:"baloncesto",football:"fútbol",music:"música",cooking:"cocina",photo:"fotografía"},popup:{yourSurcharge:"Tu diferencia",sellerAsksSurcharge:"El vendedor pide una diferencia de {amount}",propose:"Proponer",requestSurcharge:"Pedir una diferencia",proposeHint:"Cantidad que el comprador añade al intercambio (hasta {max})",counterTitle:"Tu precio",buyerOfferedYourPrice:"Oferta del comprador: {min} · tu precio: {max}",countTitle:"¿Cuántas quieres comprar?",buyN:"Comprar {n} — {total}",codewordsTitle:"Elige una palabra clave",reviewTitle:"Valora el juego",authMsg:"Inicia sesión para valorar el juego y recibir un regalo",login:"Iniciar sesión",reviewOffer:"Valora el juego y consigue “{name}”",review:"Valorar",vkCommunityMessage:"¡Sigue la comunidad del juego en VKontakte y consigue una caja gratis!",vkCommunityGo:"ABRIR",caseBonusTitle:"¡BONO POR ABRIR 10 CAJAS!",caseBonusMessage:"¡Mira un anuncio y vuelve a abrir “{name}” gratis!",caseBonusSaved:"¡Los artículos de la apertura anterior se conservarán!",caseBonusWatch:"VER ANUNCIO",caseBonusDismiss:"AHORA NO",refreshMsg:"Actualiza la página para valorar el juego",reviewGiven:"Ya has recibido el regalo por valorar",leaderboardAuthMsg:"Inicia sesión para entrar en la clasificación y competir con otros jugadores",estimate:"Tasación",market:"Mercado: {min}–{max} RUB",countQ:"¿Cuántas quieres comprar?",chooseCount:"Elige la cantidad",codeword:"Palabra clave"},dlg:{npcGreet:"¡Hola! ¿Te interesa?",collectorSellerWant:"¡Hola! Busco “{wanted}” para mi colección. Si tienes uno, podemos hablar de un intercambio.",collectorSellerDuplicate:"¡Hola! Busco “{wanted}” para mi colección. Este artículo lo tengo repetido, así que acepto una buena oferta.",appraiserSellerGreet:"¡Hola! He revisado el estado y el mercado: el precio es justo. Acepto ofertas razonables.",impulsiveSellerGreet:"Acabo de publicarlo. Hazme una oferta razonable; puede que acepte enseguida.",pushySellerGreet:"Es un artículo excelente, por eso el precio es alto. No esperes un gran descuento.",hypeSellerGreet:"Me encantan los artículos de temporada y de prestigio. Ofréceme algo que esté de moda y hablamos de un intercambio.",npcHello:"¡Hola! Sí, todavía lo tengo.",playerTakeNow:"¡Me lo llevo ahora mismo!",npcDealOk:"¡Perfecto, trato hecho!",playerAsk:"¿Puedes contarme algo más sobre el artículo?",condNew:"Está en un estado excelente, casi nuevo.",condUsed:"Se ha usado bastante, pero todo funciona.",condWorn:"Está algo desgastado y tiene marcas de uso.",condBroken:"Sinceramente, tiene una avería.",condFine:"Todo está en orden.",playerSmalltalk:"¿Cómo estás?",hastyNoTalk:"¡No valoras mi tiempo en absoluto!",talkerSmalltalk:"¡Muy bien, gracias por preguntar! Da gusto charlar 😊",bizSmalltalk:"¿A qué vienen tantas preguntas? Vayamos al grano.",ordSmalltalk:"Bien, ¿por qué lo preguntas?",playerDiscount:"¿Me haces un descuento? Lo compro por {price}.",playerTradeOffer:"Te propongo cambiarlo por “{name}”.",surchargeOffer:"El intercambio no es justo, pero acepto si añades {amount}.",playerTrade:"¡Acepto el intercambio!",npcSwap:"¡Perfecto, hagamos el intercambio!",playerCounterSur:"¿Y si añado {amount}?",npcSurDeal:"¡Trato hecho!",npcSurLow:"Es muy poco. No aceptaré menos de {amount}.",playerDeclineTrade:"No, prefiero no hacer el intercambio.",npcOkWhatever:"De acuerdo, como quieras.",playerBye:"Adiós",npcBye:"¡Que te vaya bien!",gateRefuse:"Ja, ja. No voy a caer en eso. Adiós.",gateBail:"Pues nada :(",gatePass:"Vale, ahora sí te veo. ¿Qué querías?",trollBuy:"¡Eh, eres de los míos! Trato hecho, me lo llevo.",trollCounterReject:"¡Eh, eres de los míos! ¡Sabes cómo va esto! Pero es demasiado caro para mí.",trollStillHigh:"Sigue siendo demasiado caro. Mi límite es {price}.",trollSell:"¡Eh, eres de los míos! A ti te lo dejo por {price}.",stolen:"Vaya, ya se lo vendí a otra persona. ¡Lo siento!",gateWarn:"⚠️ La otra persona no puede ver tu mensaje. Para enviarlo, escribe “{word}”.",askTradeCond:"¿En qué estado está tu artículo?",suspicious:"Mmm, esto parece sospechoso… Está bien, lo compro por {price}.",playerAgree:"¡Trato hecho!",flake:"Vaya, he cambiado de opinión. ¡Lo siento!",npcThanks:"¡Perfecto, gracias!",hastyNoBargain:"¡Ya te he dicho mi precio! No tengo tiempo para regatear. Adiós.",aboveCap:"No, eso supera mi límite. Mantengo mi oferta.",counterOk:"De acuerdo, ¡trato hecho!",playerCounter:"¿Qué te parece {price}?",playerDeclineSale:"No, no lo vendo. Adiós.",npcGoodLuck:"Qué pena. ¡Suerte!",notEnoughMoney:"No tienes suficiente dinero :(",notEnoughSur:"No tienes suficiente dinero para pagar la diferencia :(",playerAcceptSur:"De acuerdo, añadiré {amount}.",surTooMuch:"No pagaré tanto. Como máximo añadiré {amount}.",playerProposeSur:"¿Lo intercambiamos si añades {amount}?",playerProposeNoSur:"¿Lo intercambiamos sin pagar ninguna diferencia?",surAcceptedSwap:"Trato hecho, pagaré la diferencia. ¡Intercambiemos!",ignoredLeave:"Has tardado demasiado en responder. He cambiado de opinión.",playerRefuse:"No te lo diré.",toldNew:"El artículo está nuevo, todo está perfecto.",toldUsed:"Está usado, pero todo funciona.",toldWorn:"Está algo desgastado y tiene marcas de uso.",toldBroken:"Está roto y habrá que repararlo."},toast:{sold:"Vendido por {price}",bought:"Comprado: {name}",boughtStarter:"Comprado: Pack de inicio",boughtAutumnBundle:"Comprado: Pack de Otoño",boughtMegaBundle:"Comprado: Mega Pack",listed:"Puesto a la venta",unlisted:"Retirado de la venta",repaired:"Reparado",maxListings:"Puedes publicar un máximo de 6 anuncios",notEnough:"No tienes saldo suficiente",tradeGot:"Intercambio: recibiste “{name}”",tradeGotSur:"Intercambio: “{name}” + {amount}",newSaleMsg:"Nuevo mensaje sobre tu anuncio",marketRefreshed:"Se ha renovado la sección “Compras”",reportSent:"Denuncia enviada. +{reward}",adsOff:"Anuncios eliminados",adsAlreadyOff:"Los anuncios ya están desactivados",rewardClaimed:"Recompensa reclamada",giftGot:"Conseguido: {name}"},buyer:{biz:"¡Me lo llevo! Pero el precio es alto. ¿Lo dejas en {price}?",bizFull:"Me lo llevo por {price}, ¿trato hecho?",tradeOffer:"¿Hacemos un intercambio? Te ofrezco “{name}”.",econ:"Es un poco caro. Si lo dejas en {price}, me lo llevo.",econFull:"{price} y me lo llevo.",hasty:"¡Tengo prisa! Déjalo en {price} y me lo llevo ahora.",hastyFull:"¡Me lo llevo ahora mismo por {price}! ¿Lo vendes?",talker:"¡Hola! ¿En qué estado está? ¿Lo has usado mucho tiempo?",troll:"Te doy {price}, ¿lo vendes?",ord:"¿Me lo dejas en {price}?",ordFull:"Te doy {price}, ¿lo vendes?",pushy:"Te doy {price}. Sí, es un descuento grande, pero mi oferta solo vale ahora.",collector:"Busco justo “{name}” para mi colección. Estoy dispuesto a pagar {price}.",appraiser:"Creo que este artículo está {condition}. Si es así, quiero comprarlo por {price}. ¿Trato hecho?",impulsive:"Ya lo he decidido: ¡me lo llevo por {price}!",pushyType:"Te doy {price}. Sí, es un descuento grande, pero podría valorar una contraoferta razonable.",hypeWanted:"¡Me encantan los artículos de temporada y de prestigio! Te doy {price} por “{name}”.",hypeRegular:"Normalmente busco artículos de temporada, pero te doy {price} por “{name}”.",fairFull:"El precio me parece bien. Me lo llevo por {price}, sin regatear.",lucky:"¡Justo lo que necesitaba! Me lo llevo por {price}, sin regatear.",newOk:"¡Perfecto, está nuevo! Me lo llevo por {price}.",condThenDiscount:"Si está {cond}, hazme un descuento. Te doy {price}."},condShort:{new:"nuevo",used:"usado",worn:"desgastado",broken:"roto"},trade:{discountOk:"¡De acuerdo, trato hecho!",sellAtYourPrice:"Acepto tu precio: ¡{price} RUB!",discountNo:"No, es un descuento demasiado grande para este artículo.",discountNo2:"No, no lo venderé por ese precio.",tradeYes:"Ja, ¿por qué no? ¡Trato hecho, hagamos el intercambio!",tradeYes2:"¡Trato hecho, hagamos el intercambio!",tradeNo:"No me interesa un intercambio, gracias.",collectorWishlistYes:"¡Es justo lo que tengo en mi lista de deseos! Trato hecho, hagamos el intercambio.",trollTrade:"¡Ja, te he trolleado! Búscate en TikTok.",trollNice:"¡Eh, eres de los míos! Te haré un buen precio.",condThenDiscount:"Si está {cond}, hazme un descuento. Te doy {price}."},trollCodewords:["paparruchas","hammam","mesas de masaje","baño turco","ajo silvestre","pum"],namesMale:["Vladislav","Oleg","Dmitri","Igor","Serguéi","Kirill","Artyom","Roman","Pavel"],namesFemale:["Marina","Svetlana","Anna","Yulia","Natalia","Ekaterina"]},Ye={ru:Br,en:Nr,tr:xr,es:qr},cs={ru:"ru-RU",en:"en-US",tr:"tr-TR",es:"es-ES"};let Me="ru";function Pr(e){const t=e.trim().toLowerCase().split(/[-_]/)[0];return t==="ru"||t==="en"||t==="tr"||t==="es"?t:"en"}function Dr(e){Me=e,typeof document<"u"&&(document.documentElement.lang=Me,document.title=Ye[Me].common.title)}function ut(){return Me}function r(e,t){const a=e.split(".").reduce((n,s)=>n&&typeof n=="object"?n[s]:void 0,Ye[Me]);return typeof a!="string"?e:t?a.replace(/\{(\w+)\}/g,(n,s)=>String(t[s]??`{${s}}`)):a}function zr(e){const t=Math.abs(Math.trunc(e));if(Me!=="ru")return t===1?"one":"many";const a=t%100;if(a>=11&&a<=14)return"many";const n=t%10;return n===1?"one":n>=2&&n<=4?"few":"many"}function Je(e,t,a={}){return r(`${e}.${zr(t)}`,{...a,n:t})}function Oa(e){return e.toLocaleString(cs[Me])}function jr(){return cs[Me]}function bn(e){const t=["namesMale","namesFemale"];for(const a of t)for(const n of Object.values(Ye)){const s=n[a].indexOf(e);if(s>=0)return Ye[Me][a][s]??e}return e}function Wa(e){for(const t of Object.values(Ye)){const a=t.trollCodewords.indexOf(e);if(a>=0)return Ye[Me].trollCodewords[a]??e}return e}function Pt(){return Ye[Me]}const Fr=[{id:"tier1",tier:1,price:100,priceType:"coins",minItemValue:50},{id:"tier2",tier:2,price:1300,priceType:"coins",minItemValue:500},{id:"tier3",tier:3,price:1e4,priceType:"coins",minItemValue:5e3},{id:"tier4",tier:4,price:1e5,priceType:"coins",minItemValue:5e4},{id:"tier5",tier:5,price:15e5,priceType:"coins",minItemValue:6e5},{id:"tier6",tier:6,price:7e6,priceType:"coins",minItemValue:5e6},{id:"tier7",tier:7,price:17e7,priceType:"coins",minItemValue:55e6},{id:"tier8",tier:8,price:35e8,priceType:"coins",minItemValue:5e8},{id:"ad",tier:0,price:null,priceType:"ad",minItemValue:50}],Gr=[20,15,12,10,8,7,5.5,5,4,3.5,3,2.5,2,1.5,1],Qt={cases:Fr,positionChances:Gr},Hr="autumn2026",ls=Date.UTC(2026,7,31,21),Va=Date.UTC(2026,10,30,21),Ur=24*60*60*1e3,Ya=["school","pumpkin","traveler","premium","autumnPremium"],k=e=>`./assets/season/autumn-2026/items/${typeof e=="number"?`autumn${e}.jpg`:e}`,Ja=[{id:"pencil",image:k(1),priceMin:30,priceMax:120},{id:"corn_cob",image:k(2),priceMin:80,priceMax:250},{id:"notebook",image:k(3),priceMin:70,priceMax:300},{id:"ruler",image:k(4),priceMin:80,priceMax:400},{id:"mushroom",image:k(5),priceMin:150,priceMax:700},{id:"marker_set",image:k(6),priceMin:300,priceMax:1500},{id:"candle",image:k(7),priceMin:250,priceMax:1500},{id:"jam",image:k(8),priceMin:350,priceMax:1200},{id:"walnuts",image:k(9),priceMin:600,priceMax:1800},{id:"pumpkin",image:k(10),priceMin:400,priceMax:3e3},{id:"mask",image:k(11),priceMin:350,priceMax:2500},{id:"pencil_case",image:k(12),priceMin:500,priceMax:3e3},{id:"rake",image:k(13),priceMin:900,priceMax:4e3},{id:"apple_basket",image:k(14),priceMin:900,priceMax:3e3},{id:"heating_pad",image:k(15),priceMin:1200,priceMax:4500},{id:"potato_sack",image:k(16),priceMin:1200,priceMax:4e3},{id:"chanterelle_basket",image:k(17),priceMin:1800,priceMax:6500},{id:"jack_o_lantern",image:k(18),priceMin:1200,priceMax:6e3},{id:"umbrella",image:k(19),priceMin:1200,priceMax:7e3},{id:"thermos",image:k(20),priceMin:1500,priceMax:9e3},{id:"headlamp",image:k(21),priceMin:1200,priceMax:9e3},{id:"calculator",image:k(22),priceMin:700,priceMax:7e3},{id:"school_backpack",image:k(23),priceMin:2500,priceMax:2e4},{id:"pruning_shears",image:k(24),priceMin:1500,priceMax:1e4},{id:"shoe_dryer",image:k(25),priceMin:1700,priceMax:8e3},{id:"shirt",image:k(26),priceMin:2e3,priceMax:15e3},{id:"halloween_costume",image:k(27),priceMin:2500,priceMax:2e4},{id:"raincoat",image:k(28),priceMin:2500,priceMax:18e3},{id:"rubber_boots",image:k(29),priceMin:2500,priceMax:15e3},{id:"blanket",image:k(30),priceMin:3e3,priceMax:3e4},{id:"moccasins",image:k(31),priceMin:4e3,priceMax:25e3},{id:"hiking_backpack",image:k(33),priceMin:6e3,priceMax:5e4},{id:"trekking_shoes",image:k(32),priceMin:8e3,priceMax:45e3},{id:"wheelbarrow",image:k(34),priceMin:6e3,priceMax:3e4},{id:"heater",image:k(35),priceMin:4e3,priceMax:5e4},{id:"inflatable_ghost",image:k(36),priceMin:4e3,priceMax:4e4},{id:"leaf_blower",image:k(37),priceMin:1e4,priceMax:8e4},{id:"fruit_dryer",image:k(59),priceMin:6e3,priceMax:6e4},{id:"tent",image:k(38),priceMin:1e4,priceMax:15e4},{id:"scarecrow",image:k(39),priceMin:5e3,priceMax:5e4},{id:"pump",image:k(40),priceMin:1e4,priceMax:15e4},{id:"microscope",image:k(41),priceMin:15e3,priceMax:5e5},{id:"rocking_chair",image:k(42),priceMin:2e4,priceMax:18e4},{id:"ipad",image:k(43),priceMin:6e4,priceMax:3e5},{id:"tv_4k",image:k(44),priceMin:5e4,priceMax:8e5},{id:"wood_stove",image:k(45),priceMin:7e4,priceMax:7e5},{id:"sofa",image:k(46),priceMin:6e4,priceMax:8e5},{id:"tame_owl",image:k(47),priceMin:15e4,priceMax:15e5},{id:"fireplace",image:k(48),priceMin:15e4,priceMax:3e6},{id:"interactive_board",image:k(49),priceMin:25e4,priceMax:2e6},{id:"forest_atv",image:k(50),priceMin:1e6,priceMax:4e6},{id:"retro_car",image:k(51),priceMin:2e6,priceMax:8e7},{id:"orange_bmw",image:k(52),priceMin:7e6,priceMax:25e6},{id:"school_bus",image:k(53),priceMin:1e7,priceMax:35e6},{id:"cottage",image:k(54),priceMin:7e6,priceMax:15e7},{id:"haunted_castle",image:k(55),priceMin:1e9,priceMax:8e9},{id:"private_school",image:k(56),priceMin:1e9,priceMax:5e9},{id:"country_residential_complex",image:k(57),priceMin:15e9,priceMax:25e10},{id:"university",image:k(58),priceMin:25e9,priceMax:5e11},{id:"historic_estate",image:k(60),priceMin:1e9,priceMax:4e9},{id:"classic_car_museum",image:k(61),priceMin:12e8,priceMax:6e9},{id:"education_platform",image:k("autumn62_ru.jpg"),priceMin:15e8,priceMax:8e9},{id:"country_hotel_chain",image:k(63),priceMin:2e9,priceMax:12e9},{id:"agricultural_holding",image:k(64),priceMin:3e9,priceMax:18e9},{id:"heating_equipment_plant",image:k(65),priceMin:4e9,priceMax:25e9},{id:"horror_film_studio",image:k(66),priceMin:6e9,priceMax:4e10},{id:"halloween_theme_park",image:k(67),priceMin:9e9,priceMax:65e9},{id:"vast_forest",image:k(68),priceMin:15e9,priceMax:12e10},{id:"mountain_resort",image:k(69),priceMin:25e9,priceMax:2e11},{id:"orange_bugatti",image:k(70),priceMin:5e8,priceMax:1e12}],Kr=Qt.cases.filter(e=>e.tier>=1&&e.tier<=8&&e.minItemValue>0).map(e=>({tier:e.tier,minItemValue:e.minItemValue})).sort((e,t)=>t.minItemValue-e.minItemValue),Wr=e=>Kr.find(t=>e>=t.minItemValue)?.tier??1,tt=e=>(e.priceMin+e.priceMax)/2,Vr=[{id:"school",size:15},{id:"pumpkin",size:15},{id:"traveler",size:14},{id:"premium",size:11},{id:"autumnPremium",size:14},{id:"mythic",size:1}],Sn=Qt.positionChances,Yr=[...Ja].sort((e,t)=>tt(e)-tt(t)||e.priceMin-t.priceMin),Za=new Map;let da=0;for(const e of Vr)Yr.slice(da,da+e.size).forEach((t,a)=>{Za.set(t.id,{chestId:e.id,weight:Sn[a]??Sn.at(-1)??1})}),da+=e.size;const Jr=new Set(["tent","pump","microscope","rocking_chair","ipad"]),Zr=new Set(["orange_bmw","school_bus","forest_atv","cottage","retro_car"]),Qr={1:4,2:4,3:4,4:4,5:3.5,6:3.5,7:6.5,8:8,9:4},Xr=(e,t)=>{const a=Qr[t];if(e.priceMax/e.priceMin<=a)return{priceMin:e.priceMin,priceMax:e.priceMax};const n=(e.priceMin+e.priceMax)/2,s=2*n/(1+a),i=s*a,o=10**Math.max(0,Math.floor(Math.log10(n))-1);return{priceMin:Math.ceil(s/o)*o,priceMax:Math.floor(i/o)*o}},se=Ja.map(e=>{const t=Za.get(e.id),a=e.id==="orange_bugatti"?9:t.chestId==="traveler"?Jr.has(e.id)?4:3:t.chestId==="premium"?Zr.has(e.id)?6:5:Wr(e.priceMin);return{...e,...Xr(e,a),tier:a,...t}}),ei=e=>{const t=Ja.map(n=>({item:n,drop:Za.get(n.id)})).filter(({drop:n})=>n.chestId===e),a=t.reduce((n,{drop:s})=>n+s.weight,0);return t.reduce((n,{item:s,drop:i})=>n+s.priceMin*i.weight,0)/a},ti=e=>{const t=10**Math.floor(Math.log10(e)),a=e/t,n=[1,1.2,1.5,2,2.5,3,4,5,7.5,10],s=n.reduce((i,o)=>Math.abs(o-a)<Math.abs(i-a)?o:i,n[0]);return Math.round(s*t)},ai={school:2,pumpkin:1.75,traveler:1.65,premium:1.5,autumnPremium:1.5},_n=e=>ti(ei(e)*ai[e]),Ie={school:{price:_n("school"),draws:1,image:"./assets/season/autumn-2026/cases/case_season_1.jpg"},pumpkin:{price:5e3,draws:1,image:"./assets/season/autumn-2026/cases/case_season_2.jpg"},traveler:{price:45e3,draws:1,image:"./assets/season/autumn-2026/cases/case_season_3.jpg"},premium:{price:15e5,draws:1,image:"./assets/season/autumn-2026/cases/case_season_4.jpg"},autumnPremium:{price:_n("autumnPremium"),draws:1,image:"./assets/season/autumn-2026/cases/case_season_5.jpg"},mythic:{price:0,draws:1,image:"./assets/season/autumn-2026/cases/case_mythic.jpg"}},us={image:"./assets/season/autumn-2026/cases/case_season_ad.jpg"},ft=se.filter(e=>e.tier===1||e.tier===2).map(e=>({item:e,expectedPrice:(e.priceMin+e.priceMax)/2})).sort((e,t)=>e.expectedPrice-t.expectedPrice||e.item.priceMin-t.item.priceMin).map((e,t,a)=>({...e,weight:a.length-t})),ds=e=>`autumn:${e}`,ni=e=>`autumn-owned:${e}`,ms=e=>e==="school"||e==="pumpkin"||e==="traveler"||e==="premium"||e==="autumnPremium"||e==="mythic";function Re(e){if(!e?.startsWith("autumn:"))return null;const t=e.slice(7);return t==="ad"||ms(t)?t:null}function Be(e){if(!e?.startsWith("autumn-owned:"))return null;const t=e.slice(13);return ms(t)?t:null}function si(e){if(e==="mythic"){const n=se.find(o=>o.chestId==="mythic"),s=se.filter(o=>o.chestId==="autumnPremium"),i=s.reduce((o,u)=>o+u.weight,0);return[{...n,chance:.01},...s.map(o=>({...o,chance:i>0?o.weight/i*99.99:0})).sort((o,u)=>u.chance-o.chance||tt(o)-tt(u))]}const t=e==="ad"?ft.map(n=>({item:n.item,weight:n.weight})):se.filter(n=>n.chestId===e).map(n=>({item:n,weight:n.weight})),a=t.reduce((n,s)=>n+s.weight,0);return t.map(({item:n,weight:s})=>({...n,chance:a>0?s/a*100:0})).sort((n,s)=>s.chance-n.chance||tt(n)-tt(s))}const be=[{required:1,rewards:[{kind:"autumnChest",chestId:"school",amount:1}]},{required:2,rewards:[{kind:"coins",amount:1e3}]},{required:5,rewards:[{kind:"autumnChest",chestId:"pumpkin",amount:1}]},{required:10,rewards:[{kind:"autumnChest",chestId:"school",amount:3}]},{required:15,rewards:[{kind:"coins",amount:5e3}]},{required:20,rewards:[{kind:"autumnChest",chestId:"pumpkin",amount:1}]},{required:25,rewards:[{kind:"item",itemId:"halloween_costume"}]},{required:30,rewards:[{kind:"autumnChest",chestId:"traveler",amount:1}]},{required:35,rewards:[{kind:"coins",amount:5e5}]},{required:40,rewards:[{kind:"autumnChest",chestId:"premium",amount:1}]},{required:50,rewards:[{kind:"coins",amount:1e7}]},{required:55,rewards:[{kind:"item",itemId:"orange_bmw"}]},{required:60,rewards:[{kind:"item",itemId:"classic_car_museum"}]},{required:65,rewards:[{kind:"case",caseId:"tier8",amount:1}]},{required:69,rewards:[{kind:"autumnChest",chestId:"mythic",amount:1}]},{required:70,rewards:[],showcaseItemId:"orange_bugatti"}];function ps(){return{version:2,leaves:0,chests:{school:1,pumpkin:0,traveler:0,premium:0,autumnPremium:0,mythic:0},items:{},claimedMilestones:[],sales:0}}const ri=["amber_headphones","maple_camera","pumpkin_keyboard","forest_sneakers","cinnamon_watch","rainy_console","acorn_speaker","harvest_drone","mushroom_lamp","bonfire_phone","copper_bicycle","cranberry_laptop","fog_projector","oak_guitar","plaid_armchair","chestnut_scooter","golden_thermos","autumn_motorcycle","orchard_car","scarlet_piano","leaffall_yacht","amber_gallery","sunset_castle","eternal_autumn"],ii=new Map(ri.map((e,t)=>[e,se[t].id])),oi=new Map([[2,5],[4,10],[6,15],[8,20],[10,25],[12,30],[14,35],[16,40],[18,45],[20,50],[22,55],[24,60]]),ma=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),fe=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):0;function ci(e){if(!ma(e))return ps();const t=e.version!==2,a=ma(e.chests)?e.chests:{},n=ma(e.items)?e.items:{},s={};for(const[o,u]of Object.entries(n)){const l=fe(u);if(l<=0)continue;const d=t?ii.get(o)??o:o;s[d]=(s[d]??0)+l}const i=Array.isArray(e.claimedMilestones)?[...new Set(e.claimedMilestones.map(fe).filter(o=>o>0).map(o=>t?oi.get(o)??o:o))].sort((o,u)=>o-u):[];return{version:2,leaves:fe(e.leaves),chests:{school:fe(a.school)+fe(a.leaf),pumpkin:fe(a.pumpkin)+fe(a.harvest),traveler:fe(a.traveler),premium:fe(a.premium)+fe(a.golden),autumnPremium:fe(a.autumnPremium),mythic:fe(a.mythic)},items:s,claimedMilestones:i,sales:fe(e.sales)}}const Se=e=>e>=ls&&e<Va,hs=e=>e>=Va,Ia=(e,t,a)=>Se(e)&&t&&!a,li=e=>Se(e)?"season":"buy",ui=e=>e.leaves===0&&e.sales===0&&e.claimedMilestones.length===0&&Object.keys(e.items).length===0&&e.chests.school<=1&&e.chests.pumpkin===0&&e.chests.traveler===0&&e.chests.premium===0&&e.chests.autumnPremium===0&&e.chests.mythic===0;function fs(e,t,a){const n=ci(e);return!hs(t)||a||!ui(n)?n:{...n,chests:{...n.chests,school:0}}}const gs=e=>Math.max(0,Math.ceil((Va-e)/Ur));function di(e,t){return Se(t)?{...e,sales:e.sales+1}:e}function je(e){const t=new Set(se.map(a=>a.id));return Object.entries(e.items).filter(([a,n])=>t.has(a)&&n>0).length}function mi(e,t,a){if(!Ya.includes(a))return null;const n=Ie[a].price;return t<n?null:{state:{...e,chests:{...e.chests,[a]:e.chests[a]+1}},coins:t-n}}function ys(e,t){const a=se.filter(i=>i.chestId===e),n=a.reduce((i,o)=>i+o.weight,0);let s=Math.max(0,Math.min(.999999999,t()))*n;for(const i of a)if(s-=i.weight,s<0)return i;return a[a.length-1]}function ks(e){const t=ft.reduce((n,s)=>n+s.weight,0);let a=Math.max(0,Math.min(.999999999,e()))*t;for(const n of ft)if(a-=n.weight,a<0)return n.item;return ft[ft.length-1].item}function vs(e,t=Math.random){return e==="ad"?ks(t):ys(e,t)}function pi(e,t,a=Math.random){if(e.chests[t]<=0)return null;const n=Ie[t],s={...e.items},i=[];let o=0;for(let u=0;u<n.draws;u+=1){const l=ys(t,a);(s[l.id]??0)>0&&(o+=1),s[l.id]=(s[l.id]??0)+1,i.push(l.id)}return{state:{...e,chests:{...e.chests,[t]:e.chests[t]-1},items:s},itemIds:i,duplicates:o}}function hi(e,t=Math.random){const a=ks(t),n=e.items[a.id]??0,s=n>0?1:0;return{state:{...e,items:{...e.items,[a.id]:n+1}},itemIds:[a.id],duplicates:s}}function Xt(e,t){return be.some(a=>a.required===t&&a.rewards.length>0)&&je(e)>=t&&!e.claimedMilestones.includes(t)}function fi(e,t,a){return be.filter(n=>n.required>t&&n.required<=a&&Xt(e,n.required)).at(-1)}function gi(e,t){return Xt(e,t)?{...e,claimedMilestones:[...e.claimedMilestones,t].sort((a,n)=>a-n)}:null}const yi=new Map(se.map(e=>[e.id,e.image])),ee=e=>e==="education_platform"?`./assets/season/autumn-2026/items/autumn62_${ut()==="ru"?"ru":"en"}.jpg`:yi.get(e)??`./assets/goods/${parseInt(e,10)}.jpg`,ve=e=>`./assets/cases/${e}`,ie=e=>`./assets/shop/${e}`,dt=()=>({ru:"no_ads_ru.svg",en:"no_ads.svg",tr:"no_ads_tr.svg",es:"no_ads_es.svg"})[ut()],bt=e=>`<img class="icon" src="./assets/icons/${e}.svg" alt="" />`;function xt(e){e.querySelectorAll(".card__name, .card__price, .rwon__name, .shopcard__amount, .casecard__name, .cocard__name, .giftcard__reward, .buyitem__left .btn").forEach(t=>{t.style.fontSize="";const a=parseFloat(getComputedStyle(t).fontSize)||22,n=Math.max(11,a*.5);t.style.whiteSpace="nowrap";let s=a;for(let i=0;i<80&&t.scrollWidth>t.clientWidth&&s>n;i++)s-=1,t.style.fontSize=`${s}px`})}const ki=()=>ut()==="ru"?"₽":"RUB";function T(e){return e>=1e12?`${pa(e/1e12)} ${r("num.tn")}`:e>=1e9?`${pa(e/1e9)} ${r("num.bn")}`:e>=1e6?`${pa(e/1e6)} ${r("num.mn")}`:`${e.toLocaleString(jr())} ${ki()}`}const pa=e=>{const t=Number(e.toFixed(1)).toString();return ut()==="en"?t:t.replace(".",",")};function O(e,t,a){e.addEventListener("click",n=>{const s=n.target.closest(t);s&&e.contains(s)&&a(s,n)})}function vi(e){let t=e;const a=new Set;return{getState:()=>t,setState(n){const s=typeof n=="function"?n(t):n;t={...t,...s},a.forEach(i=>i(t))},subscribe(n){return a.add(n),()=>a.delete(n)}}}const ze=new Map;let bi=1,ot=!1,Dt=0,Qa=0;const ct=()=>Date.now();function Ze(){const e=ot?ct()-Dt:0;return ct()-Qa-e}function Si(){return Qa+(ot?Math.max(0,ct()-Dt):0)}function bs(e){e.nativeTimer!=null&&clearTimeout(e.nativeTimer),e.nativeFrame!=null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(e.nativeFrame),e.nativeTimer=void 0,e.nativeFrame=void 0}function Mn(e){!ze.has(e.id)||ot||(e.nativeTimer=void 0,e.nativeFrame=void 0,e.kind==="interval"?(e.remaining=e.delay,Xa(e)):ze.delete(e.id),e.kind==="frame"?e.callback(Ze()):e.callback())}function Xa(e){if(!(ot||!ze.has(e.id)))if(e.startedAt=ct(),e.kind==="frame"&&typeof requestAnimationFrame=="function")e.nativeFrame=requestAnimationFrame(()=>Mn(e));else{const t=e.kind==="frame"?Math.max(0,e.remaining||16):Math.max(0,e.remaining);e.nativeTimer=setTimeout(()=>Mn(e),t)}}function en(e,t,a){const n=bi++,s={id:n,kind:e,callback:t,delay:Math.max(0,a),remaining:e==="frame"?16:Math.max(0,a),startedAt:ct()};return ze.set(n,s),Xa(s),n}function tn(e){const t=ze.get(e);t&&(bs(t),ze.delete(e))}const C=(e,t=0)=>en("timeout",e,t),ge=tn,St=(e,t=0)=>en("interval",e,t),Pe=tn,Le=e=>en("frame",e,16),Ra=tn;function _i(e){if(e===ot)return;const t=ct();if(ot=e,e){Dt=t;for(const a of ze.values()){const n=Math.max(0,t-a.startedAt);a.remaining=Math.max(0,a.remaining-n),bs(a)}return}Qa+=Math.max(0,t-Dt);for(const a of ze.values())Xa(a)}const ea=[{id:"001",name:"Шариковая ручка",tier:1,priceMin:50,priceMax:150,quickSell:25,quickSellBroken:10,caseChance:20},{id:"002",name:"Булавка",tier:1,priceMin:50,priceMax:150,quickSell:25,quickSellBroken:10,caseChance:15},{id:"003",name:"Ластик",tier:1,priceMin:50,priceMax:120,quickSell:25,quickSellBroken:10,caseChance:12},{id:"004",name:"Монета советская",tier:1,priceMin:60,priceMax:200,quickSell:30,quickSellBroken:12,caseChance:10},{id:"005",name:"Расчёска",tier:1,priceMin:70,priceMax:200,quickSell:35,quickSellBroken:14,caseChance:8},{id:"006",name:"Пачка чипсов",tier:1,priceMin:70,priceMax:250,quickSell:35,quickSellBroken:14,caseChance:7},{id:"007",name:"Зажигалка",tier:1,priceMin:80,priceMax:200,quickSell:40,quickSellBroken:16,caseChance:5.5},{id:"008",name:"Леденец",tier:1,priceMin:80,priceMax:250,quickSell:40,quickSellBroken:16,caseChance:5},{id:"009",name:"Бургер",tier:1,priceMin:90,priceMax:280,quickSell:45,quickSellBroken:18,caseChance:4},{id:"010",name:"Блокнот",tier:1,priceMin:100,priceMax:300,quickSell:50,quickSellBroken:20,caseChance:3.5},{id:"011",name:"Носки",tier:1,priceMin:100,priceMax:400,quickSell:50,quickSellBroken:20,caseChance:3},{id:"012",name:"Кружка",tier:1,priceMin:100,priceMax:350,quickSell:50,quickSellBroken:20,caseChance:2.5},{id:"013",name:"Чехол",tier:1,priceMin:120,priceMax:350,quickSell:60,quickSellBroken:24,caseChance:2},{id:"014",name:"Минифигурка",tier:1,priceMin:120,priceMax:400,quickSell:60,quickSellBroken:24,caseChance:1.5},{id:"015",name:"Брелок",tier:1,priceMin:150,priceMax:400,quickSell:75,quickSellBroken:30,caseChance:1},{id:"016",name:"Книга",tier:2,priceMin:500,priceMax:1500,quickSell:250,quickSellBroken:100,caseChance:20},{id:"017",name:"Черемша",tier:2,priceMin:500,priceMax:1500,quickSell:250,quickSellBroken:100,caseChance:15},{id:"018",name:"Коврик для йоги",tier:2,priceMin:550,priceMax:1800,quickSell:275,quickSellBroken:110,caseChance:12},{id:"019",name:"Ремень",tier:2,priceMin:600,priceMax:2e3,quickSell:300,quickSellBroken:120,caseChance:10},{id:"020",name:"Кепка",tier:2,priceMin:700,priceMax:2e3,quickSell:350,quickSellBroken:140,caseChance:8},{id:"021",name:"Флешка",tier:2,priceMin:700,priceMax:2e3,quickSell:350,quickSellBroken:140,caseChance:7},{id:"022",name:"Мини-пылесос",tier:2,priceMin:700,priceMax:2500,quickSell:350,quickSellBroken:140,caseChance:5.5},{id:"023",name:"Солнечные очки",tier:2,priceMin:800,priceMax:3e3,quickSell:400,quickSellBroken:160,caseChance:5},{id:"024",name:"Мышка",tier:2,priceMin:800,priceMax:2500,quickSell:400,quickSellBroken:160,caseChance:4},{id:"025",name:"Виниловая пластинка",tier:2,priceMin:800,priceMax:3e3,quickSell:400,quickSellBroken:160,caseChance:3.5},{id:"026",name:"PSP",tier:2,priceMin:800,priceMax:2800,quickSell:400,quickSellBroken:160,caseChance:3},{id:"027",name:"Аквариум",tier:2,priceMin:1e3,priceMax:3500,quickSell:500,quickSellBroken:200,caseChance:2.5},{id:"028",name:"Скейтборд",tier:2,priceMin:1200,priceMax:4e3,quickSell:600,quickSellBroken:240,caseChance:2},{id:"029",name:"Шахматы",tier:2,priceMin:1500,priceMax:5e3,quickSell:750,quickSellBroken:300,caseChance:1.5},{id:"030",name:"Колонка",tier:2,priceMin:1500,priceMax:4500,quickSell:750,quickSellBroken:300,caseChance:1},{id:"031",name:"Кроссовки",tier:3,priceMin:5e3,priceMax:15e3,quickSell:2500,quickSellBroken:1e3,caseChance:15},{id:"032",name:"Пуховик",tier:3,priceMin:5e3,priceMax:2e4,quickSell:2500,quickSellBroken:1e3,caseChance:12},{id:"033",name:"Ролики",tier:3,priceMin:5e3,priceMax:15e3,quickSell:2500,quickSellBroken:1e3,caseChance:20},{id:"034",name:"PS5",tier:3,priceMin:25e3,priceMax:5e4,quickSell:12500,quickSellBroken:5e3,caseChance:1},{id:"035",name:"Фотоаппарат",tier:3,priceMin:7e3,priceMax:25e3,quickSell:3500,quickSellBroken:1400,caseChance:10},{id:"036",name:"Гироскутер",tier:3,priceMin:7e3,priceMax:25e3,quickSell:3500,quickSellBroken:1400,caseChance:8},{id:"037",name:"Велосипед",tier:3,priceMin:8e3,priceMax:3e4,quickSell:4e3,quickSellBroken:1600,caseChance:7},{id:"038",name:"Гитара",tier:3,priceMin:8e3,priceMax:3e4,quickSell:4e3,quickSellBroken:1600,caseChance:5.5},{id:"039",name:"Switch",tier:3,priceMin:8e3,priceMax:3e4,quickSell:4e3,quickSellBroken:1600,caseChance:5},{id:"040",name:"Сноуборд",tier:3,priceMin:1e4,priceMax:35e3,quickSell:5e3,quickSellBroken:2e3,caseChance:4},{id:"041",name:"ФПВ Друн",tier:3,priceMin:1e4,priceMax:4e4,quickSell:5e3,quickSellBroken:2e3,caseChance:3.5},{id:"042",name:"Мини-проектор",tier:3,priceMin:1e4,priceMax:35e3,quickSell:5e3,quickSellBroken:2e3,caseChance:3},{id:"043",name:"Надувная лодка",tier:3,priceMin:1e4,priceMax:35e3,quickSell:5e3,quickSellBroken:2e3,caseChance:2.5},{id:"044",name:"Робот-пылесос",tier:3,priceMin:12e3,priceMax:4e4,quickSell:6e3,quickSellBroken:2400,caseChance:2},{id:"045",name:"Электросамокат",tier:3,priceMin:15e3,priceMax:5e4,quickSell:7500,quickSellBroken:3e3,caseChance:1.5},{id:"046",name:"Айфон",tier:4,priceMin:5e4,priceMax:15e4,quickSell:25e3,quickSellBroken:1e4,caseChance:20},{id:"047",name:"Квадроцикл",tier:4,priceMin:5e4,priceMax:18e4,quickSell:25e3,quickSellBroken:1e4,caseChance:15},{id:"048",name:"Горный велосипед",tier:4,priceMin:6e4,priceMax:2e5,quickSell:3e4,quickSellBroken:12e3,caseChance:12},{id:"049",name:"Игровой ПК",tier:4,priceMin:7e4,priceMax:22e4,quickSell:35e3,quickSellBroken:14e3,caseChance:10},{id:"050",name:"Ноутбук",tier:4,priceMin:7e4,priceMax:25e4,quickSell:35e3,quickSellBroken:14e3,caseChance:8},{id:"051",name:"Кольцо с бриллиантом",tier:4,priceMin:8e4,priceMax:25e4,quickSell:4e4,quickSellBroken:16e3,caseChance:7},{id:"052",name:"Студийный микрофон",tier:4,priceMin:8e4,priceMax:28e4,quickSell:4e4,quickSellBroken:16e3,caseChance:5.5},{id:"053",name:"Нива",tier:4,priceMin:8e4,priceMax:3e5,quickSell:4e4,quickSellBroken:16e3,caseChance:5},{id:"054",name:"Телескоп",tier:4,priceMin:1e5,priceMax:35e4,quickSell:5e4,quickSellBroken:2e4,caseChance:4},{id:"055",name:"Форд фокус",tier:4,priceMin:1e5,priceMax:4e5,quickSell:5e4,quickSellBroken:2e4,caseChance:3.5},{id:"056",name:"VR-шлем",tier:4,priceMin:1e5,priceMax:35e4,quickSell:5e4,quickSellBroken:2e4,caseChance:3},{id:"057",name:"Домашний кинотеатр",tier:4,priceMin:15e4,priceMax:45e4,quickSell:75e3,quickSellBroken:3e4,caseChance:2.5},{id:"058",name:"Бильярд",tier:4,priceMin:15e4,priceMax:45e4,quickSell:75e3,quickSellBroken:3e4,caseChance:2},{id:"059",name:"Катер",tier:4,priceMin:15e4,priceMax:45e4,quickSell:75e3,quickSellBroken:3e4,caseChance:1.5},{id:"060",name:"Гидроцикл",tier:4,priceMin:2e5,priceMax:5e5,quickSell:1e5,quickSellBroken:4e4,caseChance:1},{id:"061",name:"Мини-гольф",tier:5,priceMin:6e5,priceMax:2e6,quickSell:3e5,quickSellBroken:12e4,caseChance:20},{id:"062",name:"Снегоход",tier:5,priceMin:6e5,priceMax:2e6,quickSell:3e5,quickSellBroken:12e4,caseChance:15},{id:"063",name:"Бассейн",tier:5,priceMin:7e5,priceMax:2e6,quickSell:35e4,quickSellBroken:14e4,caseChance:12},{id:"064",name:"Баня",tier:5,priceMin:8e5,priceMax:2e6,quickSell:4e5,quickSellBroken:16e4,caseChance:10},{id:"065",name:"Боулинг в дом",tier:5,priceMin:8e5,priceMax:25e5,quickSell:4e5,quickSellBroken:16e4,caseChance:8},{id:"066",name:"Домашний спортзал",tier:5,priceMin:8e5,priceMax:25e5,quickSell:4e5,quickSellBroken:16e4,caseChance:7},{id:"067",name:"Гараж",tier:5,priceMin:1e6,priceMax:3e6,quickSell:5e5,quickSellBroken:2e5,caseChance:5.5},{id:"068",name:"Трактор",tier:5,priceMin:1e6,priceMax:3e6,quickSell:5e5,quickSellBroken:2e5,caseChance:5},{id:"069",name:"Октавия",tier:5,priceMin:12e5,priceMax:25e5,quickSell:6e5,quickSellBroken:24e4,caseChance:4},{id:"070",name:"Камаро",tier:5,priceMin:12e5,priceMax:3e6,quickSell:6e5,quickSellBroken:24e4,caseChance:3.5},{id:"071",name:"Мустанг",tier:5,priceMin:15e5,priceMax:35e5,quickSell:75e4,quickSellBroken:3e5,caseChance:3},{id:"072",name:"Мерседес",tier:5,priceMin:15e5,priceMax:4e6,quickSell:75e4,quickSellBroken:3e5,caseChance:2.5},{id:"073",name:"Тесла",tier:5,priceMin:2e6,priceMax:5e6,quickSell:1e6,quickSellBroken:4e5,caseChance:2},{id:"074",name:"Квартира-студия",tier:5,priceMin:2e6,priceMax:5e6,quickSell:1e6,quickSellBroken:4e5,caseChance:1.5},{id:"075",name:"Дача",tier:5,priceMin:3e6,priceMax:5e6,quickSell:15e5,quickSellBroken:6e5,caseChance:1},{id:"076",name:"BMW M5",tier:6,priceMin:5e6,priceMax:9e6,quickSell:25e5,quickSellBroken:1e6,caseChance:20},{id:"077",name:"Кофейня",tier:6,priceMin:5e6,priceMax:15e6,quickSell:25e5,quickSellBroken:1e6,caseChance:15},{id:"078",name:"Ресторан",tier:6,priceMin:5e6,priceMax:15e6,quickSell:25e5,quickSellBroken:1e6,caseChance:12},{id:"079",name:"Мини-отель",tier:6,priceMin:7e6,priceMax:2e7,quickSell:35e5,quickSellBroken:14e5,caseChance:10},{id:"080",name:"Гелик",tier:6,priceMin:8e6,priceMax:15e6,quickSell:4e6,quickSellBroken:16e5,caseChance:8},{id:"081",name:"Офис",tier:6,priceMin:8e6,priceMax:2e7,quickSell:4e6,quickSellBroken:16e5,caseChance:7},{id:"082",name:"Автограф Роналду",tier:6,priceMin:8e6,priceMax:25e6,quickSell:4e6,quickSellBroken:16e5,caseChance:5.5},{id:"083",name:"Бентли",tier:6,priceMin:1e7,priceMax:22e6,quickSell:5e6,quickSellBroken:2e6,caseChance:5},{id:"084",name:"Гольф-клуб",tier:6,priceMin:1e7,priceMax:3e7,quickSell:5e6,quickSellBroken:2e6,caseChance:4},{id:"085",name:"Феррари",tier:6,priceMin:12e6,priceMax:25e6,quickSell:6e6,quickSellBroken:24e5,caseChance:3.5},{id:"086",name:"Яхта",tier:6,priceMin:12e6,priceMax:35e6,quickSell:6e6,quickSellBroken:24e5,caseChance:3},{id:"087",name:"Отель 3*",tier:6,priceMin:15e6,priceMax:4e7,quickSell:75e5,quickSellBroken:3e6,caseChance:2.5},{id:"088",name:"Трёшка в Москве",tier:6,priceMin:2e7,priceMax:5e7,quickSell:1e7,quickSellBroken:4e6,caseChance:2},{id:"089",name:"Роллс-Ройс",tier:6,priceMin:2e7,priceMax:5e7,quickSell:1e7,quickSellBroken:4e6,caseChance:1.5},{id:"090",name:"Торговый центр",tier:6,priceMin:2e7,priceMax:5e7,quickSell:1e7,quickSellBroken:4e6,caseChance:1},{id:"091",name:"Домик в Италии",tier:7,priceMin:55e6,priceMax:28e7,quickSell:275e5,quickSellBroken:11e6,caseChance:20},{id:"092",name:"Ресторан Мишлен",tier:7,priceMin:55e6,priceMax:2e8,quickSell:275e5,quickSellBroken:11e6,caseChance:15},{id:"093",name:"Круизный лайнер",tier:7,priceMin:6e7,priceMax:22e7,quickSell:3e7,quickSellBroken:12e6,caseChance:12},{id:"094",name:"Аквапарк",tier:7,priceMin:7e7,priceMax:3e8,quickSell:35e6,quickSellBroken:14e6,caseChance:10},{id:"095",name:"Бутик в центре Москвы",tier:7,priceMin:8e7,priceMax:38e7,quickSell:4e7,quickSellBroken:16e6,caseChance:8},{id:"096",name:"Виноградник в Бордо",tier:7,priceMin:8e7,priceMax:35e7,quickSell:4e7,quickSellBroken:16e6,caseChance:7},{id:"097",name:"Вертолёт",tier:7,priceMin:9e7,priceMax:27e7,quickSell:45e6,quickSellBroken:18e6,caseChance:5.5},{id:"098",name:"Вилла в Тоскане",tier:7,priceMin:1e8,priceMax:45e7,quickSell:5e7,quickSellBroken:2e7,caseChance:5},{id:"099",name:"Завод",tier:7,priceMin:12e7,priceMax:5e8,quickSell:6e7,quickSellBroken:24e6,caseChance:4},{id:"100",name:"Яхт-клуб",tier:7,priceMin:15e7,priceMax:48e7,quickSell:75e6,quickSellBroken:3e7,caseChance:3.5},{id:"101",name:"Маленький остров",tier:7,priceMin:2e8,priceMax:2e9,quickSell:1e8,quickSellBroken:4e7,caseChance:3},{id:"102",name:"Бугатти Чирон",tier:7,priceMin:23e7,priceMax:37e7,quickSell:115e6,quickSellBroken:46e6,caseChance:2.5},{id:"103",name:"Замок во Франции",tier:7,priceMin:3e8,priceMax:2e9,quickSell:15e7,quickSellBroken:6e7,caseChance:2},{id:"104",name:"Бриллиант 20 карат",tier:7,priceMin:3e8,priceMax:3e9,quickSell:15e7,quickSellBroken:6e7,caseChance:1.5},{id:"105",name:"Пентхаус в Дубае",tier:7,priceMin:36e7,priceMax:22e8,quickSell:18e7,quickSellBroken:72e6,caseChance:1},{id:"106",name:"Нефтяная скважина",tier:8,priceMin:5e8,priceMax:4e9,quickSell:25e7,quickSellBroken:1e8,caseChance:20},{id:"107",name:"Картина Пикассо",tier:8,priceMin:5e8,priceMax:6e9,quickSell:25e7,quickSellBroken:1e8,caseChance:15},{id:"108",name:"Замок в Шотландии",tier:8,priceMin:7e8,priceMax:5e9,quickSell:35e7,quickSellBroken:14e7,caseChance:12},{id:"109",name:"Коллекция картин",tier:8,priceMin:9e8,priceMax:6e9,quickSell:45e7,quickSellBroken:18e7,caseChance:10},{id:"110",name:"Технологический стартап",tier:8,priceMin:9e8,priceMax:9e9,quickSell:45e7,quickSellBroken:18e7,caseChance:8},{id:"111",name:"Футбольный клуб",tier:8,priceMin:12e8,priceMax:1e10,quickSell:6e8,quickSellBroken:24e7,caseChance:7},{id:"112",name:"Морской порт",tier:8,priceMin:18e8,priceMax:12e9,quickSell:9e8,quickSellBroken:36e7,caseChance:5.5},{id:"113",name:"Отель 5*",tier:8,priceMin:18e8,priceMax:1e10,quickSell:9e8,quickSellBroken:36e7,caseChance:5},{id:"114",name:"Авиакомпания",tier:8,priceMin:25e8,priceMax:18e9,quickSell:125e7,quickSellBroken:5e8,caseChance:4},{id:"115",name:"Бизнес-центр",tier:8,priceMin:4e9,priceMax:2e10,quickSell:2e9,quickSellBroken:8e8,caseChance:3.5},{id:"116",name:"Жилой Квартал",tier:8,priceMin:45e8,priceMax:25e9,quickSell:225e7,quickSellBroken:9e8,caseChance:3},{id:"117",name:"Федеральный телеканал",tier:8,priceMin:9e9,priceMax:45e9,quickSell:45e8,quickSellBroken:18e8,caseChance:2.5},{id:"118",name:"Башня Око",tier:8,priceMin:18e9,priceMax:15e10,quickSell:9e9,quickSellBroken:36e8,caseChance:2},{id:"119",name:"Архипелаг",tier:8,priceMin:18e9,priceMax:18e10,quickSell:9e9,quickSellBroken:36e8,caseChance:1.5},{id:"120",name:"Сан-Марино",tier:8,priceMin:45e9,priceMax:45e10,quickSell:225e8,quickSellBroken:9e9,caseChance:1}],B={npcTypeWeights:{ordinary:.24,businessman:.1,talker:.1,economist:.1,hasty:.1,troll:.04,collector:.09,appraiser:.12,impulsive:.02,pushy:.07,hypehunter:.02},moodRoll:{good:.1,bad:.1},moodDiscountMult:{good:1.3,ok:1,bad:.6},conditionRoll:{used:.18,worn:.15,broken:.12},conditionRollBusinessman:{used:0,worn:.06,broken:.04},discountByCondition:{new:{chance:.28,maxFrac:.12},used:{chance:.62,maxFrac:.35},worn:{chance:.75,maxFrac:.5},broken:{chance:.92,maxFrac:.8}},discountSmallAskBonus:.22,discountRapportBonus:{greeted:.08,perQuestion:.05,maxQuestions:2},buyerFullPriceChance:{troll:.08,businessman:.12,talker:.28,economist:.16,hasty:.45,ordinary:.3,collector:0,appraiser:0,impulsive:0,pushy:0,hypehunter:0},buyerPushyChance:.12,buyerPushyDiscount:{min:.2,max:.5},buyerMaxDiscount:{troll:.12,businessman:.18,talker:.1,economist:.2,hasty:0,ordinary:.12,hypehunter:.1},buyerCounterRecovery:{troll:.55,businessman:.45,talker:.75,economist:.4,hasty:1,ordinary:.65,collector:1,appraiser:.82,impulsive:.9,pushy:.78,hypehunter:1},buyerConditionDiscount:{new:0,used:.07,worn:.15,broken:.35},buyerTradeOfferChance:.45,tradeChance:{troll:.5,businessman:.1,talker:.3,economist:.9,hasty:.1,ordinary:.3,collector:.8,appraiser:.55,impulsive:.7,pushy:.25,hypehunter:.6},tradeTolerance:{troll:.7,businessman:1,talker:.85,economist:.6,hasty:.95,ordinary:.85,collector:.7,appraiser:.9,impulsive:.85,pushy:.95,hypehunter:.8},luckyBuyerChance:.03,luckyTradeChance:.005,luckyTradeMinRatio:.5,troll:{bailOnCodeword:.6,acceptRaisedCounterChance:.5,reportReward:1e3},hasty:{minSec:5,maxSec:60},stolenBaseChance:.15};let Xe=Date.now()>>>0||1;function mt(){Xe|=0,Xe=Xe+1831565813|0;let e=Math.imul(Xe^Xe>>>15,1|Xe);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}const Q=e=>mt()<e,ae=(e,t)=>e+Math.floor(mt()*(t-e+1)),Ae=e=>e[Math.floor(mt()*e.length)];function ta(e){const t=e.reduce((n,s)=>n+s,0);let a=mt()*t;for(let n=0;n<e.length;n++)if(a-=e[n],a<=0)return n;return e.length-1}const La=ea.map(e=>e.id),Mi=["man_1.jpg","man_2.jpg","man_3.jpg","man_4.jpg","man_5.jpg","man_6.jpg","man_7.jpg","man_8.jpg"],wi=["woman_1.jpg","woman_1-1.jpg","woman_1-2.jpg","woman_1-3.jpg","woman_5.jpg","woman_6.jpg","woman_7.jpg","woman_8.jpg"],Ss=B.npcTypeWeights,wn=Object.keys(Ss),Ci=["fishing","basketball","football","music","cooking","photo"];let Ai=0;function Ti(){const e=mt();return e<B.moodRoll.good?"good":e<B.moodRoll.good+B.moodRoll.bad?"bad":"ok"}function Ei(e){const t=e==="businessman"?B.conditionRollBusinessman:B.conditionRoll,a=mt();return a<t.broken?"broken":a<t.broken+t.worn?"worn":a<t.broken+t.worn+t.used?"used":"new"}function $i(e=!1){if(!e&&!Q(.6))return[];const t=Q(.5)?1:2,a=new Set;for(;a.size<t;)a.add(Ae(La));return[...a]}const Oi=()=>wn[ta(wn.map(e=>Ss[e]))]??"ordinary";function aa(e=Oi()){const t=Q(.5),a=$i(e==="collector"),n=e==="collector"?[...new Set([Ae(La),Ae(La)])]:[];return{id:`npc${Ai++}`,name:Ae(t?Pt().namesMale:Pt().namesFemale),avatar:Ae(t?Mi:wi),type:e,mood:Ti(),hobby:Ae(Ci),wants:a,otherItems:n}}const Ii=e=>e==="bad"?"ok":"good",Ri=e=>e==="good"?"ok":"bad",at=(e,t)=>t>0?Ii(e):t<0?Ri(e):e,na=(e,t)=>e.type==="ordinary"?e.mood:at(e.mood,t),an=e=>r(`npcType.${e}`),_s=e=>r(`hobby.${e}`);function lt(e=""){const t=globalThis.crypto;return t&&typeof t.randomUUID=="function"?e+t.randomUUID():e+Date.now().toString(36)+Math.random().toString(36).slice(2,10)}const Li=ea,Bi=()=>lt("m");function Ni(e,t=aa(),a){let n=t;const s=a??Ei(n.type),{priceMin:i,priceMax:o,quickSellBroken:u}=e,l=Math.round((i+o)/2);if(n.type==="collector"){const m=n.wants.filter(h=>h!==e.id);m.length||m.push(Ae(Li.filter(h=>h.id!==e.id)).id);const p=n.otherItems.filter(h=>h!==e.id);(t.otherItems.includes(e.id)||Q(.45))&&p.push(e.id),n={...n,wants:m,otherItems:p}}let d;switch(s){case"new":d=Q(.88)?ae(l,o):ae(o,Math.round(o*1.2));break;case"used":d=Q(.7)?ae(i,l):ae(l,o);break;case"worn":d=Q(.8)?ae(Math.round(i*.7),i):ae(l,o);break;default:d=Q(.85)?ae(u,i):ae(l,o)}return n.type==="appraiser"?d=s==="new"?l:s==="used"?i:s==="worn"?Math.max(u,Math.round(i*.85)):u:n.type==="pushy"?d=Math.max(d,Math.round(o*ae(115,140)/100)):n.type==="impulsive"?d=Math.max(u,Math.round(d*.9)):n.type==="hypehunter"&&(e.season||e.tier>=5)?d=Math.round(d*1.2):n.type==="collector"&&n.otherItems.includes(e.id)&&(d=Math.max(u,Math.round(d*.8))),{uid:Bi(),itemId:e.id,condition:s,price:d,seller:n}}function xi(e,t){const a=e.slice(),n=[];for(let s=0;s<t&&a.length;s++){const i=a.map(d=>Math.max(0,d.caseChance)),u=i.some(d=>d>0)?ta(i):ae(0,a.length-1),l=a.splice(u,1)[0];n.push(Ni(l))}return n}function qi(e,t){const a=e.price/t.priceMin,n=Math.max(0,2.2-a)/1.2;return Math.min(.6,B.stolenBaseChance+n*.3)}const Pi=()=>ae(B.hasty.minSec,B.hasty.maxSec);function Di(){return{openedSinceBonus:0,pendingCaseIds:[]}}const Ms=e=>e==="autumn:mythic"||e==="autumn-owned:mythic";function zt(e,t,a){const n=Math.max(0,Math.floor(a));if(n===0||Ms(t))return e;const s=e.openedSinceBonus+n,i=Math.floor(s/10);return{openedSinceBonus:s%10,pendingCaseIds:[...e.pendingCaseIds,...Array.from({length:i},()=>t)]}}function ws(e,t){return e.pendingCaseIds[0]!==t?null:{...e,pendingCaseIds:e.pendingCaseIds.slice(1)}}const nn=180,zi=12,X=ea,Cs=se.map(e=>({id:e.id,name:e.id,tier:e.tier,priceMin:e.priceMin,priceMax:e.priceMax,quickSell:Math.round(e.priceMin/2),quickSellBroken:Math.round(e.priceMin/5),caseChance:e.weight,image:e.image,season:Hr})),ji=Cs.filter(e=>se.find(t=>t.id===e.id)?.chestId!=="mythic"),Fi=[...X,...ji],Gi=e=>Se(e)?Fi:X,sn=(e=Date.now())=>xi(Gi(e),zi),Hi=[...X,...Cs],A=e=>Hi.find(t=>t.id===e),Ee=Qt.cases,Ui={coins:0,yan:0,market:sn(),marketDeadline:Date.now()+nn*1e3,inventory:[],listings:[],chats:[],claimedDays:0,salesCount:0,totalSalesCount:0,megaOfferLastMilestone:0,autumn2026:ps(),caseOpeningBonus:Di(),redeemedPromoCodes:[],workLevel:1,screen:"buy",musicOn:!0,soundOn:!0,musicVol:.7,soundVol:.7,lang:"ru"},c=vi(Ui);function As(e){Dr(e),c.setState(t=>({lang:e,market:t.market.map(a=>({...a,seller:{...a.seller,name:bn(a.seller.name)}})),chats:t.chats.map(a=>({...a,npc:{...a.npc,name:bn(a.npc.name)},gateWord:a.gateWord?Wa(a.gateWord):void 0}))}))}function j(e,t={}){c.setState({screen:e,...t})}function z(e){c.setState({toast:e}),C(()=>c.getState().toast===e&&c.setState({toast:void 0}),2200)}const ye=(e,t,a="new")=>({uid:lt("e"),itemId:e.id,condition:a,price:t});function Ki(e,t){const{seller:a,askingPrice:n,condition:s}=t,i=a.mood,o=(n-e)/n;if(o<=0)return nt(i,()=>r("trade.discountOk"));const u=B.discountByCondition[s],l=!!t.itemId&&a.otherItems.includes(t.itemId),d=!!t.seasonalItem||(t.itemTier??0)>=5;let m=1,p=0,h=u.maxFrac;if(a.type==="appraiser"&&(p=.18,h=Math.min(.8,h+.08)),a.type==="impulsive"&&(p=.35,h=Math.min(.8,h+.12)),a.type==="pushy"&&(m=.45,h*=.7),a.type==="collector"&&(l?(p=.25,h=Math.min(.8,h+.1)):(t.itemTier??0)>=3&&(m=.55,h*=.75)),a.type==="hypehunter"&&d&&(m=.5,h*=.7),o>h+.001)return Ba(i,()=>r("trade.discountNo"));const _=(1-o/h)*B.discountSmallAskBonus,b=(t.greeted?B.discountRapportBonus.greeted:0)+Math.min(t.questions,B.discountRapportBonus.maxQuestions)*B.discountRapportBonus.perQuestion,$=u.chance*m*B.moodDiscountMult[i]+p+_+b;return Q(Math.min(.97,$))?nt(at(i,1),()=>r("trade.sellAtYourPrice",{price:Oa(e)})):Ba(i,()=>r("trade.discountNo2"))}function Wi(e,t,a,n){const{seller:s}=e,i=t/a,o=B.tradeTolerance[s.type];if(s.type==="collector"&&n&&s.wants.includes(n))return i<B.luckyTradeMinRatio?{accepted:!1,newMood:s.mood,reply:()=>"",bail:!1,unequal:!0}:nt(at(s.mood,1),()=>r("trade.collectorWishlistYes"));if(i>=B.luckyTradeMinRatio&&Q(B.luckyTradeChance))return nt(at(s.mood,1),()=>r("trade.tradeYes"));if(i<o)return{accepted:!1,newMood:s.mood,reply:()=>"",bail:!1,unequal:!0};let u=B.tradeChance[s.type]*B.moodDiscountMult[s.mood];return i>=1&&(u+=.45),Q(Math.min(.97,u))?nt(at(s.mood,1),()=>r("trade.tradeYes2")):Ba(s.mood,()=>r("trade.tradeNo"))}function Vi(e,t){return Math.max(0,Math.min(e,Math.round(e-t)))}function Yi(e){return Q(B.troll.bailOnCodeword)?{accepted:!1,newMood:e.mood,bail:!0,reply:()=>r("trade.trollTrade")}:nt(at(e.mood,1),()=>r("trade.trollNice"))}const nt=(e,t)=>({accepted:!0,newMood:e,reply:t,bail:!1}),Ba=(e,t)=>({accepted:!1,newMood:e,reply:t,bail:!1});function _t(e,t){return e<t.priceMin?"below":e>t.priceMax?"above":"market"}function Mt(e,t){return t?Math.round(e.priceMin/2):e.priceMin}function Ts(e){return Math.round(e.priceMin*.3)}const Ji=Qt.positionChances;function sa(e,t){const a=e.filter(i=>i.tier===t).sort((i,o)=>o.caseChance-i.caseChance),n=ta(Ji.slice(0,a.length)),s=a[n]??a[0];return{uid:lt("c"),itemId:s.id,condition:"new",price:s.priceMin}}const jt={1:60,2:30,3:8.5,4:1.5};function rn(e){const t=Object.keys(jt).map(Number),a=t[ta(t.map(i=>jt[i]??0))]??1,n=e.filter(i=>i.tier===a),s=n[ae(0,n.length-1)]??n[0];return{uid:lt("c"),itemId:s.id,condition:"new",price:s.priceMin}}const Cn="my_resale_save";let Et=!1;const Zi={capitalm:[{name:"Барыга №1",score:5400,rank:1},{name:"Перекуп",score:2100,rank:2},{name:"Антон",score:880,rank:3},{name:"Резеда",score:310,rank:4},{name:"Скупщик",score:95,rank:5},{name:"Игорь",score:40,rank:6},{name:"Мария",score:12,rank:7}],collectors:[{name:"Коллекционер",score:64,rank:1},{name:"Барыга №1",score:58,rank:2},{name:"Антон",score:41,rank:3},{name:"Резеда",score:27,rank:4},{name:"Игорь",score:14,rank:5}],sellers:[{name:"Оптовик",score:1240,rank:1},{name:"Перекуп",score:870,rank:2},{name:"Барыга №1",score:530,rank:3},{name:"Мария",score:190,rank:4},{name:"Игорь",score:60,rank:5}],autumnsales:[],autumncollectors:[]},Qi={"Барыга №1":"Dealer #1",Перекуп:"Reseller",Антон:"Anton",Резеда:"Rezeda",Скупщик:"Buyer",Игорь:"Igor",Мария:"Maria",Коллекционер:"Collector",Оптовик:"Wholesaler"},Xi={"Барыга №1":"Satıcı #1",Перекуп:"Yeniden satıcı",Антон:"Anton",Резеда:"Rezeda",Скупщик:"Alıcı",Игорь:"İgor",Мария:"Maria",Коллекционер:"Koleksiyoncu",Оптовик:"Toptancı"},eo={"Барыга №1":"Comerciante n.º 1",Перекуп:"Revendedor",Антон:"Antón",Резеда:"Rezeda",Скупщик:"Comprador",Игорь:"Igor",Мария:"María",Коллекционер:"Coleccionista",Оптовик:"Mayorista"},to={en:Qi,tr:Xi,es:eo},ao={async init(){},loadingReady(){},async save(e){localStorage.setItem(Cn,JSON.stringify(e))},async load(){const e=localStorage.getItem(Cn);return e?JSON.parse(e):null},async showRewardedVideo(){return!0},async showFullscreenAdv(){return!1},showBannerAdv(){},hideBannerAdv(){},async getLeaderboard(e){return{entries:(Zi[e]??[]).map(a=>({...a,name:to[ut()]?.[a.name]??a.name}))}},async setScore(){},getLang(){return"ru"},gameplayStart(){},gameplayStop(){},now(){return Date.now()},hasPayments(){return!1},async getCatalog(){return[]},async purchase(e){return{productId:e,token:`mock-${e}`}},async consume(){},async getPurchases(){return[]},isAuthorized(){return Et},getPlayerName(){return""},async auth(){return Et=!0,!0},async canReview(){return{value:Et,reason:Et?void 0:"NO_AUTH"}},async requestReview(){return!0}};let M=ao;function no(e){M=e}let Ce=null,We=null,Ft=!1;function so(e){Ft=e,Ce&&(We&&(We.gain.value=e?0:1),!e&&Ce.state==="suspended"&&Ce.resume())}function Es(){if(typeof window>"u")return null;if(!Ce){const e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{Ce=new e}catch{return null}We=Ce.createGain(),We.gain.value=Ft?0:1,We.connect(Ce.destination)}return Ce.state==="suspended"&&!Ft&&Ce.resume(),Ce}if(typeof window<"u"){const e=()=>Es();window.addEventListener("pointerdown",e,{once:!1}),window.addEventListener("keydown",e,{once:!1})}function Y(e,t,a){const n=e.currentTime+(a.delay??0),s=e.createOscillator(),i=e.createGain();s.type=a.type??"sine",s.frequency.setValueAtTime(a.freq,n),a.to&&s.frequency.exponentialRampToValueAtTime(Math.max(1,a.to),n+a.dur);const o=Math.max(1e-4,(a.vol??1)*t);i.gain.setValueAtTime(1e-4,n),i.gain.exponentialRampToValueAtTime(o,n+.006),i.gain.exponentialRampToValueAtTime(1e-4,n+a.dur),s.connect(i).connect(We??e.destination),s.start(n),s.stop(n+a.dur+.03)}function ha(e,t,a,n,s=0){const i=e.currentTime+s,o=e.createBuffer(1,Math.ceil(e.sampleRate*a),e.sampleRate),u=o.getChannelData(0);for(let p=0;p<u.length;p++)u[p]=(Math.random()*2-1)*(1-p/u.length);const l=e.createBufferSource();l.buffer=o;const d=e.createBiquadFilter();d.type="bandpass",d.frequency.value=1200,d.Q.value=.7;const m=e.createGain();m.gain.setValueAtTime(Math.max(1e-4,n*t),i),m.gain.exponentialRampToValueAtTime(1e-4,i+a),l.connect(d).connect(m).connect(We??e.destination),l.start(i),l.stop(i+a+.02)}const ro={tap:(e,t)=>Y(e,t,{freq:520,type:"square",dur:.045,vol:.16}),select:(e,t)=>Y(e,t,{freq:430,to:660,type:"triangle",dur:.1,vol:.26}),coin:(e,t)=>{Y(e,t,{freq:920,type:"triangle",dur:.09,vol:.3}),Y(e,t,{freq:1380,type:"triangle",dur:.13,vol:.26,delay:.07})},sell:(e,t)=>{Y(e,t,{freq:660,type:"triangle",dur:.1,vol:.3}),Y(e,t,{freq:990,type:"triangle",dur:.14,vol:.28,delay:.09})},buy:(e,t)=>{Y(e,t,{freq:500,type:"sine",dur:.1,vol:.3}),Y(e,t,{freq:760,type:"sine",dur:.14,vol:.28,delay:.08})},message:(e,t)=>{Y(e,t,{freq:740,type:"sine",dur:.12,vol:.3}),Y(e,t,{freq:1040,type:"sine",dur:.16,vol:.26,delay:.1})},error:(e,t)=>{Y(e,t,{freq:440,type:"triangle",dur:.13,vol:.26}),Y(e,t,{freq:300,type:"triangle",dur:.2,vol:.24,delay:.11})},gift:(e,t)=>[0,.07,.14].forEach((a,n)=>Y(e,t,{freq:700+n*260,type:"triangle",dur:.14,vol:.26,delay:a})),win:(e,t)=>[523,659,784,1047].forEach((a,n)=>Y(e,t,{freq:a,type:"triangle",dur:.3,vol:.28,delay:n*.08})),caseOpen:(e,t)=>{ha(e,t,.4,.22),Y(e,t,{freq:300,to:900,type:"sawtooth",dur:.4,vol:.18})},success:(e,t)=>{Y(e,t,{freq:784,type:"sine",dur:.1,vol:.3}),Y(e,t,{freq:1175,type:"sine",dur:.16,vol:.26,delay:.08})},seasonReward:(e,t)=>{ha(e,t,.16,.08),[392,523,659,1047].forEach((a,n)=>Y(e,t,{freq:a,type:n===3?"sine":"triangle",dur:n===3?.32:.18,vol:n===3?.34:.27,delay:n*.075}))},mythicPulse:(e,t)=>{Y(e,t,{freq:92,to:54,type:"sine",dur:.28,vol:.55}),Y(e,t,{freq:184,to:110,type:"triangle",dur:.18,vol:.22})},mythicExplosion:(e,t)=>{ha(e,t,.75,.58),Y(e,t,{freq:72,to:34,type:"sine",dur:.78,vol:.72}),Y(e,t,{freq:180,to:960,type:"sawtooth",dur:.48,vol:.24}),[880,1320,1760].forEach((a,n)=>Y(e,t,{freq:a,type:"triangle",dur:.34,vol:.25,delay:.08+n*.055}))}};function P(e){const t=c.getState();if(!t.soundOn||Ft)return;const a=Es();!a||a.state!=="running"||ro[e]?.(a,(t.soundVol??.7)*.6)}const io={"001":"Ballpoint pen","002":"Pin","003":"Eraser","004":"Soviet coin","005":"Comb","006":"Bag of chips","007":"Lighter","008":"Lollipop","009":"Burger","010":"Notepad","011":"Socks","012":"Mug","013":"Phone case","014":"Minifigure","015":"Keychain","016":"Book","017":"Wild garlic","018":"Yoga mat","019":"Belt","020":"Cap","021":"USB drive","022":"Mini vacuum","023":"Sunglasses","024":"Mouse","025":"Vinyl record","026":"PSP","027":"Aquarium","028":"Skateboard","029":"Chess set","030":"Speaker","031":"Sneakers","032":"Down jacket","033":"Rollerblades","034":"PS5","035":"Camera","036":"Hoverboard","037":"Bicycle","038":"Guitar","039":"Switch","040":"Snowboard","041":"FPV drone","042":"Mini projector","043":"Inflatable boat","044":"Robot vacuum","045":"E-scooter","046":"iPhone","047":"ATV","048":"Mountain bike","049":"Gaming PC","050":"Laptop","051":"Diamond ring","052":"Studio microphone","053":"Niva","054":"Telescope","055":"Ford Focus","056":"VR headset","057":"Home theater","058":"Pool table","059":"Speedboat","060":"Jet ski","061":"Mini-golf","062":"Snowmobile","063":"Swimming pool","064":"Sauna","065":"Home bowling alley","066":"Home gym","067":"Garage","068":"Tractor","069":"Octavia","070":"Camaro","071":"Mustang","072":"Mercedes","073":"Tesla","074":"Studio apartment","075":"Country house","076":"BMW M5","077":"Coffee shop","078":"Restaurant","079":"Mini hotel","080":"G-Wagon","081":"Office","082":"Ronaldo autograph","083":"Bentley","084":"Golf club","085":"Ferrari","086":"Yacht","087":"3-star hotel","088":"3-room flat in Moscow","089":"Rolls-Royce","090":"Shopping mall","091":"House in Italy","092":"Michelin restaurant","093":"Cruise liner","094":"Water park","095":"Boutique in central Moscow","096":"Bordeaux vineyard","097":"Helicopter","098":"Tuscany villa","099":"Factory",100:"Yacht club",101:"Small island",102:"Bugatti Chiron",103:"Castle in France",104:"20-carat diamond",105:"Penthouse in Dubai",106:"Oil well",107:"Picasso painting",108:"Castle in Scotland",109:"Art collection",110:"Tech startup",111:"Football club",112:"Seaport",113:"5-star hotel",114:"Airline",115:"Business center",116:"Residential complex",117:"Federal TV channel",118:"Oko Tower",119:"Archipelago",120:"San Marino"},oo={"001":"Tükenmez kalem","002":"Çengelli iğne","003":"Silgi","004":"Sovyet madeni parası","005":"Tarak","006":"Cips paketi","007":"Çakmak","008":"Lolipop","009":"Hamburger","010":"Not defteri","011":"Çorap","012":"Kupa","013":"Telefon kılıfı","014":"Mini figür","015":"Anahtarlık","016":"Kitap","017":"Yabani sarımsak","018":"Yoga matı","019":"Kemer","020":"Şapka","021":"USB bellek","022":"Mini elektrikli süpürge","023":"Güneş gözlüğü","024":"Bilgisayar faresi","025":"Plak","026":"PSP","027":"Akvaryum","028":"Kaykay","029":"Satranç takımı","030":"Hoparlör","031":"Spor ayakkabı","032":"Şişme mont","033":"Tekerlekli paten","034":"PS5","035":"Fotoğraf makinesi","036":"Hoverboard","037":"Bisiklet","038":"Gitar","039":"Switch","040":"Snowboard","041":"FPV drone","042":"Mini projektör","043":"Şişme bot","044":"Robot süpürge","045":"Elektrikli scooter","046":"iPhone","047":"ATV","048":"Dağ bisikleti","049":"Oyuncu bilgisayarı","050":"Dizüstü bilgisayar","051":"Pırlanta yüzük","052":"Stüdyo mikrofonu","053":"Lada Niva","054":"Teleskop","055":"Ford Focus","056":"VR başlığı","057":"Ev sinema sistemi","058":"Bilardo masası","059":"Sürat teknesi","060":"Jet ski","061":"Mini golf sahası","062":"Kar motosikleti","063":"Yüzme havuzu","064":"Sauna","065":"Ev tipi bowling salonu","066":"Ev spor salonu","067":"Garaj","068":"Traktör","069":"Škoda Octavia","070":"Chevrolet Camaro","071":"Ford Mustang","072":"Mercedes","073":"Tesla","074":"Stüdyo daire","075":"Kır evi","076":"BMW M5","077":"Kahve dükkânı","078":"Restoran","079":"Butik otel","080":"Mercedes G-Serisi","081":"Ofis","082":"Ronaldo imzası","083":"Bentley","084":"Golf kulübü","085":"Ferrari","086":"Yat","087":"3 yıldızlı otel","088":"Moskova’da 3 odalı daire","089":"Rolls-Royce","090":"Alışveriş merkezi","091":"İtalya’da ev","092":"Michelin yıldızlı restoran","093":"Yolcu gemisi","094":"Su parkı","095":"Moskova merkezinde butik","096":"Bordeaux üzüm bağı","097":"Helikopter","098":"Toskana’da villa","099":"Fabrika",100:"Yat kulübü",101:"Küçük ada",102:"Bugatti Chiron",103:"Fransa’da şato",104:"20 karatlık elmas",105:"Dubai’de çatı katı",106:"Petrol kuyusu",107:"Picasso tablosu",108:"İskoçya’da şato",109:"Sanat koleksiyonu",110:"Teknoloji girişimi",111:"Futbol kulübü",112:"Liman",113:"5 yıldızlı otel",114:"Havayolu şirketi",115:"İş merkezi",116:"Konut kompleksi",117:"Ulusal televizyon kanalı",118:"Oko Kulesi",119:"Takımada",120:"San Marino"},co={"001":"Bolígrafo","002":"Imperdible","003":"Goma de borrar","004":"Moneda soviética","005":"Peine","006":"Bolsa de patatas fritas","007":"Encendedor","008":"Piruleta","009":"Hamburguesa","010":"Bloc de notas","011":"Calcetines","012":"Taza","013":"Funda de teléfono","014":"Minifigura","015":"Llavero","016":"Libro","017":"Ajo silvestre","018":"Esterilla de yoga","019":"Cinturón","020":"Gorra","021":"Memoria USB","022":"Mini aspiradora","023":"Gafas de sol","024":"Ratón","025":"Disco de vinilo","026":"PSP","027":"Acuario","028":"Monopatín","029":"Juego de ajedrez","030":"Altavoz","031":"Zapatillas deportivas","032":"Chaqueta de plumas","033":"Patines","034":"PS5","035":"Cámara","036":"Hoverboard","037":"Bicicleta","038":"Guitarra","039":"Switch","040":"Tabla de snowboard","041":"Dron FPV","042":"Mini proyector","043":"Bote inflable","044":"Robot aspirador","045":"Patinete eléctrico","046":"iPhone","047":"Quad","048":"Bicicleta de montaña","049":"PC gaming","050":"Portátil","051":"Anillo de diamantes","052":"Micrófono de estudio","053":"Lada Niva","054":"Telescopio","055":"Ford Focus","056":"Visor de realidad virtual","057":"Cine en casa","058":"Mesa de billar","059":"Lancha rápida","060":"Moto de agua","061":"Campo de minigolf","062":"Moto de nieve","063":"Piscina","064":"Sauna","065":"Bolera doméstica","066":"Gimnasio doméstico","067":"Garaje","068":"Tractor","069":"Škoda Octavia","070":"Chevrolet Camaro","071":"Ford Mustang","072":"Mercedes","073":"Tesla","074":"Estudio","075":"Casa de campo","076":"BMW M5","077":"Cafetería","078":"Restaurante","079":"Hotel boutique","080":"Mercedes Clase G","081":"Oficina","082":"Autógrafo de Ronaldo","083":"Bentley","084":"Club de golf","085":"Ferrari","086":"Yate","087":"Hotel de 3 estrellas","088":"Piso de 3 habitaciones en Moscú","089":"Rolls-Royce","090":"Centro comercial","091":"Casa en Italia","092":"Restaurante con estrella Michelin","093":"Crucero","094":"Parque acuático","095":"Boutique en el centro de Moscú","096":"Viñedo en Burdeos","097":"Helicóptero","098":"Villa en la Toscana","099":"Fábrica",100:"Club náutico",101:"Isla pequeña",102:"Bugatti Chiron",103:"Castillo en Francia",104:"Diamante de 20 quilates",105:"Ático en Dubái",106:"Pozo de petróleo",107:"Cuadro de Picasso",108:"Castillo en Escocia",109:"Colección de arte",110:"Startup tecnológica",111:"Club de fútbol",112:"Puerto marítimo",113:"Hotel de 5 estrellas",114:"Aerolínea",115:"Centro empresarial",116:"Complejo residencial",117:"Canal nacional de televisión",118:"Torre Oko",119:"Archipiélago",120:"San Marino"},lo={en:io,tr:oo,es:co};function H(e){return e.season==="autumn2026"?r(`season.item.${e.id}`):lo[ut()]?.[e.id]??e.name}const uo="001",mo="015";function oe(){return!c.getState().tutorialDone}function po(e){return oe()&&e==="tier1"?uo:null}let $s=Promise.resolve();function ho(e){$s=e}const fa=e=>e.chats.find(t=>t.id===e.activeChatId)??e.chats[0],yt=[{id:"pickCase",sel:'[data-case="tier1"]',hint:"tut.pickCase",done:e=>e.screen!=="cases"},{id:"openCase",sel:"[data-buy]",hint:"tut.openCase",done:e=>e.screen==="roulette"},{id:"keep",sel:'[data-keep="0"]',hint:"tut.keep",done:e=>e.screen==="case-open"},{id:"goInv",sel:'[data-nav="inventory"]',hint:"tut.goInv",done:e=>e.screen==="inventory"},{id:"list",sel:"[data-list]",hint:"tut.list",done:e=>e.screen==="sell-setup"},{id:"price",sel:".sell",mode:"slider",hint:"tut.price",done:e=>e.screen==="sales"},{id:"goChat",sel:'[data-nav="chats"]',delayMs:2600,hint:"tut.goChat",done:e=>e.screen==="chats"},{id:"sellAccept",sel:"[data-accept]",hint:"tut.sellAccept",done:e=>(e.salesCount??0)>=1},{id:"goBuy",sel:'[data-nav="buy"]',hint:"tut.goBuy",onEnter:fo,done:e=>e.screen==="buy"},{id:"pickGoods",sel:".card[data-uid]",hint:"tut.pickGoods",done:e=>e.screen==="buy-item"},{id:"write",sel:"[data-write]",delayMs:1e3,hint:"tut.write",done:e=>e.screen==="chats"},{id:"greet",sel:"[data-greet]",hint:"tut.greet",done:e=>fa(e)?.greeted===!0},{id:"ask",sel:"[data-ask]",hint:"tut.ask",done:e=>(fa(e)?.questions??0)>=1},{id:"buyNow",sel:"[data-takenow]",hint:"tut.buyNow",done:e=>fa(e)?.done===!0}];function fo(){const e=c.getState().coins,t=aa("talker"),a={uid:"tut-key",itemId:mo,condition:"new",price:e,seller:t};c.setState({market:[a],marketFresh:!1})}let He=0,$t=!1,Os=0;function go(){c.setState({coins:0,inventory:[],listings:[],chats:[],market:[],marketFresh:!1,salesCount:0,seenItems:[],invTab:"inventory",screen:"cases"})}let An=0;const yo=1e3,ko=800;function Is(e){He=e,Os=Ze(),Fe(!1),W&&(W.classList.add("is-moving"),ge(An),An=C(()=>W?.classList.remove("is-moving"),600)),yt[e]?.onEnter?.()}function vo(){if(!$t){for($t=!0;He<yt.length&&yt[He].done(c.getState());){if(He+1>=yt.length){$t=!1,Bs();return}Is(He+1)}$t=!1}}let W=null,Ge=null,on=0,Tn="",En=0,$n=44;function bo(){W=document.createElement("div"),W.className="tut",W.innerHTML=`
    <div class="tut__gate"></div>
    <div class="tut__spot"></div>
    <div class="tut__block tut__block--t"></div>
    <div class="tut__block tut__block--b"></div>
    <div class="tut__block tut__block--l"></div>
    <div class="tut__block tut__block--r"></div>
    <div class="tut__tap"></div>
    <div class="tut__pointer">
      <svg viewBox="0 0 40 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <path d="M16 21V7.5a4 4 0 0 1 8 0V20l4.2.9a6 6 0 0 1 4.6 6.5l-1 8.2A8 8 0 0 1 24 47h-3.4a8 8 0 0 1-6.3-3.1L6.6 33.7a4 4 0 0 1 .9-5.7 4 4 0 0 1 5.1.5L16 31V21Z"
          fill="#fff" stroke="#2a2a2a" stroke-width="2.2" stroke-linejoin="round"/>
      </svg>
    </div>
    <div class="tut__hint"></div>`,document.body.appendChild(W),Ge=document.createElement("button"),Ge.className="tut__skip",Ge.textContent=r("tut.skip"),Ge.addEventListener("click",()=>{Bs()}),document.body.appendChild(Ge)}function Ot(){W&&W.classList.add("is-off")}function It(e){W&&W.querySelector(".tut__gate").classList.toggle("is-on",e)}function Fe(e){W&&(W.querySelector(".tut__pointer").classList.toggle("is-shown",e),W.querySelector(".tut__hint").classList.toggle("is-shown",e),e||W.querySelector(".tut__tap").classList.remove("is-on"))}function On(e,t){const a=Number.parseFloat(e);return Number.isFinite(a)?e.trim().endsWith("%")?t*a/100:a:0}function So(e,t,a,n){const s=getComputedStyle(e),i=e.getBoundingClientRect().width,o=e.getBoundingClientRect().height,u=[s.borderTopLeftRadius,s.borderTopRightRadius,s.borderBottomRightRadius,s.borderBottomLeftRadius].map(m=>{const[p="0",h=p]=m.trim().split(/\s+/);return[Math.min(a/2,On(p,i)+t),Math.min(n/2,On(h,o)+t)]}),l=u.map(([m])=>`${Math.round(m)}px`).join(" "),d=u.map(([,m])=>`${Math.round(m)}px`).join(" ");return`${l} / ${d}`}function _o(e){if(!W)return;W.classList.remove("is-off");const t=8,a=1,n=e.getBoundingClientRect(),s=Math.round(Math.max(0,n.left-t)),i=Math.round(Math.max(0,n.top-t)),o=Math.round(n.width+t*2),u=Math.round(n.height+t*2),l=window.innerWidth,d=window.innerHeight,m=W.querySelector(".tut__spot"),p=So(e,t,o,u);m.style.cssText=`left:${s}px;top:${i}px;width:${o}px;height:${u}px;border-radius:${p}`;const h=(_,b,$,w,L)=>{const V=W.querySelector(_);V.style.cssText=`left:${b}px;top:${$}px;width:${Math.max(0,w)}px;height:${Math.max(0,L)}px`};h(".tut__block--t",0,0,l,i+a),h(".tut__block--b",0,i+u-a,l,d-(i+u)+a),h(".tut__block--l",0,i-a,s,u+a*2),h(".tut__block--r",s+o,i-a,l-(s+o),u+a*2)}function Mo(e,t){if(!W)return;const a=8,n=e.getBoundingClientRect(),s=Math.round(Math.max(0,n.left-a)),i=Math.round(Math.max(0,n.top-a)),o=Math.round(n.width+a*2),u=Math.round(n.height+a*2),l=window.innerWidth,d=window.innerHeight,m=W.querySelector(".tut__pointer"),p=W.querySelector(".tut__tap");if(t.mode==="slider"){const V=document.querySelector("#track"),le=document.querySelector("[data-submit]");if(V&&le){m.classList.add("tut__pointer--travel");const ue=V.getBoundingClientRect(),he=le.getBoundingClientRect(),U=ue.left+ue.width/2,v=ue.top+ue.height/2,f=Math.min(ue.width*.3,150),g=he.left+he.width/2,y=he.top+he.height/2-4,E=4200,S=1100,R=1e3,I=1100,J=E+S+R+I,x=Ze()%J,G=ke=>(1-Math.cos(ke*Math.PI))/2;let D,Z,ne=!1;if(x<E){const ke=Math.sin(Math.PI*x/E);D=U+f*ke*Math.sin(2*Math.PI*1.5*x/E),Z=v}else if(x<E+S){const ke=G((x-E)/S);D=U+(g-U)*ke,Z=v+(y-v)*ke}else if(x<E+S+R)D=g,Z=y,ne=!0;else{const ke=G((x-E-S-R)/I);D=g+(U-g)*ke,Z=y+(v-y)*ke}m.style.left=`${D}px`,m.style.top=`${Z}px`,p.style.left=`${g}px`,p.style.top=`${y+4}px`,p.classList.toggle("is-on",ne)}}else m.classList.remove("tut__pointer--travel"),p.classList.remove("is-on"),m.style.left=`${s+o/2}px`,m.style.top=`${i+4}px`;const h=W.querySelector(".tut__hint"),_=t.hint?r(t.hint):"";_!==Tn&&(h.textContent=_,Tn=_,En=h.offsetWidth||0,$n=h.offsetHeight||44);const b=16,$=En,w=$n;h.style.left=`${Math.min(l-$/2-8,Math.max($/2+8,s+o/2))}px`;const L=i+u+b;h.style.top=`${L+w<d-8?L:Math.max(8,i-w-b)}px`}function Rs(){if(on=Le(Rs),!oe()){Ls();return}const e=yt[He];if(!e||!e.sel){Ot(),Fe(!1),It(!1);return}const t=Ze()-Os,a=e.delayMs??0,n=He===0?0:yo;if(t<a){Ot(),Fe(!1),It(!1);return}if(t<a+n){Ot(),Fe(!1),It(!0);return}It(!1);const s=document.querySelector(e.sel);if(!s){Ot(),Fe(!1);return}_o(s),t>=a+n+ko?(Mo(s,e),Fe(!0)):Fe(!1)}function Ls(){Ra(on),W?.remove(),W=null,Ge?.remove(),Ge=null}function wo(){oe()&&(bo(),Is(0),c.subscribe(()=>{oe()&&vo()}),on=Le(Rs))}let In=!1;async function Bs(){if(In)return;In=!0,c.setState({tutorialDone:!0}),Ue(),Ls(),await Co();const e=li(M.now());j(e,e==="season"?{backTo:"buy"}:{})}function Co(){M.gameplayStop();const e=document.createElement("div");e.id="loader",e.innerHTML='<img class="logo" src="./assets/icons/logo.svg" alt="" /><div class="bar"><div class="fill" style="width:100%"></div></div>',document.body.appendChild(e);const t=new Promise(a=>C(a,1e3));return Promise.all([$s,t]).then(()=>new Promise(a=>{e.classList.add("is-done"),C(()=>{e.remove(),M.gameplayStart(),Xs(),a()},500)}))}const Ao=25,To=10,Na=25,Rn=({screen:e,backTo:t})=>e==="chats"||e==="chat-item"||e==="trade-pick"||e==="item-view"&&t==="chats",Eo=(e,t)=>Rn(e)&&!Rn(t);function $o(e){let t=!1;return{recordClaim(a,n){return t||!n||a<Ao?!1:(t=!0,e(),!0)}}}function Oo(e,t){let a=!1;return{recordNavigation(n){return a||!n.eligible||!n.leftChats||n.salesCount<e?!1:(a=!0,t(),!0)}}}function Io(e,t){let a=Math.max(0,Math.trunc(e)),n=!1;return{recordSales(s){const i=Math.max(0,Math.trunc(s.totalSales)),o=i>a;return a=Math.max(a,i),n||!s.eligible||!o||i===0||i%Na!==0||i<=s.lastShownMilestone?!1:(n=!0,t(i),!0)}}}const Ro=["coins","yan","market","marketDeadline","inventory","listings","claimedDays","lastClaimAt","firstLaunchAt","starterBought","starterSalesOfferSeen","autumnBundleBought","megaBundleBought","megaOfferLastMilestone","autumnBundleOfferStartedAt","ownedCases","salesCount","totalSalesCount","seenItems","autumn2026","caseOpeningBonus","redeemedPromoCodes","autumnGuideSeen","noAds","reviewRewardGiven","vkCommunityRewardGiven","tutorialDone","workLevel","musicOn","soundOn","musicVol","soundVol"];function Ns(e){return Object.fromEntries(Ro.map(t=>[t,e[t]]))}function xs(e){return JSON.stringify(Ns(e))}function Lo(e,t,a=ls){const n=(l,d=0)=>typeof l=="number"&&Number.isFinite(l)?Math.max(0,Math.trunc(l)):d,s=n(t.salesCount,e.salesCount??0),i=Math.max(s,n(t.totalSalesCount,e.totalSalesCount??s)),o=Math.floor(i/Na)*Na,u=t.megaOfferLastMilestone==null?o:Math.min(o,n(t.megaOfferLastMilestone));return{...e,...t,totalSalesCount:i,megaOfferLastMilestone:u,autumn2026:fs(t.autumn2026,a,t.autumnGuideSeen===!0)}}const qe={collectors:"collectors",rich:"capitalm",sellers:"sellers",autumnSales:"autumnsales",autumnCollectors:"autumncollectors"},qs=1e6,Bo=676767;function xa(e){return e===Bo}function pt(e,t){return e==="rich"?Math.floor(t/qs):t}function No(e,t){return e==="rich"?t*qs:t}function xo(e){return e==="chat"}const qo=new Set(ea.map(e=>e.id)),Po=new Set(se.map(e=>e.id));function Do(e){const t=new Set(e.seenItems??[]);let a=!1,n=e.autumn2026.items,s=!1;for(const i of e.inventory){if(Po.has(i.itemId)){(n[i.itemId]??0)<=0&&(s||(n={...n}),n[i.itemId]=1,s=!0);continue}qo.has(i.itemId)&&!t.has(i.itemId)&&(t.add(i.itemId),a=!0)}return!a&&!s?null:{...a?{seenItems:[...t]}:{},...s?{autumn2026:{...e.autumn2026,items:n}}:{}}}const zo="https://vk.ru/myresale_yg",ce="vk";function wt(e){const t=Number.isFinite(e)?Math.max(0,e):0;return t>2e10?8:t>7e8?7:t>4e7?6:t>3e6?5:t>5e5?4:3}async function jo(e,t,a=Math.random){return await t()?hi(e,a):null}function Fo(e,t){const a=di(e.autumn2026,t);return a===e.autumn2026?null:{autumn2026:a}}function Go(e,t,a){const n=t.itemIds.map(s=>se.find(i=>i.id===s)).filter(s=>s!=null).map(a);return{autumn2026:t.state,inventory:[...e.inventory,...n]}}function Ho(e,t,a){const n=be.find(l=>l.required===t);if(!n)return null;let s=gi(e.autumn2026,t);if(!s)return null;let i=e.coins,o=e.inventory,u={...e.ownedCases};for(const l of n.rewards)if(l.kind==="leaves")s={...s,leaves:s.leaves+l.amount};else if(l.kind==="coins")i+=l.amount;else if(l.kind==="autumnChest")s={...s,chests:{...s.chests,[l.chestId]:s.chests[l.chestId]+l.amount}};else if(l.kind==="case")u[l.caseId]=(u[l.caseId]??0)+l.amount;else{const d=se.find(p=>p.id===l.itemId),m=d?A(l.itemId):X.find(p=>p.id===l.itemId);m&&(o=[...o,a(m)],d&&(s={...s,items:{...s.items,[l.itemId]:(s.items[l.itemId]??0)+1}}))}return{autumn2026:s,coins:i,inventory:o,ownedCases:u}}const Ps={SEASON:{autumnChestId:"traveler"},AUTUMN2026:{autumnChestId:"pumpkin"},HALLOWEEN:{autumnChestId:"pumpkin",autumnItemIds:["halloween_costume","jack_o_lantern"]},J67HGTOKT:{classicCaseId:"tier7"},KNBFTUIHV:{classicCaseId:"tier8"},"872GCBMK":{classicCaseId:"tier8",classicCaseAmount:3}},Uo=new Set([...Object.keys(Ps),"GIFT"]);function Ko(e,t,a){const n=t.trim().toUpperCase();if(!Uo.has(n))return null;const s=Array.isArray(e.redeemedPromoCodes)?e.redeemedPromoCodes.map(d=>d.trim().toUpperCase()):[];if(s.includes(n))return null;const i=n==="GIFT"?{classicCaseId:`tier${wt(e.coins)}`}:Ps[n],o={...e.ownedCases};let u=e.autumn2026,l=e.inventory;if(i.classicCaseId){const d=i.classicCaseAmount??1;o[i.classicCaseId]=(o[i.classicCaseId]??0)+d}if(i.autumnChestId&&(u={...u,chests:{...u.chests,[i.autumnChestId]:u.chests[i.autumnChestId]+1}}),i.autumnItemIds?.length){const d={...u.items},m=i.autumnItemIds.map(p=>(d[p]=(d[p]??0)+1,a(p)));u={...u,items:d},l=[...l,...m]}return{inventory:l,ownedCases:o,autumn2026:u,redeemedPromoCodes:[...s,n]}}const qa=7*24*60*60*1e3,Wo=24*60*60*1e3,ga=qa+Wo,Ln=6;function Vo(e,t){const a=Number.isFinite(e)?e:t,n=Math.max(0,t-a),s=Math.floor(n/ga);if(s>=Ln)return{phase:"ended",available:!1,cycle:Ln,remainingMs:0};const i=n-s*ga;return i<qa?{phase:"active",available:!0,cycle:s+1,remainingMs:qa-i}:{phase:"pause",available:!1,cycle:s+1,remainingMs:ga-i}}const Yo=e=>e.tutorialDone===!0,$e=()=>M.now()-Si();function Ue(){if(oe())return;const e=["buy","buy-item"].includes(c.getState().screen);c.setState({market:sn($e()),marketDeadline:$e()+nn*1e3,marketFresh:!e}),e||z(r("toast.marketRefreshed"))}async function Jo(){await M.showRewardedVideo()&&Ue()}const Ds=e=>r(`dlg.cond${e[0].toUpperCase()}${e.slice(1)}`),Zo={talker:1,businessman:-1,hasty:-1};let cn=0;function Qo(e){const t=e.seller;if(t.type==="collector"){const a=t.wants.find(n=>n!==e.itemId)??t.wants[0];if(a){const n=t.otherItems.includes(e.itemId);return r(n?"dlg.collectorSellerDuplicate":"dlg.collectorSellerWant",{wanted:H(A(a))})}}return t.type==="appraiser"?r("dlg.appraiserSellerGreet"):t.type==="impulsive"?r("dlg.impulsiveSellerGreet"):t.type==="pushy"?r("dlg.pushySellerGreet"):t.type==="hypehunter"?r("dlg.hypeSellerGreet"):r("dlg.npcGreet")}function Xo(e){const t=c.getState().chats.find(i=>i.kind==="buy"&&i.uid===e.uid&&!i.done);if(t)return c.setState(i=>({activeChatId:t.id,chatOpen:!0,chats:i.chats.map(o=>o.id===t.id?{...o,unread:!1,ignored:!1}:o)})),t.id;const a=`chat${cn++}`,n=e.seller.type==="troll",s={id:a,npc:e.seller,kind:"buy",itemId:e.itemId,uid:e.uid,price:e.price,messages:[{from:"npc",build:()=>Qo(e)}],unread:!1,greeted:!1,questions:0,done:!1,gate:n?"pending":void 0};if(c.setState(i=>({chats:[s,...i.chats],activeChatId:a,chatOpen:!0})),!oe()){const i=A(e.itemId),o=e.seller.type==="hasty"?Pi():30;(e.seller.type==="hasty"||Q(qi(e,i)))&&C(()=>ec(a),o*1e3)}return a}function ec(e){const t=F(e);!t||t.done||(N(e,()=>r("dlg.stolen")),me(e),oa(t.uid))}const zs=e=>({seller:e.npc,askingPrice:e.price,condition:ln(e.uid),greeted:e.greeted,questions:e.questions,fasterPickup:!1,bulk:!1,itemId:e.itemId,itemTier:A(e.itemId).tier,seasonalItem:!!A(e.itemId).season}),ln=e=>c.getState().market.find(t=>t.uid===e)?.condition??"new",js=(e,t)=>{const a=F(e);K(e,{npc:{...a.npc,mood:na(a.npc,t)}})};function Ne(e){const t=F(e);if(t.npc.type!=="troll"||t.gate!=="pending")return!1;const a=Ae(Pt().trollCodewords);return K(e,{gate:"open",gateWord:a}),C(()=>N(e,()=>r("dlg.gateWarn",{word:Wa(a)})),500),!0}function tc(e){te(e,()=>r("chats.optGreet")),K(e,{greeted:!0}),!Ne(e)&&C(()=>N(e,()=>r("dlg.npcHello")),500)}function ac(e){const t=F(e);te(e,()=>r("chats.optTakeNow")),!Ne(e)&&C(()=>{N(e,()=>r("dlg.npcDealOk")),Gs(e,t.price)},500)}function nc(e){const t=F(e);if(te(e,()=>r("dlg.playerAsk")),K(e,{questions:t.questions+1}),Ne(e))return;const a=ln(t.uid);js(e,Zo[t.npc.type]??0),C(()=>N(e,()=>Ds(a)),500)}const sc={talker:1,businessman:-1};function rc(e){const t=F(e);if(te(e,()=>r("chats.optSmalltalk")),K(e,{smalltalkAsked:!0}),Ne(e))return;const a=t.npc.type;if(a==="hasty"){C(()=>N(e,()=>r("dlg.hastyNoTalk")),500),me(e);return}js(e,sc[a]??0);const n=()=>r(a==="talker"?"dlg.talkerSmalltalk":a==="businessman"?"dlg.bizSmalltalk":"dlg.ordSmalltalk");C(()=>N(e,n),500)}function ic(e,t){const a=F(e);if(te(e,()=>r("dlg.playerDiscount",{price:q(t)})),Ne(e))return;const n=Ki(t,zs(a));K(e,{npc:{...a.npc,mood:n.newMood}}),C(()=>{N(e,n.reply),n.accepted?Gs(e,t):n.bail&&me(e)},500)}const Pa=e=>{const t=A(e);return(t.priceMin+t.priceMax)/2};function oc(e,t){const a=F(e),n=c.getState().inventory.find(l=>l.uid===t);if(!n)return;const s=A(n.itemId),i=Pa(n.itemId),o=a.price;if(te(e,()=>r("dlg.playerTradeOffer",{name:H(s)})),Ne(e))return;const u=Wi(zs(a),i,o,n.itemId);if(K(e,{npc:{...a.npc,mood:u.newMood}}),u.unequal){const l=Vi(a.price,i);if(l<=0)return;K(e,{surcharge:l,surchargeGive:n.uid}),C(()=>N(e,()=>r("dlg.surchargeOffer",{amount:q(l)})),500);return}C(()=>{N(e,u.reply),u.accepted&&un(e,n.uid)},500)}function un(e,t,a=0){const n=F(e),s=A(n.itemId);c.setState(i=>({coins:i.coins-a,inventory:[...i.inventory.filter(o=>o.uid!==t),ye(s,s.priceMin)]})),oa(n.uid),Hs(e),z(r("toast.tradeGot",{name:H(s)}))}function cc(e){const t=F(e);if(!t.surcharge||!t.surchargeGive||!c.getState().inventory.some(n=>n.uid===t.surchargeGive))return;if(c.getState().coins<t.surcharge){N(e,()=>r("dlg.notEnoughSur"));return}const a=t.surcharge;te(e,()=>r("dlg.playerAcceptSur",{amount:q(a)})),C(()=>N(e,()=>r("dlg.npcSwap")),450),un(e,t.surchargeGive,t.surcharge)}function lc(e,t){const a=F(e);if(!a.surcharge||!a.surchargeGive)return;te(e,()=>r("dlg.playerCounterSur",{amount:q(t)}));const n=Math.round(a.surcharge*.75);C(()=>{t>=n&&c.getState().coins>=t?(N(e,()=>r("dlg.npcSurDeal")),un(e,a.surchargeGive,t)):N(e,()=>r("dlg.npcSurLow",{amount:q(n)}))},500)}function uc(e){te(e,()=>r("dlg.playerDeclineTrade")),K(e,{surcharge:void 0,surchargeGive:void 0}),C(()=>N(e,()=>r("dlg.npcOkWhatever")),450)}function dc(e){te(e,()=>r("chats.optBye")),C(()=>N(e,()=>r("dlg.npcBye")),400),me(e)}function mc(e){te(e,()=>r("dlg.gateRefuse")),C(()=>N(e,()=>r("dlg.gateBail")),400),me(e)}function pc(e){const t=F(e);te(e,()=>t.gateWord?Wa(t.gateWord):Pt().trollCodewords[0]??"");const a=Yi(t.npc);if(a.bail){K(e,{gate:"passed",npc:{...t.npc,mood:a.newMood}}),C(()=>{N(e,a.reply),me(e,{reportable:!0})},500);return}const n=a.newMood;if(t.kind==="sell"){const s=t.counterPrice??t.price;K(e,{gate:"passed",npc:{...t.npc,mood:n}}),t.counterPrice==null||Q(B.troll.acceptRaisedCounterChance)?C(()=>{N(e,()=>r("dlg.trollBuy")),Js(e,s)},500):C(()=>N(e,()=>r("dlg.trollCounterReject")),500);return}C(()=>{if(Q(.6)){const s=Math.round(t.price*(.7+Math.random()*.15));K(e,{gate:"passed",price:s,npc:{...t.npc,mood:n}}),N(e,()=>r("dlg.trollSell",{price:q(s)}))}else K(e,{gate:"passed",npc:{...t.npc,mood:n}}),N(e,()=>r("dlg.gatePass"))},500)}function hc(e){const t=B.troll.reportReward;c.setState(a=>({coins:a.coins+t})),K(e,{reportable:!1}),z(r("toast.reportSent",{reward:q(t)})),Us(e,1500)}function Fs(e){typeof window<"u"&&window.dispatchEvent(new CustomEvent("game:bought",{detail:{itemId:e}}))}function Gs(e,t){const a=F(e);if(c.getState().coins<t){N(e,()=>r("dlg.notEnoughMoney")),P("error");return}const n=A(a.itemId);c.setState(s=>({coins:s.coins-t,inventory:[...s.inventory,ye(n,t,ln(a.uid))]})),oa(a.uid),Hs(e),P("buy"),z(r("toast.bought",{name:H(n)})),Fs(n.id)}function Hs(e){me(e)}function me(e,t={}){const a=F(e);K(e,{done:!0,typing:!1,...t}),a?.kind==="buy"&&oa(a.uid),t.reportable||Us(e)}function Us(e,t=2600){C(()=>{F(e)&&(K(e,{closing:!0}),C(()=>fc(e),450))},t)}function fc(e){c.setState(t=>{const a=t.chats.filter(s=>s.id!==e),n=t.activeChatId===e?a[0]?.id:t.activeChatId;return{chats:a,activeChatId:n}})}function Ct(e){const t=xo(e);c.setState(a=>({totalSalesCount:(a.totalSalesCount??a.salesCount??0)+1,...t?{salesCount:(a.salesCount??0)+1,...Fo(a,M.now())??{}}:{}}))}let ya=!1;const Ks="game:autumn-milestone-claimed";async function Bn(e,t=Math.random,a=!1,n=1){if(ya)return[];ya=!0;try{if(!a&&!Se(M.now()))return z(r("common.unavailable")),P("error"),[];const s=Math.max(1,Math.min(4,Math.floor(n))),i=c.getState();let o=i.coins,u;if(e==="ad"){if(s!==1)return[];u=await jo(i.autumn2026,()=>M.showRewardedVideo(),t)}else{let p=i.autumn2026;if(a){if(s!==1||p.chests[e]<=0)return z(r("common.unavailable")),P("error"),[]}else{if(e==="mythic")return z(r("common.unavailable")),P("error"),[];for(let b=0;b<s;b+=1){const $=mi(p,o,e);if(!$)return z(r("toast.notEnough")),P("error"),[];p=$.state,o=$.coins}}const h=[];let _=0;for(let b=0;b<s;b+=1){const $=pi(p,e,t);if(!$)return[];p=$.state,h.push(...$.itemIds),_+=$.duplicates}u={state:p,itemIds:h,duplicates:_}}if(!u)return[];const l=e==="ad"?c.getState():i,d=[],m=Go({...l,coins:o,autumn2026:u.state},u,p=>{const h=ye(A(p.id),Math.round((p.priceMin+p.priceMax)/2));return d.push(h),h});return c.setState({coins:o,...m,caseOpeningBonus:zt(l.caseOpeningBonus,`autumn:${e}`,s)}),P("caseOpen"),d}finally{ya=!1}}function gc(e){const t=be.find(n=>n.required===e)?.rewards.filter(n=>n.kind==="item").map(n=>n.itemId)??[],a=Ho(c.getState(),e,n=>ye(n,n.priceMin));return a?(c.setState(a),P("gift"),z(r("season.rewardClaimed")),t.forEach(Fs),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Ks,{detail:{required:e}})),!0):!1}function yc(e){const t=Ko(c.getState(),e,a=>{const n=A(a);return ye(n,Math.round((n.priceMin+n.priceMax)/2))});return t?(c.setState(t),P("gift"),!0):!1}function kc(e){const t=hn(e);if(!t)return;const a=A(t.itemId),n=Mt(a,t.condition==="broken");c.setState(s=>({coins:s.coins+n,inventory:s.inventory.filter(i=>i.uid!==e)})),Ct("inventoryQuick"),z(r("toast.sold",{price:q(n)}))}function vc(e){const t=hn(e);if(!t||t.condition!=="broken")return;const a=Ts(A(t.itemId));if(c.getState().coins<a)return z(r("toast.notEnough"));c.setState(n=>({coins:n.coins-a,inventory:n.inventory.map(s=>s.uid===e?{...s,condition:"new"}:s)})),z(r("toast.repaired"))}function Ws(e){const t=c.getState().listings.find(a=>a.uid===e);t&&(c.setState(a=>({listings:a.listings.filter(n=>n.uid!==e),inventory:[...a.inventory,{uid:t.uid,itemId:t.itemId,condition:t.condition,price:t.price}],chats:a.chats.filter(n=>!(n.kind==="sell"&&n.uid===e))})),z(r("toast.unlisted")))}function bc(e,t){const a=hn(e);if(!a)return;if(c.getState().listings.length>=6)return z(r("toast.maxListings"));const n={...a,price:t};c.setState(s=>({inventory:s.inventory.filter(i=>i.uid!==e),listings:[...s.listings,n]})),z(r("toast.listed")),dn(n.uid)}function dn(e){if(oe()){C(()=>{const t=c.getState().listings.find(a=>a.uid===e);t&&Sc(t)},2500);return}C(()=>{const t=c.getState().listings.find(n=>n.uid===e);if(!t)return;c.getState().chats.some(n=>n.kind==="sell"&&n.uid===e&&!n.done)||Mc(t),dn(e)},ae(8,20)*1e3)}function Sc(e){const t=aa("ordinary"),a=`chat${cn++}`,n={id:a,npc:t,kind:"sell",itemId:e.itemId,uid:e.uid,price:e.price,messages:[{from:"npc",build:()=>r("buyer.ordFull",{price:q(e.price)})}],unread:!0,flash:"new",greeted:!0,questions:0,done:!1,flake:0,maxPrice:e.price,ourCondition:e.condition};c.setState(s=>({chats:[n,...s.chats]})),z(r("toast.newSaleMsg")),P("message"),ia(a)}const q=T;function _c(e,t){let a=t;const n=A(e.itemId),s=e.price,i=Math.min(s,n.priceMax),o=Math.max(1,n.priceMax-n.priceMin),u=Math.max(0,Math.min(1,(i-n.priceMin)/o)),l=U=>Math.min(s,Math.round(i*(1-U*u)));let d=s,m=0,p=!1,h=!1,_=!1,b=()=>"",$,w,L=!1,V=!1;if(a.type==="collector")a={...a,wants:[n.id,...a.wants.filter(U=>U!==n.id)]},d=Math.max(1,Math.round(i*ae(110,125)/100)),b=()=>r("buyer.collector",{name:H(n),price:q(d)});else if(a.type==="appraiser"){const U=e.condition==="new"?Math.round((n.priceMin+n.priceMax)/2):e.condition==="used"?n.priceMin:e.condition==="worn"?Math.max(n.quickSell,Math.round(n.priceMin*.85)):n.quickSellBroken;d=Math.max(1,Math.min(s,U)),b=()=>r("buyer.appraiser",{condition:r(`condShort.${e.condition}`),price:q(d)})}else if(a.type==="impulsive")d=Math.max(1,Math.round(Math.min(s,n.priceMax)*ae(100,108)/100)),m=.12,b=()=>r("buyer.impulsive",{price:q(d)});else if(a.type==="pushy"){const U=Math.round(B.buyerPushyDiscount.min*100),v=Math.round(B.buyerPushyDiscount.max*100);d=Math.max(1,Math.round(s*(1-ae(U,v)/100))),b=()=>r("buyer.pushyType",{price:q(d)})}else if(a.type==="hypehunter"){const U=!!n.season||n.tier>=5;d=U?Math.max(1,Math.round(i*ae(110,120)/100)):l(B.buyerMaxDiscount.hypehunter),b=()=>r(U?"buyer.hypeWanted":"buyer.hypeRegular",{name:H(n),price:q(d)})}else{const U=a.type!=="hasty"&&Q(B.buyerPushyChance);if(L=!U&&s<=n.priceMax&&Q(B.buyerFullPriceChance[a.type]),U){const v=Math.round(B.buyerPushyDiscount.min*100),f=Math.round(B.buyerPushyDiscount.max*100);d=Math.max(1,Math.round(s*(1-ae(v,f)/100))),b=()=>r("buyer.pushy",{price:q(d)}),m=a.type==="troll"?.3:a.type==="ordinary"?.2:0}else if(L)d=s,b=()=>r("buyer.fairFull",{price:q(s)});else switch(a.type){case"businessman":d=l(B.buyerMaxDiscount.businessman),b=()=>d<s?r("buyer.biz",{price:q(d)}):r("buyer.bizFull",{price:q(d)});break;case"economist":if(Q(B.buyerTradeOfferChance)){const v=Cc(i);p=!0,$=v.id,w=Ac(),b=()=>r("buyer.tradeOffer",{name:H(v)})}else d=l(B.buyerMaxDiscount.economist),b=()=>d<s?r("buyer.econ",{price:q(d)}):r("buyer.econFull",{price:q(d)});break;case"hasty":d=l(B.buyerMaxDiscount.hasty),b=()=>d<s?r("buyer.hasty",{price:q(d)}):r("buyer.hastyFull",{price:q(d)}),m=.5,h=!0;break;case"talker":d=l(B.buyerMaxDiscount.talker),b=()=>r("buyer.talker"),_=!0,h=!0;break;case"troll":d=l(B.buyerMaxDiscount.troll),b=()=>r("buyer.troll",{price:q(d)}),m=.3;break;default:d=l(B.buyerMaxDiscount.ordinary),b=()=>d<s?r("buyer.ord",{price:q(d)}):r("buyer.ordFull",{price:q(d)}),m=.2}!L&&Q(B.luckyBuyerChance)&&(V=!0,d=s,m=0,p=!1,_=!1,h=!1,$=void 0,w=void 0,b=()=>r("buyer.lucky",{price:q(s)}))}const le=Math.min(s,n.priceMax),ue=B.buyerCounterRecovery[a.type],he=L||V?s:Math.max(d,Math.min(le,Math.round(d+(le-d)*ue)));return{npc:a,price:d,flake:m,wantsTrade:p,ignore:h,asksCondition:_,build:b,tradeItemId:$,tradeCondition:w,maxPrice:he,lucky:V,regularFullPrice:L}}function Mc(e){if(!c.getState().listings.some($=>$.uid===e.uid))return;const t=_c(e,aa()),{npc:a,flake:n,wantsTrade:s,ignore:i,asksCondition:o,build:u,tradeItemId:l,tradeCondition:d,maxPrice:m,lucky:p,regularFullPrice:h}=t,_=`chat${cn++}`,b={id:_,npc:a,kind:"sell",itemId:e.itemId,uid:e.uid,price:t.price,messages:[{from:"npc",build:u}],unread:!0,flash:"new",greeted:!0,questions:0,done:!1,flake:n,maxPrice:m,wantsTrade:s,tradeItemId:l,tradeCondition:d,asksCondition:o,ourCondition:e.condition,gate:!p&&!h&&a.type==="troll"?"pending":void 0};c.setState($=>({chats:[b,...$.chats]})),z(r("toast.newSaleMsg")),P("message"),ia(_),C(()=>wc(_),3e4),i&&C(()=>Tc(_),4e4)}function wc(e){const t=F(e);!t||t.done||t.ignored||t.messages.some(a=>a.from==="player")||(K(e,{ignored:!0,flash:"ignored",npc:{...t.npc,mood:na(t.npc,-1)}}),ia(e))}function Cc(e){const t=e*.5,a=e*1.4,n=X.filter(s=>{const i=(s.priceMin+s.priceMax)/2;return i>=t&&i<=a});return Ae(n.length?n:X)}const Ac=()=>{const e=Math.random();return e<.1?"broken":e<.3?"worn":e<.55?"used":"new"};function Tc(e){const t=F(e);!t||t.done||t.messages.some(a=>a.from==="player")||(N(e,()=>r("dlg.ignoredLeave")),me(e))}const Ec=B.buyerConditionDiscount;function $c(e){const t=F(e),a=t.ourCondition??"new";te(e,()=>r(`dlg.told${a[0].toUpperCase()}${a.slice(1)}`)),K(e,{asksCondition:!1,npc:{...t.npc,mood:na(t.npc,1)}}),C(()=>{if(a==="new")N(e,()=>r("buyer.newOk",{price:q(t.price)}));else{const n=Math.round(t.price*(1-Ec[a]));K(e,{price:n}),N(e,()=>r("buyer.condThenDiscount",{cond:r(`condShort.${a}`),price:q(n)}))}},450)}function Oc(e){const t=F(e);te(e,()=>r("dlg.playerRefuse")),K(e,{asksCondition:!1,npc:{...t.npc,mood:na(t.npc,-1)}}),C(()=>N(e,()=>r("dlg.suspicious",{price:q(t.price)})),450)}function Ic(e){const t=F(e);te(e,()=>r("dlg.askTradeCond")),K(e,{tradeAsked:!0});const a=t.tradeCondition??"new";C(()=>N(e,()=>Ds(a)),450)}function Vs(e,t){const a=F(e),n=A(a.tradeItemId);c.setState(s=>({coins:s.coins+t,listings:s.listings.filter(i=>i.uid!==a.uid),inventory:[...s.inventory,{...ye(n,Math.round((n.priceMin+n.priceMax)/2)),condition:a.tradeCondition??"new"}]})),me(e),P("success"),z(t>0?r("toast.tradeGotSur",{name:H(n),amount:q(t)}):r("toast.tradeGot",{name:H(n)}))}function Rc(e){const t=F(e);t.tradeItemId&&c.getState().listings.some(a=>a.uid===t.uid)&&(te(e,()=>r("dlg.playerTrade")),C(()=>N(e,()=>r("dlg.npcSwap")),450),Vs(e,0))}const Ys=e=>c.getState().listings.find(t=>t.uid===e.uid)?.price??A(e.itemId).priceMax,Lc={economist:.95,businessman:1,ordinary:1.05,talker:1.15,hasty:1.1,troll:1.05};function Bc(e,t){const a=F(e);if(!a.wantsTrade||!a.tradeItemId||(te(e,()=>t>0?r("dlg.playerProposeSur",{amount:q(t)}):r("dlg.playerProposeNoSur")),Ne(e)))return;const n=Pa(a.itemId),s=Pa(a.tradeItemId),i=n*(Lc[a.npc.type]??1),o=Math.min(Ys(a),Math.max(0,Math.round(i-s)));C(()=>{c.getState().listings.some(u=>u.uid===a.uid)&&(t<=o?(N(e,()=>r("dlg.surAcceptedSwap")),Vs(e,t)):N(e,()=>r("dlg.surTooMuch",{amount:q(o)})))},500)}function Nc(e){const t=F(e);if(c.getState().listings.some(a=>a.uid===t.uid)&&(te(e,()=>t.wantsTrade?r("dlg.playerTrade"):r("dlg.playerAgree")),!Ne(e))){if(t.flake&&Q(t.flake)){C(()=>N(e,()=>r("dlg.flake")),450),me(e);return}c.setState(a=>({coins:a.coins+t.price,listings:a.listings.filter(n=>n.uid!==t.uid)})),C(()=>N(e,()=>r("dlg.npcThanks")),450),me(e),Ct("chat"),z(r("toast.sold",{price:q(t.price)}))}}function xc(e,t){const a=F(e);if(te(e,()=>r("dlg.playerCounter",{price:q(t)})),K(e,{counterPrice:t}),Ne(e))return;if(a.npc.type==="hasty"){C(()=>N(e,()=>r("dlg.hastyNoBargain")),450),me(e);return}const n=a.maxPrice??a.price;C(()=>{t<=n?(N(e,()=>r("dlg.counterOk")),Js(e,t)):N(e,()=>a.npc.type==="troll"&&a.gate==="passed"?r("dlg.trollStillHigh",{price:q(n)}):r("dlg.aboveCap"))},500)}function Js(e,t){const a=F(e);c.getState().listings.some(n=>n.uid===a.uid)&&(c.setState(n=>({coins:n.coins+t,listings:n.listings.filter(s=>s.uid!==a.uid)})),C(()=>N(e,()=>r("dlg.npcThanks")),450),me(e),Ct("chat"),z(r("toast.sold",{price:q(t)})))}function qc(e){te(e,()=>r("dlg.playerDeclineSale")),C(()=>N(e,()=>r("dlg.npcGoodLuck")),400),me(e),P("error")}function Zs(e){const t=Be(e)??Re(e);if(t)return si(t).map(s=>({...A(s.id),chance:s.chance}));const a=Ee.find(s=>s.id===e);if(e===ce){const s=wt(c.getState().coins);return X.filter(i=>i.tier===s).sort((i,o)=>o.caseChance-i.caseChance).map(i=>({...i,chance:i.caseChance}))}if(!a)return[];if(a.priceType==="ad"){const s=X.filter(o=>jt[o.tier]!=null),i={};return s.forEach(o=>{i[o.tier]=(i[o.tier]??0)+1}),s.map(o=>({...o,chance:(jt[o.tier]??0)/(i[o.tier]||1)})).sort((o,u)=>o.tier-u.tier||u.caseChance-o.caseChance)}const n=a.tier||1;return X.filter(s=>s.tier===n).sort((s,i)=>i.caseChance-s.caseChance).map(s=>({...s,chance:s.caseChance}))}function mn(){const e=c.getState();return e.coins<100&&e.inventory.length===0}async function Pc(e,t=1){const a=Be(e);if(a)return t===1?Bn(a,Math.random,!0):[];const n=Re(e);if(n)return Bn(n,Math.random,!1,t);const s=Ee.find(d=>d.id===e),i=s.tier||1;if(s.priceType==="ad"){const d=await M.showRewardedVideo();return d&&(c.setState(m=>({caseOpeningBonus:zt(m.caseOpeningBonus,e,1)})),P("caseOpen")),d?[rn(X)]:[]}const u=e==="tier1"&&t===1&&mn()?0:s.price*t;if(c.getState().coins<u)return z(r("toast.notEnough")),P("error"),[];c.setState(d=>({coins:d.coins-u,caseOpeningBonus:zt(d.caseOpeningBonus,e,t)})),P("caseOpen");const l=po(e);if(l){const d=A(l);return[ye(d,Math.round((d.priceMin+d.priceMax)/2))]}return Array.from({length:t},()=>sa(X,i))}let ka=!1;async function Dc(e,t,a=!1,n=Math.random){const s=Be(e)??Re(e);if(!t.length||s==="mythic"||ka)return[];const i=Ee.find(o=>o.id===e);if(!s&&!i&&e!==ce)return[];ka=!0;try{if(!await M.showRewardedVideo())return[];const o=t.length;let u;if(s)u=Array.from({length:o},()=>{const l=vs(s,n);return ye(A(l.id),Math.round((l.priceMin+l.priceMax)/2))});else{const l=e===ce?wt(c.getState().coins):i?.tier||1;u=Array.from({length:o},()=>i?.priceType==="ad"?rn(X):sa(X,l))}if(s&&a){const l=new Set(t.map(d=>d.uid));c.setState(d=>{const m={...d.autumn2026.items};return t.forEach(p=>{const h=Math.max(0,(m[p.itemId]??0)-1);h>0?m[p.itemId]=h:delete m[p.itemId]}),u.forEach(p=>{m[p.itemId]=(m[p.itemId]??0)+1}),{inventory:[...d.inventory.filter(p=>!l.has(p.uid)),...u],autumn2026:{...d.autumn2026,items:m}}})}return P("caseOpen"),u}finally{ka=!1}}let va=!1;function zc(e){const t=ws(c.getState().caseOpeningBonus,e);return t?(c.setState({caseOpeningBonus:t}),!0):!1}async function jc(e,t=Math.random){if(va||Ms(e))return null;const a=Be(e)??Re(e),n=Ee.find(s=>s.id===e);if(!a&&!n&&e!==ce||c.getState().caseOpeningBonus.pendingCaseIds[0]!==e)return null;va=!0;try{if(!await M.showRewardedVideo())return null;const s=c.getState(),i=ws(s.caseOpeningBonus,e);if(!i)return null;if(a){const l=vs(a,t),d=ye(A(l.id),Math.round((l.priceMin+l.priceMax)/2)),m=s.autumn2026.items[l.id]??0;return c.setState({caseOpeningBonus:i,inventory:[...s.inventory,d],autumn2026:{...s.autumn2026,items:{...s.autumn2026.items,[l.id]:m+1}}}),P("caseOpen"),{wins:[d],preGranted:!0}}const o=e===ce?wt(s.coins):n?.tier||1,u=n?.priceType==="ad"?rn(X):sa(X,o);return c.setState({caseOpeningBonus:i}),P("caseOpen"),{wins:[u],preGranted:!1}}finally{va=!1}}function Fc(e){c.setState(t=>({inventory:[...t.inventory,e]}))}function Gc(e){const t=A(e.itemId),a=Mt(t,e.condition==="broken");c.setState(n=>({coins:n.coins+a})),Ct("rouletteQuick")}function Hc(e){const t=A(e.itemId),a=Mt(t,e.condition==="broken");c.setState(n=>({coins:n.coins+a,inventory:n.inventory.filter(s=>s.uid!==e.uid)})),Ct("rouletteQuick")}const Gt=[{day:1,kind:"autumnChest",chestId:"school"},{day:2,kind:"autumnChest",chestId:"pumpkin"},{day:3,kind:"autumnChest",chestId:"traveler"},{day:4,kind:"item",itemId:"ipad"},{day:5,kind:"item",itemId:"tv_4k"},{day:6,kind:"autumnChest",chestId:"premium"},{day:7,kind:"item",itemId:"retro_car"}],Uc=864e5,Kc=()=>Math.floor(M.now()/Uc);function Ht(){const e=c.getState(),t=Kc(),a=e.lastClaimAt??-1/0;let n=e.claimedDays;t-a>1&&(n=0);const i=!(t===a),o=n>=Gt.length&&i,u=o?0:Math.min(n,Gt.length),l=i?o?1:u+1:0;return{today:t,displayStreak:u,nextDay:l,available:i}}const Wc=()=>!c.getState().vkCommunityRewardGiven||Ht().available&&Ht().nextDay>0;function Vc(){return c.getState().vkCommunityRewardGiven?!1:(c.setState(e=>({vkCommunityRewardGiven:!0,ownedCases:{...e.ownedCases,[ce]:(e.ownedCases?.[ce]??0)+1}})),P("gift"),z(r("toast.giftGot",{name:r("caseName.vk")})),!0)}function Yc(e){const t=Ht();if(!t.available||e!==t.nextDay)return;const a=Gt.find(s=>s.day===e);if(!a)return;c.setState(s=>{const i={claimedDays:e,lastClaimAt:t.today};if(a.kind==="case")return{...i,ownedCases:{...s.ownedCases,[a.caseId]:(s.ownedCases?.[a.caseId]??0)+1}};if(a.kind==="autumnChest")return{...i,autumn2026:{...s.autumn2026,chests:{...s.autumn2026.chests,[a.chestId]:(s.autumn2026.chests[a.chestId]??0)+1}}};const o=A(a.itemId);return{...i,inventory:[...s.inventory,ye(o,o.priceMin)]}}),P("gift");const n=a.kind==="case"?r(`caseName.${a.caseId}`):a.kind==="autumnChest"?r(`season.chest.${a.chestId}`):H(A(a.itemId));z(r("toast.giftGot",{name:n}))}function Jc(e,t){c.setState(a=>({coins:a.coins+e})),z(`+${T(e)}`)}const Qs=48*36e5;function Zc(){c.getState().firstLaunchAt==null&&c.setState({firstLaunchAt:$e()})}function Ve(){const e=c.getState();if(e.starterBought)return!1;const t=e.firstLaunchAt??$e();return $e()-t<Qs}function Qc(){const e=c.getState();Se(M.now())&&(e.autumnBundleBought||Number.isFinite(e.autumnBundleOfferStartedAt)&&e.autumnBundleOfferStartedAt>0||c.setState({autumnBundleOfferStartedAt:M.now()}))}function st(){const e=c.getState();return e.autumnBundleBought||!Se(M.now())?{phase:"ended",available:!1,cycle:6,remainingMs:0}:Vo(e.autumnBundleOfferStartedAt??M.now(),M.now())}function Ut(){const e=c.getState();if(e.starterBought)return 0;const t=e.firstLaunchAt??$e();return Math.max(0,t+Qs-$e())}const pn=()=>!c.getState().noAds,Nn=0,Xc=Number.isFinite(Nn)?Math.max(0,Nn):12e4,el=Date.now(),xn=0,qn=Number.isFinite(xn)?Math.max(0,xn):0;let Pn=0,ba=!1;async function tl(){const e=Date.now();if(!pn()||ba||e-el<Xc||qn>0&&e-Pn<qn)return!1;ba=!0;try{const t=await M.showFullscreenAdv();return t&&(Pn=Date.now()),t}catch{return!1}finally{ba=!1}}function Xs(){pn()?M.showBannerAdv():M.hideBannerAdv()}function ra(){M.hideBannerAdv()}function al(){if(c.getState().starterBought)return;const e=A("072");c.setState(t=>({coins:t.coins+1e7,inventory:[...t.inventory,ye(e,e.priceMin)],ownedCases:{...t.ownedCases,tier5:(t.ownedCases?.tier5??0)+3},noAds:!0,starterBought:!0})),ra(),z(r("toast.boughtStarter"))}function nl(){if(c.getState().autumnBundleBought)return;const e=A("orange_bmw");c.setState(t=>({coins:t.coins+1e7,inventory:[...t.inventory,ye(e,e.priceMin)],autumn2026:{...t.autumn2026,chests:{...t.autumn2026.chests,premium:t.autumn2026.chests.premium+5}},noAds:!0,autumnBundleBought:!0})),ra(),z(r("toast.boughtAutumnBundle"))}function sl(){if(c.getState().megaBundleBought)return;const e=A("114");c.setState(t=>({coins:t.coins+1e10,inventory:[...t.inventory,ye(e,e.priceMin)],ownedCases:{...t.ownedCases,tier8:(t.ownedCases?.tier8??0)+3},noAds:!0,megaBundleBought:!0})),ra(),z(r("toast.boughtMegaBundle"))}function rl(){if(c.getState().noAds){z(r("toast.adsAlreadyOff"));return}c.setState({noAds:!0}),ra(),z(r("toast.adsOff"))}const il=250,er=()=>c.getState().workLevel??1,ol=(e=er())=>e,Da=(e=er())=>il*e*e;function cl(){c.setState(e=>({coins:e.coins+(e.workLevel??1)}))}function ll(){const e=c.getState(),t=e.workLevel??1,a=Da(t);return e.coins<a?(P("error"),!1):(c.setState({coins:e.coins-a,workLevel:t+1}),P("success"),!0)}function ul(e){const t=c.getState(),a=t.ownedCases?.[e]??0;if(!a)return;const n=Ee.find(o=>o.id===e);if(!n&&e!==ce)return;const s=e===ce?wt(t.coins):n?.tier||1;P("caseOpen");const i=Array.from({length:a},()=>sa(X,s));c.setState(o=>{const u={...o.ownedCases};return delete u[e],{ownedCases:u,caseOpeningBonus:zt(o.caseOpeningBonus,e,a)}}),j("roulette",{roulette:{caseId:e,wins:i}})}const F=e=>c.getState().chats.find(t=>t.id===e),hn=e=>c.getState().inventory.find(t=>t.uid===e);function K(e,t){c.setState(a=>({chats:a.chats.map(n=>n.id===e?{...n,...t}:n)}))}const tr=e=>typeof e=="function"?e:()=>e;function ia(e){C(()=>{const t=F(e);t&&t.flash&&K(e,{flash:void 0})},1600)}let za=0;const dl=280,ml=2e3,pl=240;function ar(e,t){C(()=>{F(e)?.messageAnimationKey===t&&K(e,{messageEntering:void 0,messageAnimationKey:void 0})},dl)}const te=(e,t)=>{const a=++za,n={from:"player",build:tr(t)};c.setState(s=>({chats:s.chats.map(i=>i.id===e?{...i,messages:[...i.messages,n],typing:!0,optionsHidden:!0,optionsRevealKey:void 0,messageEntering:"player",messageAnimationKey:a}:i)})),ar(e,a)},N=(e,t)=>{const a=F(e);if(!a)return;const n=c.getState().activeChatId!==e,s=!!(a.typing||a.optionsHidden),i=++za,o=s?++za:void 0,u={from:"npc",build:tr(t)};c.setState(l=>({chats:l.chats.map(d=>d.id===e?{...d,messages:[...d.messages,u],unread:n,flash:n?"new":d.flash,typing:!1,optionsHidden:s,optionsRevealKey:o,messageEntering:"npc",messageAnimationKey:i}:d)})),n&&ia(e),ar(e,i),o!=null&&C(()=>{F(e)?.optionsRevealKey===o&&(K(e,{optionsHidden:!1}),C(()=>{const d=F(e);d?.optionsRevealKey===o&&!d.optionsHidden&&K(e,{optionsRevealKey:void 0})},pl))},ml)};function oa(e){c.setState(t=>({market:t.market.filter(a=>a.uid!==e)}))}let nr=!1,et=je(c.getState().autumn2026),hl=0;function fl(){et=je(c.getState().autumn2026),nr=!0}c.subscribe(()=>{const e=c.getState(),t=Do(e);if(t){c.setState(t);return}const a=je(e.autumn2026);if(!nr){et=a;return}if(a<=et){et=a;return}const n=fi(e.autumn2026,et,a);et=a,n&&c.setState({seasonRewardNotice:{id:++hl,required:n.required}})});async function sr(){const e=c.getState(),t=Ns(e);await M.save(t),Yo(e)&&(M.setScore(qe.rich,pt("rich",e.coins)).catch(()=>{}),M.setScore(qe.collectors,pt("collectors",(e.seenItems??[]).length)).catch(()=>{}),M.setScore(qe.sellers,pt("sellers",e.salesCount)).catch(()=>{}),M.setScore(qe.autumnSales,pt("autumnSales",e.autumn2026.sales)).catch(()=>{}),M.setScore(qe.autumnCollectors,pt("autumnCollectors",je(e.autumn2026))).catch(()=>{}))}async function gl(){const e=await M.load(),t=M.now();if(e)c.setState(Lo(c.getState(),e,t));else{const a=c.getState();c.setState({autumn2026:fs(a.autumn2026,t,a.autumnGuideSeen===!0)})}c.setState(a=>({inventory:a.inventory.map(n=>({...n,uid:lt("e")})),listings:a.listings.map(n=>({...n,uid:lt("e")}))}));{const a=$e(),n=c.getState(),s=!Se(t)&&n.market.some(i=>!!A(i.itemId)?.season);(!e||!n.market?.length||n.marketDeadline<=a||s)&&c.setState({market:sn(t),marketDeadline:a+nn*1e3})}return c.getState().listings.forEach(a=>dn(a.uid)),!!e}let ja,Fa=!1,Dn=xs(c.getState());c.subscribe(()=>{const e=xs(c.getState());e!==Dn&&(Dn=e,Fa=!0,ge(ja),ja=C(rt,600))});function rt(){Fa&&(Fa=!1,ge(ja),sr())}typeof window<"u"&&window.addEventListener("pagehide",rt);const yl={good:"emoji_ok",ok:"emoji_mid",bad:"emoji_bad"},kl=e=>`./assets/icons/${yl[e]}.svg`,ca=(e,t=!0)=>`<span class="avatar">${e.avatar?`<img class="avatar__face" src="./assets/people/${e.avatar}" alt="" />`:""}${t?`<img class="mood" src="${kl(e.mood)}" alt="" />`:""}</span>`,vl={new:"card__badge--new",used:"card__badge--used",worn:"card__badge--worn",broken:"card__badge--broken"},bl=e=>r(`cond.${e}`);function zn(e){return`<span class="card__badge ${vl[e]}">${bl(e)}</span>`}const jn={1:{color:"#8a8f99"},2:{color:"#4caf50"},3:{color:"#f5c518",text:"#1a1a1a"},4:{color:"#16b8a6"},5:{color:"#9b59b6"},6:{color:"#d63a3a"},7:{color:"#3454d1"},8:{color:"#000000",text:"#f1c40f"},9:{color:"#ff8a24",text:"#171717"}};function la(e){const t=jn[e]??jn[1];return`<span class="card__badge tier-badge" style="background:${t.color};color:${t.text??"#fff"}">${r(`tier.${e}`)}</span>`}function xe(e,t={}){const a=A(e.itemId);let n="";return t.hideBadge?n="":t.showCondition?n=zn(e.condition):e.condition==="broken"&&(n=zn("broken")),`
    <div class="card${a.season==="autumn2026"?" card--autumn":""}" data-uid="${e.uid}"${t.interstitial?` data-interstitial="${t.interstitial}"`:""}>
      ${n}
      <div class="card__photo"><img src="${ee(a.id)}" alt="${H(a)}" /></div>
      <div class="card__body">
        <div class="card__name">${H(a)}</div>
        ${t.noPrice?"":`<div class="card__price">${T(e.price)}</div>`}
      </div>
      ${t.actions??""}
    </div>`}const Sl=(e,t="")=>`<button class="btn btn--green" ${t}>${e}</button>`,_l=(e,t="")=>`<button class="btn btn--blue" ${t}>${e}</button>`;let Kt=!1,rr=!1,fn=!1,ir=!1;const qt=[],Sa=new Set,Ml="#app, #loader, .overlay, .tut, .tut__skip, .toast, .rou-block, .fx-gain, .fx-coin, .fx-fly",we=()=>Kt;function wl(e,t){return e==="blur"?!0:e==="focus"?t.documentHidden:t.documentHidden||!t.documentHasFocus}function gn(e){return qt.push(e),Kt&&e(!0),()=>{const t=qt.indexOf(e);t>=0&&qt.splice(t,1)}}function Cl(e){if(!(typeof document>"u"||typeof document.getAnimations!="function")){if(e){for(const t of document.getAnimations()){if(t.playState!=="running")continue;const a=t.effect?.target;!(a instanceof Element)||!a.closest(Ml)||(Sa.add(t),t.pause())}return}for(const t of Sa)t.playState==="paused"&&t.play();Sa.clear()}}function yn(){const e=rr||fn||ir;if(e!==Kt){Kt=e,_i(e);for(const t of qt)t(e)}}function Rt(e){fn=e,yn()}function Fn(e){ir=e,e||(fn=!1),yn()}function Al(){if(typeof window>"u")return;const e=t=>{rr=wl(t,{documentHidden:document.hidden,documentHasFocus:document.hasFocus()}),yn()};document.addEventListener("visibilitychange",()=>e("visibilitychange")),window.addEventListener("blur",()=>e("blur")),window.addEventListener("focus",()=>e("focus")),window.addEventListener("pageshow",()=>e("pageshow")),e("init")}const de=e=>` data-interstitial="${e}"`,Gn=e=>{const t=Math.max(0,e);return`${String(Math.floor(t/60)).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`},_a=()=>Math.round((c.getState().marketDeadline-$e())/1e3),Tl={title:"buy.title",render(){if(oe()&&(c.getState().salesCount??0)===0)return`<p class="buy__locked">${r("buy.tutLocked")}</p>`;const a=(Se(M.now())?c.getState().market:c.getState().market.filter(n=>!A(n.itemId)?.season)).map(n=>xe(n,{hideBadge:!0,interstitial:"market-card"})).join("");return`
      <div class="buybar">
        <div class="buybar__timer">${r("buy.untilRefresh")} <b id="mk-timer">${Gn(_a())}</b></div>
        <button class="buybar__skip" data-skip>
          ${r("buy.skip")} <span class="buybar__ad">${bt("Ad")}</span>
        </button>
      </div>
      <div class="grid">${a}</div>`},mount(e){c.getState().marketFresh&&c.setState({marketFresh:!1});let t=Se(M.now());if(!t&&c.getState().market.some(s=>!!A(s.itemId)?.season)){Ue();return}if(O(e,".card",s=>j("buy-item",{selectedMarketUid:s.dataset.uid,backTo:"buy"})),O(e,"[data-skip]",()=>Jo()),_a()<=0){Ue();return}const a=e.querySelector("#mk-timer"),n=St(()=>{if(we())return;const s=Se(M.now());if(s!==t){t=s,Pe(n),Ue();return}const i=_a();if(i<=0){Pe(n),Ue();return}a&&(a.textContent=Gn(i))},1e3);return()=>Pe(n)}},Hn={below:{var:"--c-green",key:"sellSetup.zoneBelow"},market:{var:"--c-blue",key:"sellSetup.zoneMarket"},above:{var:"--c-red",key:"sellSetup.zoneAbove"}},El={title:"",back:!0,render(){const e=c.getState(),t=e.market.find(d=>d.uid===e.selectedMarketUid);if(!t)return`<p style="color:var(--c-text-muted)">${r("buy.stolen")}</p>`;const a=A(t.itemId),n=t.seller,s=0,i=Math.round(a.priceMax*1.4),o=d=>Math.min(100,Math.max(0,(d-s)/(i-s)*100)),u=_t(t.price,a),l=`var(${Hn[u].var})`;return`
      <div class="buyitem">
        <div class="buyitem__left">
          <div class="buyitem__card">${xe(t,{hideBadge:!0})}</div>
          ${Sl(r("buy.writeSeller"),'data-write data-interstitial="write-seller"')}
        </div>

        <div class="buyitem__right">
          <div class="seller">
            ${ca(n,!1)}
            <span class="seller__info">
              <span class="seller__name">${n.name}</span>
              <span class="seller__type">${an(n.type)}</span>
              ${n.hobby?`<span class="seller__hobby">${r("chats.hobby",{hobby:_s(n.hobby)})}</span>`:""}
              ${n.wants.length?`<span class="seller__wants">${r("chats.wants",{items:n.wants.map(d=>H(A(d))).join(", ")})}</span>`:""}
            </span>
          </div>

          <div class="panel">
            <div class="panel__title">${r("buy.estimate")} <b style="color:${l}">${r(Hn[u].key)}</b></div>
            <div class="slider">
              <div class="slider__track" style="background:linear-gradient(90deg, var(--c-green) ${o(a.priceMin)}%, var(--c-blue) ${o(a.priceMin)}%, var(--c-blue) ${o(a.priceMax)}%, var(--c-red) ${o(a.priceMax)}%)"></div>
              <div class="slider__mark" style="left:${o(a.priceMin)}%"><span class="dot dot--green"></span><span class="slider__mark-label">${T(a.priceMin)}</span></div>
              <div class="slider__mark" style="left:${o(a.priceMax)}%"><span class="dot dot--red"></span><span class="slider__mark-label">${T(a.priceMax)}</span></div>
              <div class="slider__pin" style="left:0%" data-left="${o(t.price)}"></div>
              <div class="slider__value" style="left:0%; color:${l}" data-left="${o(t.price)}" data-val="${t.price}">${T(0)}</div>
            </div>
          </div>
        </div>
      </div>`},mount(e){O(e,"[data-write]",()=>{const d=c.getState(),m=d.market.find(p=>p.uid===d.selectedMarketUid);m&&(Xo(m),j("chats"))});const t=e.querySelector(".slider__pin"),a=e.querySelector(".slider__value");if(!t||!a)return;const n=Number(a.dataset.val);if(!e.closest(".app")?.classList.contains("is-entering")){t.style.left=`${t.dataset.left}%`,a.style.left=`${a.dataset.left}%`,a.textContent=T(n);return}Le(()=>{t.style.left=`${t.dataset.left}%`,a.style.left=`${a.dataset.left}%`});const i=Ze(),o=750,u=d=>1-Math.pow(1-d,3),l=d=>{const m=Math.min(1,(d-i)/o);a.textContent=T(Math.round(n*u(m))),m<1&&Le(l)};Le(l)}},Un=24*60*60*1e3;function Ga(e){const t=Math.max(0,e);if(t>=Un)return Je("shop.offerDays",Math.ceil(t/Un));const a=Math.max(0,Math.floor(t/1e3)),n=Math.floor(a/3600),s=Math.floor(a%3600/60),i=a%60;return`${n}:${String(s).padStart(2,"0")}:${String(i).padStart(2,"0")}`}const Kn={below:{var:"--c-green",key:"sellSetup.zoneBelow"},market:{var:"--c-blue",key:"sellSetup.zoneMarket"},above:{var:"--c-red",key:"sellSetup.zoneAbove"}},or=()=>`<button class="popup__close" aria-label="${r("common.close")}" data-close>Г—</button>`;function pe(e,t={}){const a=t.showClose??!0,n=t.dismissOnBackdrop??!0,s=document.createElement("div");return s.className="overlay",s.innerHTML=`<div class="popup">${a?or():""}${e}</div>`,n&&s.addEventListener("click",i=>{i.target===s&&s.remove()}),s.querySelector("[data-close]")?.addEventListener("click",()=>s.remove()),document.body.appendChild(s),s}function $l(){const e=document.createElement("div");e.className="overlay",e.innerHTML='<div class="popup settings"></div>',e.addEventListener("click",n=>{(n.target===e||n.target.closest("[data-close]"))&&e.remove()}),document.body.appendChild(e);const t=e.querySelector(".settings");function a(){const n=c.getState();t.innerHTML=`
      ${or()}
      <h3>${r("settings.title")}</h3>
      <div class="set-row">
        <button class="set-icon ${n.musicOn?"":"is-off"}" data-music title="${r("settings.music")}">рџЋµ</button>
        <span class="set-label">${r("settings.music")}</span>
        <input type="range" class="set-vol" data-musicvol min="0" max="100" value="${Math.round(n.musicVol*100)}" ${n.musicOn?"":"disabled"} />
      </div>
      <div class="set-row">
        <button class="set-icon ${n.soundOn?"":"is-off"}" data-sound title="${r("settings.sounds")}">${n.soundOn?"🔊":"🔇"}</button>
        <span class="set-label">${r("settings.sounds")}</span>
        <input type="range" class="set-vol" data-soundvol min="0" max="100" value="${Math.round(n.soundVol*100)}" ${n.soundOn?"":"disabled"} />
      </div>
      <div class="set-lang">
        <span class="set-label">${r("settings.language")}:</span>
        <div class="lang-toggle">
          <button class="lang-opt ${n.lang==="ru"?"is-sel":""}" data-lang="ru">${r("settings.ru")}</button>
          <button class="lang-opt ${n.lang==="en"?"is-sel":""}" data-lang="en">${r("settings.en")}</button>
          <button class="lang-opt ${n.lang==="tr"?"is-sel":""}" data-lang="tr">${r("settings.tr")}</button>
          <button class="lang-opt ${n.lang==="es"?"is-sel":""}" data-lang="es">${r("settings.es")}</button>
        </div>
      </div>
      <div class="set-promo">
        <label class="set-promo__label" for="settings-promocode">${r("settings.promo")}</label>
        <form class="set-promo__controls" data-promo-form>
          <input class="set-promo__input" id="settings-promocode" name="promocode" type="text"
            maxlength="32" autocomplete="off" autocapitalize="characters" spellcheck="false"
            placeholder="${r("settings.promoPlaceholder")}" />
          <button class="btn btn--blue set-promo__apply" type="submit">${r("settings.promoApply")}</button>
        </form>
        <p class="set-promo__status" data-promo-status aria-live="polite"></p>
      </div>`,t.querySelector("[data-music]").addEventListener("click",()=>{c.setState({musicOn:!c.getState().musicOn}),a()}),t.querySelector("[data-sound]").addEventListener("click",()=>{c.setState({soundOn:!c.getState().soundOn}),a()}),t.querySelector("[data-musicvol]").addEventListener("change",s=>c.setState({musicVol:+s.target.value/100})),t.querySelector("[data-soundvol]").addEventListener("change",s=>c.setState({soundVol:+s.target.value/100})),t.querySelectorAll("[data-lang]").forEach(s=>s.addEventListener("click",()=>{As(s.dataset.lang),a()})),t.querySelector("[data-promo-form]").addEventListener("submit",s=>{s.preventDefault();const i=t.querySelector('[name="promocode"]'),o=t.querySelector("[data-promo-status]"),u=i.value.trim().toUpperCase();i.value=u;const l=u?yc(u):!1;o.textContent=r(u?l?"settings.promoApplied":"settings.promoInvalid":"settings.promoEmpty"),o.classList.toggle("is-error",!l),o.classList.toggle("is-success",l)})}a()}function Ol(e,t,a){const n=Math.round(e.priceMax*1.4),s=pe(`
    <h3>${r("popup.counterTitle")}</h3>
    <div class="popup__price" id="pp-val"></div>
    <div class="popup__verdict" id="pp-zone"></div>
    <input type="range" id="pp-range" min="0" max="${n}" step="5" value="${t}" />
    <p class="popup__hint">${r("popup.market",{min:Oa(e.priceMin),max:Oa(e.priceMax)})}</p>
    <button class="btn btn--green" id="pp-ok">${r("popup.propose")}</button>
  `),i=s.querySelector("#pp-range"),o=()=>{const u=Number(i.value),l=_t(u,e);s.querySelector("#pp-val").textContent=T(u);const d=s.querySelector("#pp-zone");d.textContent=r(Kn[l].key).toUpperCase(),d.style.color=`var(${Kn[l].var})`};i.addEventListener("input",o),o(),s.querySelector("#pp-ok").addEventListener("click",()=>{a(Number(i.value)),s.remove()})}function Il(e){const t=pe(`
    <h3>${e.title}</h3>
    <p class="popup__confirm-msg">${e.message}</p>
    <div class="confirm-btns">
      <button class="btn btn--green" id="cf-ok"${e.interstitial?` data-interstitial="${e.interstitial}"`:""}>${e.confirm}</button>
      <button class="btn btn--cancel" id="cf-cancel">${r("common.cancel")}</button>
    </div>
  `);t.querySelector("#cf-ok").addEventListener("click",()=>{e.onConfirm(),t.remove()}),t.querySelector("#cf-cancel").addEventListener("click",()=>t.remove())}const Rl=e=>`<button class="btn btn--cancel starter__dismiss" data-bundle-dismiss data-interstitial="promo-dismiss">${e}</button>`,Ll=!1;function Qe(e,t,a,n,s,i){const o=pe(`
    ${i?`<div class="bundle-offer__promo bundle-offer__promo--${n}">
      <span>${i.label}</span>
      ${i.remainingMs?"<strong data-bundle-offer-timer></strong>":i.caption?`<strong>${i.caption}</strong>`:""}
    </div>`:""}
    <div class="starter starter--${n} ${a.length===3?"starter--three":""} ${a.length===1?"starter--single":""}">
      <div class="starter__thumbs">
        ${a.map(u=>`<div class="starter__thumb">
          <img src="${u.image}" alt="" />
          ${u.badge?`<span class="starter__thumb-badge">${u.badge}</span>`:""}
        </div>`).join("")}
      </div>
      <div class="starter__info">
        <h3>${e}</h3>
        <ul class="starter__list">
          ${a.map(u=>`<li>${u.label}</li>`).join("")}
        </ul>
      </div>
    </div>
    <div class="starter__actions">
      <button class="btn ${n==="autumn"?"btn--autumn":"btn--green"} starter__buy" data-bundle-buy>${t}</button>
      ${i?Rl(i.dismissLabel):""}
    </div>
  `,{showClose:Ll,dismissOnBackdrop:!1});if(o.querySelector("[data-bundle-buy]").addEventListener("click",()=>{s(),o.remove()}),i&&(o.querySelector("[data-bundle-dismiss]").addEventListener("click",()=>{i.onDismiss?.(),o.remove()}),i.remainingMs)){const u=o.querySelector("[data-bundle-offer-timer]"),l=()=>{if(!o.isConnected)return!1;const m=i.remainingMs();return m==null||m<=0?(o.remove(),!1):(u.textContent=Ga(m),!0)};l();const d=St(()=>{l()||Pe(d)},1e3)}}function Bl(e,t,a){Qe(r("shop.starter"),e,cr(t),"green",a)}function cr(e){const t=dt();return[{image:ie("money_10m.jpg"),label:r("shop.starterList1")},{image:ee("072"),label:r("shop.starterList2")},{image:ve("case_5.jpg"),label:r("shop.starterList3")},...e?[{image:ie(t),label:r("shop.starterList4")}]:[]]}function Nl(e,t,a,n){Qe(r("shop.starter"),e,cr(t),"green",a,{label:r("shop.starterAdvantage"),dismissLabel:r("shop.dontWant"),onDismiss:n})}function xl(e,t,a){const n=dt();Qe(r("shop.autumnBundle"),e,[{image:ee("orange_bmw"),label:r("shop.autumnList1")},{image:ie("money_10m.jpg"),label:r("shop.autumnList2")},{image:"./assets/season/autumn-2026/cases/case_season_4.jpg",label:r("shop.autumnList3"),badge:"Г—5"},...t?[{image:ie(n),label:r("shop.autumnList4")}]:[]],"autumn",a)}function ql(e,t,a,n,s){const i=dt();Qe(r("shop.autumnBundle"),e,[{image:ee("orange_bmw"),label:r("shop.autumnList1")},{image:ie("money_10m.jpg"),label:r("shop.autumnList2")},{image:"./assets/season/autumn-2026/cases/case_season_4.jpg",label:r("shop.autumnList3"),badge:"Г—5"},...t?[{image:ie(i),label:r("shop.autumnList4")}]:[]],"autumn",n,{label:r("shop.autumnProgressFaster"),remainingMs:a,dismissLabel:r("shop.dontWant"),onDismiss:s})}function Pl(e,t,a){const n=dt();Qe(r("shop.noAds"),e,[{image:ie(n),label:r("shop.noAds")}],"green",t,{label:r("shop.noAdsPrompt"),dismissLabel:r("shop.dontWant"),onDismiss:a})}function lr(e){const t=dt();return[{image:ee("114"),label:r("shop.megaList1")},{image:ve("case_8.jpg"),label:r("shop.megaList2"),badge:"Г—3"},{image:ie("money_10b.jpg"),label:r("shop.megaList3")},...e?[{image:ie(t),label:r("shop.megaList4")}]:[]]}function Dl(e,t,a){Qe(r("shop.megaBundle"),e,lr(t),"green",a)}function zl(e,t,a,n){Qe(r("shop.megaOfferTitle"),e,lr(t),"green",a,{label:r("shop.promo"),caption:r("shop.megaBenefit"),dismissLabel:r("shop.dontWant"),onDismiss:n})}function ur(e){const t=pe(`
    <h3>${r("popup.reviewTitle")}</h3>
    <p class="popup__confirm-msg">${r("popup.authMsg")}</p>
    <div class="confirm-btns">
      <button class="btn btn--green" id="ap-login">${r("popup.login")}</button>
      <button class="btn btn--cancel" id="ap-cancel">${r("common.cancel")}</button>
    </div>
  `);t.querySelector("#ap-login").addEventListener("click",()=>{t.remove(),e()}),t.querySelector("#ap-cancel").addEventListener("click",()=>t.remove())}function jl(e){const t=pe(`
    <h3>${r("caseName.vk")}</h3>
    <p class="popup__confirm-msg">${r("popup.vkCommunityMessage")}</p>
    <div class="confirm-btns">
      <button class="btn btn--blue" id="vk-community-go">${r("popup.vkCommunityGo")}</button>
      <button class="btn btn--cancel" id="vk-community-cancel">${r("common.cancel")}</button>
    </div>
  `);t.querySelector("#vk-community-go").addEventListener("click",()=>{t.remove(),e()}),t.querySelector("#vk-community-cancel").addEventListener("click",()=>t.remove())}function Fl(e){return`
    <section class="case-bonus-offer">
      <h3>${r("popup.caseBonusTitle")}</h3>
      <p class="popup__confirm-msg">${r("popup.caseBonusMessage",{name:e})}</p>
      <p class="case-bonus-offer__saved">${r("popup.caseBonusSaved")}</p>
      <div class="confirm-btns case-bonus-offer__actions">
        <button class="btn btn--rewarded case-bonus-offer__watch" data-case-bonus-watch>
          <span>${r("popup.caseBonusWatch")}</span>
          <span class="case-bonus-offer__ad" aria-hidden="true">${bt("Ad")}</span>
        </button>
        <button class="btn btn--cancel" data-case-bonus-dismiss data-interstitial="case-bonus-dismiss">${r("popup.caseBonusDismiss")}</button>
      </div>
    </section>`}function Gl(e,t,a){const n=pe(Fl(e),{showClose:!1,dismissOnBackdrop:!1}),s=n.querySelector("[data-case-bonus-watch]");let i=!1,o=!1;const u=()=>{i||o||(o=!0,a())};s.addEventListener("click",()=>{s.disabled||(s.disabled=!0,t().then(l=>{if(!l){s.disabled=!1;return}i=!0,n.remove()}).catch(()=>{s.disabled=!1}))}),n.querySelector("[data-case-bonus-dismiss]").addEventListener("click",()=>{u(),n.remove()})}function Hl(e){const t=pe(`
    <h3>${r("common.leaders")}</h3>
    <p class="popup__confirm-msg">${r("popup.leaderboardAuthMsg")}</p>
    <div class="confirm-btns">
      <button class="btn btn--green" data-leader-login>${r("popup.login")}</button>
      <button class="btn btn--cancel" data-leader-cancel>${r("common.cancel")}</button>
    </div>
  `);t.querySelector("[data-leader-login]").addEventListener("click",()=>{t.remove(),e()}),t.querySelector("[data-leader-cancel]").addEventListener("click",()=>t.remove())}function Ul(e,t,a){const n=pe(`
    <h3>${r("popup.reviewTitle")}</h3>
    <p class="popup__confirm-msg">${r("popup.reviewOffer",{name:e})}</p>
    <div class="confirm-btns">
      <button class="btn btn--green" id="ro-ok">${r("popup.review")}</button>
      <button class="btn btn--cancel" id="ro-cancel">${r("common.cancel")}</button>
    </div>
  `,{showClose:!1,dismissOnBackdrop:!1});n.querySelector("#ro-ok").addEventListener("click",()=>{n.remove(),t()}),n.querySelector("#ro-cancel").addEventListener("click",()=>{a?.(),n.remove()})}function dr(e){const t=pe(`
    <div class="season-guide">
      <h3>${r("season.guideTitle")}</h3>
      <p class="season-guide__intro">${r("season.guideIntro")}</p>
      <button class="btn season-guide__start" data-season-guide-close>${r("season.guideStart")}</button>
    </div>
  `);t.querySelector(".popup")?.classList.add("season-guide-popup"),t.querySelector("[data-season-guide-close]").addEventListener("click",()=>{t.remove(),e?.()})}function Kl(){const e=pe(`
    <h3>${r("popup.reviewTitle")}</h3>
    <p class="popup__confirm-msg">${r("popup.refreshMsg")}</p>
    <div class="confirm-btns">
      <button class="btn btn--green" id="rr-ok">${r("common.ok")}</button>
    </div>
  `);e.querySelector("#rr-ok").addEventListener("click",()=>e.remove())}function Wl(e,t){const a=Math.round(e*.8),n=Math.max(1,Math.round(e/100)),s=pe(`
    <h3>${r("popup.yourSurcharge")}</h3>
    <div class="popup__price" id="sc-val"></div>
    <input type="range" id="sc-range" min="0" max="${e}" step="${n}" value="${a}" />
    <p class="popup__hint">${r("popup.sellerAsksSurcharge",{amount:T(e)})}</p>
    <button class="btn btn--green" id="sc-ok">${r("popup.propose")}</button>
  `),i=s.querySelector("#sc-range"),o=()=>{s.querySelector("#sc-val").textContent=T(Number(i.value))};i.addEventListener("input",o),o(),s.querySelector("#sc-ok").addEventListener("click",()=>{t(Number(i.value)),s.remove()})}function Vl(e,t){const a=Math.round(e*.3),n=Math.max(1,Math.round(e/100)),s=pe(`
    <h3>${r("popup.requestSurcharge")}</h3>
    <div class="popup__price" id="ps-val"></div>
    <input type="range" id="ps-range" min="0" max="${e}" step="${n}" value="${a}" />
    <p class="popup__hint">${r("popup.proposeHint",{max:T(e)})}</p>
    <button class="btn btn--green" id="ps-ok">${r("popup.propose")}</button>
  `),i=s.querySelector("#ps-range"),o=()=>{s.querySelector("#ps-val").textContent=T(Number(i.value))};i.addEventListener("input",o),o(),s.querySelector("#ps-ok").addEventListener("click",()=>{t(Number(i.value)),s.remove()})}function Yl(e,t,a){const n=Math.round((e+t)/2),s=pe(`
    <h3>${r("popup.counterTitle")}</h3>
    <div class="popup__price" id="cp-val"></div>
    <input type="range" id="cp-range" min="${e}" max="${t}" step="${Math.max(1,Math.round((t-e)/100))}" value="${n}" />
    <p class="popup__hint">${r("popup.buyerOfferedYourPrice",{min:T(e),max:T(t)})}</p>
    <button class="btn btn--green" id="cp-ok">${r("popup.propose")}</button>
  `),i=s.querySelector("#cp-range"),o=()=>{s.querySelector("#cp-val").textContent=T(Number(i.value))};i.addEventListener("input",o),o(),s.querySelector("#cp-ok").addEventListener("click",()=>{a(Number(i.value)),s.remove()})}function Jl(e,t){const a=pe(`
    <h3>${r("popup.countQ")}</h3>
    <div class="count-row">
      ${[2,3,4].map(i=>`<button class="count-btn" data-n="${i}">${i}</button>`).join("")}
    </div>
    <button class="btn btn--blue" id="count-go" disabled style="opacity:.5">${r("popup.chooseCount")}</button>
  `);let n=0;const s=a.querySelector("#count-go");a.querySelectorAll("[data-n]").forEach(i=>i.addEventListener("click",()=>{n=+i.dataset.n,a.querySelectorAll("[data-n]").forEach(o=>o.classList.remove("is-sel")),i.classList.add("is-sel"),s.disabled=!1,s.style.opacity="1",s.textContent=T(e*n)})),s.addEventListener("click",()=>{n&&(t(n),a.remove())})}const Zl="orange_bugatti";function mr(){const e=c.getState(),t=e.autumn2026,a=new Set(e.inventory.map(s=>s.itemId)),n=se.map(s=>{const i=(t.items[s.id]??0)>0,o=s.id===Zl&&!i,u=r(o?"season.secretItem":`season.item.${s.id}`);return`<article class="colcard season-card ${i?"is-found":"is-locked"} ${o?"is-secret":""}" data-col-item="${s.id}">
      ${o?"":la(A(s.id).tier)}
      <div class="colcard__photo ${o?"season-secret-photo":""}">${o?'<span aria-hidden="true">?</span>':`<img src="${ee(s.id)}" alt="${u}" loading="lazy" />`}
        ${i&&a.has(s.id)?`<span class="colcard__have">${r("inventory.inInv")}</span>`:""}
      </div>
      <div class="colcard__name">${u}</div>
      ${i||o?"":`<div class="colcard__overlay">${r("inventory.colNotOwned")}</div>`}
    </article>`}).join("");return`<div class="season-collection-head">
      <h3>${r("season.collectionTitle")}</h3>
      <b>${je(t)} / ${se.length}</b>
    </div>
    <div class="grid season-grid">${n}</div>`}function Wn(e){return`
    <div class="invtabs">
      <button class="invtab ${e==="inventory"?"is-active":""}" data-tab="inventory">${r("inventory.tabInv")}</button>
      <button class="invtab ${e==="collection"?"is-active":""}" data-tab="collection">${r("inventory.tabCol")}</button>
    </div>`}function Ql(e){return`<div class="invtabs collection-tabs">
    <button class="invtab ${e==="main"?"is-active":""}" data-collection-tab="main">${r("inventory.collectionMain")}</button>
    <button class="invtab ${e==="autumn2026"?"is-active":""}" data-collection-tab="autumn2026">${r("inventory.collectionAutumn2026")}</button>
  </div>`}function Xl(){const e=c.getState().inventory;return e.length?`<div class="grid">${e.map(a=>{const n=a.condition==="broken",s=`
      <div class="card__actions">
        <button class="cardbtn cardbtn--blue" data-list="${a.uid}">${r("inventory.sell")}</button>
        <button class="cardbtn cardbtn--red" data-quick="${a.uid}">${r("inventory.quickSell")}${n?r("inventory.brokenTag"):""}</button>
        ${n?`<button class="cardbtn cardbtn--green" data-repair="${a.uid}">${r("inventory.repair")} (${T(Ts(A(a.itemId)))})</button>`:""}
      </div>`;return xe(a,{actions:s,noPrice:!0,showCondition:!0})}).join("")}</div>`:`<p style="color:var(--c-text-muted)">${r("inventory.empty")}</p>`}function eu(){const e=c.getState(),t=new Set(e.seenItems??[]),a=new Set(e.inventory.map(s=>s.itemId)),n=X.map(s=>{const i=t.has(s.id),o=a.has(s.id);return`
      <div class="colcard ${i?"":"is-locked"}" data-col-item="${s.id}">
        ${la(s.tier)}
        <div class="colcard__photo">
          <img src="${ee(s.id)}" alt="${H(s)}" />
          ${i&&o?`<span class="colcard__have">${r("inventory.inInv")}</span>`:""}
        </div>
        <div class="colcard__name">${H(s)}</div>
        ${i?"":`<div class="colcard__overlay">${r("inventory.colNotOwned")}</div>`}
      </div>`}).join("");return`
    <div class="collection-counter">${r("inventory.collected",{n:t.size,total:X.length})}</div>
    <div class="grid">${n}</div>`}const tu={title:"inventory.title",render(){const e=c.getState().invTab??"inventory";if(e!=="collection")return Wn(e)+Xl();const t=hs(M.now()),a=t?c.getState().collectionTab??"main":"main",n=a==="autumn2026"?mr():eu();return Wn(e)+(t?Ql(a):"")+n},mount(e){O(e,"[data-tab]",t=>c.setState({invTab:t.dataset.tab})),O(e,"[data-collection-tab]",t=>c.setState({collectionTab:t.dataset.collectionTab})),O(e,".colcard",t=>{if(t.classList.contains("is-locked")){t.classList.remove("is-shake"),t.offsetWidth,t.classList.add("is-shake"),P("error");return}j("item-view",{viewItem:{itemId:t.dataset.colItem},backTo:"inventory"})}),O(e,"[data-quick]",t=>{const a=c.getState().inventory.find(s=>s.uid===t.dataset.quick);if(!a)return;const n=Mt(A(a.itemId),a.condition==="broken");Il({title:r("inventory.quickTitle"),message:r("inventory.confirmSell",{name:H(A(a.itemId)),price:T(n)}),confirm:r("inventory.quickConfirm",{price:T(n)}),interstitial:"quick-sell",onConfirm:()=>kc(a.uid)})}),O(e,"[data-repair]",t=>vc(t.dataset.repair)),O(e,"[data-list]",t=>j("sell-setup",{selectedMarketUid:t.dataset.list,backTo:"inventory"}))}},au=6,nu={title:"sales.title",render(){const{listings:e}=c.getState(),t=e.map(n=>{const s=`
        <div class="card__actions">
          <button class="cardbtn cardbtn--blue" data-detail="${n.uid}">${r("sales.detail")}</button>
          <button class="cardbtn cardbtn--red" data-unlist="${n.uid}" data-interstitial="unlist-item">${r("sales.unlist")}</button>
        </div>`;return xe(n,{actions:s,showCondition:!0})}).join(""),a=e.length<au?'<button class="card card--add" data-add><span class="card__plus">+</span></button>':"";return`<div class="grid">${t}${a}</div>`},mount(e){O(e,"[data-add]",()=>j("inventory")),O(e,"[data-detail]",t=>j("listing-item",{selectedMarketUid:t.dataset.detail,backTo:"sales"})),O(e,"[data-unlist]",t=>Ws(t.dataset.unlist))}},su={below:"sellSetup.zoneBelow",market:"sellSetup.zoneMarket",above:"sellSetup.zoneAbove"},ru={below:"--c-green",market:"--c-blue",above:"--c-red"};function Vn(){const e=c.getState();return e.inventory.find(t=>t.uid===e.selectedMarketUid)}const iu={title:"",back:!0,render(){const e=Vn();if(!e)return`<p style="color:var(--c-text-muted)">${r("buy.selectInv")}</p>`;const t=A(e.itemId),a=Math.max(5,Math.round(t.priceMin*.4/5)*5),n=Math.round(t.priceMax*1.4),s=t.priceMin,i=o=>(o-a)/(n-a)*100;return`
      <div class="sell" data-lo="${a}" data-hi="${n}" data-min="${t.priceMin}" data-max="${t.priceMax}" data-uid="${e.uid}">
        <div class="panel">
          <div class="panel__title">${r("sellSetup.yourPrice")} <span id="zone-label"></span></div>
          <div class="priceInput" id="price-input"></div>
          <div class="slider">
            <div class="slider__track" id="track"></div>
            <div class="slider__mark" style="left:${i(t.priceMin)}%">
              <span class="dot dot--green"></span><span class="slider__mark-label">${T(t.priceMin)}</span>
            </div>
            <div class="slider__mark" style="left:${i(t.priceMax)}%">
              <span class="dot dot--red"></span><span class="slider__mark-label">${T(t.priceMax)}</span>
            </div>
            <input type="range" id="range" min="${a}" max="${n}" step="5" value="${s}" />
            <div class="slider__value" id="value"></div>
          </div>
        </div>
        ${_l(r("sellSetup.submit"),'data-submit data-interstitial="list-item"')}
      </div>`},mount(e){const t=e.querySelector(".sell");if(!t)return;const a=Vn(),n=A(a.itemId),s=+t.dataset.lo,i=+t.dataset.hi,o=h=>(h-s)/(i-s)*100,u=e.querySelector("#range"),l=()=>{const h=Number(u.value),_=_t(h,n),b=`var(${ru[_]})`;e.querySelector("#zone-label").innerHTML=`<b style="color:${b}">${r(su[_])}</b>`,e.querySelector("#price-input").textContent=T(h);const $=e.querySelector("#value");$.textContent=T(h),$.style.color=b;const w=t.querySelector(".slider").clientWidth,L=$.offsetWidth/2,V=Math.min(w-L,Math.max(L,o(h)/100*w));$.style.left=`${V}px`,e.querySelector("#track").style.background=`linear-gradient(90deg, var(--c-green) ${o(n.priceMin)}%, var(--c-blue) ${o(n.priceMin)}%, var(--c-blue) ${o(n.priceMax)}%, var(--c-red) ${o(n.priceMax)}%)`};u.addEventListener("input",l),l();const d=Number(u.step)||1,m=e.querySelector(".slider"),p=h=>{const _=u.getBoundingClientRect(),b=Math.min(1,Math.max(0,(h-_.left)/_.width)),$=Math.round((s+b*(i-s))/d)*d;String($)!==u.value&&(u.value=String($),l())};m.addEventListener("pointerdown",h=>p(h.clientX)),O(e,"[data-submit]",()=>{bc(a.uid,Number(u.value)),j("sales")})}},ht={ad:"case_ad.jpg",tier1:"case_1.jpg",tier2:"case_2.jpg",tier3:"case_3.jpg",tier4:"case_4.jpg",tier5:"case_5.jpg",tier6:"case_6.jpg",tier7:"case_7.jpg",tier8:"case_8.jpg",vk:"case_vk.jpg"},ou={1:"#8a8f99",2:"#4caf50",3:"#f5c518",4:"#16b8a6",5:"#9b59b6",6:"#d63a3a",7:"#3454d1",8:"#000000"};function cu(){return`<button class="casecard casecard--autumn" data-case="${ds("ad")}">
    <div class="casecard__photo"><img src="${us.image}" alt="" /></div>
    <div class="casecard__name">${r("season.adChest")}</div>
    <span class="casebtn casebtn--rewarded">в–¶ ${r("cases.forAd")}</span>
  </button>`}function lu(){return Ya.map(e=>{const t=Ie[e];return`<button class="casecard casecard--autumn" data-case="${ds(e)}">
      <div class="casecard__photo"><img src="${t.image}" alt="" /></div>
      <div class="casecard__name">${r(`season.chest.${e}`)}</div>
      <span class="casebtn casebtn--blue">${T(t.price)}</span>
    </button>`}).join("")}function uu(){const e=c.getState();return["mythic",...Ya].filter(t=>e.autumn2026.chests[t]>0).map(t=>{const a=e.autumn2026.chests[t],n=Ie[t];return`<button class="casecard casecard--autumn" data-case="${ni(t)}">
        <span class="casecard__count casecard__count--autumn">Г—${a}</span>
        <div class="casecard__photo"><img src="${n.image}" alt="" /></div>
        <div class="casecard__name">${r(`season.chest.${t}`)}</div>
        <span class="casebtn casebtn--ad">${r("cases.openOwned")}</span>
      </button>`}).join("")}const du={title:"cases.title",render(){if(oe())return`<div class="grid">
        <button class="casecard" data-case="tier1">
          <div class="casecard__photo"><img src="${ve(ht.tier1)}" alt="" /></div>
          <div class="casecard__name">${r("caseName.tier1")}</div>
          <span class="casebtn casebtn--ad">${r("cases.freeBtn")}</span>
        </button></div>`;const e=c.getState(),t=Se(M.now()),a=e.ownedCases??{},n=a[ce]??0,s=n>0?`
      <button class="casecard" data-owned-case="${ce}">
        <span class="casecard__count casecard__count--vk">Г—${n}</span>
        <div class="casecard__photo"><img src="${ve(ht.vk)}" alt="" /></div>
        <div class="casecard__name">${r("caseName.vk")}</div>
        <span class="casebtn casebtn--blue">${r("cases.openOwned")}</span>
      </button>`:"",i=Object.entries(a).filter(([h,_])=>h!==ce&&_>0).map(([h,_])=>{const b=Ee.find(L=>L.id===h);if(!b)return"";const $=ou[b?.tier??1]??"#8a8f99",w=(b?.tier??1)===8?"#f1c40f":"#fff";return`
        <button class="casecard" data-owned-case="${h}">
          <span class="casecard__count" style="background:${$};color:${w}">Г—${_}</span>
          <div class="casecard__photo"><img src="${ve(ht[h]??"")}" alt="" /></div>
          <div class="casecard__name">${r(`caseName.${h}`)}</div>
          <span class="casebtn casebtn--ad">${r("cases.freeBtn")}</span>
        </button>`}).join(""),o=`${s}${uu()}${i}`,u=o?`
    <section class="cases-section cases-section--owned" data-owned-cases>
      <h2 class="cases-section__title">${r("cases.mineTitle")}</h2>
      <div class="grid">${o}</div>
    </section>
    <div class="cases-section-divider" data-owned-cases-divider></div>`:"",l=`<button class="casecard" data-case="ad">
      <div class="casecard__photo"><img src="${ve(ht.ad)}" alt="" /></div>
      <div class="casecard__name">${r("caseName.ad")}</div>
      <span class="casebtn casebtn--rewarded">в–¶ ${r("cases.forAd")}</span>
    </button>`,d=Ee.filter(h=>h.priceType!=="ad").map(h=>{const _=h.id==="tier1"&&mn()?`<span class="casebtn casebtn--ad">${r("cases.freeBtn")}</span>`:`<span class="casebtn casebtn--blue">${T(h.price)}</span>`;return`
        <button class="casecard" data-case="${h.id}">
          <div class="casecard__photo"><img src="${ve(ht[h.id]??"")}" alt="" /></div>
          <div class="casecard__name">${r(`caseName.${h.id}`)}</div>
          ${_}
        </button>`}).join(""),m=t?cu():"",p=t?`
    <section class="cases-section cases-section--seasonal">
      <h2 class="cases-section__title">${r("cases.seasonalTitle")}</h2>
      <div class="grid">${lu()}</div>
    </section>
    <div class="cases-section-divider" data-cases-divider></div>`:"";return`${u}
    <section class="cases-section cases-section--free">
      <h2 class="cases-section__title">${r("cases.freeTitle")}</h2>
      <div class="grid">${m}${l}</div>
    </section>
    <div class="cases-section-divider" data-free-cases-divider></div>
    ${p}
    <section class="cases-section cases-section--regular">
      <h2 class="cases-section__title">${r("cases.regularTitle")}</h2>
      <div class="grid">${d}</div>
    </section>`},mount(e){O(e,"[data-case]",t=>j("case-open",{selectedCaseId:t.dataset.case,backTo:"cases"})),O(e,"[data-owned-case]",t=>ul(t.dataset.ownedCase))}},mu={ad:"case_ad.jpg",tier1:"case_1.jpg",tier2:"case_2.jpg",tier3:"case_3.jpg",tier4:"case_4.jpg",tier5:"case_5.jpg",tier6:"case_6.jpg",tier7:"case_7.jpg",tier8:"case_8.jpg"},pu=e=>e===0?"0":e>=1?String(Math.round(e*10)/10):e>=.01?e.toFixed(2):e.toFixed(4),hu={title:"",back:!0,render(){const e=c.getState().selectedCaseId,t=Be(e),a=t??Re(e),n=Ee.find(w=>w.id===e);if(!n&&!a)return"";const s=Zs(e),i=n?.id==="tier1"&&mn(),o=t!==null&&c.getState().autumn2026.chests[t]>0,u=t!==null&&!o||t===null&&a==="mythic",l=n?.priceType==="ad"||a==="ad",d=a==="ad"?us.image:a?Ie[a].image:ve(mu[n.id]??""),m=r(a==="ad"?"season.adChest":a?`season.chest.${a}`:`caseName.${n.id}`),p=l?`в–¶ ${r("cases.forAd")}`:t!==null?r(o?"cases.openOwned":"common.unavailable"):u?r("common.unavailable"):i?r("cases.freeBtn"):T(a?Ie[a].price:n.price),h=s.map(w=>{const L=a==="mythic"&&w.id==="orange_bugatti";return`
        <button class="cocard ${L?"cocard--secret":""}" ${L?"":`data-item="${w.id}"`}>
          ${L?"":la(w.tier)}
          <div class="cocard__photo ${L?"cocard__photo--secret":""}">${L?'<span aria-hidden="true">?</span>':`<img src="${ee(w.id)}" alt="${H(w)}" />`}</div>
          <div class="cocard__name">${L?r("season.secretItem"):H(w)}</div>
          <div class="cocard__chance">${L?r("season.secretChance"):`${pu(w.chance)}%`}</div>
        </button>`}).join(""),b=!l&&!i&&!u&&t===null?`<button class="btn btn--green" data-buy-multi>${r("cases.buyMulti")}</button>`:"";return`
      <div class="caseopen">
        <div class="caseopen__hero">
          <img class="caseopen__img" src="${d}" alt="" />
          <div class="caseopen__name">${m}</div>
          <div class="caseopen__buttons">
            <button class="btn ${l?"btn--rewarded":o?"btn--ad":"btn--blue"}" data-buy ${u?"disabled":""}>${p}</button>
            ${b}
          </div>
        </div>
        <div class="caseopen__contents-title">${r("cases.contents")}</div>
        <div class="caseopen__grid">${h}</div>
      </div>`},mount(e){let t=!1;const a=async n=>{if(t)return;t=!0;const s=c.getState().selectedCaseId,i=e.querySelector(".caseopen__img"),o=await Pc(s,n);if(!o.length){t=!1;return}i?.classList.add("is-shaking"),await new Promise(u=>C(u,340)),j("roulette",{roulette:{caseId:s,wins:o,preGranted:Be(s)!==null||Re(s)!==null}})};O(e,"[data-buy]",()=>a(1)),O(e,"[data-buy-multi]",()=>{const n=c.getState().selectedCaseId,s=Ee.find(u=>u.id===n),i=Re(n),o=i&&i!=="ad"?Ie[i].price:s?.price??0;Jl(o,u=>a(u))}),O(e,"[data-item]",n=>j("item-view",{viewItem:{itemId:n.dataset.item},backTo:"case-open"}))}};function fu(e){const t=Be(e)??Re(e);if(t==="ad")return r("season.adChest");if(t)return r(`season.chest.${t}`);if(e===ce)return r("caseName.vk");const a=Ee.find(n=>n.id===e);return a?r(`caseName.${a.id}`):e}let Ma=!1,Lt=!1;function Wt(e=0){Ma||Lt||(Ma=!0,C(()=>{Ma=!1;const t=c.getState().caseOpeningBonus.pendingCaseIds[0];if(t){if(oe()||c.getState().screen==="roulette"||document.querySelector(".overlay")){Wt(500);return}Lt=!0,Gl(fu(t),async()=>{const a=await jc(t);return a?(Lt=!1,j("roulette",{selectedCaseId:t,roulette:{caseId:t,wins:a.wins,preGranted:a.preGranted}}),!0):!1},()=>{zc(t),Lt=!1,Wt(250)})}},e))}const gu={1:"#8a8f99",2:"#4caf50",3:"#f5c518",4:"#16b8a6",5:"#9b59b6",6:"#d63a3a",7:"#3454d1",8:"#f1c40f",9:"#ff8a24"},yu=40,Ha=32,kt="orange_bugatti",wa=' data-interstitial="case-complete"',Ua=e=>(Be(e)??Re(e))==="mythic",ku=e=>c.getState().tutorialDone===!0&&!Ua(e);function vu(e){return`
    <div class="rwon-list">${e.map((a,n)=>{const s=A(a.itemId),i=Mt(s,a.condition==="broken");return`
      <div class="rwon" data-i="${n}" style="--flare:${gu[s.tier]??"#8a8f99"};animation-delay:${n*.09}s">
        <div class="rwon__photo">${la(s.tier)}<img src="${ee(s.id)}" alt="${H(s)}" /></div>
        <div class="rwon__name">${H(s)}</div>
        <div class="rwon__price">${T(s.priceMin)}–${T(s.priceMax)}</div>
        <div class="rwon__btns">
          <button class="btn btn--green" data-keep="${n}"${wa}>${r("roulette.keep")}</button>
          <button class="btn btn--red" data-sell="${n}"${wa}>${r("roulette.sell",{price:T(i)})}</button>
        </div>
      </div>`}).join("")}</div>
    <button class="btn btn--blue rwon__done" id="rdone"${wa}>${r("roulette.allToInv")}</button>`}const bu=(e,t,a,n)=>{const s=n?e.filter(o=>o.id!==kt):e,i=Array.from({length:yu},(o,u)=>u===Ha?A(t.itemId):s[Math.floor(Math.random()*s.length)]);return`
    <div class="reel" data-reel="${a}">
      <div class="reel__marker"></div>
      <div class="reel__strip" data-strip="${a}">
        ${i.map((o,u)=>{const l=n&&o.id===kt;return`<div class="reel__cell ${l?"reel__cell--secret":""}" ${l&&u===Ha?"data-secret-win":""}>${l?'<span class="reel__secret-mark" aria-hidden="true">?</span>':`<img src="${ee(o.id)}" alt="${H(o)}" />`}</div>`}).join("")}
      </div>
    </div>`},Su={title:"",render(){const e=c.getState().roulette;if(!e)return"";const t=Zs(e.caseId),a=Ua(e.caseId)&&e.wins.length===1&&e.wins[0]?.itemId===kt;return`
      <div class="rou ${window.innerWidth<=1024?"rou--h":""}">
        <div class="rou__title" id="rou-title">${e.wins.length>1?r("roulette.openingN",{n:e.wins.length}):r("roulette.opening1")}</div>
        <div class="rou__reels" id="rou-reels">${e.wins.map((s,i)=>bu(t,s,i,a)).join("")}</div>
        <div class="rou__results" id="rou-results"></div>
      </div>`},mount(e){const t=c.getState().roulette;if(!t)return;const{wins:a,preGranted:n=!1,caseId:s}=t,i=window.innerWidth<=1024,o=Ua(s)&&a.length===1&&a[0]?.itemId===kt,u=[];let l=null,d=null;const m=(S,R)=>{const I=C(S,R);return u.push(I),I},p=()=>{u.splice(0).forEach(ge),l?.remove(),l=null,document.body.classList.remove("is-mythic-revealing","is-mythic-exploding")},h=new Map;let _=!1;const b=()=>{a.forEach((S,R)=>{h.get(R)==="sell"?n?Hc(S):Gc(S):n||Fc(S)})},$=()=>{if(_)return;_=!0,b();const S=Be(s),R=S!==null&&c.getState().autumn2026.chests[S]<=0,I=s===ce&&(c.getState().ownedCases?.[ce]??0)<=0;j(R||I?"cases":"case-open",{roulette:void 0}),Wt()},w=()=>{p(),d?.remove(),!_&&(_=!0,b(),Wt())};if(!e.querySelector(".reel"))return w;const V=e.querySelector(".rou__reels"),le=e.scrollHeight-V.offsetHeight,ue=e.clientHeight-le-16,he=[...e.querySelectorAll(".reel")];if(i){const R=Math.max(56,Math.min(150,(ue-16*(a.length-1))/a.length));he.forEach(I=>I.style.height=`${R}px`)}else he.forEach(S=>S.style.height=`${Math.max(200,Math.min(600,ue))}px`);d=document.createElement("div"),d.className="rou-block",document.body.appendChild(d);const U=S=>i?`translateX(${S}px)`:`translateY(${S}px)`;let v=0;a.forEach((S,R)=>{const I=e.querySelector(`[data-strip="${R}"]`),J=I.parentElement,x=i?J.clientWidth:J.clientHeight,G=I.children[Ha],D=i?G.offsetLeft:G.offsetTop,Z=i?G.offsetWidth:G.offsetHeight,ne=D+Z/2-x/2;I.style.transform=U(0),Le(()=>{I.style.transition=`transform ${4.6+R*.5}s cubic-bezier(0.12, 0.7, 0.1, 1)`,I.style.transform=U(-ne)});let ke=!1;const vn=()=>{ke||(ke=!0,++v===a.length&&(o?y():E()))};I.addEventListener("transitionend",vn,{once:!0}),C(vn,(4.8+R*.5)*1e3)});let f=!1,g=!1;function y(){if(g||_)return;g=!0;const S=A(kt);l=document.createElement("div"),l.className="mythic-reveal",l.setAttribute("role","status"),l.setAttribute("aria-live","assertive"),l.innerHTML=`
        <div class="mythic-reveal__core">
          <span class="mythic-reveal__question" aria-label="${r("season.secretItem")}">?</span>
          <img class="mythic-reveal__image" src="${ee(S.id)}" alt="${H(S)}" />
        </div>
        <div class="mythic-reveal__burst" aria-hidden="true">
          ${Array.from({length:16},(R,I)=>`<i style="--i:${I}"></i>`).join("")}
        </div>`,document.body.appendChild(l),document.body.classList.add("is-mythic-revealing"),P("mythicPulse"),[900,1650,2200,2580,2810,2940].forEach(R=>m(()=>P("mythicPulse"),R)),m(()=>{if(!l||_)return;const R=e.querySelector("[data-secret-win]");R&&(R.classList.add("is-revealed"),R.innerHTML=`<img src="${ee(S.id)}" alt="${H(S)}" />`),document.body.classList.remove("is-mythic-revealing"),document.body.classList.add("is-mythic-exploding"),l.classList.add("is-exploding"),P("mythicExplosion"),m(()=>{l?.remove(),l=null,document.body.classList.remove("is-mythic-exploding"),E()},1200)},3e3)}function E(){if(f)return;f=!0,d?.remove(),P("win");const S=e.querySelector("#rou-title");S.textContent=r("roulette.won"),e.querySelector("#rou-reels").style.display="none";const R=e.querySelector("#rou-results");let I=null;ku(s)&&(I=document.createElement("section"),I.className="rou__reroll",I.innerHTML=`
          <button class="btn btn--rewarded rou__reroll-btn" data-reroll>
            <span>${r("roulette.rerollFree")}</span><span class="rou__reroll-ad" aria-hidden="true">${bt("Ad")}</span>
          </button>
          <p class="rou__reroll-warning">${r("roulette.rerollWarning")}</p>`,S.before(I)),R.innerHTML=vu(a),xt(R);let J=a.length;const x=(D,Z)=>{if(h.has(D))return;I?.remove(),I=null,h.set(D,Z);const ne=R.querySelector(`.rwon[data-i="${D}"]`);Z==="keep"?ne?.querySelector(".rwon__btns")?.replaceWith(Object.assign(document.createElement("div"),{className:"rwon__tag",textContent:r("roulette.inInv")})):ne?.remove(),--J<=0&&C($,600)};R.querySelectorAll("[data-keep]").forEach(D=>D.addEventListener("click",()=>x(+D.dataset.keep,"keep"))),R.querySelectorAll("[data-sell]").forEach(D=>D.addEventListener("click",()=>x(+D.dataset.sell,"sell"))),R.querySelector("#rdone").addEventListener("click",()=>{a.forEach((D,Z)=>x(Z,"keep"))});const G=I?.querySelector("[data-reroll]");G?.addEventListener("click",async()=>{if(_||h.size>0||G.disabled)return;G.disabled=!0;const D=await Dc(s,a,n);if(!D.length){G.disabled=!1;return}_=!0,c.setState({roulette:{caseId:s,wins:D,preGranted:n}})})}return w}},_u=280,Mu=240,wu=240,Cu=new Map,Au=new Map;function Yn(e,t,a){const n=Ze(),s=e.get(t)??n;e.has(t)||e.set(t,s);const i=Math.min(a,Math.max(0,n-s));return` style="animation-delay:-${Math.round(i)}ms"`}function Tu(e,t){const a=e.messages[e.messages.length-1]?.build()??"",n=e.kind==="sell"?"рџџў ":"";return`
    <button class="chatrow ${t?"is-active":""} ${e.flash==="new"?"is-flash-green":""} ${e.flash==="ignored"?"is-flash-red":""} ${e.closing?"is-closing":""}" data-chat="${e.id}">
      ${ca(e.npc)}
      <span class="chatrow__body">
        <span class="chatrow__name">${n}${e.npc.name}</span>
        <span class="chatrow__preview">${a}</span>
      </span>
    </button>`}function Eu(e){if(e.done){const a=e.reportable?`<button class="chatopt" data-report>${r("chats.report")}</button>`:"";return`<div class="chat__done">${r("chats.done")}</div>${a}`}if(e.gate==="open")return`
      <button class="chatopt" data-gateword>${e.gateWord}</button>
      <button class="chatopt" data-gaterefuse${de("chat-complete")}>${r("dlg.gateRefuse")}</button>`;if(e.kind==="sell"){if(e.wantsTrade)return e.tradeAsked?`<button class="chatopt" data-accepttrade${de("chat-complete")}>${r("chats.optAcceptTrade")}</button>
           <button class="chatopt" data-proposesur>${r("chats.optProposeSur")}</button>
           <button class="chatopt" data-decline${de("chat-complete")}>${r("chats.optDeclineTrade")}</button>`:`<button class="chatopt" data-asktrade>${r("chats.optAskCond")}</button>
           <button class="chatopt" data-proposesur>${r("chats.optProposeSur")}</button>
           <button class="chatopt" data-decline${de("chat-complete")}>${r("chats.optDeclineTrade")}</button>`;if(e.asksCondition)return`
        <button class="chatopt" data-answercond>${r("chats.optAnswerCond")}</button>
        <button class="chatopt" data-refusecond>${r("chats.optRefuseCond")}</button>`;const a=ua(e),n=e.price<a?`<button class="chatopt" data-counter>${r("chats.optCounter")}</button>`:"";return`
      <button class="chatopt" data-accept${de("chat-complete")}>${r("chats.optSell",{price:T(e.price)})}</button>
      ${n}
      <button class="chatopt" data-decline${de("chat-complete")}>${r("chats.optDecline")}</button>`}if(e.surcharge)return`
      <button class="chatopt" data-acceptsur${de("chat-complete")}>${r("chats.optAcceptSur",{amount:T(e.surcharge)})}</button>
      <button class="chatopt" data-countersur>${r("chats.optCounterSur")}</button>
      <button class="chatopt" data-declinesur>${r("chats.optDeclineSur")}</button>
      <button class="chatopt" data-leave${de("chat-complete")}>${r("chats.optBye")}</button>`;let t="";return e.greeted?e.smalltalkAsked||(t=`<button class="chatopt" data-ask>${r("chats.optAsk")}</button>`,e.questions>0&&(t+=`<button class="chatopt" data-smalltalk>${r("chats.optSmalltalk")}</button>`)):t=`<button class="chatopt" data-greet>${r("chats.optGreet")}</button>`,`
    ${t}
    <button class="chatopt" data-takenow${de("chat-complete")}>${r("chats.optTakeNow")}</button>
    <button class="chatopt" data-discount>${r("chats.optDiscount")}</button>
    <button class="chatopt" data-trade>${r("chats.optTrade")}</button>
    <button class="chatopt" data-leave${de("chat-complete")}>${r("chats.optBye")}</button>`}function ua(e){return e.kind==="sell"?c.getState().listings.find(a=>a.uid===e.uid)?.price??e.price:e.price}function $u(e){if(e.kind!=="sell"||!e.tradeItemId)return"";const t=A(e.tradeItemId),a=Math.round((t.priceMin+t.priceMax)/2),n={uid:"offer",itemId:e.tradeItemId,condition:e.tradeCondition??"new",price:a},s=xe(n,{showCondition:!!e.tradeAsked,hideBadge:!e.tradeAsked});return`<div class="trade-offer"><span class="trade-offer__hint">${r("chats.tradeOfferHint")}</span>${s}</div>`}function Ou(e){const t=e.messages.map((i,o)=>{const u=o===e.messages.length-1&&e.messageEntering===i.from&&e.messageAnimationKey!=null,l=u?Yn(Cu,e.messageAnimationKey,i.from==="player"?_u:Mu):"";return`<div class="bubble bubble--${i.from}${u?" is-entering":""}"${l}>${i.build()}</div>${o===0?$u(e):""}`}).join(""),a=!!(e.typing||e.optionsHidden),n=!a&&e.optionsRevealKey!=null,s=n?Yn(Au,e.optionsRevealKey,wu):"";return`
    <div class="chat">
      <div class="chat__header">
        <button class="chat__back" data-chatback>в†ђ</button>
        ${ca(e.npc)}
        <span class="chat__who"><b>${e.npc.name}</b><span>${an(e.npc.type)}</span></span>
        <button class="chat__listing" data-openitem>
          <img src="${ee(A(e.itemId).id)}" alt="" />
          <span class="chat__listing-info">
            <span class="chat__listing-name">${H(A(e.itemId))}</span>
            <span class="chat__listing-price">${T(ua(e))}</span>
          </span>
        </button>
      </div>
      <div class="chat__body" id="chatbody">${t}${e.typing?'<div class="bubble bubble--npc bubble--typing"><i></i><i></i><i></i></div>':""}</div>
      <div class="chat__options ${a?"is-waiting":n?"is-ready":""}"${s}>${a?"":Eu(e)}</div>
    </div>`}const Iu={title:"chats.title",render(){const e=c.getState(),t=e.activeChatId??e.chats[0]?.id,a=e.chats.find(s=>s.id===t);if(!e.chats.length)return`<p style="color:var(--c-text-muted)">${r("chats.empty")}</p>`;const n=e.chats.map(s=>Tu(s,s.id===t)).join("");return`
      <div class="chats ${e.chatOpen?"is-chat-open":"is-list"}">
        <aside class="chats__list">${n}</aside>
        <section class="chats__main">${a?Ou(a):""}</section>
      </div>`},mount(e){const t=c.getState();!t.chats.some(l=>l.id===t.activeChatId)&&t.chats[0]&&c.setState({activeChatId:t.chats[0].id});const a=()=>c.getState().activeChatId??c.getState().chats[0]?.id??"",n=()=>c.getState().chats.find(l=>l.id===a());let s=!1;const i=(l,d)=>{if(s)return;s=!0;const m=a();l.classList.add("is-selected"),l.closest(".chat__options")?.classList.add("is-sending"),window.setTimeout(()=>d(m),170)},o=(l,d)=>{O(e,l,m=>i(m,d))};O(e,"[data-chat]",l=>{const d=l.dataset.chat;c.setState(m=>({activeChatId:d,chatOpen:!0,chats:m.chats.map(p=>p.id===d?{...p,unread:!1,ignored:!1}:p)}))}),O(e,"[data-chatback]",()=>c.setState({chatOpen:!1})),o("[data-greet]",tc),o("[data-ask]",nc),o("[data-smalltalk]",rc),o("[data-takenow]",ac),O(e,"[data-trade]",()=>{if(!c.getState().inventory.length)return z(r("chats.noTradeItems"));c.setState({activeChatId:a()}),j("trade-pick",{backTo:"chats"})}),o("[data-leave]",dc),O(e,"[data-discount]",()=>{const l=n(),d=A(l.itemId);Ol(d,Math.round(l.price*.9),m=>ic(l.id,m))}),o("[data-gateword]",pc),o("[data-gaterefuse]",mc),O(e,"[data-report]",()=>hc(a())),o("[data-accept]",Nc),O(e,"[data-counter]",()=>{const l=n();Yl(l.price,ua(l),d=>xc(l.id,d))}),o("[data-answercond]",$c),o("[data-refusecond]",Oc),o("[data-asktrade]",Ic),o("[data-accepttrade]",Rc),O(e,"[data-proposesur]",()=>{const l=n();l&&Vl(Ys(l),d=>Bc(l.id,d))}),o("[data-decline]",qc),o("[data-acceptsur]",cc),o("[data-declinesur]",uc),O(e,"[data-countersur]",()=>{const l=n();l?.surcharge&&Wl(l.surcharge,d=>lc(l.id,d))}),O(e,"[data-openitem]",()=>j("chat-item",{activeChatId:a(),backTo:"chats"})),O(e,".trade-offer .card",()=>{const l=n();l?.tradeItemId&&j("item-view",{viewItem:{itemId:l.tradeItemId,condition:l.tradeCondition,revealed:!!l.tradeAsked,label:r("chats.tradeLabel")},backTo:"chats"})});const u=e.querySelector("#chatbody");u&&(u.scrollTop=u.scrollHeight)}},Ru={title:"chats.tradePick",back:!0,render(){const e=c.getState().inventory;return e.length?`<div class="grid">${e.map(a=>{const n=A(a.itemId),s=Math.round((n.priceMin+n.priceMax)/2);return xe({...a,price:s})}).join("")}</div>`:`<p style="color:var(--c-text-muted)">${r("chats.tradeEmpty")}</p>`},mount(e){O(e,".card",t=>{const a=c.getState().activeChatId;a&&oc(a,t.dataset.uid),j("chats")})}},Jn={below:{var:"--c-green",key:"sellSetup.zoneBelow"},market:{var:"--c-blue",key:"sellSetup.zoneMarket"},above:{var:"--c-red",key:"sellSetup.zoneAbove"}},Lu={title:"",back:!0,render(){const e=c.getState(),t=e.chats.find(h=>h.id===e.activeChatId)??e.chats[0];if(!t)return`<p style="color:var(--c-text-muted)">${r("buy.stolen")}</p>`;const a=A(t.itemId),n=ua(t),s={uid:"view",itemId:t.itemId,condition:"new",price:n},i=0,o=Math.round(a.priceMax*1.4),u=h=>Math.min(100,Math.max(0,(h-i)/(o-i)*100)),l=_t(n,a),d=`var(${Jn[l].var})`,m=t.npc,p=t.kind==="sell"?`<div class="seller">
           <span class="seller__info"><span class="seller__name">${r("chats.sellerYou")}</span></span>
         </div>`:`<div class="seller">
           ${ca(m)}
           <span class="seller__info">
             <span class="seller__name">${m.name}</span>
             <span class="seller__type">${an(m.type)}</span>
             ${m.hobby?`<span class="seller__hobby">${r("chats.hobby",{hobby:_s(m.hobby)})}</span>`:""}
             ${m.wants.length?`<span class="seller__wants">${r("chats.wants",{items:m.wants.map(h=>H(A(h))).join(", ")})}</span>`:""}
           </span>
         </div>`;return`
      <div class="buyitem">
        <div class="buyitem__left">${xe(s)}</div>
        <div class="buyitem__right">
          ${p}
          <div class="panel">
            <div class="panel__title">${r("buy.estimate")} <b style="color:${d}">${r(Jn[l].key)}</b></div>
            <div class="slider">
              <div class="slider__track" style="background:linear-gradient(90deg, var(--c-green) ${u(a.priceMin)}%, var(--c-blue) ${u(a.priceMin)}%, var(--c-blue) ${u(a.priceMax)}%, var(--c-red) ${u(a.priceMax)}%)"></div>
              <div class="slider__mark" style="left:${u(a.priceMin)}%"><span class="dot dot--green"></span><span class="slider__mark-label">${T(a.priceMin)}</span></div>
              <div class="slider__mark" style="left:${u(a.priceMax)}%"><span class="dot dot--red"></span><span class="slider__mark-label">${T(a.priceMax)}</span></div>
              <div class="slider__pin" style="left:${u(n)}%"></div>
              <div class="slider__value" style="left:${u(n)}%; color:${d}">${T(n)}</div>
            </div>
          </div>
        </div>
      </div>`}},Zn={below:{var:"--c-green",key:"sellSetup.zoneBelow"},market:{var:"--c-blue",key:"sellSetup.zoneMarket"},above:{var:"--c-red",key:"sellSetup.zoneAbove"}},Bu={title:"",back:!0,render(){const e=c.getState(),t=e.listings.find(l=>l.uid===e.selectedMarketUid);if(!t)return`<p style="color:var(--c-text-muted)">${r("buy.notFound")}</p>`;const a=A(t.itemId),n=0,s=Math.round(a.priceMax*1.4),i=l=>Math.min(100,Math.max(0,(l-n)/(s-n)*100)),o=_t(t.price,a),u=`var(${Zn[o].var})`;return`
      <div class="buyitem">
        <div class="buyitem__left">
          ${xe(t,{showCondition:!0})}
          <button class="btn btn--red" data-unlist data-interstitial="unlist-item">${r("sales.unlist")}</button>
        </div>
        <div class="buyitem__right">
          <div class="seller"><span class="seller__info"><span class="seller__name">${r("chats.sellerYou")}</span></span></div>
          <div class="panel">
            <div class="panel__title">${r("buy.estimate")} <b style="color:${u}">${r(Zn[o].key)}</b></div>
            <div class="slider">
              <div class="slider__track" style="background:linear-gradient(90deg, var(--c-green) ${i(a.priceMin)}%, var(--c-blue) ${i(a.priceMin)}%, var(--c-blue) ${i(a.priceMax)}%, var(--c-red) ${i(a.priceMax)}%)"></div>
              <div class="slider__mark" style="left:${i(a.priceMin)}%"><span class="dot dot--green"></span><span class="slider__mark-label">${T(a.priceMin)}</span></div>
              <div class="slider__mark" style="left:${i(a.priceMax)}%"><span class="dot dot--red"></span><span class="slider__mark-label">${T(a.priceMax)}</span></div>
              <div class="slider__pin" style="left:${i(t.price)}%"></div>
              <div class="slider__value" style="left:${i(t.price)}%; color:${u}">${T(t.price)}</div>
            </div>
          </div>
        </div>
      </div>`},mount(e){O(e,"[data-unlist]",()=>{Ws(c.getState().selectedMarketUid),j("sales")})}},Nu={title:"",back:!0,render(){const e=c.getState().viewItem;if(!e)return`<p style="color:var(--c-text-muted)">${r("buy.notFound")}</p>`;const t=A(e.itemId),a=Math.round((t.priceMin+t.priceMax)/2),n={uid:"view",itemId:e.itemId,condition:e.condition??"new",price:a},s=0,i=Math.round(t.priceMax*1.4),o=l=>Math.min(100,Math.max(0,(l-s)/(i-s)*100)),u=e.label?`<div class="seller"><span class="seller__info"><span class="seller__name">${e.label}</span></span></div>`:"";return`
      <div class="buyitem">
        <div class="buyitem__left">${xe(n,{showCondition:!!e.revealed,hideBadge:!e.revealed})}</div>
        <div class="buyitem__right">
          ${u}
          <div class="panel">
            <div class="panel__title">${r("buy.estimate")} <b style="color:var(--c-blue)">${r("sellSetup.zoneMarket")}</b></div>
            <div class="slider">
              <div class="slider__track" style="background:linear-gradient(90deg, var(--c-green) ${o(t.priceMin)}%, var(--c-blue) ${o(t.priceMin)}%, var(--c-blue) ${o(t.priceMax)}%, var(--c-red) ${o(t.priceMax)}%)"></div>
              <div class="slider__mark" style="left:${o(t.priceMin)}%"><span class="dot dot--green"></span><span class="slider__mark-label">${T(t.priceMin)}</span></div>
              <div class="slider__mark" style="left:${o(t.priceMax)}%"><span class="dot dot--red"></span><span class="slider__mark-label">${T(t.priceMax)}</span></div>
              <div class="slider__pin" style="left:${o(a)}%"></div>
              <div class="slider__value" style="left:${o(a)}%; color:var(--c-blue)">${T(a)}</div>
            </div>
          </div>
        </div>
      </div>`}},pr=[{id:"coins1k",coins:1e3,yan:1,img:"money_1k.jpg"},{id:"coins10k",coins:1e4,yan:5,img:"money_10k.jpg"},{id:"coins100k",coins:1e5,yan:25,img:"money_100k.jpg"},{id:"coins500k",coins:5e5,yan:49,img:"money_500k.jpg"},{id:"coins1m",coins:1e6,yan:75,img:"money_1m.jpg"},{id:"coins10m",coins:1e7,yan:99,img:"money_10m.jpg"},{id:"coins100m",coins:1e8,yan:125,img:"money_100m.jpg"},{id:"coins500m",coins:5e8,yan:149,img:"money_500m.jpg"},{id:"coins1b",coins:1e9,yan:199,img:"money_1b.jpg"},{id:"coins10b",coins:1e10,yan:399,img:"money_10b.jpg"},{id:"starterpack",yan:99,kind:"starter",img:"starter.jpg"},{id:"autumnpack",yan:199,kind:"autumn",img:"season_bundle.jpg"},{id:"megapack",yan:699,kind:"mega",img:"mega.jpg"},{id:"noads",yan:49,kind:"noads",img:"no_ads.svg"}],At=e=>pr.find(t=>t.id===e);let hr={};async function xu(){const e=await M.getCatalog().catch(()=>[]);hr=Object.fromEntries(e.map(t=>[t.id,t]))}function Oe(e){const t=hr[e];if(t){const n=t.currencyCode?`<span class="cur-name">${t.currencyCode}</span>`:"",s=t.currencyImage?`<img class="cur-icon" src="${t.currencyImage}" alt="" />`:"";return`${t.priceValue}${n?` ${n}`:""}${s?` ${s}`:""}`}const a=At(e);return a?`${a.yan} YAN`:""}function fr(e){const t=At(e);t&&(t.kind==="starter"?al():t.kind==="autumn"?nl():t.kind==="mega"?sl():t.kind==="noads"?rl():t.coins!=null&&Jc(t.coins,t.yan))}async function De(e){const t=await M.purchase(e);return t?(fr(t.productId),await M.consume(t.token),!0):!1}async function qu(){const e=await M.getPurchases().catch(()=>[]);for(const t of e)fr(t.productId),await M.consume(t.token)}function Qn(e){const t=Math.floor(e/1e3),a=Math.floor(t/3600),n=Math.floor(t%3600/60),s=t%60;return`${a}:${String(n).padStart(2,"0")}:${String(s).padStart(2,"0")}`}const Pu=At("starterpack"),Du=At("autumnpack"),zu=At("megapack"),ju=pr.filter(e=>e.coins!=null),Fu={title:"shop.title",render(){const e=c.getState(),t=!!e.noAds,a=st(),n=Ve()?`
      <div class="shopcard is-promo">
        <div class="promo-sticker">
          <span class="promo-sticker__label">${r("shop.promo")}</span>
          <span class="promo-sticker__timer" id="starter-timer">${Qn(Ut())}</span>
        </div>
        <div class="shopcard__photo"><img src="${ie(Pu.img)}" alt="" /></div>
        <div class="shopcard__amount">${r("shop.starter")}</div>
        <button class="shopcard__buy" data-starter-info>${r("shop.details")}</button>
      </div>`:"",s=a.available?`
      <div class="shopcard shopcard--autumn-bundle">
        <div class="promo-sticker promo-sticker--autumn">
          <span class="promo-sticker__label">${r("shop.promo")}</span>
          <span class="promo-sticker__timer" id="autumn-bundle-timer">${Ga(a.remainingMs)}</span>
        </div>
        <div class="shopcard__photo"><img src="${ie(Du.img)}" alt="" /></div>
        <div class="shopcard__amount">${r("shop.autumnBundle")}</div>
        <button class="shopcard__buy" data-autumn-bundle-info>${r("shop.details")}</button>
      </div>`:"",i=e.megaBundleBought?"":`
      <div class="shopcard shopcard--mega is-promo">
        <div class="promo-sticker">
          <span class="promo-sticker__label">${r("shop.promo")}</span>
          <span class="promo-sticker__timer">${r("shop.megaBenefit")}</span>
        </div>
        <div class="shopcard__photo"><img src="${ie(zu.img)}" alt="" /></div>
        <div class="shopcard__amount">${r("shop.megaBundle")}</div>
        <button class="shopcard__buy" data-mega-bundle-info>${r("shop.details")}</button>
      </div>`,o=dt(),u=t?"":`
      <div class="shopcard">
        <div class="shopcard__photo"><img src="${ie(o)}" alt="" /></div>
        <div class="shopcard__amount">${r("shop.noAds")}</div>
        <button class="shopcard__buy" data-buy="noads">${Oe("noads")}</button>
      </div>`,l=ju.map(b=>`
      <div class="shopcard">
        <div class="shopcard__photo"><img src="${ie(b.img)}" alt="" /></div>
        <div class="shopcard__amount">${T(b.coins)}</div>
        <button class="shopcard__buy" data-buy="${b.id}">${Oe(b.id)}</button>
      </div>`).join(""),d=`${n}${s}${i}${u}`,m=d.length>0,p=m?e.shopTab??"offers":"currency";return`${m?`<div class="shop-tabs" role="tablist">
      <button class="shop-tab ${p==="offers"?"is-active":""}" data-shop-tab="offers" role="tab" aria-selected="${p==="offers"}">${r("shop.offers")}</button>
      <button class="shop-tab ${p==="currency"?"is-active":""}" data-shop-tab="currency" role="tab" aria-selected="${p==="currency"}">${r("shop.currency")}</button>
    </div>`:""}<div class="grid grid--shop">${p==="offers"?d:l}</div>
      <p class="shop__disclaimer">${r("shop.disclaimer")}</p>`},mount(e){O(e,"[data-shop-tab]",u=>{c.setState({shopTab:u.dataset.shopTab})}),O(e,"[data-buy]",u=>{De(u.dataset.buy)}),O(e,"[data-starter-info]",()=>Bl(Oe("starterpack"),!c.getState().noAds,()=>De("starterpack"))),O(e,"[data-autumn-bundle-info]",()=>xl(Oe("autumnpack"),!c.getState().noAds,()=>De("autumnpack"))),O(e,"[data-mega-bundle-info]",()=>Dl(Oe("megapack"),!c.getState().noAds,()=>De("megapack")));const t=st(),a=e.querySelector("#starter-timer"),n=e.querySelector("#autumn-bundle-timer");let s=Ve(),i=`${t.phase}:${t.cycle}`;if(!s&&t.phase==="ended")return;const o=St(()=>{if(we())return;const u=Ve();if(u!==s){s=u,Pe(o),j("shop");return}if(a){const m=Ut();if(m<=0){Pe(o),j("shop");return}a.textContent=Qn(m)}const l=st(),d=`${l.phase}:${l.cycle}`;if(d!==i){i=d,Pe(o),j("shop");return}n&&l.available&&(n.textContent=Ga(l.remainingMs))},1e3);return()=>Pe(o)}};function kn(e){return e<5e4?"tier3":e<5e5?"tier4":e<5e6?"tier5":e<5e7?"tier6":e<3e9?"tier7":"tier8"}const gr=e=>r(`caseName.${kn(e)}`);function Xn(){if(c.getState().reviewRewardGiven)return;const e=kn(c.getState().coins);c.setState(t=>({reviewRewardGiven:!0,ownedCases:{...t.ownedCases,[e]:(t.ownedCases?.[e]??0)+1}})),P("gift"),z(r("toast.giftGot",{name:r(`caseName.${e}`)}))}async function yr(){const{value:e,reason:t}=await M.canReview();if(e){await M.requestReview()&&Xn();return}if(t==="NO_AUTH"){ur(()=>kr());return}if(t==="GAME_RATED"){Xn();return}Kl()}async function kr(){await M.auth()&&yr()}function vr(){if(c.getState().reviewRewardGiven){z(r("popup.reviewGiven"));return}if(!M.isAuthorized()){ur(()=>kr());return}yr()}const br={tier1:"case_1.jpg",tier2:"case_2.jpg",tier3:"case_3.jpg",tier4:"case_4.jpg",tier5:"case_5.jpg",tier6:"case_6.jpg",tier7:"case_7.jpg",tier8:"case_8.jpg"},Gu=e=>e.kind==="case"?ve(br[e.caseId]??""):e.kind==="autumnChest"?Ie[e.chestId].image:ee(e.itemId),Hu=e=>e.kind==="case"?r(`caseName.${e.caseId}`):e.kind==="autumnChest"?r(`season.chest.${e.chestId}`):H(A(e.itemId)),Uu={title:"gifts.title",render(){const e=c.getState(),t=e.vkCommunityRewardGiven?"":`
      <div class="giftcard giftcard--vk is-next">
        <div class="giftcard__day">${r("gifts.subscription")}</div>
        <div class="giftcard__photo"><img src="${ve("case_vk.jpg")}" alt="" /></div>
        <div class="giftcard__reward">${r("caseName.vk")}</div>
        <button class="giftcard__claim giftcard__claim--vk" data-vk-gift>${r("gifts.get")}</button>
      </div>`,a=e.reviewRewardGiven?"":`
      <div class="giftcard is-next">
        <div class="giftcard__day">${r("gifts.review")}</div>
        <div class="giftcard__photo"><img src="${ve(br[kn(e.coins)]??"")}" alt="" /></div>
        <div class="giftcard__reward">${gr(e.coins)}</div>
        <button class="giftcard__claim" data-review>${r("gifts.forReview")}</button>
      </div>`,n=Ht(),s=Gt.map(i=>{const o=i.day<=n.displayStreak,u=n.available&&i.day===n.nextDay,l=o?`<button class="giftcard__claim is-claimed" disabled>${r("common.got")}</button>`:u?`<button class="giftcard__claim" data-day="${i.day}" data-interstitial="daily-reward">${r("gifts.claim")}</button>`:`<button class="giftcard__claim is-locked" disabled>${r("common.unavailable")}</button>`;return`
        <div class="giftcard ${u?"is-next":""}">
          <div class="giftcard__day">${i.day} ${r("gifts.day")}</div>
          <div class="giftcard__photo"><img src="${Gu(i)}" alt="" /></div>
          <div class="giftcard__reward">${Hu(i)}</div>
          ${l}
        </div>`}).join("");return`<div class="grid grid--gifts">${t}${a}${s}</div>`},mount(e){O(e,"[data-day]",t=>Yc(+t.dataset.day)),O(e,"[data-review]",()=>vr()),O(e,"[data-vk-gift]",()=>{jl(()=>{window.open(zo,"_blank","noopener,noreferrer"),Vc()})})}},Ku=["collectors","rich","sellers"],Bt=10;function Sr(e){const t=Number.isFinite(e)?String(Math.trunc(Math.abs(e))).length:7;return t>=7?"is-rank-very-long":t>=4?"is-rank-long":""}function Wu(e){const t=c.getState();return e==="collectors"?(t.seenItems??[]).length:e==="rich"?t.coins:t.salesCount}function _r(e,t){return e==="rich"?T(t):e==="collectors"?Je("leaders.items",t,{total:X.length}):Je("leaders.sold",t)}function Mr(e,t){if(!t)return e.slice(0,Bt).map(s=>({...s,me:!1}));const a=e.filter(s=>s.rank!==t.rank).map(s=>({...s,me:!1})),n={...t,name:r("leaders.you"),me:!0};return t.rank<=Bt?[...a,n].sort((s,i)=>s.rank-i.rank).slice(0,Bt):[...a.slice(0,Bt-1),n]}function Vu(e,t){return`
    <div class="leadrow ${t.me?"is-me":""}">
      <span class="leadrow__rank ${Sr(t.rank)}">${t.rank}</span>
      <span class="leadrow__name">${t.name}</span>
      <span class="leadrow__score">${_r(e,t.score)}</span>
    </div>`}const Yu={title:"common.leaders",render(){const e=c.getState().leadersTab??"collectors",t=Wu(e),a=e!=="sellers"||!xa(t);return`
      <div class="leaders">
        <div class="invtabs">${Ku.map(s=>`<button class="invtab ${s===e?"is-active":""}" data-leadtab="${s}">${r(`leaders.${s}`)}</button>`).join("")}</div>
        <div class="leadlist" id="leadlist">
          ${a?`<div class="leadrow is-me">
            <span class="leadrow__rank">…</span>
            <span class="leadrow__name">${r("leaders.you")}</span>
            <span class="leadrow__score">${_r(e,t)}</span>
          </div>`:""}
          <p class="leaders__loading">${r("leaders.loading")}</p>
        </div>
      </div>`},mount(e){O(e,"[data-leadtab]",s=>c.setState({leadersTab:s.dataset.leadtab}));const t=c.getState().leadersTab??"collectors",a=e.querySelector("#leadlist");let n=!1;return M.getLeaderboard(qe[t]).then(({entries:s,playerEntry:i})=>{if(n||!a)return;const o=p=>({...p,score:No(t,p.score)}),u=s.map(o),l=i?o(i):void 0,d=p=>t==="sellers"&&xa(p.score),m=Mr(u.filter(p=>!d(p)),l&&!d(l)?l:void 0);a.innerHTML=m.map(p=>Vu(t,p)).join("")}).catch(()=>{}),()=>{n=!0}}},Ju="./assets/work/pc_off.png",Zu="./assets/work/pc_on.png",Qu={title:"work.title",render(){const e=c.getState().workLevel??1,t=Da(e);return`
      <div class="work">
        <div class="work__hint">${r("work.hint")}</div>
        <button class="work__pc" data-work-click aria-label="${r("work.hint")}">
          <img class="work__pc-img work__pc-off" src="${Ju}" alt="" />
          <img class="work__pc-img work__pc-on" src="${Zu}" alt="" />
        </button>
        <div class="work__stats">
          <div class="work__income">${r("work.perClick")}<b>${T(ol(e))}</b></div>
          <div class="work__level">${r("work.level",{n:e})}</div>
        </div>
        <button class="work__upgrade" id="work-up" data-interstitial="work-upgrade">${r("work.upgrade",{price:T(t)})}</button>
      </div>`},mount(e){const t=e.querySelector(".work__pc"),a=e.querySelector("#work-up"),n=e.querySelector(".work"),s=()=>{if(!a)return;const l=c.getState().workLevel??1,d=c.getState().coins>=Da(l);a.classList.toggle("is-on",d),a.classList.toggle("is-off",!d),a.disabled=!d};s();const i=c.subscribe(s);let o=0;const u=l=>{const d=c.getState().coins;cl(),P("tap");const m=c.getState().coins-d;m>0&&Xu(n,l,m),t.classList.add("is-on"),t.classList.remove("is-hit"),t.offsetWidth,t.classList.add("is-hit"),ge(o),o=C(()=>t.classList.remove("is-on"),2e3)};return t.addEventListener("pointerdown",u),O(e,"#work-up",()=>{ll()}),()=>{ge(o),i()}}};function Xu(e,t,a){const n=e.getBoundingClientRect(),s=document.createElement("div");s.className="work__pop",s.textContent=`+${T(a)}`,s.style.left=`${t.clientX-n.left}px`,s.style.top=`${t.clientY-n.top}px`,e.appendChild(s),s.addEventListener("animationend",()=>s.remove(),{once:!0})}let Ca=!1;const ed={tier1:"case_1.jpg",tier2:"case_2.jpg",tier3:"case_3.jpg",tier4:"case_4.jpg",tier5:"case_5.jpg",tier6:"case_6.jpg",tier7:"case_7.jpg",tier8:"case_8.jpg"},td={1e3:"money_1k.jpg",5e5:"money_500k.jpg",1e6:"money_1m.jpg",1e7:"money_10m.jpg",1e10:"money_10b.jpg"};function ad(){const e=c.getState();Ca||!Ia(M.now(),e.tutorialDone===!0,e.autumnGuideSeen===!0)||(Ca=!0,queueMicrotask(()=>{Ca=!1;const t=c.getState();t.screen!=="season"||!Ia(M.now(),t.tutorialDone===!0,t.autumnGuideSeen===!0)||(c.setState({autumnGuideSeen:!0}),dr(()=>j("cases",{backTo:"season"})))}))}function nd(e){const t=be.some(a=>Xt(c.getState().autumn2026,a.required));return`<div class="invtabs season-tabs">
    ${["collection","rewards","leaders"].map(a=>`<button class="invtab ${e===a?"is-active":""} ${a==="rewards"&&t?"has-reward":""}" data-season-tab="${a}">${r(`season.tab.${a}`)}${a==="rewards"&&t?'<i class="season-tab__dot"></i>':""}</button>`).join("")}
  </div>`}function sd(){const e=c.getState().autumn2026,t=je(e),a=gs(M.now());return`<section class="season-hero">
    <div class="season-hero__copy">
      <span class="season-hero__eyebrow">${r("season.eyebrow")}</span>
      <h2>${r("season.heroTitle")}</h2>
      <p class="season-hero__countdown">${rd(a)}</p>
    </div>
    <div class="season-stats">
      <div class="season-stat"><b>${t}/${se.length}</b><small>${r("season.collected")}</small></div>
      <div class="season-stat"><b>${e.sales}</b><small>${r("season.sales")}</small></div>
    </div>
  </section>`}function rd(e){if(e<=0)return r("season.heroEnded");const t=e%100,a=e%10,n=t>=11&&t<=14?"season.heroDaysMany":a===1?"season.heroDaysOne":a>=2&&a<=4?"season.heroDaysFew":"season.heroDaysMany";return r(n,{n:`<b>${e}</b>`})}function id(e){return e.kind==="leaves"?r("season.rewardLeaves",{n:e.amount}):e.kind==="coins"?T(e.amount):e.kind==="autumnChest"?`${e.amount}Г— ${r(`season.chest.${e.chestId}`)}`:e.kind==="case"?`${e.amount}Г— ${r(`caseName.${e.caseId}`)}`:H(A(e.itemId))}function od(e){if(e.kind==="coins"){const a=td[e.amount];return a?`<span class="season-reward-media"><img src="${ie(a)}" alt="${T(e.amount)}" /></span>`:'<span class="season-reward-media season-reward-media--currency" aria-hidden="true">в‚Ѕ</span>'}if(e.kind==="leaves")return'<span class="season-reward-media season-reward-media--currency" aria-hidden="true">+</span>';if(e.kind==="autumnChest")return`<span class="season-reward-media"><img src="${Ie[e.chestId].image}" alt="${r(`season.chest.${e.chestId}`)}" /></span>`;if(e.kind==="case")return`<span class="season-reward-media"><img src="${ve(ed[e.caseId]??"")}" alt="${r(`caseName.${e.caseId}`)}" /></span>`;const t=A(e.itemId);return`<span class="season-reward-media"><img src="${ee(t.id)}" alt="${H(t)}" /></span>`}function cd(e){const t=be.length-1,a=be[0];if(e<=a.required)return 0;for(let n=0;n<t;n+=1){const s=be[n],i=be[n+1];if(e>i.required)continue;const o=(e-s.required)/(i.required-s.required);return(n+o)/t*100}return 100}function ld(){const e=c.getState().autumn2026,t=je(e),a=cd(t).toFixed(2),n=be.map(s=>{const i=s.showcaseItemId?A(s.showcaseItemId):void 0,o=!!i&&(e.items[i.id]??0)>0,u=e.claimedMilestones.includes(s.required),l=t>=s.required,d=i?o?"is-complete":"is-locked":u?"is-claimed":l?"is-ready":"is-locked",m=s.rewards.length>1?"is-multi":"",p=i?`<div class="season-milestone__card season-milestone__card--showcase">
          <div class="season-milestone__rewards season-milestone__rewards--showcase">
            <span class="season-reward-media season-reward-media--secret ${o?"is-revealed":""}">${o?`<img src="${ee(i.id)}" alt="${H(i)}" />`:`<span class="season-reward-secret-mark" aria-label="${r("season.secretItem")}">?</span>`}
            </span>
          </div>
        </div>`:`<div class="season-milestone__card">
          <small>${Je("season.forItems",s.required)}</small>
          <div class="season-milestone__rewards ${m}">
            ${s.rewards.map(h=>`<div>${od(h)}<b>${id(h)}</b></div>`).join("")}
          </div>
          ${u?`<button disabled>${r("season.claimed")}</button>`:l?`<button data-autumn-claim="${s.required}" data-interstitial="season-reward">${r("season.claim")}</button>`:`<button disabled>${r("season.needMore",{n:s.required-t})}</button>`}
        </div>`;return`<article class="season-milestone ${d}" data-season-milestone="${s.required}">
      <div class="season-milestone__need">${s.required}</div>
      <span class="season-milestone__dot">${u||o?"вњ“":""}</span>
      ${p}
    </article>`}).join("");return`<section class="season-progress" data-season-progress="orange"
      style="--season-progress:${a}%;--milestone-count:${be.length}">
    <div class="season-path-head">
      <div><span>${r("season.rewardEyebrow")}</span><h3>${r("season.rewardTitle")}</h3></div>
      <b>${t}<small>/ ${se.length}</small></b>
    </div>
    <div class="season-progress__rail">
      <button class="season-progress__arrow" data-season-scroll="-1" aria-label="${r("season.scrollPrevious")}">‹</button>
      <div class="season-progress__viewport" data-season-viewport>
        <div class="season-progress__track">
          <div class="season-progress__line"><i></i></div>
          <div class="season-timeline">${n}</div>
        </div>
      </div>
      <button class="season-progress__arrow" data-season-scroll="1" aria-label="${r("season.scrollNext")}">›</button>
    </div>
  </section>`}function ud(e){const t=e.querySelector("[data-season-viewport]"),a=[...e.querySelectorAll("[data-season-scroll]")];if(!t||a.length===0)return()=>{};const n=[...t.querySelectorAll(".season-milestone")],s=[...t.querySelectorAll(".season-milestone.is-ready")],i=s[s.length-1]??t.querySelector(".season-milestone.is-locked")??t.querySelector(".season-milestone:last-child"),o=p=>{const h=p.offsetLeft-(t.clientWidth-p.offsetWidth)/2;return Math.max(0,Math.min(h,t.scrollWidth-t.clientWidth))},u=()=>{const p=t.scrollLeft+t.clientWidth/2;let h=0,_=Number.POSITIVE_INFINITY;return n.forEach((b,$)=>{const w=b.offsetLeft+b.offsetWidth/2,L=Math.abs(w-p);L<_&&(h=$,_=L)}),h},l=()=>{const p=t.scrollLeft<=2,h=t.scrollLeft>=t.scrollWidth-t.clientWidth-2;for(const _ of a)_.disabled=Number(_.dataset.seasonScroll)<0?p:h},d=p=>{const h=p.currentTarget,_=Number(h.dataset.seasonScroll)||1,b=Math.max(0,Math.min(n.length-1,u()+_)),$=n[b];$&&t.scrollTo({left:o($),behavior:"smooth"})};for(const p of a)p.addEventListener("click",d);t.addEventListener("scroll",l,{passive:!0}),window.addEventListener("resize",l);const m=requestAnimationFrame(()=>{i&&(t.scrollLeft=o(i)),l()});return()=>{cancelAnimationFrame(m);for(const p of a)p.removeEventListener("click",d);t.removeEventListener("scroll",l),window.removeEventListener("resize",l)}}function dd(e,t){const a=Je(t==="sales"?"season.sold":"season.itemsCount",e.score);return`<div class="leadrow ${e.me?"is-me":""}">
    <span class="leadrow__rank ${Sr(e.rank)}">${e.rank}</span>
    <span class="leadrow__name">${e.name}</span>
    <span class="leadrow__score">${a}</span>
  </div>`}function es(e,t,a){return`<section class="season-leaderboard${a===e?" is-active":""}" data-season-leaderboard="${e}">
    <div class="season-leaderboard__title"><h3>${t}</h3></div>
    <div class="season-leadlist" id="season-leaders-${e}">
      <p class="leaders__loading">${r("leaders.loading")}</p>
    </div>
  </section>`}function md(e){if(e<=0)return r("season.leaderEnded");const t=e%100,a=e%10,n=t>=11&&t<=14?"season.leaderDaysMany":a===1?"season.leaderDaysOne":a>=2&&a<=4?"season.leaderDaysFew":"season.leaderDaysMany";return r(n,{n:e})}function pd(){const e=gs(M.now()),t=c.getState().seasonLeaderboardTab??"sales";return`<div class="season-leaders-intro"><h3>${r("season.leaderTitle")}</h3><p>${md(e)}</p></div>
    <div class="invtabs season-leader-switch">
      <button class="invtab ${t==="sales"?"is-active":""}" data-season-leader-tab="sales" aria-pressed="${t==="sales"}">${r("leaders.sellers")}</button>
      <button class="invtab ${t==="collection"?"is-active":""}" data-season-leader-tab="collection" aria-pressed="${t==="collection"}">${r("leaders.collectors")}</button>
    </div>
    <div class="season-leaderboards">
      ${es("sales",r("season.leaderSales"),t)}
      ${es("collection",r("season.leaderCollection"),t)}
    </div>`}function hd(e){let t=!1;const a=(n,s)=>{const i=e.querySelector(`#season-leaders-${n}`);M.getLeaderboard(s).then(({entries:o,playerEntry:u})=>{if(t||!i)return;const l=m=>n==="sales"&&xa(m.score),d=Mr(o.filter(m=>!l(m)),u&&!l(u)?u:void 0);i.innerHTML=d.length>0?d.map(m=>dd(m,n)).join(""):`<p class="leaders__loading">${r("season.leaderEmpty")}</p>`}).catch(()=>{t||!i||(i.innerHTML=`<p class="leaders__loading">${r("season.leaderEmpty")}</p>`)})};return a("sales",qe.autumnSales),a("collection",qe.autumnCollectors),()=>{t=!0}}const fd={title:"season.title",render(){const e=c.getState().seasonTab??"collection",t=e==="collection"?mr():e==="rewards"?ld():pd();return`<div class="season">${sd()}${nd(e)}<div class="season-content">${t}</div></div>`},mount(e){if(O(e,"[data-season-tab]",t=>c.setState({seasonTab:t.dataset.seasonTab})),O(e,"[data-season-leader-tab]",t=>c.setState({seasonLeaderboardTab:t.dataset.seasonLeaderTab})),O(e,"[data-autumn-claim]",t=>gc(Number(t.dataset.autumnClaim))),ad(),(c.getState().seasonTab??"collection")==="leaders")return hd(e);if((c.getState().seasonTab??"collection")==="rewards")return ud(e)}},gd={buy:Tl,"buy-item":El,inventory:tu,sales:nu,"sell-setup":iu,cases:du,"case-open":hu,roulette:Su,chats:Iu,"trade-pick":Ru,"chat-item":Lu,"listing-item":Bu,"item-view":Nu,shop:Fu,gifts:Uu,leaders:Yu,season:fd,work:Qu};function yd(e){if(e.isAuthorized()){e.onGranted();return}e.showPrompt(()=>{e.authorize().then(t=>{t&&e.onGranted()})})}const kd=[{id:"buy",icon:"Cart"},{id:"inventory",icon:"Items"},{id:"sales",icon:"Sales"},{id:"cases",icon:"Cases",center:!0},{id:"chats",icon:"Message"},{id:"shop",icon:"Shop"},{id:"season",icon:"season"}],ts={buy:"buy","buy-item":"buy",inventory:"inventory",sales:"sales","sell-setup":"sales",cases:"cases","case-open":"cases",roulette:"cases",chats:"chats","trade-pick":"chats","chat-item":"chats","listing-item":"sales","item-view":"chats",shop:"shop",gifts:"gifts",leaders:"leaders",season:"season",work:"work"},vd=e=>{const t=e.backTo??"buy";return{screen:t,backTo:t==="case-open"?"cases":void 0}};function bd(e){return`
    <header class="topbar">
      ${e.back?'<button class="backbtn" data-back>в†ђ</button>':`<div class="topbar__left">
         ${bt("logo")}
         <button class="topbar__gear" data-settings>${bt("Settings")}</button>
         <button class="topgift ${c.getState().screen==="gifts"?"is-active":""}" data-nav="gifts"${de("navigation")} aria-label="${r("nav.gifts")}">
           <span class="topgift__icon" style="${Vt("Gift")}"></span>${Wc()?'<span class="topgift__dot"></span>':""}
         </button>
         <button class="pill topwork ${c.getState().screen==="work"?"is-active":""}" data-nav="work"${de("navigation")} aria-label="${r("nav.work")}">
           <span class="topwork__icon" style="${Vt("work.png")}"></span><span class="topwork__label">${r("nav.work")}</span>
         </button>
         <button class="pill ${c.getState().screen==="leaders"?"is-active":""}" data-leaders>${r("common.leaders")}</button>
       </div>`}
      <h1 class="topbar__title">${e.title?r(e.title):""}</h1>
      <div class="topbar__money"><button class="money__plus" data-shop aria-label="${r("nav.shop")}">+</button> <span class="money__val">${T(c.getState().coins)}</span></div>
    </header>`}const Vt=e=>{const t=e.includes(".")?e:`${e}.svg`;return`--ic:url(${new URL(`assets/icons/${t}`,document.baseURI).href})`},wr=e=>{const t=Math.floor(e/1e3);return`${Math.floor(t/3600)}:${String(Math.floor(t%3600/60)).padStart(2,"0")}`};function Sd(e){const t=c.getState(),a=t.chats.some(o=>o.unread),n=be.some(o=>Xt(t.autumn2026,o.required)),s=!!t.marketFresh,i=Ve();return`<nav class="bottomnav">
    ${kd.map(o=>{const l=o.id==="chats"&&a||o.id==="buy"&&s||o.id==="season"&&n?`<span class="navitem__dot ${o.id==="season"?"navitem__dot--season":""}"></span>`:"",d=o.id==="shop"&&i?`<span class="navitem__timer" id="shop-timer">${wr(Ut())}</span>`:"";return o.center?`<button class="navitem navitem--center ${e===o.id?"is-active":""}" data-nav="${o.id}"${de("navigation")}>
             <span class="navitem__circle">
               <span class="navitem__icon" style="${Vt(o.icon)}"></span>
               <span class="navitem__label">${r(`nav.${o.id}`)}</span>
             </span>
           </button>`:`<button class="navitem ${e===o.id?"is-active":""}" data-nav="${o.id}"${de("navigation")}>
             <span class="navitem__iconwrap">
               <span class="navitem__icon" style="${Vt(o.icon)}"></span>${l}${d}
             </span>
             <span class="navitem__label">${r(`nav.${o.id}`)}</span>
           </button>`}).join("")}
  </nav>`}function _d(e){const t=document.createElement("div");document.body.appendChild(t);const a=document.createElement("div");a.className="season-reward-alert-layer",document.body.appendChild(a);let n;function s(){const v=c.getState().toast;v!==n&&(n=v,t.innerHTML=v?`<div class="toast">${v}</div>`:"")}let i,o=0,u=0;const l=300;function d(v,f=!1){const g=v??i,y=a.querySelector(".season-reward-alert");if(!y){i===g&&(i=void 0),f&&c.getState().seasonRewardNotice?.id===g&&c.setState({seasonRewardNotice:void 0});return}y.classList.contains("is-leaving")||(y.classList.add("is-leaving"),ge(u),u=C(()=>{y.isConnected&&y.remove(),i===g&&(i=void 0),f&&c.getState().seasonRewardNotice?.id===g&&c.setState({seasonRewardNotice:void 0})},l))}function m(){const v=c.getState(),f=v.seasonRewardNotice;if(f&&v.screen==="season"){ge(o),d(f.id,!0);return}if(f&&(v.screen==="case-open"||v.screen==="roulette")){ge(u),a.innerHTML="",i=void 0;return}if(!f){ge(o),d();return}f.id!==i&&(i=f.id,P("seasonReward"),ge(u),a.innerHTML=`
      <section class="season-reward-alert" role="status" aria-live="polite">
        <span class="season-reward-alert__icon"><img src="./assets/icons/Gift.svg" alt="" /></span>
        <span class="season-reward-alert__copy">
          <small>${r("season.rewardReadyEyebrow")}</small>
          <strong>${r("season.rewardReadyTitle")}</strong>
          <span>${Je("season.rewardReadyText",f.required)}</span>
        </span>
        <button data-season-reward-open>${r("season.rewardReadyAction")}</button>
      </section>`,ge(o),o=C(()=>{c.getState().seasonRewardNotice?.id===f.id&&d(f.id,!0)},3e3))}O(a,"[data-season-reward-open]",()=>{ge(o),j("season",{seasonTab:"rewards"})});let p,h=null,_=c.getState().roulette,b="",$="";function w(){const v=c.getState().screen,f=v!==h,g=v==="roulette"&&c.getState().roulette!==_;if(!f&&v==="roulette"&&!g)return;const y=gd[v],E=y.render(),S=bd(y),R=v==="item-view"?ts[c.getState().backTo??"cases"]??"cases":ts[v],I=Sd(R),J=S+I;if(f){typeof p=="function"&&p(),h=v,_=v==="roulette"?c.getState().roulette:void 0,e.innerHTML=`<div class="app">${S}<main class="screen screen--${v}">${E}</main>${I}</div>`,b=E,$=J;const D=e.querySelector(".app");D.classList.add("is-entering"),C(()=>D.classList.remove("is-entering"),700);const Z=e.querySelector(".screen");p=y.mount?.(Z),xt(Z),s(),le();return}const x=E!==b,G=J!==$;if(!x&&!G){s();return}if(G){const D=e.querySelector(".app"),Z=D?.querySelector(".topbar"),ne=D?.querySelector(".bottomnav");Z&&(Z.outerHTML=S),ne&&(ne.outerHTML=I),$=J}if(x||g){typeof p=="function"&&p();const D=e.querySelector(".screen");if(D){const Z=D.scrollTop,ne=document.createElement("main");ne.className=D.className,ne.innerHTML=E,D.replaceWith(ne),ne.scrollTop=Z,p=y.mount?.(ne),xt(ne)}b=E,_=v==="roulette"?c.getState().roulette:void 0}s(),le()}let L=c.getState().coins,V=0;function le(){const v=c.getState();if(v.coins!==L){const f=L,g=v.coins,y=g-f;Ra(V);const E=Ze(),S=600,R=I=>{const J=Math.min(1,(I-E)/S),x=Math.round(f+y*(1-Math.pow(1-J,3))),G=e.querySelector(".money__val");G&&(G.textContent=T(x)),J<1&&(V=Le(R))};V=Le(R),y>0&&v.screen!=="work"&&(ue(y),P("coin")),L=g}}function ue(v){const f=e.querySelector(".topbar__money");f?.classList.remove("is-gain"),f?.offsetWidth,f?.classList.add("is-gain");const g=f?.getBoundingClientRect(),y=g?g.left+g.width/2:window.innerWidth-90,E=g?g.bottom-2:80,S=document.createElement("div");S.className="fx-gain",S.textContent=`+${T(v)}`,S.style.left=`${y}px`,S.style.top=`${E+6}px`,document.body.appendChild(S),C(()=>S.remove(),1100);for(let R=0;R<5;R++){const I=document.createElement("div");I.className="fx-coin",I.style.left=`${y}px`,I.style.top=`${E}px`,I.style.setProperty("--dx",`${(R-2)*20}px`),I.style.animationDelay=`${R*.05}s`,document.body.appendChild(I),C(()=>I.remove(),950)}}function he(v){const f=e.querySelector('[data-nav="inventory"]');if(!f)return;const g=f.getBoundingClientRect(),y=g.left+g.width/2,E=g.top+g.height/2,S=document.createElement("img");S.className="fx-fly",S.src=ee(v),S.style.left=`${y}px`,S.style.top=`${E}px`,document.body.appendChild(S);const R="translate(-50%, calc(-50% - 170px)) scale(1)",I=S.animate([{transform:"translate(-50%, -50%) scale(.5)",opacity:0,offset:0,easing:"cubic-bezier(.2,.8,.25,1)"},{transform:R,opacity:1,offset:.18,easing:"linear"},{transform:R,opacity:1,offset:.68,easing:"cubic-bezier(.55,0,.35,1)"},{transform:"translate(-50%, -50%) scale(.2)",opacity:0,offset:1}],{duration:1900});I.onfinish=()=>S.remove()}window.addEventListener("game:bought",v=>he(v.detail.itemId)),e.addEventListener("pointerdown",v=>{const f=v.target;f.closest("button")?P("tap"):f.closest(".card[data-uid]")&&P("select")}),O(e,"[data-nav]",v=>{const f=v.dataset.nav;if(f==="chats"){const g=c.getState();j("chats",oe()&&g.chats[0]?{chatOpen:!0,activeChatId:g.chats[0].id}:{chatOpen:!1})}else j(f,f==="season"?{seasonRewardNotice:void 0}:{})}),O(e,"[data-back]",()=>{const v=vd(c.getState());j(v.screen,{backTo:v.backTo})}),O(e,"[data-leaders]",()=>{const v=c.getState();if(v.screen==="leaders"){j(v.backTo??"buy");return}yd({isAuthorized:()=>M.isAuthorized(),authorize:()=>M.auth(),showPrompt:f=>Hl(f),onGranted:()=>{sr(),j("leaders",{backTo:v.screen})}})}),O(e,"[data-settings]",()=>$l()),O(e,"[data-shop]",()=>j("shop")),St(()=>{we()||c.getState().marketDeadline-$e()<=0&&Ue()},1e3),St(()=>{if(we())return;const v=e.querySelector("#shop-timer");if(v){if(!Ve()){v.remove();return}v.textContent=wr(Ut())}},1e3);let U=0;window.addEventListener("resize",()=>{Ra(U),U=Le(()=>{const v=e.querySelector(".screen");v&&xt(v)})}),c.subscribe(w),c.subscribe(s),c.subscribe(m),w(),m()}const Aa="my_resale_save",Nt="my_resale_save_meta",_e=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function gt(e){const t=JSON.stringify(e);let a=2166136261;for(let n=0;n<t.length;n+=1)a^=t.charCodeAt(n),a=Math.imul(a,16777619);return(a>>>0).toString(36)}function as(e){if(!_e(e))return!1;const t=s=>!Array.isArray(e[s])||e[s].length===0,a=s=>typeof e[s]!="number"||e[s]<=0,n=_e(e.ownedCases)?Object.values(e.ownedCases):[];return e.tutorialDone!==!0&&a("coins")&&a("yan")&&a("salesCount")&&a("totalSalesCount")&&a("claimedDays")&&(typeof e.workLevel!="number"||e.workLevel<=1)&&t("inventory")&&t("listings")&&t("seenItems")&&!n.some(s=>typeof s=="number"&&s>0)&&e.starterBought!==!0&&e.autumnBundleBought!==!0&&e.megaBundleBought!==!0&&e.noAds!==!0&&e.reviewRewardGiven!==!0}function ns(e){if(!_e(e))return[];const t=(o,u=0)=>typeof o=="number"&&Number.isFinite(o)?Math.max(u,o):u,a=o=>Array.isArray(o)?o.length:0,n=o=>o===!0?1:0,s=_e(e.autumn2026)?e.autumn2026:{},i=_e(s.items)?Object.values(s.items).filter(o=>t(o)>0).length:0;return[n(e.tutorialDone),a(e.seenItems),t(e.claimedDays),t(e.workLevel,1),n(e.starterBought),n(e.autumnBundleBought),n(e.megaBundleBought),n(e.noAds),n(e.reviewRewardGiven),i,a(s.claimedMilestones),t(e.coins),t(e.yan)]}function Md(e,t){if(!_e(e)||!_e(t))return e;const a=o=>typeof o=="number"&&Number.isFinite(o)?Math.max(0,Math.trunc(o)):0,n=(o,u)=>Object.prototype.hasOwnProperty.call(o,u),s={...e};n(t,"salesCount")&&(s.salesCount=a(t.salesCount)),n(t,"totalSalesCount")&&(s.totalSalesCount=a(t.totalSalesCount));const i=_e(t.autumn2026)?t.autumn2026:null;if(i&&n(i,"sales")){const o=_e(e.autumn2026)?e.autumn2026:{};s.autumn2026={...o,sales:a(i.sales)}}return s}function wd(e,t){const a=ns(e),n=ns(t);if(a.length===0)return!1;let s=!1;for(let i=0;i<a.length;i+=1){const o=a[i]??0,u=n[i]??0;if(o<u)return!1;o>u&&(s=!0)}return s}function ss(e,t){if(e==null)return null;if(_e(e)&&e.schema==="my_resale_v2"&&typeof e.revision=="number"&&Number.isFinite(e.revision)&&"data"in e)return{stored:e,data:e.data,revision:Math.max(0,Math.floor(e.revision)),savedAt:typeof e.savedAt=="number"&&Number.isFinite(e.savedAt)?e.savedAt:0,format:"envelope"};if(_e(t)&&t.schema==="my_resale_v2"&&typeof t.revision=="number"&&Number.isFinite(t.revision)&&(typeof t.dataHash!="string"||t.dataHash===gt(e))){const a={schema:"my_resale_v2",revision:Math.max(0,Math.floor(t.revision)),savedAt:typeof t.savedAt=="number"&&Number.isFinite(t.savedAt)?t.savedAt:0,dataHash:typeof t.dataHash=="string"?t.dataHash:void 0,data:e};return{stored:a,data:e,revision:a.revision,savedAt:a.savedAt,format:"split"}}return{stored:e,data:e,revision:0,savedAt:0,format:"legacy"}}async function Cd(){if(!window.YaGames)return null;const e=await window.YaGames.init();e.on?.("game_api_pause",()=>Fn(!0)),e.on?.("game_api_resume",()=>Fn(!1));let t=await e.getPlayer().catch(()=>null);const a=e.features.GameplayAPI;let n=null;try{n=await e.getPayments({signed:!1})}catch{}let s,i,o=0,u=Number.NEGATIVE_INFINITY,l,d=null,m=!1,p=Number.NEGATIVE_INFINITY;const h=new Map,_=new Map;let b=null;const $=5e3,w=[0,200,600],L=async()=>{if(!t)return{succeeded:!1,save:null};let f;for(const g of w){g>0&&await new Promise(y=>setTimeout(y,g));try{const y=await t.getData();return{succeeded:!0,save:ss(y?.save,y?.saveMeta)}}catch(y){f=y}}return console.warn("[Yandex Games] player.getData failed after retries; cloud writes are disabled for this session",f),{succeeded:!1,save:null}},V=async()=>{for(;l;){let f=l;l=void 0;const g=Math.max(0,$-(Date.now()-u));if(g>0&&(await new Promise(y=>setTimeout(y,g)),l&&(f=l,l=void 0)),f.json!==s&&!m)try{await t?.setData({save:f.data,saveMeta:f.meta},!0),s=f.json}catch(y){console.warn("[Yandex Games] player.setData failed; local save is kept",y)}finally{u=Date.now()}}},le=()=>(d||(d=Promise.resolve().then(V).finally(()=>{d=null})),d),ue=async()=>{for(;h.size>0;){const f=h.entries().next().value;if(!f)break;const[g,y]=f;if(h.delete(g),_.get(g)===y||!(t?.isAuthorized?.()??!1)||!await U("leaderboards.setScore"))continue;const E=Math.max(0,1e3-(Date.now()-p));E>0&&await new Promise(S=>setTimeout(S,E));try{await e.leaderboards.setScore(g,y),_.set(g,y)}catch(S){console.warn(`[Yandex Games] setScore("${g}", ${y}) failed`,S)}finally{p=Date.now()}}},he=()=>(b||(b=Promise.resolve().then(ue).finally(()=>{b=null})),b),U=async f=>{try{return e.isAvailableMethod?await e.isAvailableMethod(f):!0}catch{return!1}},v=f=>({name:f.player.publicName||r("common.player"),score:f.score,rank:f.rank});return{async init(){},loadingReady(){e.features.LoadingAPI?.ready()},async save(f){const g=JSON.stringify(f);if(g===i)return;o+=1;const y={schema:"my_resale_v2",revision:o,savedAt:Date.now()},E={schema:y.schema,revision:y.revision,savedAt:y.savedAt,dataHash:gt(f)},S=JSON.stringify({save:f,saveMeta:E});i=g;try{localStorage.setItem(Aa,g),localStorage.setItem(Nt,JSON.stringify(E))}catch{}!t||m||S===s||(l={data:f,meta:E,json:S},await le())},async load(){const f=await L();m=!f.succeeded;const g=f.save;g&&(s=JSON.stringify(g.stored));let y=null;try{const x=localStorage.getItem(Aa),G=localStorage.getItem(Nt);y=x?ss(JSON.parse(x),G?JSON.parse(G):void 0):null}catch{}const E=!!g&&!!y&&g.format==="legacy"&&y.format!=="legacy"&&!as(g.data)&&as(y.data),S=!!y&&!!g&&(y.revision>g.revision||y.revision===g.revision&&y.savedAt>g.savedAt),R=!E&&!!y&&(!g||S&&wd(y.data,g.data)),I=R?y:g;if(!I)return null;const J=R&&g?Md(I.data,g.data):I.data;if(o=Math.max(g?.revision??0,y?.revision??0),i=JSON.stringify(J),R&&y&&y.format!=="legacy"&&t&&!m){const x=y.stored,G={schema:x.schema,revision:x.revision,savedAt:x.savedAt,dataHash:gt(J)};l={data:J,meta:G,json:JSON.stringify({save:J,saveMeta:G})},await le()}else if(!R&&g?.format==="envelope"&&t&&!m){const x=g.stored,G={schema:x.schema,revision:x.revision,savedAt:x.savedAt,dataHash:gt(x.data)};l={data:x.data,meta:G,json:JSON.stringify({save:x.data,saveMeta:G})},await le()}try{if(localStorage.setItem(Aa,JSON.stringify(J)),I.format==="legacy")localStorage.removeItem(Nt);else{const x=I.stored,G={schema:x.schema,revision:x.revision,savedAt:x.savedAt,dataHash:gt(J)};localStorage.setItem(Nt,JSON.stringify(G))}}catch{}return J},showRewardedVideo(){return new Promise(f=>{let g=!1,y=!1;const E=S=>{y||(y=!0,Rt(!1),f(S))};try{e.adv.showRewardedVideo({callbacks:{onOpen(){Rt(!0)},onRewarded(){g=!0},onClose(){E(g)},onError(){E(!1)}}})}catch{E(!1)}})},showFullscreenAdv(){return new Promise(f=>{let g=!1,y=!1;const E=(S=!1)=>{y||(y=!0,Rt(!1),f(g||S))};try{e.adv.showFullscreenAdv({callbacks:{onOpen(){g=!0,Rt(!0)},onClose(S){E(!!S)},onError(){E(!1)}}})}catch{E(!1)}})},showBannerAdv(){try{e.adv.showBannerAdv?.()}catch{}},hideBannerAdv(){try{e.adv.hideBannerAdv?.()}catch{}},async getLeaderboard(f){const g=await e.leaderboards.getEntries(f,{quantityTop:10,includeUser:!1}).then(E=>E.entries.map(v)).catch(E=>(console.warn(`[Yandex Games] getEntries("${f}") failed`,E),[]));let y;return(t?.isAuthorized?.()??!1)&&await U("leaderboards.getPlayerEntry")&&(y=await e.leaderboards.getPlayerEntry(f).then(v).catch(E=>{(typeof E=="object"&&E!==null&&"code"in E?String(E.code):"")!=="LEADERBOARD_PLAYER_NOT_PRESENT"&&console.warn(`[Yandex Games] getPlayerEntry("${f}") failed`,E)})),{entries:g,playerEntry:y}},setScore(f,g){return!Number.isFinite(g)||g<0?Promise.resolve():(h.set(f,Math.floor(g)),he())},getLang(){return e.environment.i18n.lang||"ru"},gameplayStart(){a?.start()},gameplayStop(){a?.stop()},now(){return e.serverTime?.()??Date.now()},isAuthorized(){return t?.isAuthorized?.()??!1},getPlayerName(){try{return t?.getName?.()??""}catch{return""}},async auth(){try{return await e.auth.openAuthDialog(),t=await e.getPlayer().catch(()=>t),t?.isAuthorized?.()??!1}catch{return!1}},async canReview(){try{return await e.feedback.canReview()}catch{return{value:!1,reason:"UNKNOWN"}}},async requestReview(){try{const f=await e.feedback.requestReview();return!!(f.feedbackSent??f.sentFeedback)}catch{return!1}},hasPayments(){return!!n},async getCatalog(){if(!n)return[];try{return(await n.getCatalog()).map(g=>({id:g.id,title:g.title,price:g.price,priceValue:g.priceValue,currencyCode:g.priceCurrencyCode,currencyImage:g.getPriceCurrencyImage?.("svg")}))}catch{return[]}},async purchase(f){if(!n)return null;try{const g=await n.purchase({id:f});return{productId:g.productID,token:g.purchaseToken}}catch{return null}},async consume(f){try{await n?.consumePurchase(f)}catch{}},async getPurchases(){if(!n)return[];try{return(await n.getPurchases()).map(f=>({productId:f.productID,token:f.purchaseToken}))}catch{return[]}}}}function Yt(e,t){return e?0:t}function Ad(e){if(!Number.isFinite(e.loopEnd)||e.loopEnd<=0)return 0;const t=Math.max(0,e.now-e.sourceStartedAt);return(Math.max(0,e.previousOffset)+t)%e.loopEnd}const Ka=1,Jt=.5;let re=null,Te=null,it=null,Ke=null,Ta=null,Cr=0,vt=0;const Td=(e,t)=>e&&!t;function Ed(){return new URL("assets/music/cinematic_soul_guitar.mp3",document.baseURI).href}function $d(){if(typeof window>"u")return!1;if(!re){const e=window.AudioContext||window.webkitAudioContext;if(!e)return!1;try{re=new e}catch{return!1}Te=re.createGain();const t=c.getState();Te.gain.value=Yt(we(),(t.musicVol??.7)*Jt),Te.connect(re.destination)}return!0}async function Od(){it||!re||(Ta||(Ta=fetch(Ed()).then(e=>e.arrayBuffer()).then(e=>re.decodeAudioData(e)).then(e=>{it=e}).catch(()=>{})),await Ta)}function Ar(){if(!re||!Te||!it||Ke||we())return;const e=re.createBufferSource();e.buffer=it,e.loop=!0,e.loopStart=0,e.loopEnd=Math.max(.1,it.duration-Ka),e.connect(Te),vt%=e.loopEnd,Cr=re.currentTime,e.onended=()=>{Ke===e&&(Ke=null)},e.start(0,vt),Ke=e}function Tr(e){if(!Ke||!re)return;e?vt=Ad({previousOffset:vt,sourceStartedAt:Cr,now:re.currentTime,loopEnd:Math.max(.1,(it?.duration??Ka)-Ka)}):vt=0;const t=Ke;Ke=null,t.onended=null;try{t.stop()}catch{}}async function rs(){const e=c.getState();if($d())if(Te.gain.value=Yt(we(),(e.musicVol??.7)*Jt),e.musicOn){await Od();const t=c.getState(),a=Td(t.musicOn,we());Te.gain.value=Yt(!a,(t.musicVol??.7)*Jt),a&&(Ar(),re.state==="suspended"&&await re.resume())}else Te.gain.value=0,Tr(!1)}function Id(){if(typeof window>"u")return;const e=()=>{rs()};window.addEventListener("pointerdown",e),window.addEventListener("keydown",e);let t=c.getState().musicOn,a=c.getState().musicVol;c.subscribe(()=>{const n=c.getState();(n.musicOn!==t||n.musicVol!==a)&&(t=n.musicOn,a=n.musicVol,rs())}),gn(n=>{if(!re||!Te)return;const s=c.getState();if(Te.gain.value=Yt(n,(s.musicVol??.7)*Jt),n){Tr(!0);return}s.musicOn&&(Ar(),re.state==="suspended"&&re.resume())})}function Rd(e){const{dx:t,dy:a,horizontalScroller:n,verticalScroller:s,atTop:i,atBottom:o}=e;return Math.abs(t)+Math.abs(a)<10||n&&Math.abs(t)>=Math.abs(a)?!1:s?a>0&&i||a<0&&o:!0}const Ld="[data-interstitial]";function Bd(e){if(!(e instanceof Element))return null;const t=e.closest(Ld);return!t||t.matches(":disabled")?null:t}const Nd=5;function xd(e,t){let a=0,n=!1;return{record(s){!s||n||(a+=1,!(a<e)&&(n=!0,t()))}}}function qd(e,t){e?.remove(),t()}document.addEventListener("contextmenu",e=>e.preventDefault());document.addEventListener("dragstart",e=>e.preventDefault());let Ea=!1,Er=()=>{};document.addEventListener("click",e=>{if(Ea)return;if(we()){e.preventDefault(),e.stopImmediatePropagation();return}if(oe()||!pn())return;const t=Bd(e.target);t&&(e.preventDefault(),e.stopImmediatePropagation(),tl().catch(()=>!1).then(a=>{const n=()=>{if(t.isConnected){Ea=!0;try{t.click()}finally{Ea=!1}}Er(a)};if(!we()){n();return}const s=gn(i=>{i||(s(),n())})}))},{capture:!0});const Pd=".screen, .chat__body, .chats__list, .popup";let $r=0,Or=0;document.addEventListener("touchstart",e=>{$r=e.touches[0]?.clientX??0,Or=e.touches[0]?.clientY??0},{passive:!0});document.addEventListener("touchmove",e=>{if(e.touches.length>1)return;const t=e.target;if(t.closest(".overlay"))return;const a=(e.touches[0]?.clientX??0)-$r,n=(e.touches[0]?.clientY??0)-Or;if(Math.abs(a)+Math.abs(n)<10)return;if(t.closest('input[type="range"]')){if(Math.abs(a)>=Math.abs(n))return;e.preventDefault();return}const s=t.closest(Pd);Rd({dx:a,dy:n,horizontalScroller:!!t.closest(".invtabs"),verticalScroller:!!s,atTop:!s||s.scrollTop<=0,atBottom:!s||s.scrollTop+s.clientHeight>=s.scrollHeight-1})&&e.preventDefault()},{passive:!1});let Zt=!1;gn(e=>{so(e),document.body.classList.toggle("is-paused",e),Cl(e),e?(rt(),Zt&&M.gameplayStop()):Zt&&M.gameplayStart()});Al();const is=820,Dd=.5,zd=760;function Tt(){const e=window.visualViewport?.height??window.innerHeight,t=window.visualViewport?.width??window.innerWidth;document.documentElement.style.setProperty("--app-h",`${Math.round(e)}px`);const a=t>=zd&&e<is?Math.max(Dd,e/is):1;document.documentElement.style.setProperty("--ui-scale",a.toFixed(4))}Tt();window.addEventListener("resize",Tt);window.addEventListener("orientationchange",Tt);window.visualViewport?.addEventListener("resize",Tt);window.visualViewport?.addEventListener("scroll",Tt);const Ir=["logo","Cart","Items","Sales","Cases","Message","Shop","season","Gift","Settings","Ad","emoji_ok","emoji_mid","emoji_bad"].map(e=>`./assets/icons/${e}.svg`),Rr=["man_1","man_2","man_3","man_4","man_5","man_6","man_7","man_8","woman_1","woman_1-1","woman_1-2","woman_1-3","woman_5","woman_6","woman_7","woman_8"].map(e=>`./assets/people/${e}.jpg`),Lr="./assets/icons/work.png",jd=["./assets/work/pc_off.png","./assets/work/pc_on.png"];function Fd(){return[...Ir,Lr,...Rr,"./assets/cases/case_1.jpg",ee("001"),ee("015")]}function os(){const e=["case_ad","case_1","case_2","case_3","case_4","case_5","case_6","case_7","case_8","case_vk"].map(n=>`./assets/cases/${n}.jpg`),t=["starter","season_bundle","mega","money_1k","money_10k","money_100k","money_500k","money_1m","money_10m","money_100m","money_500m","money_1b","money_10b"].map(n=>`./assets/shop/${n}.jpg`).concat("./assets/shop/no_ads.svg","./assets/shop/no_ads_ru.svg","./assets/shop/no_ads_tr.svg","./assets/shop/no_ads_es.svg"),a=X.map(n=>ee(n.id));return[...Ir,Lr,...jd,...e,...t,...Rr,...a]}function $a(e,t=()=>{}){let a=0;return Promise.all(e.map(n=>new Promise(s=>{const i=new Image,o=()=>{a+=1,t(a/e.length),s()};i.onload=o,i.onerror=o,i.src=n}))).then(()=>{})}async function Gd(){const e=document.getElementById("loader-fill"),t=w=>{e&&(e.style.width=`${Math.round(w*100)}%`)},a=await Cd().catch(()=>null);a&&no(a),await M.init(),await gl(),fl(),Zc(),Qc(),await xu(),qu(),As(Pr(M.getLang()));const n=oe();n&&go();const s=()=>{const w=c.getState();if(!Zt||!Ia(M.now(),w.tutorialDone===!0,w.autumnGuideSeen===!0))return!1;const L=w.screen;return c.setState({autumnGuideSeen:!0}),rt(),dr(()=>j("cases",{backTo:L})),!0};_d(document.querySelector("#app")),n?(await $a(Fd(),t),ho($a(os()))):await $a(os(),t),t(1);const i=document.getElementById("loader");(()=>{qd(i,()=>M.loadingReady()),Zt=!0,we()||M.gameplayStart(),n||Xs(),n||s(),n&&wo()})(),Id();let u=!1;C(()=>{c.getState().reviewRewardGiven||u||oe()||Ul(gr(c.getState().coins),()=>vr(),()=>{u=!0})},5*60*1e3);const l=(w,L)=>{const V=()=>{if(w()){if(oe()||document.querySelector(".overlay")||c.getState().screen==="roulette"){C(V,5e3);return}L()}};V()};let d=!1;const m=xd(Nd,()=>{l(()=>!d&&!c.getState().noAds,()=>Pl(Oe("noads"),()=>{De("noads")},()=>{d=!0}))});Er=w=>m.record(w);let p=!1;const h=$o(()=>{l(()=>!p&&st().available,()=>ql(Oe("autumnpack"),!c.getState().noAds,()=>{const w=st();return w.available?w.remainingMs:null},()=>{De("autumnpack")},()=>{p=!0}))});window.addEventListener(Ks,w=>{const L=w.detail?.required;typeof L=="number"&&h.recordClaim(L,st().available)});const _=Oo(To,()=>{l(()=>!c.getState().starterSalesOfferSeen&&Ve(),()=>{c.setState({starterSalesOfferSeen:!0}),rt(),Nl(Oe("starterpack"),!c.getState().noAds,()=>{De("starterpack")},()=>{})})}),b=Io(c.getState().totalSalesCount??0,w=>{c.setState({megaOfferLastMilestone:w}),rt(),l(()=>!c.getState().megaBundleBought,()=>zl(Oe("megapack"),!c.getState().noAds,()=>{De("megapack")},()=>{}))});let $={screen:c.getState().screen,backTo:c.getState().backTo};c.subscribe(w=>{const L={screen:w.screen,backTo:w.backTo},V=Eo($,L);$=L,_.recordNavigation({leftChats:V,salesCount:w.salesCount??0,eligible:!w.starterSalesOfferSeen&&Ve()}),b.recordSales({totalSales:w.totalSalesCount??0,lastShownMilestone:w.megaOfferLastMilestone??0,eligible:!w.megaBundleBought})})}Gd();